@aitlabs/namkwong 0.0.108 → 0.0.109

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.
@@ -35,19 +35,7 @@ export declare const assetPriceRouter: Elysia<"/asset_prices", {
35
35
  headers: import("elysia").HTTPHeaders;
36
36
  status?: number | keyof import("elysia").StatusMap;
37
37
  redirect?: string;
38
- cookie?: Record<string, {
39
- domain?: string | undefined;
40
- expires?: Date | undefined;
41
- httpOnly?: boolean | undefined;
42
- maxAge?: number | undefined;
43
- path?: string | undefined;
44
- priority?: 'low' | 'medium' | 'high' | undefined;
45
- partitioned?: boolean | undefined;
46
- sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
47
- secure?: boolean | undefined;
48
- secrets?: string | null | (string | null)[];
49
- value?: unknown;
50
- }>;
38
+ cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
51
39
  };
52
40
  path: string;
53
41
  route: string;
@@ -28,7 +28,7 @@ export declare abstract class InternalBinaryOptionService {
28
28
  private static assertIdempotencyPayload;
29
29
  private static getErrorCode;
30
30
  private static getErrorMessage;
31
- private static getWithdrawAccountTypeId;
31
+ private static getBalanceAccountTypeId;
32
32
  private static getLatestPriceByPair;
33
33
  private static resolveSettlementPrice;
34
34
  private static calculateSettlementResult;
@@ -944,3 +944,15 @@ export declare const binaryOptionUserOrderListResponseSchema: import("@sinclair/
944
944
  hasNextPage: import("@sinclair/typebox").TBoolean;
945
945
  }>;
946
946
  }>;
947
+ export declare const binaryOptionAssetOverviewQuerySchema: import("@sinclair/typebox").TObject<{
948
+ timezone: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
949
+ }>;
950
+ export type BinaryOptionAssetOverviewQueryType = typeof binaryOptionAssetOverviewQuerySchema.static;
951
+ export declare const binaryOptionAssetOverviewResponseSchema: import("@sinclair/typebox").TObject<{
952
+ cnyCnyBalance: import("@sinclair/typebox").TString;
953
+ accountPnL: import("@sinclair/typebox").TString;
954
+ todayPnL: import("@sinclair/typebox").TString;
955
+ settledOrderCount: import("@sinclair/typebox").TNumber;
956
+ timestamp: import("@sinclair/typebox").TString;
957
+ }>;
958
+ export type BinaryOptionAssetOverviewResponseType = typeof binaryOptionAssetOverviewResponseSchema.static;
@@ -817,6 +817,38 @@ export declare const binaryOptionRouter: Elysia<"/binary_option", {
817
817
  };
818
818
  };
819
819
  };
820
+ } & {
821
+ binary_option: {
822
+ asset_overview: {
823
+ get: {
824
+ body: {};
825
+ params: {};
826
+ query: {
827
+ timezone?: string | undefined;
828
+ };
829
+ headers: {};
830
+ response: {
831
+ 200: {
832
+ cnyCnyBalance: string;
833
+ accountPnL: string;
834
+ todayPnL: string;
835
+ settledOrderCount: number;
836
+ timestamp: string;
837
+ };
838
+ 401: "Unauthorized";
839
+ 422: {
840
+ type: 'validation';
841
+ on: string;
842
+ summary?: string;
843
+ message?: string;
844
+ found?: unknown;
845
+ property?: string;
846
+ expected?: string;
847
+ };
848
+ };
849
+ };
850
+ };
851
+ };
820
852
  }, {
821
853
  derive: {};
822
854
  resolve: {};
@@ -1,4 +1,4 @@
1
- import type { BinaryOptionUserMarketListQueryType, BinaryOptionUserOrderCreateInputType, BinaryOptionUserOrderListQueryType } from './dto.schemas';
1
+ import type { BinaryOptionAssetOverviewQueryType, BinaryOptionUserMarketListQueryType, BinaryOptionUserOrderCreateInputType, BinaryOptionUserOrderListQueryType } from './dto.schemas';
2
2
  export declare abstract class UserBinaryOptionService {
3
3
  private static validateUserId;
4
4
  private static verifyTransactionPasswordByStatus;
@@ -151,4 +151,11 @@ export declare abstract class UserBinaryOptionService {
151
151
  userId: string;
152
152
  winPayoutMultiplierSnapshot: string;
153
153
  }>;
154
+ static getAssetOverview(userId: string, query?: BinaryOptionAssetOverviewQueryType): Promise<{
155
+ cnyCnyBalance: string;
156
+ accountPnL: string;
157
+ todayPnL: string;
158
+ settledOrderCount: number;
159
+ timestamp: string;
160
+ }>;
154
161
  }
package/dist/index.d.ts CHANGED
@@ -16180,6 +16180,38 @@ declare const app: Elysia<"/api", {
16180
16180
  };
16181
16181
  };
16182
16182
  };
16183
+ } & {
16184
+ binary_option: {
16185
+ asset_overview: {
16186
+ get: {
16187
+ body: {};
16188
+ params: {};
16189
+ query: {
16190
+ timezone?: string | undefined;
16191
+ };
16192
+ headers: {};
16193
+ response: {
16194
+ 200: {
16195
+ cnyCnyBalance: string;
16196
+ accountPnL: string;
16197
+ todayPnL: string;
16198
+ settledOrderCount: number;
16199
+ timestamp: string;
16200
+ };
16201
+ 401: "Unauthorized";
16202
+ 422: {
16203
+ type: 'validation';
16204
+ on: string;
16205
+ summary?: string;
16206
+ message?: string;
16207
+ found?: unknown;
16208
+ property?: string;
16209
+ expected?: string;
16210
+ };
16211
+ };
16212
+ };
16213
+ };
16214
+ };
16183
16215
  };
16184
16216
  } & {
16185
16217
  api: {
@@ -17289,6 +17321,79 @@ declare const app: Elysia<"/api", {
17289
17321
  };
17290
17322
  };
17291
17323
  };
