@openora/core 0.4.1-canary.149 → 0.4.1-canary.150

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 (35) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contracts/schemas/wallet-tx.d.ts +2 -1
  3. package/dist/contracts/schemas/wallet-tx.d.ts.map +1 -1
  4. package/dist/contracts/schemas/wallet-tx.js +1 -0
  5. package/dist/contracts/schemas/wallet-tx.js.map +1 -1
  6. package/dist/wallet/__tests__/reconciliation.service.int.test.js +85 -0
  7. package/dist/wallet/__tests__/reconciliation.service.int.test.js.map +1 -1
  8. package/dist/wallet/__tests__/wallet.service.int.test.js +169 -2
  9. package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
  10. package/dist/wallet/contract/index.d.ts +5 -0
  11. package/dist/wallet/contract/index.d.ts.map +1 -1
  12. package/dist/wallet/drizzle/migrations/0021_mean_chameleon.sql +3 -0
  13. package/dist/wallet/drizzle/migrations/meta/0021_snapshot.json +1986 -0
  14. package/dist/wallet/drizzle/migrations/meta/_journal.json +7 -0
  15. package/dist/wallet/plugin.d.ts.map +1 -1
  16. package/dist/wallet/plugin.js +9 -1
  17. package/dist/wallet/plugin.js.map +1 -1
  18. package/dist/wallet/router/index.d.ts +3 -0
  19. package/dist/wallet/router/index.d.ts.map +1 -1
  20. package/dist/wallet/schema/index.d.ts +4 -4
  21. package/dist/wallet/schema/index.d.ts.map +1 -1
  22. package/dist/wallet/schema/index.js +5 -2
  23. package/dist/wallet/schema/index.js.map +1 -1
  24. package/dist/wallet/service/reconciliation-finding.service.d.ts +38 -9
  25. package/dist/wallet/service/reconciliation-finding.service.d.ts.map +1 -1
  26. package/dist/wallet/service/reconciliation-finding.service.js +41 -6
  27. package/dist/wallet/service/reconciliation-finding.service.js.map +1 -1
  28. package/dist/wallet/service/reconciliation.service.d.ts +19 -3
  29. package/dist/wallet/service/reconciliation.service.d.ts.map +1 -1
  30. package/dist/wallet/service/reconciliation.service.js +69 -7
  31. package/dist/wallet/service/reconciliation.service.js.map +1 -1
  32. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  33. package/dist/wallet/service/wallet.service.js +35 -3
  34. package/dist/wallet/service/wallet.service.js.map +1 -1
  35. package/package.json +1 -1
