@openora/core 0.4.1-canary.75 → 0.4.1-canary.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/analytics/contract/financial.d.ts +1 -2
- package/dist/analytics/contract/financial.d.ts.map +1 -1
- package/dist/analytics/contract/financial.js +2 -4
- package/dist/analytics/contract/financial.js.map +1 -1
- package/dist/compliance/__tests__/kyc.service.int.test.js +2 -2
- package/dist/compliance/__tests__/kyc.service.int.test.js.map +1 -1
- package/dist/compliance/__tests__/rg-monitoring.service.int.test.js +1 -1
- package/dist/compliance/__tests__/rg-monitoring.service.int.test.js.map +1 -1
- package/dist/contracts/adapters/payment.d.ts +11 -3
- package/dist/contracts/adapters/payment.d.ts.map +1 -1
- package/dist/contracts/adapters/payment.js.map +1 -1
- package/dist/contracts/schemas/__tests__/common-schemas.test.js +6 -3
- package/dist/contracts/schemas/__tests__/common-schemas.test.js.map +1 -1
- package/dist/contracts/schemas/common.d.ts +2 -0
- package/dist/contracts/schemas/common.d.ts.map +1 -1
- package/dist/contracts/schemas/common.js +8 -2
- package/dist/contracts/schemas/common.js.map +1 -1
- package/dist/engagement/social-transfers/drizzle/migrations/0001_fearless_molecule_man.sql +5 -0
- package/dist/engagement/social-transfers/drizzle/migrations/meta/0001_snapshot.json +287 -0
- package/dist/engagement/social-transfers/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/engagement/social-transfers/schema/index.d.ts.map +1 -1
- package/dist/engagement/social-transfers/schema/index.js +6 -5
- package/dist/engagement/social-transfers/schema/index.js.map +1 -1
- package/dist/pam/tag/__tests__/tag.service.int.test.js +5 -0
- package/dist/pam/tag/__tests__/tag.service.int.test.js.map +1 -1
- package/dist/server/db/__tests__/query-helpers.test.js +12 -1
- package/dist/server/db/__tests__/query-helpers.test.js.map +1 -1
- package/dist/server/db/index.d.ts +1 -1
- package/dist/server/db/index.d.ts.map +1 -1
- package/dist/server/db/index.js +1 -1
- package/dist/server/db/index.js.map +1 -1
- package/dist/server/db/query-helpers.d.ts +1 -0
- package/dist/server/db/query-helpers.d.ts.map +1 -1
- package/dist/server/db/query-helpers.js +12 -0
- package/dist/server/db/query-helpers.js.map +1 -1
- package/dist/wallet/__tests__/admin-reporting.int.test.js +5 -4
- package/dist/wallet/__tests__/admin-reporting.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.js +7 -3
- package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js +21 -14
- package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js +17 -16
- package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-commands.service.int.test.js +17 -9
- package/dist/wallet/__tests__/wallet-commands.service.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-currency-code.test.d.ts +2 -0
- package/dist/wallet/__tests__/wallet-currency-code.test.d.ts.map +1 -0
- package/dist/wallet/__tests__/wallet-currency-code.test.js +14 -0
- package/dist/wallet/__tests__/wallet-currency-code.test.js.map +1 -0
- package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js +8 -4
- package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-webhook.router.int.test.js +20 -12
- package/dist/wallet/__tests__/wallet-webhook.router.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.rate-limit.int.test.js +8 -5
- package/dist/wallet/__tests__/wallet.rate-limit.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.router.int.test.js +7 -6
- package/dist/wallet/__tests__/wallet.router.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.service.int.test.js +122 -25
- package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
- package/dist/wallet/contract/index.d.ts +39 -8
- package/dist/wallet/contract/index.d.ts.map +1 -1
- package/dist/wallet/contract/index.js +26 -5
- package/dist/wallet/contract/index.js.map +1 -1
- package/dist/wallet/drizzle/migrations/0007_bouncy_swordsman.sql +17 -0
- package/dist/wallet/drizzle/migrations/0008_gorgeous_colonel_america.sql +1 -0
- package/dist/wallet/drizzle/migrations/0009_smooth_sue_storm.sql +17 -0
- package/dist/wallet/drizzle/migrations/meta/0007_snapshot.json +723 -0
- package/dist/wallet/drizzle/migrations/meta/0008_snapshot.json +716 -0
- package/dist/wallet/drizzle/migrations/meta/0009_snapshot.json +895 -0
- package/dist/wallet/drizzle/migrations/meta/_journal.json +21 -0
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/index.js +0 -2
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/migrate.d.ts +0 -1
- package/dist/wallet/migrate.d.ts.map +1 -1
- package/dist/wallet/migrate.js +0 -4
- package/dist/wallet/migrate.js.map +1 -1
- package/dist/wallet/router/index.d.ts +19 -4
- package/dist/wallet/router/index.d.ts.map +1 -1
- package/dist/wallet/router/index.js +5 -2
- package/dist/wallet/router/index.js.map +1 -1
- package/dist/wallet/schema/index.d.ts +224 -6
- package/dist/wallet/schema/index.d.ts.map +1 -1
- package/dist/wallet/schema/index.js +42 -7
- package/dist/wallet/schema/index.js.map +1 -1
- package/dist/wallet/service/wallet-commands.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet-commands.service.js +7 -15
- package/dist/wallet/service/wallet-commands.service.js.map +1 -1
- package/dist/wallet/service/wallet.service.d.ts +280 -6
- package/dist/wallet/service/wallet.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.js +115 -66
- package/dist/wallet/service/wallet.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { makeNotFoundError, makeConflictError, createDomainError, findOneOrThrow, pageToOffset, withAdvisoryXactLock, assertRateLimit, createLogger, moneyToNumber, } from '@openora/core/server';
|
|
1
|
+
import { makeNotFoundError, makeConflictError, createDomainError, findOneOrThrow, pageToOffset, withAdvisoryXactLock, assertRateLimit, createLogger, moneyToNumber, moneyEquals, } from '@openora/core/server';
|
|
2
2
|
import { normalizeKycStatus, } from '@openora/core/contracts';
|
|
3
|
-
import { eq, asc, desc, sql, and, gte, lte, count, inArray } from 'drizzle-orm';
|
|
3
|
+
import { eq, asc, desc, sql, and, gte, lte, count, inArray, isNull, or } from 'drizzle-orm';
|
|
4
4
|
import { createHash } from 'node:crypto';
|
|
5
|
-
import { wallet, walletTransaction, autoWithdrawalRule, walletAutoWithdrawalConfig, walletDepositAddress, } from '../schema/index.js';
|
|
5
|
+
import { wallet, walletBalance, walletTransaction, autoWithdrawalRule, walletAutoWithdrawalConfig, walletDepositAddress, } from '../schema/index.js';
|
|
6
6
|
const logger = createLogger('wallet');
|
|
7
7
|
export const WalletNotFoundError = makeNotFoundError('Wallet');
|
|
8
8
|
export const WithdrawalNotFoundError = makeNotFoundError('Withdrawal');
|
|
@@ -15,10 +15,14 @@ export const DepositAddressUnsupportedError = makeConflictError('DepositAddressU
|
|
|
15
15
|
export const DestinationAddressRequiredError = makeConflictError('DestinationAddressRequiredError', 'A destination address is required for a crypto-rail withdrawal');
|
|
16
16
|
const KYC_PASS_STATUSES = new Set(['approved', 'manually_overridden']);
|
|
17
17
|
export const CurrencyMismatchError = createDomainError('CurrencyMismatchError', (requested, walletCurrency) => `Currency mismatch: requested ${requested}, wallet holds ${walletCurrency}`);
|
|
18
|
+
export const AmbiguousDepositAddressError = createDomainError('AmbiguousDepositAddressError', (address, network) => `Deposit address ${address} on ${network ?? 'an unknown network'} is issued to more than one user`);
|
|
18
19
|
// Crypto currencies settle on the crypto rail (Fireblocks); everything else on the
|
|
19
20
|
// fiat rail (a PSP). The concrete provider is recorded per transaction, not here.
|
|
20
21
|
// Overridable per-operator via `platformConfig.wallet.cryptoCurrencies` - see `railFor`.
|
|
21
22
|
const DEFAULT_CRYPTO_CURRENCIES = new Set(['BTC', 'ETH', 'USDT', 'USDC']);
|
|
23
|
+
// Mirrors the `wallet.currency` column default: what a player without a wallet row
|
|
24
|
+
// reads as their active currency before one is created on first deposit.
|
|
25
|
+
const DEFAULT_WALLET_CURRENCY = 'USD';
|
|
22
26
|
// Per-user throttle on money mutations - guards a runaway/misbehaving client, not
|
|
23
27
|
// fraud (idempotency + the ledger guard cover correctness). An overlay rebinds
|
|
24
28
|
// RATE_LIMITER to change the backend, not this policy.
|
|
@@ -29,6 +33,37 @@ export function railFor(currency, cryptoCurrencies) {
|
|
|
29
33
|
: DEFAULT_CRYPTO_CURRENCIES;
|
|
30
34
|
return set.has(currency.toUpperCase()) ? 'crypto' : 'fiat';
|
|
31
35
|
}
|
|
36
|
+
// Currency checks elsewhere are case-insensitive, so `usd` reaches here for a `USD`
|
|
37
|
+
// wallet. Every read and write of wallet_balance funnels through these three helpers,
|
|
38
|
+
// so normalizing the key here is enough to keep one row per wallet+currency.
|
|
39
|
+
const balanceKey = (currency) => currency.toUpperCase();
|
|
40
|
+
export function creditWalletBalance(txn, walletId, currency, amount) {
|
|
41
|
+
return txn
|
|
42
|
+
.insert(walletBalance)
|
|
43
|
+
.values({ walletId, currency: balanceKey(currency), amount })
|
|
44
|
+
.onConflictDoUpdate({
|
|
45
|
+
target: [walletBalance.walletId, walletBalance.currency],
|
|
46
|
+
set: {
|
|
47
|
+
amount: sql `${walletBalance.amount} + ${amount}::numeric`,
|
|
48
|
+
updatedAt: new Date(),
|
|
49
|
+
},
|
|
50
|
+
})
|
|
51
|
+
.returning({ amount: walletBalance.amount });
|
|
52
|
+
}
|
|
53
|
+
export function debitWalletBalance(txn, walletId, currency, amount) {
|
|
54
|
+
return txn
|
|
55
|
+
.update(walletBalance)
|
|
56
|
+
.set({ amount: sql `${walletBalance.amount} - ${amount}::numeric` })
|
|
57
|
+
.where(and(eq(walletBalance.walletId, walletId), eq(walletBalance.currency, balanceKey(currency)), gte(walletBalance.amount, amount)))
|
|
58
|
+
.returning({ amount: walletBalance.amount });
|
|
59
|
+
}
|
|
60
|
+
export async function readWalletBalance(txn, walletId, currency) {
|
|
61
|
+
const [row] = await txn
|
|
62
|
+
.select({ amount: walletBalance.amount })
|
|
63
|
+
.from(walletBalance)
|
|
64
|
+
.where(and(eq(walletBalance.walletId, walletId), eq(walletBalance.currency, balanceKey(currency))));
|
|
65
|
+
return row?.amount ?? '0';
|
|
66
|
+
}
|
|
32
67
|
// Namespace the key per operation so the same raw key on a deposit then a withdraw can't
|
|
33
68
|
// collide on the (walletId, idempotencyKey) unique index. The column is a uuid, so a string
|
|
34
69
|
// prefix won't parse - hash namespace + key into a stable pseudo-uuid instead.
|
|
@@ -54,6 +89,14 @@ const HIGH_FREQUENCY_MIN_COUNT = 3;
|
|
|
54
89
|
const DAILY_CAP_WINDOW_MS = 24 * 60 * 60 * 1000;
|
|
55
90
|
// Also the marker the cumulative-cap query reads back to identify auto-approved payouts - keep write and read in lockstep.
|
|
56
91
|
const AUTO_APPROVED_REASON = 'auto-approved';
|
|
92
|
+
function toDepositAddressResult(row) {
|
|
93
|
+
return {
|
|
94
|
+
address: row.address,
|
|
95
|
+
currency: row.currency,
|
|
96
|
+
...(row.network === null ? {} : { network: row.network }),
|
|
97
|
+
...(row.tag === null ? {} : { tag: row.tag }),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
57
100
|
function toAutoWithdrawalRuleDto(row) {
|
|
58
101
|
return {
|
|
59
102
|
id: row.id,
|
|
@@ -132,13 +175,40 @@ export class WalletService {
|
|
|
132
175
|
async getBalance(userId) {
|
|
133
176
|
const [record] = await this.drizzle.db.select().from(wallet).where(eq(wallet.userId, userId));
|
|
134
177
|
if (!record) {
|
|
135
|
-
return { balance: '0', currency:
|
|
178
|
+
return { balance: '0', currency: DEFAULT_WALLET_CURRENCY };
|
|
136
179
|
}
|
|
137
180
|
return {
|
|
138
|
-
balance: record.
|
|
181
|
+
balance: await readWalletBalance(this.drizzle.db, record.id, record.currency),
|
|
139
182
|
currency: record.currency,
|
|
140
183
|
};
|
|
141
184
|
}
|
|
185
|
+
async getBalances(userId) {
|
|
186
|
+
const [record] = await this.drizzle.db.select().from(wallet).where(eq(wallet.userId, userId));
|
|
187
|
+
if (!record) {
|
|
188
|
+
return { activeCurrency: DEFAULT_WALLET_CURRENCY, balances: [] };
|
|
189
|
+
}
|
|
190
|
+
const rows = await this.drizzle.db
|
|
191
|
+
.select({ currency: walletBalance.currency, balance: walletBalance.amount })
|
|
192
|
+
.from(walletBalance)
|
|
193
|
+
.where(eq(walletBalance.walletId, record.id))
|
|
194
|
+
.orderBy(walletBalance.currency);
|
|
195
|
+
return { activeCurrency: record.currency, balances: rows };
|
|
196
|
+
}
|
|
197
|
+
// TODO: validate `currency` against a canonical supported-currency list once one
|
|
198
|
+
// exists - `platformConfig.wallet.cryptoCurrencies` classifies rails, it is not an
|
|
199
|
+
// allowlist, so today any non-empty string is accepted and persisted.
|
|
200
|
+
async setActiveCurrency(userId, currency) {
|
|
201
|
+
const updated = await this.drizzle.db
|
|
202
|
+
.update(wallet)
|
|
203
|
+
.set({ currency })
|
|
204
|
+
.where(eq(wallet.userId, userId))
|
|
205
|
+
.returning({ currency: wallet.currency });
|
|
206
|
+
const record = updated[0];
|
|
207
|
+
if (!record) {
|
|
208
|
+
throw new WalletNotFoundError(userId);
|
|
209
|
+
}
|
|
210
|
+
return { activeCurrency: record.currency };
|
|
211
|
+
}
|
|
142
212
|
/**
|
|
143
213
|
* `idempotencyKey` (when supplied) makes a retried deposit a no-op: a replay
|
|
144
214
|
* returns the original committed result WITHOUT calling the PSP again or
|
|
@@ -169,12 +239,6 @@ export class WalletService {
|
|
|
169
239
|
.from(wallet)
|
|
170
240
|
.where(eq(wallet.userId, userId));
|
|
171
241
|
}
|
|
172
|
-
// Single-currency wallet: reject a mismatch BEFORE the PSP call so a wrong-currency
|
|
173
|
-
// request never charges the vendor. A brand-new wallet has no currency to mismatch
|
|
174
|
-
// against yet - it adopts this deposit's currency on insert below.
|
|
175
|
-
if (preResolvedWallet && currency.toUpperCase() !== preResolvedWallet.currency.toUpperCase()) {
|
|
176
|
-
throw new CurrencyMismatchError(currency, preResolvedWallet.currency);
|
|
177
|
-
}
|
|
178
242
|
const psp = await this.payment.processDeposit(amount, currency, { userId, provider });
|
|
179
243
|
const { transactionId, replayed } = await this.drizzle.db.transaction(async (txn) => {
|
|
180
244
|
let walletRecord = preResolvedWallet;
|
|
@@ -182,11 +246,7 @@ export class WalletService {
|
|
|
182
246
|
[walletRecord] = await txn.select().from(wallet).where(eq(wallet.userId, userId));
|
|
183
247
|
}
|
|
184
248
|
if (!walletRecord) {
|
|
185
|
-
walletRecord = findOneOrThrow(await txn.insert(wallet).values({ userId,
|
|
186
|
-
}
|
|
187
|
-
// Single-currency wallet: reject a mismatch rather than coerce it onto the wrong rail.
|
|
188
|
-
if (currency.toUpperCase() !== walletRecord.currency.toUpperCase()) {
|
|
189
|
-
throw new CurrencyMismatchError(currency, walletRecord.currency);
|
|
249
|
+
walletRecord = findOneOrThrow(await txn.insert(wallet).values({ userId, currency }).returning(), new WalletNotFoundError(userId));
|
|
190
250
|
}
|
|
191
251
|
const { row, replayed } = await this.insertIdempotentTransaction(txn, {
|
|
192
252
|
namespace: DEPOSIT_IDEMPOTENCY_NAMESPACE,
|
|
@@ -206,10 +266,7 @@ export class WalletService {
|
|
|
206
266
|
},
|
|
207
267
|
});
|
|
208
268
|
if (!replayed) {
|
|
209
|
-
await txn
|
|
210
|
-
.update(wallet)
|
|
211
|
-
.set({ balance: sql `${wallet.balance} + ${amount}::numeric` })
|
|
212
|
-
.where(eq(wallet.id, walletRecord.id));
|
|
269
|
+
await creditWalletBalance(txn, walletRecord.id, currency, amount);
|
|
213
270
|
}
|
|
214
271
|
return { transactionId: row.id, replayed };
|
|
215
272
|
});
|
|
@@ -241,10 +298,11 @@ export class WalletService {
|
|
|
241
298
|
this.assertReplayMatches(existing, amount, currency);
|
|
242
299
|
return { walletRecord, replay: { transactionId: existing.id, status: existing.status } };
|
|
243
300
|
}
|
|
244
|
-
// Replay comparison only (not a ledger write)
|
|
245
|
-
//
|
|
301
|
+
// Replay comparison only (not a ledger write). moneyEquals avoids a false mismatch between
|
|
302
|
+
// an unnormalized caller string (eg "10") and the DB's fixed-scale value ("10.00") while
|
|
303
|
+
// staying exact - a float compare would let two amounts differing past the 15th digit pass.
|
|
246
304
|
assertReplayMatches(existing, amount, currency) {
|
|
247
|
-
if (
|
|
305
|
+
if (!moneyEquals(existing.amount, amount) ||
|
|
248
306
|
existing.currency.toUpperCase() !== currency.toUpperCase()) {
|
|
249
307
|
throw new IdempotencyKeyReuseError();
|
|
250
308
|
}
|
|
@@ -296,10 +354,6 @@ export class WalletService {
|
|
|
296
354
|
const { transactionId, status, replayed, walletId, rail } = await this.drizzle.db.transaction(async (txn) => {
|
|
297
355
|
// FOR UPDATE serializes concurrent withdrawals against a double-debit TOCTOU under READ COMMITTED.
|
|
298
356
|
const current = findOneOrThrow(await txn.select().from(wallet).where(eq(wallet.userId, userId)).for('update'), new WalletNotFoundError(userId));
|
|
299
|
-
// Single-currency wallet: reject a mismatch rather than coerce it onto the wrong rail.
|
|
300
|
-
if (currency.toUpperCase() !== current.currency.toUpperCase()) {
|
|
301
|
-
throw new CurrencyMismatchError(currency, current.currency);
|
|
302
|
-
}
|
|
303
357
|
// Replay of an already-committed key: return the original untouched. The new-key race is caught by the insert below.
|
|
304
358
|
if (idempotencyKey) {
|
|
305
359
|
const existing = await this.findByIdempotencyKey(txn, current.id, namespacedIdempotencyKey(WITHDRAW_IDEMPOTENCY_NAMESPACE, idempotencyKey));
|
|
@@ -340,13 +394,9 @@ export class WalletService {
|
|
|
340
394
|
};
|
|
341
395
|
}
|
|
342
396
|
// Guarded conditional debit: the WHERE makes balance>=amount atomic with the write; 0 rows back rolls back the whole tx.
|
|
343
|
-
const debited = await txn
|
|
344
|
-
.update(wallet)
|
|
345
|
-
.set({ balance: sql `${wallet.balance} - ${amount}::numeric` })
|
|
346
|
-
.where(and(eq(wallet.id, current.id), gte(wallet.balance, amount)))
|
|
347
|
-
.returning({ id: wallet.id });
|
|
397
|
+
const debited = await debitWalletBalance(txn, current.id, currency, amount);
|
|
348
398
|
if (debited.length !== 1) {
|
|
349
|
-
throw new InsufficientBalanceError(current.
|
|
399
|
+
throw new InsufficientBalanceError(await readWalletBalance(txn, current.id, currency), amount);
|
|
350
400
|
}
|
|
351
401
|
if (this.tagEvaluationCommands) {
|
|
352
402
|
await this.tagEvaluationCommands.evaluateWithdrawalRequested(txn, { userId, amount });
|
|
@@ -579,10 +629,7 @@ export class WalletService {
|
|
|
579
629
|
if (updated.length === 0) {
|
|
580
630
|
return false;
|
|
581
631
|
}
|
|
582
|
-
await txn
|
|
583
|
-
.update(wallet)
|
|
584
|
-
.set({ balance: sql `${wallet.balance} + ${amount}::numeric` })
|
|
585
|
-
.where(eq(wallet.id, tx.walletId));
|
|
632
|
+
await creditWalletBalance(txn, tx.walletId, tx.currency, amount);
|
|
586
633
|
return true;
|
|
587
634
|
});
|
|
588
635
|
if (transitioned && adminId) {
|
|
@@ -938,10 +985,7 @@ export class WalletService {
|
|
|
938
985
|
.set({ status: 'rejected', reviewedBy: adminId, reviewedAt, reviewReason: reason })
|
|
939
986
|
.where(eq(walletTransaction.id, withdrawalId))
|
|
940
987
|
.returning(), new WithdrawalNotFoundError(withdrawalId));
|
|
941
|
-
await txn
|
|
942
|
-
.update(wallet)
|
|
943
|
-
.set({ balance: sql `${wallet.balance} + ${updated.amount}::numeric` })
|
|
944
|
-
.where(eq(wallet.id, updated.walletId));
|
|
988
|
+
await creditWalletBalance(txn, updated.walletId, updated.currency, updated.amount);
|
|
945
989
|
return updated;
|
|
946
990
|
});
|
|
947
991
|
const userId = await this.userIdForWallet(tx.walletId);
|
|
@@ -999,41 +1043,44 @@ export class WalletService {
|
|
|
999
1043
|
limit,
|
|
1000
1044
|
};
|
|
1001
1045
|
}
|
|
1002
|
-
async getOrCreateDepositAddress(userId, currency) {
|
|
1003
|
-
const existing = await this.findDepositAddress(userId, currency);
|
|
1046
|
+
async getOrCreateDepositAddress(userId, currency, network) {
|
|
1047
|
+
const existing = await this.findDepositAddress(userId, currency, network);
|
|
1004
1048
|
if (existing) {
|
|
1005
|
-
return
|
|
1049
|
+
return toDepositAddressResult(existing);
|
|
1006
1050
|
}
|
|
1007
1051
|
if (!this.payment.issueDepositAddress) {
|
|
1008
1052
|
throw new DepositAddressUnsupportedError();
|
|
1009
1053
|
}
|
|
1010
|
-
const issued = await this.payment.issueDepositAddress(userId, currency);
|
|
1054
|
+
const issued = await this.payment.issueDepositAddress(userId, currency, network);
|
|
1011
1055
|
const [row] = await this.drizzle.db
|
|
1012
1056
|
.insert(walletDepositAddress)
|
|
1013
1057
|
.values({
|
|
1014
1058
|
userId,
|
|
1015
1059
|
currency,
|
|
1060
|
+
network: network ?? null,
|
|
1016
1061
|
address: issued.address,
|
|
1062
|
+
tag: issued.tag ?? null,
|
|
1017
1063
|
providerName: providerNameFor(this.resolveRail(currency)),
|
|
1018
1064
|
})
|
|
1019
1065
|
.onConflictDoNothing()
|
|
1020
1066
|
.returning();
|
|
1021
1067
|
if (row) {
|
|
1022
|
-
return
|
|
1068
|
+
return toDepositAddressResult(row);
|
|
1023
1069
|
}
|
|
1024
|
-
const winner = await this.findDepositAddress(userId, currency);
|
|
1070
|
+
const winner = await this.findDepositAddress(userId, currency, network);
|
|
1025
1071
|
if (!winner) {
|
|
1026
|
-
throw new Error(`wallet deposit address: idempotency conflict but no row found (userId=${userId}, currency=${currency})`);
|
|
1072
|
+
throw new Error(`wallet deposit address: idempotency conflict but no row found (userId=${userId}, currency=${currency}, network=${network ?? 'none'})`);
|
|
1027
1073
|
}
|
|
1028
|
-
return
|
|
1074
|
+
return toDepositAddressResult(winner);
|
|
1029
1075
|
}
|
|
1030
1076
|
async creditDepositByAddress(event) {
|
|
1031
|
-
const depositAddress = await this.findDepositAddressByAddress(event
|
|
1077
|
+
const depositAddress = await this.findDepositAddressByAddress(event);
|
|
1032
1078
|
if (!depositAddress) {
|
|
1033
|
-
logger.warn({ address: event.address }, 'payment webhook: no wallet_deposit_address for inbound deposit');
|
|
1079
|
+
logger.warn({ address: event.address, network: event.network, tag: event.tag }, 'payment webhook: no wallet_deposit_address for inbound deposit');
|
|
1034
1080
|
return;
|
|
1035
1081
|
}
|
|
1036
|
-
if (event.
|
|
1082
|
+
if (event.network === undefined &&
|
|
1083
|
+
event.currency.toUpperCase() !== depositAddress.currency.toUpperCase()) {
|
|
1037
1084
|
throw new CurrencyMismatchError(event.currency, depositAddress.currency);
|
|
1038
1085
|
}
|
|
1039
1086
|
const { transactionId, replayed } = await this.drizzle.db.transaction(async (txn) => {
|
|
@@ -1044,12 +1091,9 @@ export class WalletService {
|
|
|
1044
1091
|
if (!walletRecord) {
|
|
1045
1092
|
walletRecord = findOneOrThrow(await txn
|
|
1046
1093
|
.insert(wallet)
|
|
1047
|
-
.values({ userId: depositAddress.userId,
|
|
1094
|
+
.values({ userId: depositAddress.userId, currency: event.currency })
|
|
1048
1095
|
.returning(), new WalletNotFoundError(depositAddress.userId));
|
|
1049
1096
|
}
|
|
1050
|
-
else if (walletRecord.currency.toUpperCase() !== event.currency.toUpperCase()) {
|
|
1051
|
-
throw new CurrencyMismatchError(event.currency, walletRecord.currency);
|
|
1052
|
-
}
|
|
1053
1097
|
const [inserted] = await txn
|
|
1054
1098
|
.insert(walletTransaction)
|
|
1055
1099
|
.values({
|
|
@@ -1067,10 +1111,7 @@ export class WalletService {
|
|
|
1067
1111
|
.onConflictDoNothing()
|
|
1068
1112
|
.returning();
|
|
1069
1113
|
if (inserted) {
|
|
1070
|
-
await txn
|
|
1071
|
-
.update(wallet)
|
|
1072
|
-
.set({ balance: sql `${wallet.balance} + ${event.amount}::numeric` })
|
|
1073
|
-
.where(eq(wallet.id, walletRecord.id));
|
|
1114
|
+
await creditWalletBalance(txn, walletRecord.id, event.currency, event.amount);
|
|
1074
1115
|
return { transactionId: inserted.id, replayed: false };
|
|
1075
1116
|
}
|
|
1076
1117
|
const [winner] = await txn
|
|
@@ -1106,19 +1147,27 @@ export class WalletService {
|
|
|
1106
1147
|
.where(and(eq(walletTransaction.walletId, walletId), eq(walletTransaction.idempotencyKey, idempotencyKey)));
|
|
1107
1148
|
return existing;
|
|
1108
1149
|
}
|
|
1109
|
-
async findDepositAddress(userId, currency) {
|
|
1150
|
+
async findDepositAddress(userId, currency, network) {
|
|
1110
1151
|
const [row] = await this.drizzle.db
|
|
1111
1152
|
.select()
|
|
1112
1153
|
.from(walletDepositAddress)
|
|
1113
|
-
.where(and(eq(walletDepositAddress.userId, userId), eq(walletDepositAddress.currency, currency)
|
|
1154
|
+
.where(and(eq(walletDepositAddress.userId, userId), eq(walletDepositAddress.currency, currency), network === undefined
|
|
1155
|
+
? isNull(walletDepositAddress.network)
|
|
1156
|
+
: eq(walletDepositAddress.network, network)));
|
|
1114
1157
|
return row;
|
|
1115
1158
|
}
|
|
1116
|
-
async findDepositAddressByAddress(address) {
|
|
1117
|
-
const
|
|
1159
|
+
async findDepositAddressByAddress({ address, network, tag, }) {
|
|
1160
|
+
const rows = await this.drizzle.db
|
|
1118
1161
|
.select()
|
|
1119
1162
|
.from(walletDepositAddress)
|
|
1120
|
-
.where(eq(walletDepositAddress.address, address))
|
|
1121
|
-
|
|
1163
|
+
.where(and(eq(walletDepositAddress.address, address), tag === undefined ? isNull(walletDepositAddress.tag) : eq(walletDepositAddress.tag, tag), network === undefined
|
|
1164
|
+
? undefined
|
|
1165
|
+
: or(eq(walletDepositAddress.network, network), isNull(walletDepositAddress.network))));
|
|
1166
|
+
const owners = new Set(rows.map((row) => row.userId));
|
|
1167
|
+
if (owners.size > 1) {
|
|
1168
|
+
throw new AmbiguousDepositAddressError(address, network);
|
|
1169
|
+
}
|
|
1170
|
+
return rows.find((row) => row.network === network) ?? rows[0];
|
|
1122
1171
|
}
|
|
1123
1172
|
}
|
|
1124
1173
|
//# sourceMappingURL=wallet.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.service.js","sourceRoot":"","sources":["../../../src/wallet/service/wallet.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wallet.service.js","sourceRoot":"","sources":["../../../src/wallet/service/wallet.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openora/core",
|
|
3
|
-
"version": "0.4.1-canary.
|
|
3
|
+
"version": "0.4.1-canary.77",
|
|
4
4
|
"description": "Open-source, headless, plugin-based, AI-native iGaming framework - domain modules, plugin engine, Zod-first contracts, typed React SDK",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-native",
|