17324
+ } & {
17325
+ withdraw: {
17326
+ balance_cny_account: {
17327
+ get: {
17328
+ body: {};
17329
+ params: {};
17330
+ query: {};
17331
+ headers: {};
17332
+ response: {
17333
+ 200: {
17334
+ asset: {
17335
+ createdAt: Date;
17336
+ updatedAt: Date;
17337
+ id: string;
17338
+ code: string;
17339
+ name: string;
17340
+ iconUrl: string;
17341
+ category: "CRYPTO" | "FIAT" | "POINT" | "RWA";
17342
+ typeId: string | null;
17343
+ symbol: string | null;
17344
+ precision: number;
17345
+ isActive: boolean;
17346
+ };
17347
+ assetId: string;
17348
+ available: string;
17349
+ createdAt: Date;
17350
+ id: string;
17351
+ ledgerAccountType: {
17352
+ createdAt: Date;
17353
+ updatedAt: Date;
17354
+ id: string;
17355
+ key: string;
17356
+ name: string;
17357
+ description: string | null;
17358
+ allowDeposit: boolean;
17359
+ allowWithdraw: boolean;
17360
+ minWithdrawAmount: string;
17361
+ maxWithdrawAmount: string;
17362
+ allowTransfer: boolean;
17363
+ minTransferAmount: string;
17364
+ maxTransferAmount: string;
17365
+ allowInternalTransfer: boolean;
17366
+ allowInternalReceiveTransfer: boolean;
17367
+ minInternalTransferAmount: string;
17368
+ maxInternalTransferAmount: string;
17369
+ internalTransferRatio: string;
17370
+ allowTransaction: boolean;
17371
+ hasExpiry: boolean;
17372
+ expiryDays: number | null;
17373
+ isActive: boolean;
17374
+ sortOrder: number;
17375
+ };
17376
+ ledgerAccountTypeId: string;
17377
+ locked: string;
17378
+ status: "active" | "disabled" | "frozen";
17379
+ updatedAt: Date;
17380
+ userId: string;
17381
+ version: number;
17382
+ };
17383
+ 401: "Unauthorized";
17384
+ 422: {
17385
+ type: 'validation';
17386
+ on: string;
17387
+ summary?: string;
17388
+ message?: string;
17389
+ found?: unknown;
17390
+ property?: string;
17391
+ expected?: string;
17392
+ };
17393
+ };
17394
+ };
17395
+ };
17396
+ };
17292
17397
  } & {
17293
17398
  withdraw: {
17294
17399
  ledger_account: {
@@ -17384,6 +17489,53 @@ declare const app: Elysia<"/api", {
17384
17489
  };
17385
17490
  };
17386
17491
  };
17492
+ } & {
17493
+ withdraw: {
17494
+ balance_cny_balance: {
17495
+ post: {
17496
+ body: {
17497
+ receiptMethodId: string;
17498
+ amount: string;
17499
+ idempotencyKey: string;
17500
+ transactionPassword?: string | undefined;
17501
+ };
17502
+ params: {};
17503
+ query: {};
17504
+ headers: {};
17505
+ response: {
17506
+ 200: {
17507
+ createdAt: Date;
17508
+ updatedAt: Date;
17509
+ id: string;
17510
+ orderNo: string;
17511
+ idempotencyKey: string;
17512
+ userId: string;
17513
+ sourceAccountId: string | null;
17514
+ assetId: string | null;
17515
+ receiptMethodId: string;
17516
+ amount: string;
17517
+ status: "completed" | "pending_payout" | "pending_review" | "rejected";
17518
+ reviewedBy: string | null;
17519
+ reviewedAt: Date | null;
17520
+ reviewNote: string | null;
17521
+ rejectReason: string | null;
17522
+ paidBy: string | null;
17523
+ paidAt: Date | null;
17524
+ };
17525
+ 401: "Unauthorized";
17526
+ 422: {
17527
+ type: 'validation';
17528
+ on: string;
17529
+ summary?: string;
17530
+ message?: string;
17531
+ found?: unknown;
17532
+ property?: string;
17533
+ expected?: string;
17534
+ };
17535
+ };
17536
+ };
17537
+ };
17538
+ };
17387
17539
  } & {
17388
17540
  withdraw: {
17389
17541
  get: {
@@ -35,7 +35,19 @@ export declare const ledgerAccountAdminRouter: Elysia<"/ledger_accounts", {
35
35
  headers: import("elysia").HTTPHeaders;
36
36
  status?: number | keyof import("elysia").StatusMap;
37
37
  redirect?: string;
38
- cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
38
+ cookie?: Record<string, {
39
+ domain?: string | undefined;
40
+ expires?: Date | undefined;
41
+ httpOnly?: boolean | undefined;
42
+ maxAge?: number | undefined;
43
+ path?: string | undefined;
44
+ priority?: 'low' | 'medium' | 'high' | undefined;
45
+ partitioned?: boolean | undefined;
46
+ sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
47
+ secure?: boolean | undefined;
48
+ secrets?: string | null | (string | null)[];
49
+ value?: unknown;
50
+ }>;
39
51
  };
40
52
  path: string;
41
53
  route: string;
@@ -35,7 +35,19 @@ export declare const ledgerAccountImportAdminRouter: Elysia<"/ledger_account_imp
35
35
  headers: import("elysia").HTTPHeaders;
36
36
  status?: number | keyof import("elysia").StatusMap;
37
37
  redirect?: string;
38
- cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
38
+ cookie?: Record<string, {
39
+ domain?: string | undefined;
40
+ expires?: Date | undefined;
41
+ httpOnly?: boolean | undefined;
42
+ maxAge?: number | undefined;
43
+ path?: string | undefined;
44
+ priority?: 'low' | 'medium' | 'high' | undefined;
45
+ partitioned?: boolean | undefined;
46
+ sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
47
+ secure?: boolean | undefined;
48
+ secrets?: string | null | (string | null)[];
49
+ value?: unknown;
50
+ }>;
39
51
  };
40
52
  path: string;
41
53
  route: string;
@@ -35,19 +35,7 @@ export declare const newsAdminRouter: Elysia<"/news", {
35
35
  headers: import("elysia").HTTPHeaders;
36
36
  status?: number | keyof import("elysia").StatusMap;
37
37
  redirect?: string;
38
- cookie?: Record<string, {
39
- domain?: string | undefined;
40
- expires?: Date | undefined;
41
- httpOnly?: boolean | undefined;
42
- maxAge?: number | undefined;
43
- path?: string | undefined;
44
- priority?: 'low' | 'medium' | 'high' | undefined;
45
- partitioned?: boolean | undefined;
46
- sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
47
- secure?: boolean | undefined;
48
- secrets?: string | null | (string | null)[];
49
- value?: unknown;
50
- }>;
38
+ cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
51
39
  };
52
40
  path: string;
53
41
  route: string;
@@ -35,19 +35,7 @@ export declare const referralAdminRouter: Elysia<"/referrals", {
35
35
  headers: import("elysia").HTTPHeaders;
36
36
  status?: number | keyof import("elysia").StatusMap;
37
37
  redirect?: string;
38
- cookie?: Record<string, {
39
- domain?: string | undefined;
40
- expires?: Date | undefined;
41
- httpOnly?: boolean | undefined;
42
- maxAge?: number | undefined;
43
- path?: string | undefined;
44
- priority?: 'low' | 'medium' | 'high' | undefined;
45
- partitioned?: boolean | undefined;
46
- sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
47
- secure?: boolean | undefined;
48
- secrets?: string | null | (string | null)[];
49
- value?: unknown;
50
- }>;
38
+ cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
51
39
  };
52
40
  path: string;
53
41
  route: string;
@@ -35,7 +35,19 @@ export declare const walletTypeAdminRouter: Elysia<"/wallet_types", {
35
35
  headers: import("elysia").HTTPHeaders;
36
36
  status?: number | keyof import("elysia").StatusMap;
37
37
  redirect?: string;
38
- cookie?: Record<string, import("elysia/cookies").ElysiaCookie>;
38
+ cookie?: Record<string, {
39
+ domain?: string | undefined;
40
+ expires?: Date | undefined;
41
+ httpOnly?: boolean | undefined;
42
+ maxAge?: number | undefined;
43
+ path?: string | undefined;
44
+ priority?: 'low' | 'medium' | 'high' | undefined;
45
+ partitioned?: boolean | undefined;
46
+ sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
47
+ secure?: boolean | undefined;
48
+ secrets?: string | null | (string | null)[];
49
+ value?: unknown;
50
+ }>;
39
51
  };
40
52
  path: string;
41
53
  route: string;
@@ -607,6 +607,13 @@ export declare const directCnyWithdrawCreateInputSchema: import("@sinclair/typeb
607
607
  transactionPassword: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
608
608
  }>;
609
609
  export type DirectCnyWithdrawCreateInputType = typeof directCnyWithdrawCreateInputSchema.static;
610
+ export declare const balanceCnyWithdrawCreateInputSchema: import("@sinclair/typebox").TObject<{
611
+ receiptMethodId: import("@sinclair/typebox").TString;
612
+ amount: import("@sinclair/typebox").TString;
613
+ idempotencyKey: import("@sinclair/typebox").TString;
614
+ transactionPassword: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
615
+ }>;
616
+ export type BalanceCnyWithdrawCreateInputType = typeof balanceCnyWithdrawCreateInputSchema.static;
610
617
  export declare const directCnyWithdrawAccountInfoResponseSchema: import("@sinclair/typebox").TObject<{
611
618
  asset: import("drizzle-typebox").BuildSchema<"select", {
612
619
  createdAt: import("drizzle-orm/pg-core").PgColumn<{
@@ -1206,6 +1213,605 @@ export declare const directCnyWithdrawAccountInfoResponseSchema: import("@sincla
1206
1213
  version: import("@sinclair/typebox").TInteger;
1207
1214
  }>;
1208
1215
  export type DirectCnyWithdrawAccountInfoResponseType = typeof directCnyWithdrawAccountInfoResponseSchema.static;
1216
+ export declare const balanceCnyAccountInfoResponseSchema: import("@sinclair/typebox").TObject<{
1217
+ asset: import("drizzle-typebox").BuildSchema<"select", {
1218
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1219
+ name: "created_at";
1220
+ tableName: "asset";
1221
+ dataType: "date";
1222
+ columnType: "PgTimestamp";
1223
+ data: Date;
1224
+ driverParam: string;
1225
+ notNull: true;
1226
+ hasDefault: true;
1227
+ isPrimaryKey: false;
1228
+ isAutoincrement: false;
1229
+ hasRuntimeDefault: false;
1230
+ enumValues: undefined;
1231
+ baseColumn: never;
1232
+ identity: undefined;
1233
+ generated: undefined;
1234
+ }, {}, {}>;
1235
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
1236
+ name: "updated_at";
1237
+ tableName: "asset";
1238
+ dataType: "date";
1239
+ columnType: "PgTimestamp";
1240
+ data: Date;
1241
+ driverParam: string;
1242
+ notNull: true;
1243
+ hasDefault: true;
1244
+ isPrimaryKey: false;
1245
+ isAutoincrement: false;
1246
+ hasRuntimeDefault: false;
1247
+ enumValues: undefined;
1248
+ baseColumn: never;
1249
+ identity: undefined;
1250
+ generated: undefined;
1251
+ }, {}, {}>;
1252
+ id: import("drizzle-orm/pg-core").PgColumn<{
1253
+ name: "id";
1254
+ tableName: "asset";
1255
+ dataType: "string";
1256
+ columnType: "PgUUID";
1257
+ data: string;
1258
+ driverParam: string;
1259
+ notNull: true;
1260
+ hasDefault: true;
1261
+ isPrimaryKey: true;
1262
+ isAutoincrement: false;
1263
+ hasRuntimeDefault: false;
1264
+ enumValues: undefined;
1265
+ baseColumn: never;
1266
+ identity: undefined;
1267
+ generated: undefined;
1268
+ }, {}, {}>;
1269
+ code: import("drizzle-orm/pg-core").PgColumn<{
1270
+ name: "code";
1271
+ tableName: "asset";
1272
+ dataType: "string";
1273
+ columnType: "PgText";
1274
+ data: string;
1275
+ driverParam: string;
1276
+ notNull: true;
1277
+ hasDefault: false;
1278
+ isPrimaryKey: false;
1279
+ isAutoincrement: false;
1280
+ hasRuntimeDefault: false;
1281
+ enumValues: [string, ...string[]];
1282
+ baseColumn: never;
1283
+ identity: undefined;
1284
+ generated: undefined;
1285
+ }, {}, {}>;
1286
+ name: import("drizzle-orm/pg-core").PgColumn<{
1287
+ name: "name";
1288
+ tableName: "asset";
1289
+ dataType: "string";
1290
+ columnType: "PgText";
1291
+ data: string;
1292
+ driverParam: string;
1293
+ notNull: true;
1294
+ hasDefault: false;
1295
+ isPrimaryKey: false;
1296
+ isAutoincrement: false;
1297
+ hasRuntimeDefault: false;
1298
+ enumValues: [string, ...string[]];
1299
+ baseColumn: never;
1300
+ identity: undefined;
1301
+ generated: undefined;
1302
+ }, {}, {}>;
1303
+ iconUrl: import("drizzle-orm/pg-core").PgColumn<{
1304
+ name: "icon_url";
1305
+ tableName: "asset";
1306
+ dataType: "string";
1307
+ columnType: "PgText";
1308
+ data: string;
1309
+ driverParam: string;
1310
+ notNull: true;
1311
+ hasDefault: false;
1312
+ isPrimaryKey: false;
1313
+ isAutoincrement: false;
1314
+ hasRuntimeDefault: false;
1315
+ enumValues: [string, ...string[]];
1316
+ baseColumn: never;
1317
+ identity: undefined;
1318
+ generated: undefined;
1319
+ }, {}, {}>;
1320
+ category: import("drizzle-orm/pg-core").PgColumn<{
1321
+ name: "category";
1322
+ tableName: "asset";
1323
+ dataType: "string";
1324
+ columnType: "PgEnumColumn";
1325
+ data: "CRYPTO" | "FIAT" | "POINT" | "RWA";
1326
+ driverParam: string;
1327
+ notNull: true;
1328
+ hasDefault: false;
1329
+ isPrimaryKey: false;
1330
+ isAutoincrement: false;
1331
+ hasRuntimeDefault: false;
1332
+ enumValues: ["FIAT", "CRYPTO", "POINT", "RWA"];
1333
+ baseColumn: never;
1334
+ identity: undefined;
1335
+ generated: undefined;
1336
+ }, {}, {}>;
1337
+ typeId: import("drizzle-orm/pg-core").PgColumn<{
1338
+ name: "type_id";
1339
+ tableName: "asset";
1340
+ dataType: "string";
1341
+ columnType: "PgUUID";
1342
+ data: string;
1343
+ driverParam: string;
1344
+ notNull: false;
1345
+ hasDefault: false;
1346
+ isPrimaryKey: false;
1347
+ isAutoincrement: false;
1348
+ hasRuntimeDefault: false;
1349
+ enumValues: undefined;
1350
+ baseColumn: never;
1351
+ identity: undefined;
1352
+ generated: undefined;
1353
+ }, {}, {}>;
1354
+ symbol: import("drizzle-orm/pg-core").PgColumn<{
1355
+ name: "symbol";
1356
+ tableName: "asset";
1357
+ dataType: "string";
1358
+ columnType: "PgText";
1359
+ data: string;
1360
+ driverParam: string;
1361
+ notNull: false;
1362
+ hasDefault: false;
1363
+ isPrimaryKey: false;
1364
+ isAutoincrement: false;
1365
+ hasRuntimeDefault: false;
1366
+ enumValues: [string, ...string[]];
1367
+ baseColumn: never;
1368
+ identity: undefined;
1369
+ generated: undefined;
1370
+ }, {}, {}>;
1371
+ precision: import("drizzle-orm/pg-core").PgColumn<{
1372
+ name: "precision";
1373
+ tableName: "asset";
1374
+ dataType: "number";
1375
+ columnType: "PgInteger";
1376
+ data: number;
1377
+ driverParam: string | number;
1378
+ notNull: true;
1379
+ hasDefault: false;
1380
+ isPrimaryKey: false;
1381
+ isAutoincrement: false;
1382
+ hasRuntimeDefault: false;
1383
+ enumValues: undefined;
1384
+ baseColumn: never;
1385
+ identity: undefined;
1386
+ generated: undefined;
1387
+ }, {}, {}>;
1388
+ isActive: import("drizzle-orm/pg-core").PgColumn<{
1389
+ name: "is_active";
1390
+ tableName: "asset";
1391
+ dataType: "boolean";
1392
+ columnType: "PgBoolean";
1393
+ data: boolean;
1394
+ driverParam: boolean;
1395
+ notNull: true;
1396
+ hasDefault: true;
1397
+ isPrimaryKey: false;
1398
+ isAutoincrement: false;
1399
+ hasRuntimeDefault: false;
1400
+ enumValues: undefined;
1401
+ baseColumn: never;
1402
+ identity: undefined;
1403
+ generated: undefined;
1404
+ }, {}, {}>;
1405
+ }, undefined>;
1406
+ assetId: import("@sinclair/typebox").TString;
1407
+ available: import("@sinclair/typebox").TString;
1408
+ createdAt: import("@sinclair/typebox").TDate;
1409
+ id: import("@sinclair/typebox").TString;
1410
+ ledgerAccountType: import("drizzle-typebox").BuildSchema<"select", {
1411
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1412
+ name: "created_at";
1413
+ tableName: "ledger_account_type";
1414
+ dataType: "date";
1415
+ columnType: "PgTimestamp";
1416
+ data: Date;
1417
+ driverParam: string;
1418
+ notNull: true;
1419
+ hasDefault: true;
1420
+ isPrimaryKey: false;
1421
+ isAutoincrement: false;
1422
+ hasRuntimeDefault: false;
1423
+ enumValues: undefined;
1424
+ baseColumn: never;
1425
+ identity: undefined;
1426
+ generated: undefined;
1427
+ }, {}, {}>;
1428
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
1429
+ name: "updated_at";
1430
+ tableName: "ledger_account_type";
1431
+ dataType: "date";
1432
+ columnType: "PgTimestamp";
1433
+ data: Date;
1434
+ driverParam: string;
1435
+ notNull: true;
1436
+ hasDefault: true;
1437
+ isPrimaryKey: false;
1438
+ isAutoincrement: false;
1439
+ hasRuntimeDefault: false;
1440
+ enumValues: undefined;
1441
+ baseColumn: never;
1442
+ identity: undefined;
1443
+ generated: undefined;
1444
+ }, {}, {}>;
1445
+ id: import("drizzle-orm/pg-core").PgColumn<{
1446
+ name: "id";
1447
+ tableName: "ledger_account_type";
1448
+ dataType: "string";
1449
+ columnType: "PgUUID";
1450
+ data: string;
1451
+ driverParam: string;
1452
+ notNull: true;
1453
+ hasDefault: true;
1454
+ isPrimaryKey: true;
1455
+ isAutoincrement: false;
1456
+ hasRuntimeDefault: false;
1457
+ enumValues: undefined;
1458
+ baseColumn: never;
1459
+ identity: undefined;
1460
+ generated: undefined;
1461
+ }, {}, {}>;
1462
+ key: import("drizzle-orm/pg-core").PgColumn<{
1463
+ name: "key";
1464
+ tableName: "ledger_account_type";
1465
+ dataType: "string";
1466
+ columnType: "PgText";
1467
+ data: string;
1468
+ driverParam: string;
1469
+ notNull: true;
1470
+ hasDefault: false;
1471
+ isPrimaryKey: false;
1472
+ isAutoincrement: false;
1473
+ hasRuntimeDefault: false;
1474
+ enumValues: [string, ...string[]];
1475
+ baseColumn: never;
1476
+ identity: undefined;
1477
+ generated: undefined;
1478
+ }, {}, {}>;
1479
+ name: import("drizzle-orm/pg-core").PgColumn<{
1480
+ name: "name";
1481
+ tableName: "ledger_account_type";
1482
+ dataType: "string";
1483
+ columnType: "PgText";
1484
+ data: string;
1485
+ driverParam: string;
1486
+ notNull: true;
1487
+ hasDefault: false;
1488
+ isPrimaryKey: false;
1489
+ isAutoincrement: false;
1490
+ hasRuntimeDefault: false;
1491
+ enumValues: [string, ...string[]];
1492
+ baseColumn: never;
1493
+ identity: undefined;
1494
+ generated: undefined;
1495
+ }, {}, {}>;
1496
+ description: import("drizzle-orm/pg-core").PgColumn<{
1497
+ name: "description";
1498
+ tableName: "ledger_account_type";
1499
+ dataType: "string";
1500
+ columnType: "PgText";
1501
+ data: string;
1502
+ driverParam: string;
1503
+ notNull: false;
1504
+ hasDefault: false;
1505
+ isPrimaryKey: false;
1506
+ isAutoincrement: false;
1507
+ hasRuntimeDefault: false;
1508
+ enumValues: [string, ...string[]];
1509
+ baseColumn: never;
1510
+ identity: undefined;
1511
+ generated: undefined;
1512
+ }, {}, {}>;
1513
+ allowDeposit: import("drizzle-orm/pg-core").PgColumn<{
1514
+ name: "allow_deposit";
1515
+ tableName: "ledger_account_type";
1516
+ dataType: "boolean";
1517
+ columnType: "PgBoolean";
1518
+ data: boolean;
1519
+ driverParam: boolean;
1520
+ notNull: true;
1521
+ hasDefault: true;
1522
+ isPrimaryKey: false;
1523
+ isAutoincrement: false;
1524
+ hasRuntimeDefault: false;
1525
+ enumValues: undefined;
1526
+ baseColumn: never;
1527
+ identity: undefined;
1528
+ generated: undefined;
1529
+ }, {}, {}>;
1530
+ allowWithdraw: import("drizzle-orm/pg-core").PgColumn<{
1531
+ name: "allow_withdraw";
1532
+ tableName: "ledger_account_type";
1533
+ dataType: "boolean";
1534
+ columnType: "PgBoolean";
1535
+ data: boolean;
1536
+ driverParam: boolean;
1537
+ notNull: true;
1538
+ hasDefault: true;
1539
+ isPrimaryKey: false;
1540
+ isAutoincrement: false;
1541
+ hasRuntimeDefault: false;
1542
+ enumValues: undefined;
1543
+ baseColumn: never;
1544
+ identity: undefined;
1545
+ generated: undefined;
1546
+ }, {}, {}>;
1547
+ minWithdrawAmount: import("drizzle-orm/pg-core").PgColumn<{
1548
+ name: "min_withdraw_amount";
1549
+ tableName: "ledger_account_type";
1550
+ dataType: "string";
1551
+ columnType: "PgNumeric";
1552
+ data: string;
1553
+ driverParam: string;
1554
+ notNull: true;
1555
+ hasDefault: true;
1556
+ isPrimaryKey: false;
1557
+ isAutoincrement: false;
1558
+ hasRuntimeDefault: false;
1559
+ enumValues: undefined;
1560
+ baseColumn: never;
1561
+ identity: undefined;
1562
+ generated: undefined;
1563
+ }, {}, {}>;
1564
+ maxWithdrawAmount: import("drizzle-orm/pg-core").PgColumn<{
1565
+ name: "max_withdraw_amount";
1566
+ tableName: "ledger_account_type";
1567
+ dataType: "string";
1568
+ columnType: "PgNumeric";
1569
+ data: string;
1570
+ driverParam: string;
1571
+ notNull: true;
1572
+ hasDefault: true;
1573
+ isPrimaryKey: false;
1574
+ isAutoincrement: false;
1575
+ hasRuntimeDefault: false;
1576
+ enumValues: undefined;
1577
+ baseColumn: never;
1578
+ identity: undefined;
1579
+ generated: undefined;
1580
+ }, {}, {}>;
1581
+ allowTransfer: import("drizzle-orm/pg-core").PgColumn<{
1582
+ name: "allow_transfer";
1583
+ tableName: "ledger_account_type";
1584
+ dataType: "boolean";
1585
+ columnType: "PgBoolean";
1586
+ data: boolean;
1587
+ driverParam: boolean;
1588
+ notNull: true;
1589
+ hasDefault: true;
1590
+ isPrimaryKey: false;
1591
+ isAutoincrement: false;
1592
+ hasRuntimeDefault: false;
1593
+ enumValues: undefined;
1594
+ baseColumn: never;
1595
+ identity: undefined;
1596
+ generated: undefined;
1597
+ }, {}, {}>;
1598
+ minTransferAmount: import("drizzle-orm/pg-core").PgColumn<{
1599
+ name: "min_transfer_amount";
1600
+ tableName: "ledger_account_type";
1601
+ dataType: "string";
1602
+ columnType: "PgNumeric";
1603
+ data: string;
1604
+ driverParam: string;
1605
+ notNull: true;
1606
+ hasDefault: true;
1607
+ isPrimaryKey: false;
1608
+ isAutoincrement: false;
1609
+ hasRuntimeDefault: false;
1610
+ enumValues: undefined;
1611
+ baseColumn: never;
1612
+ identity: undefined;
1613
+ generated: undefined;
1614
+ }, {}, {}>;
1615
+ maxTransferAmount: import("drizzle-orm/pg-core").PgColumn<{
1616
+ name: "max_transfer_amount";
1617
+ tableName: "ledger_account_type";
1618
+ dataType: "string";
1619
+ columnType: "PgNumeric";
1620
+ data: string;
1621
+ driverParam: string;
1622
+ notNull: true;
1623
+ hasDefault: true;
1624
+ isPrimaryKey: false;
1625
+ isAutoincrement: false;
1626
+ hasRuntimeDefault: false;
1627
+ enumValues: undefined;
1628
+ baseColumn: never;
1629
+ identity: undefined;
1630
+ generated: undefined;
1631
+ }, {}, {}>;
1632
+ allowInternalTransfer: import("drizzle-orm/pg-core").PgColumn<{
1633
+ name: "allow_internal_transfer";
1634
+ tableName: "ledger_account_type";
1635
+ dataType: "boolean";
1636
+ columnType: "PgBoolean";
1637
+ data: boolean;
1638
+ driverParam: boolean;
1639
+ notNull: true;
1640
+ hasDefault: true;
1641
+ isPrimaryKey: false;
1642
+ isAutoincrement: false;
1643
+ hasRuntimeDefault: false;
1644
+ enumValues: undefined;
1645
+ baseColumn: never;
1646
+ identity: undefined;
1647
+ generated: undefined;
1648
+ }, {}, {}>;
1649
+ allowInternalReceiveTransfer: import("drizzle-orm/pg-core").PgColumn<{
1650
+ name: "allow_internal_receive_transfer";
1651
+ tableName: "ledger_account_type";
1652
+ dataType: "boolean";
1653
+ columnType: "PgBoolean";
1654
+ data: boolean;
1655
+ driverParam: boolean;
1656
+ notNull: true;
1657
+ hasDefault: true;
1658
+ isPrimaryKey: false;
1659
+ isAutoincrement: false;
1660
+ hasRuntimeDefault: false;
1661
+ enumValues: undefined;
1662
+ baseColumn: never;
1663
+ identity: undefined;
1664
+ generated: undefined;
1665
+ }, {}, {}>;
1666
+ minInternalTransferAmount: import("drizzle-orm/pg-core").PgColumn<{
1667
+ name: "min_internal_transfer_amount";
1668
+ tableName: "ledger_account_type";
1669
+ dataType: "string";
1670
+ columnType: "PgNumeric";
1671
+ data: string;
1672
+ driverParam: string;
1673
+ notNull: true;
1674
+ hasDefault: true;
1675
+ isPrimaryKey: false;
1676
+ isAutoincrement: false;
1677
+ hasRuntimeDefault: false;
1678
+ enumValues: undefined;
1679
+ baseColumn: never;
1680
+ identity: undefined;
1681
+ generated: undefined;
1682
+ }, {}, {}>;
1683
+ maxInternalTransferAmount: import("drizzle-orm/pg-core").PgColumn<{
1684
+ name: "max_internal_transfer_amount";
1685
+ tableName: "ledger_account_type";
1686
+ dataType: "string";
1687
+ columnType: "PgNumeric";
1688
+ data: string;
1689
+ driverParam: string;
1690
+ notNull: true;
1691
+ hasDefault: true;
1692
+ isPrimaryKey: false;
1693
+ isAutoincrement: false;
1694
+ hasRuntimeDefault: false;
1695
+ enumValues: undefined;
1696
+ baseColumn: never;
1697
+ identity: undefined;
1698
+ generated: undefined;
1699
+ }, {}, {}>;
1700
+ internalTransferRatio: import("drizzle-orm/pg-core").PgColumn<{
1701
+ name: "internal_transfer_ratio";
1702
+ tableName: "ledger_account_type";
1703
+ dataType: "string";
1704
+ columnType: "PgNumeric";
1705
+ data: string;
1706
+ driverParam: string;
1707
+ notNull: true;
1708
+ hasDefault: true;
1709
+ isPrimaryKey: false;
1710
+ isAutoincrement: false;
1711
+ hasRuntimeDefault: false;
1712
+ enumValues: undefined;
1713
+ baseColumn: never;
1714
+ identity: undefined;
1715
+ generated: undefined;
1716
+ }, {}, {}>;
1717
+ allowTransaction: import("drizzle-orm/pg-core").PgColumn<{
1718
+ name: "allow_transaction";
1719
+ tableName: "ledger_account_type";
1720
+ dataType: "boolean";
1721
+ columnType: "PgBoolean";
1722
+ data: boolean;
1723
+ driverParam: boolean;
1724
+ notNull: true;
1725
+ hasDefault: true;
1726
+ isPrimaryKey: false;
1727
+ isAutoincrement: false;
1728
+ hasRuntimeDefault: false;
1729
+ enumValues: undefined;
1730
+ baseColumn: never;
1731
+ identity: undefined;
1732
+ generated: undefined;
1733
+ }, {}, {}>;
1734
+ hasExpiry: import("drizzle-orm/pg-core").PgColumn<{
1735
+ name: "has_expiry";
1736
+ tableName: "ledger_account_type";
1737
+ dataType: "boolean";
1738
+ columnType: "PgBoolean";
1739
+ data: boolean;
1740
+ driverParam: boolean;
1741
+ notNull: true;
1742
+ hasDefault: true;
1743
+ isPrimaryKey: false;
1744
+ isAutoincrement: false;
1745
+ hasRuntimeDefault: false;
1746
+ enumValues: undefined;
1747
+ baseColumn: never;
1748
+ identity: undefined;
1749
+ generated: undefined;
1750
+ }, {}, {}>;
1751
+ expiryDays: import("drizzle-orm/pg-core").PgColumn<{
1752
+ name: "expiry_days";
1753
+ tableName: "ledger_account_type";
1754
+ dataType: "number";
1755
+ columnType: "PgInteger";
1756
+ data: number;
1757
+ driverParam: string | number;
1758
+ notNull: false;
1759
+ hasDefault: false;
1760
+ isPrimaryKey: false;
1761
+ isAutoincrement: false;
1762
+ hasRuntimeDefault: false;
1763
+ enumValues: undefined;
1764
+ baseColumn: never;
1765
+ identity: undefined;
1766
+ generated: undefined;
1767
+ }, {}, {}>;
1768
+ isActive: import("drizzle-orm/pg-core").PgColumn<{
1769
+ name: "is_active";
1770
+ tableName: "ledger_account_type";
1771
+ dataType: "boolean";
1772
+ columnType: "PgBoolean";
1773
+ data: boolean;
1774
+ driverParam: boolean;
1775
+ notNull: true;
1776
+ hasDefault: true;
1777
+ isPrimaryKey: false;
1778
+ isAutoincrement: false;
1779
+ hasRuntimeDefault: false;
1780
+ enumValues: undefined;
1781
+ baseColumn: never;
1782
+ identity: undefined;
1783
+ generated: undefined;
1784
+ }, {}, {}>;
1785
+ sortOrder: import("drizzle-orm/pg-core").PgColumn<{
1786
+ name: "sort_order";
1787
+ tableName: "ledger_account_type";
1788
+ dataType: "number";
1789
+ columnType: "PgInteger";
1790
+ data: number;
1791
+ driverParam: string | number;
1792
+ notNull: true;
1793
+ hasDefault: true;
1794
+ isPrimaryKey: false;
1795
+ isAutoincrement: false;
1796
+ hasRuntimeDefault: false;
1797
+ enumValues: undefined;
1798
+ baseColumn: never;
1799
+ identity: undefined;
1800
+ generated: undefined;
1801
+ }, {}, {}>;
1802
+ }, undefined>;
1803
+ ledgerAccountTypeId: import("@sinclair/typebox").TString;
1804
+ locked: import("@sinclair/typebox").TString;
1805
+ status: import("@sinclair/typebox").TEnum<{
1806
+ active: "active";
1807
+ disabled: "disabled";
1808
+ frozen: "frozen";
1809
+ }>;
1810
+ updatedAt: import("@sinclair/typebox").TDate;
1811
+ userId: import("@sinclair/typebox").TString;
1812
+ version: import("@sinclair/typebox").TInteger;
1813
+ }>;
1814
+ export type BalanceCnyAccountInfoResponseType = typeof balanceCnyAccountInfoResponseSchema.static;
1209
1815
  export declare const withdrawUserListQuerySchema: import("@sinclair/typebox").TObject<{
1210
1816
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
1211
1817
  offset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -452,6 +452,79 @@ export declare const withdrawRouter: Elysia<"/withdraw", {
452
452
  };
453
453
  };
454
454
  };