@@ -4,7 +4,7 @@ export declare const WALLET_TRANSACTION_STATUSES: readonly ["pending", "processi
4
4
  export declare const WALLET_RAILS: readonly ["crypto", "fiat"];
5
5
  export declare const WALLET_CUSTODY_SWEEP_STATUSES: readonly ["pending", "processing", "completed", "failed", "unknown"];
6
6
  export declare const WALLET_JOB_RUN_STATUSES: readonly ["running", "completed", "skipped", "failed", "abandoned"];
7
- export declare const WALLET_RECONCILIATION_FINDING_KINDS: readonly ["missing_deposit", "unattributed_deposit", "amount_mismatch", "currency_mismatch", "status_mismatch", "unknown_at_provider", "unconfigured_asset", "stuck_sweep"];
7
+ export declare const WALLET_RECONCILIATION_FINDING_KINDS: readonly ["missing_deposit", "unattributed_deposit", "amount_mismatch", "currency_mismatch", "status_mismatch", "unknown_at_provider", "unconfigured_asset", "stuck_sweep", "rg_limit_breach"];
8
8
  export declare const WALLET_RECONCILIATION_FINDING_STATUSES: readonly ["open", "resolved"];
9
9
  export declare const WalletTransactionTypeSchema: z.ZodEnum<{
10
10
  withdrawal: "withdrawal";
@@ -58,6 +58,7 @@ export declare const WalletReconciliationFindingKindSchema: z.ZodEnum<{
58
58
  unknown_at_provider: "unknown_at_provider";
59
59
  unconfigured_asset: "unconfigured_asset";
60
60
  stuck_sweep: "stuck_sweep";
61
+ rg_limit_breach: "rg_limit_breach";
61
62
  }>;
62
63
  export declare const WalletReconciliationFindingStatusSchema: z.ZodEnum<{
63
64
  open: "open";
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-tx.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/wallet-tx.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAKzB,eAAO,MAAM,wBAAwB,kKAe3B,CAAC;AAEX,eAAO,MAAM,2BAA2B,+FAU9B,CAAC;AAKX,eAAO,MAAM,YAAY,6BAA8B,CAAC;AAMxD,eAAO,MAAM,6BAA6B,sEAMhC,CAAC;AAEX,eAAO,MAAM,uBAAuB,qEAM1B,CAAC;AAEX,eAAO,MAAM,mCAAmC,6KAStC,CAAC;AAEX,eAAO,MAAM,sCAAsC,+BAAgC,CAAC;AAEpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAAmC,CAAC;AAC5E,eAAO,MAAM,6BAA6B;;;;;;;;EAAsC,CAAC;AACjF,eAAO,MAAM,gBAAgB;;;EAAuB,CAAC;AACrD,eAAO,MAAM,8BAA8B;;;;;;EAAwC,CAAC;AACpF,eAAO,MAAM,wBAAwB;;;;;;EAAkC,CAAC;AACxE,eAAO,MAAM,qCAAqC;;;;;;;;;EAA8C,CAAC;AACjG,eAAO,MAAM,uCAAuC;;;EAEnD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AACpG,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC;AAEF,eAAO,MAAM,yBAAyB,yCAA0C,CAAC;AAEjF,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAG1F"}
1
+ {"version":3,"file":"wallet-tx.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/wallet-tx.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAKzB,eAAO,MAAM,wBAAwB,kKAe3B,CAAC;AAEX,eAAO,MAAM,2BAA2B,+FAU9B,CAAC;AAKX,eAAO,MAAM,YAAY,6BAA8B,CAAC;AAMxD,eAAO,MAAM,6BAA6B,sEAMhC,CAAC;AAEX,eAAO,MAAM,uBAAuB,qEAM1B,CAAC;AAEX,eAAO,MAAM,mCAAmC,gMAUtC,CAAC;AAEX,eAAO,MAAM,sCAAsC,+BAAgC,CAAC;AAEpF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAAmC,CAAC;AAC5E,eAAO,MAAM,6BAA6B;;;;;;;;EAAsC,CAAC;AACjF,eAAO,MAAM,gBAAgB;;;EAAuB,CAAC;AACrD,eAAO,MAAM,8BAA8B;;;;;;EAAwC,CAAC;AACpF,eAAO,MAAM,wBAAwB;;;;;;EAAkC,CAAC;AACxE,eAAO,MAAM,qCAAqC;;;;;;;;;;EAA8C,CAAC;AACjG,eAAO,MAAM,uCAAuC;;;EAEnD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AACpG,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC;AAEF,eAAO,MAAM,yBAAyB,yCAA0C,CAAC;AAEjF,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAG1F"}
@@ -64,6 +64,7 @@ export const WALLET_RECONCILIATION_FINDING_KINDS = [
64
64
  'unknown_at_provider',
65
65
  'unconfigured_asset',
66
66
  'stuck_sweep',
67
+ 'rg_limit_breach',
67
68
  ];
68
69
  export const WALLET_RECONCILIATION_FINDING_STATUSES = ['open', 'resolved'];
69
70
  export const WalletTransactionTypeSchema = z.enum(WALLET_TRANSACTION_TYPES);
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-tx.js","sourceRoot":"","sources":["../../../src/contracts/schemas/wallet-tx.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,iFAAiF;AACjF,mFAAmF;AACnF,qCAAqC;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,YAAY;IACZ,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,eAAe;IACf,cAAc;IACd,UAAU;IACV,SAAS;IACT,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS;IACT,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,UAAU;IACV,kFAAkF;IAClF,qFAAqF;IACrF,SAAS;IACT,WAAW;CACH,CAAC;AAEX,oFAAoF;AACpF,qFAAqF;AACrF,qDAAqD;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC;AAExD,kFAAkF;AAClF,sFAAsF;AACtF,mFAAmF;AACnF,sFAAsF;AACtF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,SAAS;IACT,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,WAAW;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,iBAAiB;IACjB,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,aAAa;CACL,CAAC;AAEX,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAU,CAAC;AAEpF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,IAAI,CAC3D,sCAAsC,CACvC,CAAC;AAYF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAEjF,MAAM,UAAU,OAAO,CAAC,QAAgB,EAAE,gBAAoC;IAC5E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACjG,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"wallet-tx.js","sourceRoot":"","sources":["../../../src/contracts/schemas/wallet-tx.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,iFAAiF;AACjF,mFAAmF;AACnF,qCAAqC;AACrC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS;IACT,YAAY;IACZ,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,eAAe;IACf,cAAc;IACd,UAAU;IACV,SAAS;IACT,cAAc;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,SAAS;IACT,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,UAAU;IACV,kFAAkF;IAClF,qFAAqF;IACrF,SAAS;IACT,WAAW;CACH,CAAC;AAEX,oFAAoF;AACpF,qFAAqF;AACrF,qDAAqD;AACrD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC;AAExD,kFAAkF;AAClF,sFAAsF;AACtF,mFAAmF;AACnF,sFAAsF;AACtF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,SAAS;IACT,YAAY;IACZ,WAAW;IACX,QAAQ;IACR,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;IACR,WAAW;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,iBAAiB;IACjB,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,aAAa;IACb,iBAAiB;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAU,CAAC;AAEpF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,IAAI,CAC3D,sCAAsC,CACvC,CAAC;AAYF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAEjF,MAAM,UAAU,OAAO,CAAC,QAAgB,EAAE,gBAAoC;IAC5E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACjG,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7D,CAAC"}
@@ -49,6 +49,7 @@ function makeServices(payment, overrides = {}) {
49
49
  paymentProviders,
50
50
  audit,
51
51
  platformConfig,
52
+ rgLimits: overrides.rgLimits,
52
53
  });
53
54
  return { wallet, reconciliation, audit, events };
54
55
  }
@@ -415,6 +416,90 @@ describe('ReconciliationService.resolveFinding', () => {
415
416
  expect(resolved.status).toBe('resolved');
416
417
  expect(resolved.transactionId).toBe(creditTx.transactionId);
417
418
  });
419
+ it('files an rg_limit_breach when an admin hand-credits a deposit past the player limit', async () => {
420
+ const finding = await seedFinding();
421
+ const w = await seedWallet('BTC', '0');
422
+ const rgLimits = mock({
423
+ checkDeposit: vi.fn(async () => ({
424
+ allowed: false,
425
+ limitType: 'deposit',
426
+ period: 'daily',
427
+ limit: '0.5',
428
+ used: '0.4',
429
+ })),
430
+ });
431
+ const { wallet: walletSvc, reconciliation } = makeServices(listTransactionsReturning([]), {
432
+ identityReader: mock({
433
+ ...makeIdentityReader(),
434
+ getPlayerIdByUserId: vi.fn().mockResolvedValue(randomUUID()),
435
+ }),
436
+ rgLimits,
437
+ });
438
+ const creditTx = await walletSvc.manualAdjust({
439
+ adminId: randomUUID(),
440
+ userId: w.userId,
441
+ direction: 'credit',
442
+ amount: '1',
443
+ currency: 'BTC',
444
+ reason: 'reconciliation credit',
445
+ idempotencyKey: randomUUID(),
446
+ ip: null,
447
+ userAgent: null,
448
+ });
449
+ await reconciliation.resolveFinding(randomUUID(), finding.id, {
450
+ outcome: 'credited',
451
+ transactionId: creditTx.transactionId,
452
+ });
453
+ // A manual_credit is invisible to the deposit window, so the credit itself is the
454
+ // attempted move - the opposite of the webhook path, which asks with '0'.
455
+ // The stored decimal, not the admin's input string: the gate is asked with the
456
+ // ledger's own amount.
457
+ expect(rgLimits.checkDeposit).toHaveBeenCalledWith(expect.anything(), w.userId, '1.000000000000000000', 'BTC');
458
+ const [breach] = await db.drizzle.db
459
+ .select()
460
+ .from(walletReconciliationFinding)
461
+ .where(eq(walletReconciliationFinding.externalId, finding.id));
462
+ expect(breach).toMatchObject({
463
+ kind: 'rg_limit_breach',
464
+ status: 'open',
465
+ amount: '1.000000000000000000',
466
+ transactionId: creditTx.transactionId,
467
+ });
468
+ expect(breach?.detail).toContain('daily deposit limit of 0.5');
469
+ });
470
+ it('files no breach when the hand-credited deposit stays inside the limit', async () => {
471
+ const finding = await seedFinding();
472
+ const w = await seedWallet('BTC', '0');
473
+ const { wallet: walletSvc, reconciliation } = makeServices(listTransactionsReturning([]), {
474
+ identityReader: mock({
475
+ ...makeIdentityReader(),
476
+ getPlayerIdByUserId: vi.fn().mockResolvedValue(randomUUID()),
477
+ }),
478
+ rgLimits: mock({
479
+ checkDeposit: vi.fn(async () => ({ allowed: true })),
480
+ }),
481
+ });
482
+ const creditTx = await walletSvc.manualAdjust({
483
+ adminId: randomUUID(),
484
+ userId: w.userId,
485
+ direction: 'credit',
486
+ amount: '1',
487
+ currency: 'BTC',
488
+ reason: 'reconciliation credit',
489
+ idempotencyKey: randomUUID(),
490
+ ip: null,
491
+ userAgent: null,
492
+ });
493
+ await reconciliation.resolveFinding(randomUUID(), finding.id, {
494
+ outcome: 'credited',
495
+ transactionId: creditTx.transactionId,
496
+ });
497
+ const breaches = await db.drizzle.db
498
+ .select()
499
+ .from(walletReconciliationFinding)
500
+ .where(eq(walletReconciliationFinding.kind, 'rg_limit_breach'));
501
+ expect(breaches).toHaveLength(0);
502
+ });
418
503
  it('a double-resolve is a no-op: second call does not write a second audit entry', async () => {
419
504
  const finding = await seedFinding();
420
505
  const payment = listTransactionsReturning([]);
@@ -1 +1 @@
1
- {"version":3,"file":"reconciliation.service.int.test.js","sourceRoot":"","sources":["../../../src/wallet/__tests__/reconciliation.service.int.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciliation.service.int.test.js","sourceRoot":"","sources":["../../../src/wallet/__tests__/reconciliation.service.int.test.ts"],"names":[],"mappings":"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"}
@@ -1369,10 +1369,10 @@ describe('WalletService.getOrCreateDepositAddress (real PG)', () => {
1369
1369
  });
1370
1370
  });
1371
1371
  describe('WalletService.creditDepositByAddress (real PG)', () => {
1372
- async function seedAddress(userId, address, currency = 'BTC', network) {
1372
+ async function seedAddress(userId, address, currency = 'BTC', network, providerName = 'custody') {
1373
1373
  await db.drizzle.db
1374
1374
  .insert(walletDepositAddress)
1375
- .values({ userId, currency, address, network, providerName: 'custody' });
1375
+ .values({ userId, currency, address, network, providerName });
1376
1376
  }
1377
1377
  it('resolves the address, credits the wallet, and emits deposit.completed', async () => {
1378
1378
  const { svc, events } = makeService();
@@ -1412,6 +1412,173 @@ describe('WalletService.creditDepositByAddress (real PG)', () => {
1412
1412
  status: 'open',
1413
1413
  });
1414
1414
  });
1415
+ function gateDeciding(checkDeposit) {
1416
+ return mock({ checkDeposit: vi.fn(checkDeposit) });
1417
+ }
1418
+ async function findingsFor(externalId) {
1419
+ return db.drizzle.db
1420
+ .select()
1421
+ .from(walletReconciliationFinding)
1422
+ .where(eq(walletReconciliationFinding.externalId, externalId));
1423
+ }
1424
+ it('credits a deposit over the RG limit and files a finding for the excess', async () => {
1425
+ const rgLimits = gateDeciding(async () => ({
1426
+ allowed: false,
1427
+ limitType: 'deposit',
1428
+ period: 'daily',
1429
+ limit: '1',
1430
+ used: '0.5',
1431
+ }));
1432
+ const { svc, events } = makeService({ rgLimits });
1433
+ const w = await seedWallet({ currency: 'BTC', balance: '0' });
1434
+ await seedAddress(w.userId, 'bc1qoverlimit');
1435
+ const externalId = randomUUID();
1436
+ await svc.creditDepositByAddress({
1437
+ kind: 'deposit',
1438
+ address: 'bc1qoverlimit',
1439
+ amount: '2',
1440
+ currency: 'BTC',
1441
+ externalId,
1442
+ txHash: '0xoverlimit',
1443
+ });
1444
+ expect(await balanceOf(w.userId)).toBe(2);
1445
+ expect(emittedTopics(events)).toEqual(['wallet.deposit.completed']);
1446
+ // '0' as the attempted move: the credit is already committed and counted in the
1447
+ // player's window, so the gate is asked whether that window now passes the limit.
1448
+ expect(rgLimits.checkDeposit).toHaveBeenCalledWith(expect.anything(), w.userId, '0', 'BTC');
1449
+ const findings = await findingsFor(externalId);
1450
+ expect(findings).toHaveLength(1);
1451
+ expect(findings[0]).toMatchObject({ kind: 'rg_limit_breach', status: 'open' });
1452
+ expect(findings[0]?.detail).toContain('daily deposit limit of 1');
1453
+ });
1454
+ it('files a second finding for a second over-limit deposit under its own externalId', async () => {
1455
+ const { svc } = makeService({
1456
+ rgLimits: gateDeciding(async () => ({
1457
+ allowed: false,
1458
+ limitType: 'deposit',
1459
+ period: 'daily',
1460
+ limit: '1',
1461
+ used: '2',
1462
+ })),
1463
+ });
1464
+ const w = await seedWallet({ currency: 'BTC', balance: '0' });
1465
+ await seedAddress(w.userId, 'bc1qoverlimittwice');
1466
+ const first = randomUUID();
1467
+ const second = randomUUID();
1468
+ for (const externalId of [first, second]) {
1469
+ await svc.creditDepositByAddress({
1470
+ kind: 'deposit',
1471
+ address: 'bc1qoverlimittwice',
1472
+ amount: '2',
1473
+ currency: 'BTC',
1474
+ externalId,
1475
+ txHash: `0x${externalId}`,
1476
+ });
1477
+ }
1478
+ // The dedup key makes a replayed webhook safe; it must not also swallow a genuinely
1479
+ // new breach under a different vendor id.
1480
+ expect(await findingsFor(first)).toHaveLength(1);
1481
+ expect(await findingsFor(second)).toHaveLength(1);
1482
+ });
1483
+ it('files a finding per provider when two vendors reuse the same externalId', async () => {
1484
+ const { svc } = makeService({
1485
+ rgLimits: gateDeciding(async () => ({
1486
+ allowed: false,
1487
+ limitType: 'deposit',
1488
+ period: 'daily',
1489
+ limit: '1',
1490
+ used: '2',
1491
+ })),
1492
+ });
1493
+ // A player holds one deposit address per currency, so two vendors means two players.
1494
+ const one = await seedWallet({ currency: 'BTC', balance: '0' });
1495
+ const two = await seedWallet({ currency: 'BTC', balance: '0' });
1496
+ await seedAddress(one.userId, 'bc1qvendorone', 'BTC', undefined, 'custody');
1497
+ await seedAddress(two.userId, 'bc1qvendortwo', 'BTC', undefined, 'other-custody');
1498
+ // An externalId is only unique WITHIN a vendor, so a key of (kind, externalId) alone
1499
+ // would treat the second vendor's breach as a duplicate and silently drop it.
1500
+ const shared = randomUUID();
1501
+ for (const address of ['bc1qvendorone', 'bc1qvendortwo']) {
1502
+ await svc.creditDepositByAddress({
1503
+ kind: 'deposit',
1504
+ address,
1505
+ amount: '2',
1506
+ currency: 'BTC',
1507
+ externalId: shared,
1508
+ txHash: `0x${address}`,
1509
+ });
1510
+ }
1511
+ expect(await balanceOf(one.userId)).toBe(2);
1512
+ expect(await balanceOf(two.userId)).toBe(2);
1513
+ const findings = await findingsFor(shared);
1514
+ expect(findings).toHaveLength(2);
1515
+ expect(findings.map((f) => f.providerName).sort()).toEqual(['custody', 'other-custody']);
1516
+ });
1517
+ it('files the finding on a replayed webhook whose first attempt never recorded one', async () => {
1518
+ const { svc } = makeService({
1519
+ rgLimits: gateDeciding(async () => ({
1520
+ allowed: false,
1521
+ limitType: 'deposit',
1522
+ period: 'daily',
1523
+ limit: '1',
1524
+ used: '3',
1525
+ })),
1526
+ });
1527
+ const w = await seedWallet({ currency: 'BTC', balance: '0' });
1528
+ await seedAddress(w.userId, 'bc1qreplayfinding');
1529
+ const externalId = randomUUID();
1530
+ const event = {
1531
+ kind: 'deposit',
1532
+ address: 'bc1qreplayfinding',
1533
+ amount: '3',
1534
+ currency: 'BTC',
1535
+ externalId,
1536
+ txHash: '0xreplayfinding',
1537
+ };
1538
+ await svc.creditDepositByAddress(event);
1539
+ await db.drizzle.db
1540
+ .delete(walletReconciliationFinding)
1541
+ .where(eq(walletReconciliationFinding.externalId, externalId));
1542
+ await svc.creditDepositByAddress(event);
1543
+ expect(await balanceOf(w.userId)).toBe(3);
1544
+ expect(await findingsFor(externalId)).toHaveLength(1);
1545
+ });
1546
+ it('files no finding for a deposit inside the RG limit', async () => {
1547
+ const { svc } = makeService({ rgLimits: gateDeciding(async () => ({ allowed: true })) });
1548
+ const w = await seedWallet({ currency: 'BTC', balance: '0' });
1549
+ await seedAddress(w.userId, 'bc1qinlimit');
1550
+ const externalId = randomUUID();
1551
+ await svc.creditDepositByAddress({
1552
+ kind: 'deposit',
1553
+ address: 'bc1qinlimit',
1554
+ amount: '0.1',
1555
+ currency: 'BTC',
1556
+ externalId,
1557
+ txHash: '0xinlimit',
1558
+ });
1559
+ expect(await balanceOf(w.userId)).toBe(0.1);
1560
+ expect(await findingsFor(externalId)).toHaveLength(0);
1561
+ });
1562
+ it('still credits a deposit already on chain when the RG check itself fails', async () => {
1563
+ const { svc } = makeService({
1564
+ rgLimits: gateDeciding(async () => {
1565
+ throw new Error('rate reader down');
1566
+ }),
1567
+ });
1568
+ const w = await seedWallet({ currency: 'BTC', balance: '0' });
1569
+ await seedAddress(w.userId, 'bc1qgatedown');
1570
+ const externalId = randomUUID();
1571
+ await svc.creditDepositByAddress({
1572
+ kind: 'deposit',
1573
+ address: 'bc1qgatedown',
1574
+ amount: '0.3',
1575
+ currency: 'BTC',
1576
+ externalId,
1577
+ txHash: '0xgatedown',
1578
+ });
1579
+ expect(await balanceOf(w.userId)).toBe(0.3);
1580
+ expect(await findingsFor(externalId)).toHaveLength(0);
1581
+ });
1415
1582
  it('is idempotent on a replayed externalId', async () => {
1416
1583
  const { svc, events } = makeService();
1417
1584
  const w = await seedWallet({ currency: 'BTC', balance: '0' });