@openora/core 0.4.1-canary.92 → 0.4.1-canary.94
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/admin-console/contract/index.d.ts +12 -0
- package/dist/admin-console/contract/index.d.ts.map +1 -1
- package/dist/admin-console/plugin.d.ts +18 -1
- package/dist/admin-console/plugin.d.ts.map +1 -1
- package/dist/admin-console/router/index.d.ts +6 -0
- package/dist/admin-console/router/index.d.ts.map +1 -1
- package/dist/analytics/plugin.d.ts +18 -1
- package/dist/analytics/plugin.d.ts.map +1 -1
- package/dist/audit/plugin.d.ts +18 -1
- package/dist/audit/plugin.d.ts.map +1 -1
- package/dist/casino/gaming/plugin.d.ts +18 -1
- package/dist/casino/gaming/plugin.d.ts.map +1 -1
- package/dist/casino/lobby/plugin.d.ts +18 -1
- package/dist/casino/lobby/plugin.d.ts.map +1 -1
- package/dist/cms/plugin.d.ts +18 -1
- package/dist/cms/plugin.d.ts.map +1 -1
- package/dist/compliance/plugin.d.ts +18 -1
- package/dist/compliance/plugin.d.ts.map +1 -1
- package/dist/contracts/adapters/audit.d.ts +1 -1
- package/dist/contracts/adapters/audit.d.ts.map +1 -1
- package/dist/contracts/adapters/audit.js.map +1 -1
- package/dist/contracts/adapters/index.d.ts +4 -2
- package/dist/contracts/adapters/index.d.ts.map +1 -1
- package/dist/contracts/adapters/index.js +2 -1
- package/dist/contracts/adapters/index.js.map +1 -1
- package/dist/contracts/adapters/payment.d.ts +99 -0
- package/dist/contracts/adapters/payment.d.ts.map +1 -1
- package/dist/contracts/adapters/payment.js +6 -0
- package/dist/contracts/adapters/payment.js.map +1 -1
- package/dist/contracts/adapters/rate-limit.d.ts +1 -0
- package/dist/contracts/adapters/rate-limit.d.ts.map +1 -1
- package/dist/contracts/adapters/rate-limit.js +1 -0
- package/dist/contracts/adapters/rate-limit.js.map +1 -1
- package/dist/contracts/adapters/wallet-asset-catalog.d.ts +34 -0
- package/dist/contracts/adapters/wallet-asset-catalog.d.ts.map +1 -0
- package/dist/contracts/adapters/wallet-asset-catalog.js +3 -0
- package/dist/contracts/adapters/wallet-asset-catalog.js.map +1 -0
- package/dist/contracts/schemas/__tests__/common-schemas.test.js +2 -1
- package/dist/contracts/schemas/__tests__/common-schemas.test.js.map +1 -1
- package/dist/contracts/schemas/common.d.ts.map +1 -1
- package/dist/contracts/schemas/common.js +7 -4
- package/dist/contracts/schemas/common.js.map +1 -1
- package/dist/contracts/schemas/events.d.ts +15 -0
- package/dist/contracts/schemas/events.d.ts.map +1 -1
- package/dist/contracts/schemas/events.js +16 -2
- package/dist/contracts/schemas/events.js.map +1 -1
- package/dist/contracts/schemas/platform-config.d.ts +45 -0
- package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
- package/dist/contracts/schemas/platform-config.js +47 -0
- package/dist/contracts/schemas/platform-config.js.map +1 -1
- package/dist/contracts/schemas/wallet-tx.d.ts +38 -1
- package/dist/contracts/schemas/wallet-tx.d.ts.map +1 -1
- package/dist/contracts/schemas/wallet-tx.js +32 -3
- package/dist/contracts/schemas/wallet-tx.js.map +1 -1
- package/dist/engagement/chat/plugin.d.ts +18 -1
- package/dist/engagement/chat/plugin.d.ts.map +1 -1
- package/dist/engagement/chat-commands/plugin.d.ts +18 -1
- package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
- package/dist/engagement/notifications/plugin.d.ts +18 -1
- package/dist/engagement/notifications/plugin.d.ts.map +1 -1
- package/dist/engagement/social/plugin.d.ts +18 -1
- package/dist/engagement/social/plugin.d.ts.map +1 -1
- package/dist/engagement/social-transfers/plugin.d.ts +18 -1
- package/dist/engagement/social-transfers/plugin.d.ts.map +1 -1
- package/dist/iam/plugin.d.ts +18 -1
- package/dist/iam/plugin.d.ts.map +1 -1
- package/dist/iam/service/iam.service.d.ts +1 -1
- package/dist/pam/identity/plugin.d.ts +18 -1
- package/dist/pam/identity/plugin.d.ts.map +1 -1
- package/dist/pam/player-management/plugin.d.ts +18 -1
- package/dist/pam/player-management/plugin.d.ts.map +1 -1
- package/dist/pam/player-note/plugin.d.ts +18 -1
- package/dist/pam/player-note/plugin.d.ts.map +1 -1
- package/dist/pam/profile/plugin.d.ts +18 -1
- package/dist/pam/profile/plugin.d.ts.map +1 -1
- package/dist/pam/tag/plugin.d.ts +18 -1
- package/dist/pam/tag/plugin.d.ts.map +1 -1
- package/dist/server/auth/permissions.d.ts +36 -0
- package/dist/server/auth/permissions.d.ts.map +1 -1
- package/dist/server/auth/permissions.js +6 -0
- package/dist/server/auth/permissions.js.map +1 -1
- package/dist/server/db/__tests__/query-helpers.test.js +38 -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 +4 -0
- package/dist/server/db/query-helpers.d.ts.map +1 -1
- package/dist/server/db/query-helpers.js +31 -0
- package/dist/server/db/query-helpers.js.map +1 -1
- package/dist/server/runtime/core-token-catalog.d.ts +18 -1
- package/dist/server/runtime/core-token-catalog.d.ts.map +1 -1
- package/dist/server/runtime/core-token-catalog.js +3 -1
- package/dist/server/runtime/core-token-catalog.js.map +1 -1
- package/dist/testing/mock.d.ts +12 -1
- package/dist/testing/mock.d.ts.map +1 -1
- package/dist/testing/mock.js +16 -0
- package/dist/testing/mock.js.map +1 -1
- package/dist/wallet/__tests__/custody-sweep-gate.test.d.ts +2 -0
- package/dist/wallet/__tests__/custody-sweep-gate.test.d.ts.map +1 -0
- package/dist/wallet/__tests__/custody-sweep-gate.test.js +70 -0
- package/dist/wallet/__tests__/custody-sweep-gate.test.js.map +1 -0
- package/dist/wallet/__tests__/custody-sweep.service.int.test.d.ts +2 -0
- package/dist/wallet/__tests__/custody-sweep.service.int.test.d.ts.map +1 -0
- package/dist/wallet/__tests__/custody-sweep.service.int.test.js +246 -0
- package/dist/wallet/__tests__/custody-sweep.service.int.test.js.map +1 -0
- package/dist/wallet/__tests__/settlement-network.test.d.ts +2 -0
- package/dist/wallet/__tests__/settlement-network.test.d.ts.map +1 -0
- package/dist/wallet/__tests__/settlement-network.test.js +54 -0
- package/dist/wallet/__tests__/settlement-network.test.js.map +1 -0
- package/dist/wallet/__tests__/wallet-asset.router.int.test.d.ts +2 -0
- package/dist/wallet/__tests__/wallet-asset.router.int.test.d.ts.map +1 -0
- package/dist/wallet/__tests__/wallet-asset.router.int.test.js +239 -0
- package/dist/wallet/__tests__/wallet-asset.router.int.test.js.map +1 -0
- package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.js +5 -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 +4 -2
- 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 +6 -3
- package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-custody-stubs.router.test.d.ts +2 -0
- package/dist/wallet/__tests__/wallet-custody-stubs.router.test.d.ts.map +1 -0
- package/dist/wallet/__tests__/wallet-custody-stubs.router.test.js +91 -0
- package/dist/wallet/__tests__/wallet-custody-stubs.router.test.js.map +1 -0
- package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js +2 -1
- package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-webhook.router.int.test.js +125 -4
- package/dist/wallet/__tests__/wallet-webhook.router.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.rate-limit.int.test.js +2 -1
- package/dist/wallet/__tests__/wallet.rate-limit.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.router.int.test.js +28 -3
- package/dist/wallet/__tests__/wallet.router.int.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.service.int.test.js +265 -12
- package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
- package/dist/wallet/adapters/wallet-asset-catalog.service.d.ts +14 -0
- package/dist/wallet/adapters/wallet-asset-catalog.service.d.ts.map +1 -0
- package/dist/wallet/adapters/wallet-asset-catalog.service.js +37 -0
- package/dist/wallet/adapters/wallet-asset-catalog.service.js.map +1 -0
- package/dist/wallet/admin-reporting.d.ts +2 -2
- package/dist/wallet/contract/index.d.ts +428 -4
- package/dist/wallet/contract/index.d.ts.map +1 -1
- package/dist/wallet/contract/index.js +203 -5
- package/dist/wallet/contract/index.js.map +1 -1
- package/dist/wallet/drizzle/migrations/0010_worthless_quasimodo.sql +84 -0
- package/dist/wallet/drizzle/migrations/meta/0010_snapshot.json +1565 -0
- package/dist/wallet/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/wallet/plugin.d.ts +18 -1
- package/dist/wallet/plugin.d.ts.map +1 -1
- package/dist/wallet/plugin.js +72 -14
- package/dist/wallet/plugin.js.map +1 -1
- package/dist/wallet/router/index.d.ts +249 -3
- package/dist/wallet/router/index.d.ts.map +1 -1
- package/dist/wallet/router/index.js +130 -20
- package/dist/wallet/router/index.js.map +1 -1
- package/dist/wallet/schema/index.d.ts +984 -3
- package/dist/wallet/schema/index.d.ts.map +1 -1
- package/dist/wallet/schema/index.js +141 -2
- package/dist/wallet/schema/index.js.map +1 -1
- package/dist/wallet/service/custody-sweep.service.d.ts +77 -0
- package/dist/wallet/service/custody-sweep.service.d.ts.map +1 -0
- package/dist/wallet/service/custody-sweep.service.js +357 -0
- package/dist/wallet/service/custody-sweep.service.js.map +1 -0
- package/dist/wallet/service/wallet.service.d.ts +70 -6
- package/dist/wallet/service/wallet.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.js +379 -16
- package/dist/wallet/service/wallet.service.js.map +1 -1
- package/package.json +1 -1
package/dist/wallet/plugin.d.ts
CHANGED
|
@@ -62,6 +62,7 @@ declare const _default: {
|
|
|
62
62
|
NOTIFICATION_DELIVERY_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").NotificationDeliveryAdapter>;
|
|
63
63
|
OUTBOX: import("@openora/core/contracts").Token<import("@openora/core/contracts").OutboxWriter>;
|
|
64
64
|
PAYMENT_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").PaymentAdapter>;
|
|
65
|
+
PAYMENT_PROVIDERS: import("@openora/core/contracts").Token<import("@openora/core/contracts").PaymentProviderRegistry>;
|
|
65
66
|
PAYMENT_WEBHOOK_VERIFIER: import("@openora/core/contracts").Token<import("@openora/core/contracts").PaymentWebhookVerifier>;
|
|
66
67
|
PLATFORM_CONFIG: import("@openora/core/contracts").Token<{
|
|
67
68
|
features: Record<string, boolean>;
|
|
@@ -92,6 +93,21 @@ declare const _default: {
|
|
|
92
93
|
} | undefined;
|
|
93
94
|
wallet?: {
|
|
94
95
|
cryptoCurrencies?: string[] | undefined;
|
|
96
|
+
sweep?: {
|
|
97
|
+
cron: string;
|
|
98
|
+
feeMultiple: string;
|
|
99
|
+
batchSize: number;
|
|
100
|
+
concurrency: number;
|
|
101
|
+
unknownAfterMinutes: number;
|
|
102
|
+
staleRunAfterMinutes: number;
|
|
103
|
+
} | undefined;
|
|
104
|
+
reconciliation?: {
|
|
105
|
+
cron: string;
|
|
106
|
+
lookbackHours: number;
|
|
107
|
+
stuckAfterMinutes: number;
|
|
108
|
+
staleRunAfterMinutes: number;
|
|
109
|
+
alertThreshold: number;
|
|
110
|
+
} | undefined;
|
|
95
111
|
} | undefined;
|
|
96
112
|
registration?: {
|
|
97
113
|
termsVersion: string;
|
|
@@ -104,7 +120,7 @@ declare const _default: {
|
|
|
104
120
|
PLAYER_TAGS: import("@openora/core/contracts").Token<import("@openora/core/contracts").PlayerTags>;
|
|
105
121
|
PLAY_ELIGIBILITY: import("@openora/core/contracts").Token<import("@openora/core/contracts").PlayEligibilityPort>;
|
|
106
122
|
RAIN_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").RainCommands>;
|
|
107
|
-
RATE_LIMITER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RateLimiterAdapter<`register:${string}` | `login:${string}` | `enable2fa:${string}` | `verify2fa:${string}` | `disable2fa:${string}` | `pwreset-req:${string}` | `pwreset-verify:${string}` | `pwreset:${string}` | `change-password:${string}` | `email-verify:${string}` | `verify-email:${string}` | `wallet-mutation:${string}` | `chat-room-join:${string}` | `chat-send:${string}` | `report-access-denied:${string}`>>;
|
|
123
|
+
RATE_LIMITER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RateLimiterAdapter<`register:${string}` | `login:${string}` | `enable2fa:${string}` | `verify2fa:${string}` | `disable2fa:${string}` | `pwreset-req:${string}` | `pwreset-verify:${string}` | `pwreset:${string}` | `change-password:${string}` | `email-verify:${string}` | `verify-email:${string}` | `wallet-mutation:${string}` | `wallet-webhook:${string}` | `chat-room-join:${string}` | `chat-send:${string}` | `report-access-denied:${string}`>>;
|
|
108
124
|
REALTIME_CLIENT_AUTHORIZER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeClientAuthorizer>;
|
|
109
125
|
REALTIME_TRANSPORT: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeTransport>;
|
|
110
126
|
RNG_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RngAdapter>;
|
|
@@ -114,6 +130,7 @@ declare const _default: {
|
|
|
114
130
|
SMS_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").SmsAdapter>;
|
|
115
131
|
SOCIAL_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").SocialCommands>;
|
|
116
132
|
TAG_EVALUATION_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").TagEvaluationCommands>;
|
|
133
|
+
WALLET_ASSET_CATALOG: import("@openora/core/contracts").Token<import("@openora/core/contracts").WalletAssetCatalog, string>;
|
|
117
134
|
WALLET_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").WalletCommands>;
|
|
118
135
|
WALLET_READER: import("@openora/core/contracts").Token<import("@openora/core/contracts").WalletReader, string>;
|
|
119
136
|
}>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/wallet/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/wallet/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,wBAsG8C"}
|
package/dist/wallet/plugin.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import { ADMIN_GUARD, EVENT_BUS, DRIZZLE } from '@openora/core/server';
|
|
1
|
+
import { ADMIN_GUARD, EVENT_BUS, DRIZZLE, createLogger } from '@openora/core/server';
|
|
2
2
|
import * as z from 'zod';
|
|
3
|
-
import { ADMIN_USER_DIRECTORY, IDENTITY_READER, ADMIN_WALLET_REPORTING, PAYMENT_ADAPTER, PAYMENT_WEBHOOK_VERIFIER, WALLET_COMMANDS, WALLET_READER, PLATFORM_CONFIG, RATE_LIMITER, PLAYER_TAGS, TAG_EVALUATION_COMMANDS, PLAY_ELIGIBILITY, AUDIT_WRITER, } from '@openora/core/contracts';
|
|
3
|
+
import { ADMIN_USER_DIRECTORY, IDENTITY_READER, ADMIN_WALLET_REPORTING, PAYMENT_ADAPTER, PAYMENT_WEBHOOK_VERIFIER, PAYMENT_PROVIDERS, DEFAULT_PAYMENT_PROVIDER, WALLET_COMMANDS, WALLET_READER, WALLET_ASSET_CATALOG, PLATFORM_CONFIG, RATE_LIMITER, PLAYER_TAGS, TAG_EVALUATION_COMMANDS, PLAY_ELIGIBILITY, AUDIT_WRITER, JOB_QUEUE, } from '@openora/core/contracts';
|
|
4
4
|
import { WalletService } from './service/wallet.service.js';
|
|
5
5
|
import { WalletCommandsService } from './service/wallet-commands.service.js';
|
|
6
|
+
import { CustodySweepService, CUSTODY_SWEEP_QUEUE, CustodySweepJobPayloadSchema, } from './service/custody-sweep.service.js';
|
|
6
7
|
import { WalletReaderService } from './adapters/wallet-reader.service.js';
|
|
8
|
+
import { WalletAssetCatalogService } from './adapters/wallet-asset-catalog.service.js';
|
|
7
9
|
import { DrizzleAdminWalletReporting } from './admin-reporting.js';
|
|
8
10
|
import { createWalletRouter } from './router/index.js';
|
|
9
11
|
import { MockPaymentAdapter } from './adapters/mock/mock-payment-adapter.js';
|
|
10
12
|
import { HmacPaymentWebhookVerifier } from './adapters/hmac-payment-webhook-verifier.js';
|
|
13
|
+
const logger = createLogger('wallet');
|
|
14
|
+
// Mirrors WalletConfigSchema's wallet.sweep.cron default - used only when the operator
|
|
15
|
+
// hasn't configured platformConfig.wallet.sweep at all, so the job is still scheduled
|
|
16
|
+
// (CustodySweepService.runCycle no-ops every tick until sweep policy is configured).
|
|
17
|
+
const DEFAULT_SWEEP_CRON = '*/15 * * * *';
|
|
11
18
|
export default {
|
|
12
19
|
// NOT dependsOn 'tag': that would cycle (tag hard-depends on wallet's WALLET_READER).
|
|
13
20
|
// wallet's use of tag's PLAYER_TAGS / TAG_EVALUATION_COMMANDS is optional and resolved
|
|
@@ -25,25 +32,76 @@ export default {
|
|
|
25
32
|
.parse(process.env.PAYMENT_WEBHOOK_SECRET || undefined);
|
|
26
33
|
return new HmacPaymentWebhookVerifier(webhookSecret);
|
|
27
34
|
});
|
|
35
|
+
// Wraps the single PAYMENT_ADAPTER/PAYMENT_WEBHOOK_VERIFIER tokens as the 'default'
|
|
36
|
+
// registry entry, so a one-vendor operator changes nothing. Core only looks a
|
|
37
|
+
// providerName up here - it never discovers vendors itself, because Container.register
|
|
38
|
+
// is last-wins: two overlays each rebinding the single tokens would clobber each
|
|
39
|
+
// other, so running more than one vendor at once needs an operator-composed map
|
|
40
|
+
// (rebind PAYMENT_PROVIDERS entirely) rather than a second core-discovered slot.
|
|
41
|
+
ctx.provide(PAYMENT_PROVIDERS, (c) => ({
|
|
42
|
+
get: (name) => name === DEFAULT_PAYMENT_PROVIDER
|
|
43
|
+
? { adapter: c.get(PAYMENT_ADAPTER), webhookVerifier: c.get(PAYMENT_WEBHOOK_VERIFIER) }
|
|
44
|
+
: null,
|
|
45
|
+
names: () => [DEFAULT_PAYMENT_PROVIDER],
|
|
46
|
+
}));
|
|
28
47
|
// Other modules debit through this port within their own transaction (never importing wallet tables). See ADR-0016.
|
|
29
48
|
ctx.provide(WALLET_COMMANDS, (c) => new WalletCommandsService(c.get(PLAY_ELIGIBILITY), c.has(PLATFORM_CONFIG) ? c.get(PLATFORM_CONFIG) : undefined));
|
|
30
49
|
// Read-only queries for cross-module consumers (eg tag evaluation). Never exposes wallet internals.
|
|
31
50
|
ctx.provide(WALLET_READER, (c) => new WalletReaderService(c.get(DRIZZLE)));
|
|
32
51
|
ctx.provide(ADMIN_WALLET_REPORTING, (c) => new DrizzleAdminWalletReporting(c.get(DRIZZLE)));
|
|
33
|
-
|
|
52
|
+
// Operator-editable currency/network config, readable by a payment adapter without
|
|
53
|
+
// importing wallet tables. Overlay-rebindable, but bound here so it always works.
|
|
54
|
+
ctx.provide(WALLET_ASSET_CATALOG, (c) => new WalletAssetCatalogService(c.get(DRIZZLE)));
|
|
55
|
+
// One memoized instance backs the cron worker and the router factory below - lazily
|
|
56
|
+
// constructed (subscriptions/workers wire before router factories run), matching
|
|
57
|
+
// pam/tag's and compliance's job-worker shape.
|
|
58
|
+
let sweepSvc = null;
|
|
59
|
+
const custodySweepService = (c) => (sweepSvc ??= new CustodySweepService({
|
|
34
60
|
drizzle: c.get(DRIZZLE),
|
|
35
|
-
|
|
36
|
-
payment: c.get(PAYMENT_ADAPTER),
|
|
37
|
-
identityReader: c.get(IDENTITY_READER),
|
|
38
|
-
directory: c.get(ADMIN_USER_DIRECTORY),
|
|
39
|
-
platformConfig: c.has(PLATFORM_CONFIG) ? c.get(PLATFORM_CONFIG) : undefined,
|
|
40
|
-
limiter: c.get(RATE_LIMITER),
|
|
41
|
-
riskTags: c.has(PLAYER_TAGS) ? c.get(PLAYER_TAGS) : undefined,
|
|
42
|
-
tagEvaluationCommands: c.has(TAG_EVALUATION_COMMANDS)
|
|
43
|
-
? c.get(TAG_EVALUATION_COMMANDS)
|
|
44
|
-
: undefined,
|
|
61
|
+
paymentProviders: c.get(PAYMENT_PROVIDERS),
|
|
45
62
|
audit: c.get(AUDIT_WRITER),
|
|
46
|
-
|
|
63
|
+
platformConfig: c.has(PLATFORM_CONFIG) ? c.get(PLATFORM_CONFIG) : undefined,
|
|
64
|
+
}));
|
|
65
|
+
ctx.jobs.worker({
|
|
66
|
+
queue: CUSTODY_SWEEP_QUEUE,
|
|
67
|
+
schema: CustodySweepJobPayloadSchema,
|
|
68
|
+
handler: async ({ payload }) => {
|
|
69
|
+
await sweepSvc?.runCycle(payload.runId);
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
ctx.routers.add('wallet', (c) => {
|
|
73
|
+
const jobQueue = c.get(JOB_QUEUE);
|
|
74
|
+
custodySweepService(c); // ensure sweepSvc is constructed for the job worker above
|
|
75
|
+
const sweepCron = (c.has(PLATFORM_CONFIG) ? c.get(PLATFORM_CONFIG) : undefined)?.wallet?.sweep?.cron ??
|
|
76
|
+
DEFAULT_SWEEP_CRON;
|
|
77
|
+
// Idempotent schedule (keyed by scheduleId). If platformConfig.wallet.sweep is
|
|
78
|
+
// absent, this still registers the tick - the handler just no-ops every time.
|
|
79
|
+
void jobQueue
|
|
80
|
+
.schedule(CUSTODY_SWEEP_QUEUE, 'wallet-custody-sweep.cron', {}, { cron: sweepCron })
|
|
81
|
+
.catch((err) => logger.error({ err }, 'wallet-custody-sweep schedule failed'));
|
|
82
|
+
return createWalletRouter({
|
|
83
|
+
wallet: new WalletService({
|
|
84
|
+
drizzle: c.get(DRIZZLE),
|
|
85
|
+
events: c.get(EVENT_BUS),
|
|
86
|
+
payment: c.get(PAYMENT_ADAPTER),
|
|
87
|
+
paymentProviders: c.get(PAYMENT_PROVIDERS),
|
|
88
|
+
identityReader: c.get(IDENTITY_READER),
|
|
89
|
+
directory: c.get(ADMIN_USER_DIRECTORY),
|
|
90
|
+
platformConfig: c.has(PLATFORM_CONFIG) ? c.get(PLATFORM_CONFIG) : undefined,
|
|
91
|
+
limiter: c.get(RATE_LIMITER),
|
|
92
|
+
riskTags: c.has(PLAYER_TAGS) ? c.get(PLAYER_TAGS) : undefined,
|
|
93
|
+
tagEvaluationCommands: c.has(TAG_EVALUATION_COMMANDS)
|
|
94
|
+
? c.get(TAG_EVALUATION_COMMANDS)
|
|
95
|
+
: undefined,
|
|
96
|
+
audit: c.get(AUDIT_WRITER),
|
|
97
|
+
}),
|
|
98
|
+
adminGuard: c.get(ADMIN_GUARD),
|
|
99
|
+
audit: c.get(AUDIT_WRITER),
|
|
100
|
+
paymentProviders: c.get(PAYMENT_PROVIDERS),
|
|
101
|
+
limiter: c.get(RATE_LIMITER),
|
|
102
|
+
jobQueue,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
47
105
|
},
|
|
48
106
|
};
|
|
49
107
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/wallet/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/wallet/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAEzF,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEtC,uFAAuF;AACvF,sFAAsF;AACtF,qFAAqF;AACrF,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C,eAAe;IACb,sFAAsF;IACtF,uFAAuF;IACvF,iFAAiF;IACjF,yEAAyE;IACzE,EAAE,EAAE,QAAQ;IACZ,SAAS,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACzC,MAAM,aAAa,GAAG,CAAC;iBACpB,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,SAAS,CAAC,CAAC;YAC1D,OAAO,IAAI,0BAA0B,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,oFAAoF;QACpF,8EAA8E;QAC9E,uFAAuF;QACvF,iFAAiF;QACjF,gFAAgF;QAChF,iFAAiF;QACjF,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CACpB,IAAI,KAAK,wBAAwB;gBAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE;gBACvF,CAAC,CAAC,IAAI;YACV,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,wBAAwB,CAAC;SACxC,CAAC,CAAC,CAAC;QACJ,oHAAoH;QACpH,GAAG,CAAC,OAAO,CACT,eAAe,EACf,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,qBAAqB,CACvB,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAC5D,CACJ,CAAC;QACF,oGAAoG;QACpG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5F,mFAAmF;QACnF,kFAAkF;QAClF,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAExF,oFAAoF;QACpF,iFAAiF;QACjF,+CAA+C;QAC/C,IAAI,QAAQ,GAA+B,IAAI,CAAC;QAChD,MAAM,mBAAmB,GAAG,CAAC,CAAmC,EAAE,EAAE,CAClE,CAAC,QAAQ,KAAK,IAAI,mBAAmB,CAAC;YACpC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YACvB,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC1C,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;YAC1B,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5E,CAAC,CAAC,CAAC;QAEN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YACd,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,4BAA4B;YACpC,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC7B,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,0DAA0D;YAClF,MAAM,SAAS,GACb,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;gBAClF,kBAAkB,CAAC;YACrB,+EAA+E;YAC/E,8EAA8E;YAC9E,KAAK,QAAQ;iBACV,QAAQ,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iBACnF,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,sCAAsC,CAAC,CAAC,CAAC;YAEjF,OAAO,kBAAkB,CAAC;gBACxB,MAAM,EAAE,IAAI,aAAa,CAAC;oBACxB,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;oBACvB,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;oBACxB,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;oBAC/B,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;oBAC1C,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;oBACtC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;oBACtC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC3E,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;oBAC5B,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7D,qBAAqB,EAAE,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;wBACnD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;wBAChC,CAAC,CAAC,SAAS;oBACb,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;iBAC3B,CAAC;gBACF,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC9B,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;gBAC1B,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC1C,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;gBAC5B,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CAC0C,CAAC"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
import { type AdminGuard, type OssContext } from '@openora/core/server';
|
|
2
|
-
import type
|
|
2
|
+
import { type AuditWritePort, type JobQueueAdapter, type PaymentProviderRegistry, type RateLimiterAdapter, type RateLimitKey } from '@openora/core/contracts';
|
|
3
3
|
import { WalletService } from '../service/wallet.service.js';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Named rather than positional. Half of these are structurally similar ports, so a
|
|
6
|
+
* positional slip type-checks; and the sweep and reconciliation branches each add their
|
|
7
|
+
* own dependencies here, which as positional parameters git merges into a signature that
|
|
8
|
+
* declares one twice without ever reporting a conflict.
|
|
9
|
+
*/
|
|
10
|
+
export type WalletRouterDeps = {
|
|
11
|
+
wallet: WalletService;
|
|
12
|
+
adminGuard: AdminGuard;
|
|
13
|
+
audit: AuditWritePort;
|
|
14
|
+
paymentProviders: PaymentProviderRegistry;
|
|
15
|
+
limiter?: RateLimiterAdapter<RateLimitKey>;
|
|
16
|
+
jobQueue?: JobQueueAdapter;
|
|
17
|
+
};
|
|
18
|
+
export declare function createWalletRouter({ wallet, adminGuard, audit, paymentProviders, limiter, jobQueue, }: WalletRouterDeps): {
|
|
5
19
|
getBalance: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("@orpc/server").Schema<unknown, unknown>, import("zod").ZodObject<{
|
|
6
20
|
balance: import("zod").ZodString;
|
|
7
21
|
currency: import("zod").ZodString;
|
|
@@ -38,6 +52,7 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
38
52
|
withdraw: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
39
53
|
amount: import("zod").ZodString;
|
|
40
54
|
currency: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
55
|
+
network: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>>;
|
|
41
56
|
provider: import("zod").ZodOptional<import("zod").ZodString>;
|
|
42
57
|
idempotencyKey: import("zod").ZodOptional<import("zod").ZodUUID>;
|
|
43
58
|
destinationAddress: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -53,6 +68,28 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
53
68
|
cancelled: "cancelled";
|
|
54
69
|
}>;
|
|
55
70
|
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
71
|
+
manualAdjustment: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
72
|
+
userId: import("zod").ZodUUID;
|
|
73
|
+
direction: import("zod").ZodEnum<{
|
|
74
|
+
credit: "credit";
|
|
75
|
+
debit: "debit";
|
|
76
|
+
}>;
|
|
77
|
+
currency: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
78
|
+
amount: import("zod").ZodString;
|
|
79
|
+
reason: import("zod").ZodString;
|
|
80
|
+
idempotencyKey: import("zod").ZodUUID;
|
|
81
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
82
|
+
transactionId: import("zod").ZodUUID;
|
|
83
|
+
status: import("zod").ZodEnum<{
|
|
84
|
+
pending: "pending";
|
|
85
|
+
rejected: "rejected";
|
|
86
|
+
processing: "processing";
|
|
87
|
+
completed: "completed";
|
|
88
|
+
failed: "failed";
|
|
89
|
+
on_hold: "on_hold";
|
|
90
|
+
cancelled: "cancelled";
|
|
91
|
+
}>;
|
|
92
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
56
93
|
listTransactions: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
57
94
|
page: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
|
|
58
95
|
limit: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
|
|
@@ -82,9 +119,12 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
82
119
|
tip: "tip";
|
|
83
120
|
gift: "gift";
|
|
84
121
|
rain: "rain";
|
|
122
|
+
manual_credit: "manual_credit";
|
|
123
|
+
manual_debit: "manual_debit";
|
|
85
124
|
}>;
|
|
86
125
|
amount: import("zod").ZodString;
|
|
87
126
|
currency: import("zod").ZodString;
|
|
127
|
+
network: import("zod").ZodNullable<import("zod").ZodString>;
|
|
88
128
|
status: import("zod").ZodEnum<{
|
|
89
129
|
pending: "pending";
|
|
90
130
|
rejected: "rejected";
|
|
@@ -130,9 +170,12 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
130
170
|
tip: "tip";
|
|
131
171
|
gift: "gift";
|
|
132
172
|
rain: "rain";
|
|
173
|
+
manual_credit: "manual_credit";
|
|
174
|
+
manual_debit: "manual_debit";
|
|
133
175
|
}>;
|
|
134
176
|
amount: import("zod").ZodString;
|
|
135
177
|
currency: import("zod").ZodString;
|
|
178
|
+
network: import("zod").ZodNullable<import("zod").ZodString>;
|
|
136
179
|
status: import("zod").ZodEnum<{
|
|
137
180
|
pending: "pending";
|
|
138
181
|
rejected: "rejected";
|
|
@@ -143,6 +186,9 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
143
186
|
cancelled: "cancelled";
|
|
144
187
|
}>;
|
|
145
188
|
createdAt: import("zod").ZodISODateTime;
|
|
189
|
+
reviewedBy: import("zod").ZodNullable<import("zod").ZodUUID>;
|
|
190
|
+
reviewedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
191
|
+
reviewReason: import("zod").ZodNullable<import("zod").ZodString>;
|
|
146
192
|
}, import("zod/v4/core").$strip>>;
|
|
147
193
|
total: import("zod").ZodNumber;
|
|
148
194
|
page: import("zod").ZodNumber;
|
|
@@ -199,6 +245,7 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
199
245
|
username: import("zod").ZodString;
|
|
200
246
|
amount: import("zod").ZodString;
|
|
201
247
|
currency: import("zod").ZodString;
|
|
248
|
+
network: import("zod").ZodNullable<import("zod").ZodString>;
|
|
202
249
|
rail: import("zod").ZodNullable<import("zod").ZodEnum<{
|
|
203
250
|
crypto: "crypto";
|
|
204
251
|
fiat: "fiat";
|
|
@@ -364,10 +411,96 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
364
411
|
createdAt: import("zod").ZodISODateTime;
|
|
365
412
|
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
366
413
|
};
|
|
414
|
+
listAssets: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("@orpc/server").Schema<unknown, unknown>, import("zod").ZodArray<import("zod").ZodObject<{
|
|
415
|
+
currency: import("zod").ZodString;
|
|
416
|
+
network: import("zod").ZodString;
|
|
417
|
+
minDeposit: import("zod").ZodString;
|
|
418
|
+
minWithdrawal: import("zod").ZodString;
|
|
419
|
+
withdrawalFee: import("zod").ZodString;
|
|
420
|
+
depositEnabled: import("zod").ZodBoolean;
|
|
421
|
+
withdrawalEnabled: import("zod").ZodBoolean;
|
|
422
|
+
}, import("zod/v4/core").$strip>>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
423
|
+
assets: {
|
|
424
|
+
list: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("@orpc/server").Schema<unknown, unknown>, import("zod").ZodArray<import("zod").ZodObject<{
|
|
425
|
+
currency: import("zod").ZodString;
|
|
426
|
+
network: import("zod").ZodString;
|
|
427
|
+
minDeposit: import("zod").ZodString;
|
|
428
|
+
minWithdrawal: import("zod").ZodString;
|
|
429
|
+
withdrawalFee: import("zod").ZodString;
|
|
430
|
+
depositEnabled: import("zod").ZodBoolean;
|
|
431
|
+
withdrawalEnabled: import("zod").ZodBoolean;
|
|
432
|
+
id: import("zod").ZodUUID;
|
|
433
|
+
providerAssetId: import("zod").ZodString;
|
|
434
|
+
providerName: import("zod").ZodNullable<import("zod").ZodString>;
|
|
435
|
+
sweepFeeCeiling: import("zod").ZodNullable<import("zod").ZodString>;
|
|
436
|
+
poolLiquidityFloor: import("zod").ZodNullable<import("zod").ZodString>;
|
|
437
|
+
createdAt: import("zod").ZodISODateTime;
|
|
438
|
+
updatedAt: import("zod").ZodISODateTime;
|
|
439
|
+
}, import("zod/v4/core").$strip>>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
440
|
+
create: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
441
|
+
currency: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
442
|
+
network: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
443
|
+
providerAssetId: import("zod").ZodString;
|
|
444
|
+
minDeposit: import("zod").ZodString;
|
|
445
|
+
minWithdrawal: import("zod").ZodString;
|
|
446
|
+
withdrawalFee: import("zod").ZodString;
|
|
447
|
+
depositEnabled: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
448
|
+
withdrawalEnabled: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
449
|
+
providerName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
450
|
+
sweepFeeCeiling: import("zod").ZodOptional<import("zod").ZodString>;
|
|
451
|
+
poolLiquidityFloor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
452
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
453
|
+
currency: import("zod").ZodString;
|
|
454
|
+
network: import("zod").ZodString;
|
|
455
|
+
minDeposit: import("zod").ZodString;
|
|
456
|
+
minWithdrawal: import("zod").ZodString;
|
|
457
|
+
withdrawalFee: import("zod").ZodString;
|
|
458
|
+
depositEnabled: import("zod").ZodBoolean;
|
|
459
|
+
withdrawalEnabled: import("zod").ZodBoolean;
|
|
460
|
+
id: import("zod").ZodUUID;
|
|
461
|
+
providerAssetId: import("zod").ZodString;
|
|
462
|
+
providerName: import("zod").ZodNullable<import("zod").ZodString>;
|
|
463
|
+
sweepFeeCeiling: import("zod").ZodNullable<import("zod").ZodString>;
|
|
464
|
+
poolLiquidityFloor: import("zod").ZodNullable<import("zod").ZodString>;
|
|
465
|
+
createdAt: import("zod").ZodISODateTime;
|
|
466
|
+
updatedAt: import("zod").ZodISODateTime;
|
|
467
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
468
|
+
update: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
469
|
+
currency: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
470
|
+
network: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
471
|
+
providerAssetId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
472
|
+
minDeposit: import("zod").ZodOptional<import("zod").ZodString>;
|
|
473
|
+
minWithdrawal: import("zod").ZodOptional<import("zod").ZodString>;
|
|
474
|
+
withdrawalFee: import("zod").ZodOptional<import("zod").ZodString>;
|
|
475
|
+
depositEnabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
476
|
+
withdrawalEnabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
477
|
+
sweepFeeCeiling: import("zod").ZodOptional<import("zod").ZodString>;
|
|
478
|
+
poolLiquidityFloor: import("zod").ZodOptional<import("zod").ZodString>;
|
|
479
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
480
|
+
currency: import("zod").ZodString;
|
|
481
|
+
network: import("zod").ZodString;
|
|
482
|
+
minDeposit: import("zod").ZodString;
|
|
483
|
+
minWithdrawal: import("zod").ZodString;
|
|
484
|
+
withdrawalFee: import("zod").ZodString;
|
|
485
|
+
depositEnabled: import("zod").ZodBoolean;
|
|
486
|
+
withdrawalEnabled: import("zod").ZodBoolean;
|
|
487
|
+
id: import("zod").ZodUUID;
|
|
488
|
+
providerAssetId: import("zod").ZodString;
|
|
489
|
+
providerName: import("zod").ZodNullable<import("zod").ZodString>;
|
|
490
|
+
sweepFeeCeiling: import("zod").ZodNullable<import("zod").ZodString>;
|
|
491
|
+
poolLiquidityFloor: import("zod").ZodNullable<import("zod").ZodString>;
|
|
492
|
+
createdAt: import("zod").ZodISODateTime;
|
|
493
|
+
updatedAt: import("zod").ZodISODateTime;
|
|
494
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
495
|
+
delete: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
496
|
+
currency: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
497
|
+
network: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
498
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodBoolean, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
499
|
+
};
|
|
367
500
|
deposits: {
|
|
368
501
|
getAddress: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
369
502
|
currency: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
370
|
-
network: import("zod").ZodOptional<import("zod").ZodString
|
|
503
|
+
network: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>>;
|
|
371
504
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
372
505
|
address: import("zod").ZodString;
|
|
373
506
|
currency: import("zod").ZodString;
|
|
@@ -378,5 +511,118 @@ export declare function createWalletRouter(wallet: WalletService, adminGuard: Ad
|
|
|
378
511
|
webhook: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, import("zod").ZodObject<{
|
|
379
512
|
ok: import("zod").ZodLiteral<true>;
|
|
380
513
|
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
514
|
+
webhookForProvider: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
515
|
+
provider: import("zod").ZodString;
|
|
516
|
+
}, import("zod/v4/core").$catchall<import("zod").ZodUnknown>>, import("zod").ZodObject<{
|
|
517
|
+
ok: import("zod").ZodLiteral<true>;
|
|
518
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
519
|
+
custody: {
|
|
520
|
+
sweep: {
|
|
521
|
+
run: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("@orpc/server").Schema<unknown, unknown>, import("zod").ZodObject<{
|
|
522
|
+
runId: import("zod").ZodUUID;
|
|
523
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
524
|
+
};
|
|
525
|
+
};
|
|
526
|
+
reconciliation: {
|
|
527
|
+
list: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
528
|
+
page: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
|
|
529
|
+
limit: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
|
|
530
|
+
status: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
531
|
+
open: "open";
|
|
532
|
+
resolved: "resolved";
|
|
533
|
+
}>>;
|
|
534
|
+
kind: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
535
|
+
missing_deposit: "missing_deposit";
|
|
536
|
+
unattributed_deposit: "unattributed_deposit";
|
|
537
|
+
amount_mismatch: "amount_mismatch";
|
|
538
|
+
currency_mismatch: "currency_mismatch";
|
|
539
|
+
status_mismatch: "status_mismatch";
|
|
540
|
+
unknown_at_provider: "unknown_at_provider";
|
|
541
|
+
unconfigured_asset: "unconfigured_asset";
|
|
542
|
+
stuck_sweep: "stuck_sweep";
|
|
543
|
+
}>>;
|
|
544
|
+
providerName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
545
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
546
|
+
items: import("zod").ZodArray<import("zod").ZodObject<{
|
|
547
|
+
id: import("zod").ZodUUID;
|
|
548
|
+
runId: import("zod").ZodUUID;
|
|
549
|
+
providerName: import("zod").ZodString;
|
|
550
|
+
kind: import("zod").ZodEnum<{
|
|
551
|
+
missing_deposit: "missing_deposit";
|
|
552
|
+
unattributed_deposit: "unattributed_deposit";
|
|
553
|
+
amount_mismatch: "amount_mismatch";
|
|
554
|
+
currency_mismatch: "currency_mismatch";
|
|
555
|
+
status_mismatch: "status_mismatch";
|
|
556
|
+
unknown_at_provider: "unknown_at_provider";
|
|
557
|
+
unconfigured_asset: "unconfigured_asset";
|
|
558
|
+
stuck_sweep: "stuck_sweep";
|
|
559
|
+
}>;
|
|
560
|
+
currency: import("zod").ZodNullable<import("zod").ZodString>;
|
|
561
|
+
network: import("zod").ZodNullable<import("zod").ZodString>;
|
|
562
|
+
amount: import("zod").ZodNullable<import("zod").ZodString>;
|
|
563
|
+
address: import("zod").ZodNullable<import("zod").ZodString>;
|
|
564
|
+
tag: import("zod").ZodNullable<import("zod").ZodString>;
|
|
565
|
+
txHash: import("zod").ZodNullable<import("zod").ZodString>;
|
|
566
|
+
externalId: import("zod").ZodNullable<import("zod").ZodString>;
|
|
567
|
+
transactionId: import("zod").ZodNullable<import("zod").ZodUUID>;
|
|
568
|
+
detail: import("zod").ZodNullable<import("zod").ZodString>;
|
|
569
|
+
status: import("zod").ZodEnum<{
|
|
570
|
+
open: "open";
|
|
571
|
+
resolved: "resolved";
|
|
572
|
+
}>;
|
|
573
|
+
resolvedBy: import("zod").ZodNullable<import("zod").ZodUUID>;
|
|
574
|
+
resolvedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
575
|
+
resolutionNote: import("zod").ZodNullable<import("zod").ZodString>;
|
|
576
|
+
createdAt: import("zod").ZodISODateTime;
|
|
577
|
+
}, import("zod/v4/core").$strip>>;
|
|
578
|
+
total: import("zod").ZodNumber;
|
|
579
|
+
page: import("zod").ZodNumber;
|
|
580
|
+
limit: import("zod").ZodNumber;
|
|
581
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
582
|
+
resolve: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
|
|
583
|
+
id: import("zod").ZodUUID;
|
|
584
|
+
resolution: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
585
|
+
outcome: import("zod").ZodLiteral<"credited">;
|
|
586
|
+
transactionId: import("zod").ZodUUID;
|
|
587
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
588
|
+
outcome: import("zod").ZodLiteral<"dismissed">;
|
|
589
|
+
note: import("zod").ZodString;
|
|
590
|
+
}, import("zod/v4/core").$strip>], "outcome">;
|
|
591
|
+
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
592
|
+
id: import("zod").ZodUUID;
|
|
593
|
+
runId: import("zod").ZodUUID;
|
|
594
|
+
providerName: import("zod").ZodString;
|
|
595
|
+
kind: import("zod").ZodEnum<{
|
|
596
|
+
missing_deposit: "missing_deposit";
|
|
597
|
+
unattributed_deposit: "unattributed_deposit";
|
|
598
|
+
amount_mismatch: "amount_mismatch";
|
|
599
|
+
currency_mismatch: "currency_mismatch";
|
|
600
|
+
status_mismatch: "status_mismatch";
|
|
601
|
+
unknown_at_provider: "unknown_at_provider";
|
|
602
|
+
unconfigured_asset: "unconfigured_asset";
|
|
603
|
+
stuck_sweep: "stuck_sweep";
|
|
604
|
+
}>;
|
|
605
|
+
currency: import("zod").ZodNullable<import("zod").ZodString>;
|
|
606
|
+
network: import("zod").ZodNullable<import("zod").ZodString>;
|
|
607
|
+
amount: import("zod").ZodNullable<import("zod").ZodString>;
|
|
608
|
+
address: import("zod").ZodNullable<import("zod").ZodString>;
|
|
609
|
+
tag: import("zod").ZodNullable<import("zod").ZodString>;
|
|
610
|
+
txHash: import("zod").ZodNullable<import("zod").ZodString>;
|
|
611
|
+
externalId: import("zod").ZodNullable<import("zod").ZodString>;
|
|
612
|
+
transactionId: import("zod").ZodNullable<import("zod").ZodUUID>;
|
|
613
|
+
detail: import("zod").ZodNullable<import("zod").ZodString>;
|
|
614
|
+
status: import("zod").ZodEnum<{
|
|
615
|
+
open: "open";
|
|
616
|
+
resolved: "resolved";
|
|
617
|
+
}>;
|
|
618
|
+
resolvedBy: import("zod").ZodNullable<import("zod").ZodUUID>;
|
|
619
|
+
resolvedAt: import("zod").ZodNullable<import("zod").ZodISODateTime>;
|
|
620
|
+
resolutionNote: import("zod").ZodNullable<import("zod").ZodString>;
|
|
621
|
+
createdAt: import("zod").ZodISODateTime;
|
|
622
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
623
|
+
run: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("@orpc/server").Schema<unknown, unknown>, import("zod").ZodObject<{
|
|
624
|
+
runId: import("zod").ZodUUID;
|
|
625
|
+
}, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
|
|
626
|
+
};
|
|
381
627
|
};
|
|
382
628
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/router/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/router/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAE5B,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,aAAa,EAsBd,MAAM,8BAA8B,CAAC;AAgDtC;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,cAAc,CAAC;IACtB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,OAAO,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,OAAO,EACP,QAAQ,GACT,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6UlB"}
|