455
+ } & {
456
+ withdraw: {
457
+ balance_cny_account: {
458
+ get: {
459
+ body: {};
460
+ params: {};
461
+ query: {};
462
+ headers: {};
463
+ response: {
464
+ 200: {
465
+ asset: {
466
+ createdAt: Date;
467
+ updatedAt: Date;
468
+ id: string;
469
+ code: string;
470
+ name: string;
471
+ iconUrl: string;
472
+ category: "CRYPTO" | "FIAT" | "POINT" | "RWA";
473
+ typeId: string | null;
474
+ symbol: string | null;
475
+ precision: number;
476
+ isActive: boolean;
477
+ };
478
+ assetId: string;
479
+ available: string;
480
+ createdAt: Date;
481
+ id: string;
482
+ ledgerAccountType: {
483
+ createdAt: Date;
484
+ updatedAt: Date;
485
+ id: string;
486
+ key: string;
487
+ name: string;
488
+ description: string | null;
489
+ allowDeposit: boolean;
490
+ allowWithdraw: boolean;
491
+ minWithdrawAmount: string;
492
+ maxWithdrawAmount: string;
493
+ allowTransfer: boolean;
494
+ minTransferAmount: string;
495
+ maxTransferAmount: string;
496
+ allowInternalTransfer: boolean;
497
+ allowInternalReceiveTransfer: boolean;
498
+ minInternalTransferAmount: string;
499
+ maxInternalTransferAmount: string;
500
+ internalTransferRatio: string;
501
+ allowTransaction: boolean;
502
+ hasExpiry: boolean;
503
+ expiryDays: number | null;
504
+ isActive: boolean;
505
+ sortOrder: number;
506
+ };
507
+ ledgerAccountTypeId: string;
508
+ locked: string;
509
+ status: "active" | "disabled" | "frozen";
510
+ updatedAt: Date;
511
+ userId: string;
512
+ version: number;
513
+ };
514
+ 401: "Unauthorized";
515
+ 422: {
516
+ type: 'validation';
517
+ on: string;
518
+ summary?: string;
519
+ message?: string;
520
+ found?: unknown;
521
+ property?: string;
522
+ expected?: string;
523
+ };
524
+ };
525
+ };
526
+ };
527
+ };
455
528
  } & {
456
529
  withdraw: {
457
530
  ledger_account: {
@@ -547,6 +620,53 @@ export declare const withdrawRouter: Elysia<"/withdraw", {
547
620
  };
548
621
  };
549
622
  };
623
+ } & {
624
+ withdraw: {
625
+ balance_cny_balance: {
626
+ post: {
627
+ body: {
628
+ receiptMethodId: string;
629
+ amount: string;
630
+ idempotencyKey: string;
631
+ transactionPassword?: string | undefined;
632
+ };
633
+ params: {};
634
+ query: {};
635
+ headers: {};
636
+ response: {
637
+ 200: {
638
+ createdAt: Date;
639
+ updatedAt: Date;
640
+ id: string;
641
+ orderNo: string;
642
+ idempotencyKey: string;
643
+ userId: string;
644
+ sourceAccountId: string | null;
645
+ assetId: string | null;
646
+ receiptMethodId: string;
647
+ amount: string;
648
+ status: "completed" | "pending_payout" | "pending_review" | "rejected";
649
+ reviewedBy: string | null;
650
+ reviewedAt: Date | null;
651
+ reviewNote: string | null;
652
+ rejectReason: string | null;
653
+ paidBy: string | null;
654
+ paidAt: Date | null;
655
+ };
656
+ 401: "Unauthorized";
657
+ 422: {
658
+ type: 'validation';
659
+ on: string;
660
+ summary?: string;
661
+ message?: string;
662
+ found?: unknown;
663
+ property?: string;
664
+ expected?: string;
665
+ };
666
+ };
667
+ };
668
+ };
669
+ };
550
670
  } & {
551
671
  withdraw: {
552
672
  get: {
@@ -1,8 +1,9 @@
1
- import type { DirectCnyWithdrawAccountInfoResponseType, DirectCnyWithdrawCreateInputType, LedgerAccountWithdrawCreateInputType, WithdrawUserListQueryType } from './dto.schemas';
1
+ import type { BalanceCnyAccountInfoResponseType, BalanceCnyWithdrawCreateInputType, DirectCnyWithdrawAccountInfoResponseType, DirectCnyWithdrawCreateInputType, LedgerAccountWithdrawCreateInputType, WithdrawUserListQueryType } from './dto.schemas';
2
2
  import { InternalWithdrawService } from '../internal/service';
3
3
  export declare abstract class UserWithdrawService extends InternalWithdrawService {
4
4
  private static verifyTransactionPasswordByStatus;
5
5
  static getDirectCnyWithdrawAccountInfo(userId: string): Promise<DirectCnyWithdrawAccountInfoResponseType>;
6
+ static getBalanceCnyAccountInfo(userId: string): Promise<BalanceCnyAccountInfoResponseType>;
6
7
  static createDirectCnyWithdrawOrder(userId: string, input: DirectCnyWithdrawCreateInputType): Promise<{
7
8
  amount: string;
8
9
  assetId: string | null;
@@ -22,6 +23,25 @@ export declare abstract class UserWithdrawService extends InternalWithdrawServic
22
23
  updatedAt: Date;
23
24
  userId: string;
24
25
  }>;
26
+ static createBalanceCnyWithdrawOrder(userId: string, input: BalanceCnyWithdrawCreateInputType): Promise<{
27
+ amount: string;
28
+ assetId: string | null;
29
+ createdAt: Date;
30
+ id: string;
31
+ idempotencyKey: string;
32
+ orderNo: string;
33
+ paidAt: Date | null;
34
+ paidBy: string | null;
35
+ receiptMethodId: string;
36
+ rejectReason: string | null;
37
+ reviewNote: string | null;
38
+ reviewedAt: Date | null;
39
+ reviewedBy: string | null;
40
+ sourceAccountId: string | null;
41
+ status: "completed" | "pending_payout" | "pending_review" | "rejected";
42
+ updatedAt: Date;
43
+ userId: string;
44
+ }>;
25
45
  static createLedgerAccountWithdrawOrder(userId: string, input: LedgerAccountWithdrawCreateInputType): Promise<{
26
46
  amount: string;
27
47
  assetId: string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aitlabs/namkwong",
3
- "version": "0.0.108",
3
+ "version": "0.0.109",
4
4
  "description": "Elysia API type definitions for Eden Treaty",
5
5
  "files": [
6
6
  "dist"