@ledgerhq/revault-api 1.20.0 → 1.23.1

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/lib/fakes.mjs CHANGED
@@ -1,9 +1,12 @@
1
1
  import { faker } from '@faker-js/faker';
2
2
  import z5, { z } from 'zod';
3
- import { ChallengeType, PsdModel, AccountType, AccountGovernanceType, ActivationStatus, WhitelistType, PolicyType, UserDeviceType, AdminPermission, RequestType, RequestReviewStatus, RequestState, GateAccountType } from '@prisma/client';
3
+ import { ChallengeType, PsdModel, AccountType, AccountGovernanceType, ActivationStatus, WhitelistType, PolicyType, UserRole, UserRegistrationState, UserDeviceType, AdminPermission, RequestType, RequestReviewStatus, RequestState, GateAccountType } from '@prisma/client';
4
4
  import 'axios';
5
5
  import invariant from 'invariant';
6
6
  import { omit, times } from 'lodash';
7
+ import 'crypto';
8
+ import 'fs/promises';
9
+ import 'path';
7
10
 
8
11
  // src/__fakes__/responses.ts
9
12
 
@@ -31,8 +34,12 @@ var ensureNonEmptyArray = (values, message) => {
31
34
  function unreachable(value) {
32
35
  throw new Error(`Un-covered: ${value}`);
33
36
  }
34
- var zHsmObjectId = z.string().regex(/^[\w-]+$/).min(1);
37
+ var zBigInt = z.string().regex(/^0|[1-9]\d*$/);
38
+ var zIntString = z.string().min(1).regex(/^-?\d+$/);
35
39
  var zHexString = z.string().regex(/^[0-9a-fA-F]+$/);
40
+
41
+ // src/hsm/types.ts
42
+ var zHsmObjectId = z.string().regex(/^[\w-]+$/).min(1);
36
43
  var zPubKey = zHexString.describe("Public key");
37
44
  var zHsmCertificate = z.object({
38
45
  codeHash: z.string().base64().describe("Hash of the executable that generated this certificate"),
@@ -85,28 +92,28 @@ var zUserRegistrationDeviceData = z.object({
85
92
  name: z.string().describe("Name of the user to register"),
86
93
  psdModel: z.nativeEnum(PsdModel).describe("Device model"),
87
94
  pubKey: zPubKey.describe("Device public key"),
88
- confidentialityKey: zPubKey.describe("TODO describe"),
89
- psdEphemeralKey: zPubKey.describe("TODO describe"),
90
- psdEphemeralKeyAttestation: zHsmCertificate.describe("TODO describe")
91
- }).describe("TODO describe");
95
+ confidentialityKey: zPubKey,
96
+ psdEphemeralKey: zPubKey,
97
+ psdEphemeralKeyAttestation: zHsmCertificate
98
+ }).describe("Data generated by the PSD to register on HSM");
92
99
  var zUserRegistrationChallenge = z.object({
93
- challenge: z.string().describe("TODO describe"),
94
- ephemeralPublicKey: zPubKey.describe("TODO describe"),
95
- ephemeralPublicKeyAttestation: zHsmCertificate.describe("TODO describe"),
96
- handshake: zHexString.describe("TODO describe"),
97
- handshakeAttestation: zHsmCertificate.describe("TODO describe"),
98
- u2fRegisterData: z.string().describe("TODO describe"),
99
- ciphertext: z.string().describe("TODO describe"),
100
- requestId: z.string().describe("TODO describe")
101
- }).describe("TODO describe");
100
+ challenge: z.string(),
101
+ ephemeralPublicKey: zPubKey,
102
+ ephemeralPublicKeyAttestation: zHsmCertificate,
103
+ handshake: zHexString,
104
+ handshakeAttestation: zHsmCertificate,
105
+ u2fRegisterData: z.string(),
106
+ ciphertext: z.string(),
107
+ requestId: z.string()
108
+ }).describe("Challenge generated by HSM\xA0using the PSD registration data");
102
109
  z.object({
103
- certificate: zHsmCertificate.describe("TODO describe"),
104
- u2fRegister: zHexString.describe("TODO describe"),
105
- u2fKeyHandle: zHexString.describe("TODO describe"),
106
- registerData: z.string().describe("TODO describe"),
107
- validationKey: zPubKey.describe("TODO describe"),
108
- pairingPayload: z.string().describe("TODO describe")
109
- }).describe("TODO describe");
110
+ certificate: zHsmCertificate,
111
+ u2fRegister: zHexString,
112
+ u2fKeyHandle: zHexString,
113
+ registerData: z.string(),
114
+ validationKey: zPubKey,
115
+ pairingPayload: z.string()
116
+ }).describe("Final registration response from PSD to HSM");
110
117
  z.object({
111
118
  confidentialityKeyCurve25519: z.string(),
112
119
  confidentialityKeySignature: z.string()
@@ -127,8 +134,17 @@ z.object({
127
134
  }),
128
135
  blob: zBlob
129
136
  });
130
- var zBigInt = z.string().regex(/^0|[1-9]\d*$/);
131
- var zIntString = z.string().min(1).regex(/^-?\d+$/);
137
+ var zHsmSignature = z.object({
138
+ digest: z.string().nullable().describe("Signed digest"),
139
+ derivationPath: z.string().nullable().describe("Derivation path used to sign the digest"),
140
+ r: z.string().base64().describe("Base64 encoded signature r coordinate"),
141
+ s: z.string().base64().describe("Base64 encoded signature s coordinate"),
142
+ v: z.union([z.literal(0), z.literal(1)]).nullable().describe("Ecdsa only, signature recovery value"),
143
+ der: zHexString.describe(
144
+ "Hex string encoded DER signature format (for eddsa, concatenation of r & s)"
145
+ ),
146
+ pubkey: zHexString.nullable().describe("Public key for signature verification, 32 or 33 bytes")
147
+ });
132
148
  var zBitcoinLikeTransactionType = z5.enum(["BITCOIN_LIKE_SEND", "BITCOIN_LIKE_RECEIVE"]).describe("Bitcoin-like transaction type");
133
149
  var zCardanoLikeTransactionType = z5.enum([
134
150
  "CARDANO_LIKE_SEND",
@@ -521,6 +537,25 @@ var zCreateTransactionRequestData = z5.object({
521
537
  accountId: z5.string().min(1).describe("Target account id"),
522
538
  transaction: zTransactionData
523
539
  });
540
+ var zSignMessageRequestData = z5.object({
541
+ accountId: z5.string().min(1).describe("Target account id"),
542
+ message: z5.string().nonempty().describe("Hex data to sign, either a json string for EIP712, or a raw string for EIP191"),
543
+ address: z5.string().nonempty().nullable().describe("Address for which to sign the message")
544
+ });
545
+ z5.object({
546
+ signature: zHsmSignature
547
+ });
548
+ var zDigestData = z5.object({
549
+ digest: zHexString.describe("The hex string digest to sign"),
550
+ derivationPath: z5.string().nonempty().describe("The derivation path with which to sign the digest")
551
+ });
552
+ var zSignDigestsRequestData = z5.object({
553
+ accountId: z5.string().min(1).describe("Target account id"),
554
+ digests: z5.array(zDigestData).describe("The digests to sign")
555
+ });
556
+ z5.object({
557
+ signatures: z5.array(zHsmSignature)
558
+ });
524
559
  var zAccountOperationType = z.enum([
525
560
  "SEND",
526
561
  "STAKE",
@@ -1208,6 +1243,11 @@ var serializeAccount = (account) => {
1208
1243
  };
1209
1244
  return zAccountResponse.parse(response);
1210
1245
  };
1246
+ var zRequestReviewStep = z.object({
1247
+ stageName: z.string().regex(/^\w+$/).describe("The review stage name"),
1248
+ quorum: z.number().int().min(1).describe("Quorum for the review step")
1249
+ });
1250
+ var zRequestReviewSteps = z.array(zRequestReviewStep);
1211
1251
  var zSciConfigData = z5.object({
1212
1252
  dapps: z5.array(z5.string()).nullable().describe("Allowed DApps, null allows all"),
1213
1253
  customContractCallEnabled: z5.boolean().describe("Allow non-DApp SCI")
@@ -1219,11 +1259,6 @@ var zCreateSciConfigRequestData = z5.object({
1219
1259
  var zEditSciConfigRequestData = z5.object({
1220
1260
  config: zSciConfigData
1221
1261
  });
1222
- var zRequestReviewStep = z.object({
1223
- stageName: z.string().regex(/^\w+$/).describe("The review stage name"),
1224
- quorum: z.number().int().min(1).describe("Quorum for the review step")
1225
- });
1226
- var zRequestReviewSteps = z.array(zRequestReviewStep);
1227
1262
  var zGroupName = z5.string().min(1).max(19).describe("Group name");
1228
1263
  var zCreateGroupRequestData = z5.object({
1229
1264
  name: zGroupName,
@@ -1234,6 +1269,30 @@ var zEditGroupRequestData = z5.object({
1234
1269
  name: zGroupName,
1235
1270
  members: z5.array(z5.string()).describe("List of group members ids")
1236
1271
  });
1272
+ var zUserName = z.string().min(1).max(19).describe("User name");
1273
+ var zUserRegistrationCreateInput = z.object({
1274
+ name: zUserName,
1275
+ role: z.enum([UserRole.ADMIN, UserRole.OPERATOR]).describe("User role"),
1276
+ psdModel: z.nativeEnum(PsdModel).describe("PSD model"),
1277
+ deviceUserId: z.string().describe("Device user ID")
1278
+ });
1279
+ zUserRegistrationCreateInput.extend({
1280
+ id: z.string().describe("User registration ID"),
1281
+ workspaceName: z.string().describe("Workspace name"),
1282
+ state: z.nativeEnum(UserRegistrationState).describe("User registration state")
1283
+ });
1284
+
1285
+ // src/users/request-data.ts
1286
+ var zCreatePsdUserRequestData = z5.object({
1287
+ registrationId: z5.string().describe("User registration ID")
1288
+ });
1289
+ var zCreateApiUserRequestData = z5.object({
1290
+ name: zUserName,
1291
+ publicKey: z5.string().describe("Public key")
1292
+ }).describe("Create API user request data");
1293
+ var zCreateApiUserAccessRequestData = z5.object({
1294
+ name: zUserName
1295
+ }).describe("Create API user request data");
1237
1296
  var zRegistration = z5.discriminatedUnion("subState", [
1238
1297
  z5.object({
1239
1298
  subState: z5.literal("PENDING"),
@@ -1247,9 +1306,9 @@ var zRegistration = z5.discriminatedUnion("subState", [
1247
1306
  u2fPubKey: zPubKey.describe("U2F public key for authenticate via PSD")
1248
1307
  }).describe("Completed registration")
1249
1308
  ]);
1250
- var zUserName = z5.string().min(1).max(19).describe("User name");
1309
+ var zUserName2 = z5.string().min(1).max(19).describe("User name");
1251
1310
  var zCreateUserWithDeviceData = z5.object({
1252
- name: zUserName,
1311
+ name: zUserName2,
1253
1312
  deviceType: z5.enum([UserDeviceType.PSD, UserDeviceType.SOFT_PSD]).describe("Device type"),
1254
1313
  deviceUserId: z5.string().regex(/^[A-F0-9]{16}$/).describe("Device user ID"),
1255
1314
  registration: zRegistration.optional().describe("Data collected from the new user during registration")
@@ -1259,13 +1318,6 @@ var zCreateAdminRequestData = zCreateUserWithDeviceData.extend({
1259
1318
  // Admin must use PSD
1260
1319
  });
1261
1320
  var zCreateOperatorRequestData = zCreateUserWithDeviceData;
1262
- var zCreateApiUserRequestData = z5.object({
1263
- name: zUserName,
1264
- publicKey: z5.string().describe("Public key")
1265
- }).describe("Create API user request data");
1266
- var zCreateApiUserAccessRequestData = z5.object({
1267
- name: zUserName
1268
- }).describe("Create API user request data");
1269
1321
  var zApiKeyName = z5.string().min(1).max(19).describe("API key name");
1270
1322
  var zCreateApiKeyRequestData = z5.object({
1271
1323
  name: zApiKeyName,
@@ -1294,23 +1346,13 @@ var zUpdateQuorumRequestData = z5.object({
1294
1346
  });
1295
1347
 
1296
1348
  // src/requests/request-data.ts
1297
- var zUserCreationVaultRequestMixinsByType = {
1298
- CREATE_ADMIN: z5.object({
1299
- type: z5.literal(RequestType.CREATE_ADMIN),
1300
- data: zCreateAdminRequestData
1301
- }),
1302
- CREATE_OPERATOR: z5.object({
1303
- type: z5.literal(RequestType.CREATE_OPERATOR),
1304
- data: zCreateOperatorRequestData
1305
- })
1306
- };
1307
1349
  var zVaultRequestMixinsByType = {
1308
1350
  // Workspaces
1309
1351
  [RequestType.UPDATE_QUORUM]: z5.object({
1310
1352
  type: z5.literal(RequestType.UPDATE_QUORUM),
1311
1353
  data: zUpdateQuorumRequestData
1312
1354
  }),
1313
- // Transactions
1355
+ // Operator requests
1314
1356
  [RequestType.CREATE_TRANSACTION]: z5.object({
1315
1357
  type: z5.literal(RequestType.CREATE_TRANSACTION),
1316
1358
  data: zCreateTransactionRequestData,
@@ -1318,6 +1360,14 @@ var zVaultRequestMixinsByType = {
1318
1360
  hash: z5.string().nullable()
1319
1361
  }).optional().nullable()
1320
1362
  }),
1363
+ [RequestType.SIGN_MESSAGE]: z5.object({
1364
+ type: z5.literal(RequestType.SIGN_MESSAGE),
1365
+ data: zSignMessageRequestData
1366
+ }),
1367
+ [RequestType.SIGN_DIGESTS]: z5.object({
1368
+ type: z5.literal(RequestType.SIGN_DIGESTS),
1369
+ data: zSignDigestsRequestData
1370
+ }),
1321
1371
  // Accounts
1322
1372
  [RequestType.CREATE_ACCOUNT]: z5.object({
1323
1373
  type: z5.literal(RequestType.CREATE_ACCOUNT),
@@ -1325,6 +1375,7 @@ var zVaultRequestMixinsByType = {
1325
1375
  }),
1326
1376
  [RequestType.EDIT_ACCOUNT]: z5.object({
1327
1377
  type: z5.literal(RequestType.EDIT_ACCOUNT),
1378
+ targetId: z5.string(),
1328
1379
  data: zEditAccountRequestData
1329
1380
  }),
1330
1381
  [RequestType.ACTIVATE_TRADELINK_ACCOUNT]: z5.object({
@@ -1344,6 +1395,7 @@ var zVaultRequestMixinsByType = {
1344
1395
  }),
1345
1396
  [RequestType.EDIT_GROUP]: z5.object({
1346
1397
  type: z5.literal(RequestType.EDIT_GROUP),
1398
+ targetId: z5.string(),
1347
1399
  data: zEditGroupRequestData
1348
1400
  }),
1349
1401
  [RequestType.REVOKE_GROUP]: z5.object({
@@ -1357,6 +1409,7 @@ var zVaultRequestMixinsByType = {
1357
1409
  }),
1358
1410
  [RequestType.EDIT_WHITELIST]: z5.object({
1359
1411
  type: z5.literal(RequestType.EDIT_WHITELIST),
1412
+ targetId: z5.string(),
1360
1413
  data: zEditWhitelistRequestData
1361
1414
  }),
1362
1415
  // Entities
@@ -1373,7 +1426,10 @@ var zVaultRequestMixinsByType = {
1373
1426
  data: z5.object({})
1374
1427
  }),
1375
1428
  // Users
1376
- ...zUserCreationVaultRequestMixinsByType,
1429
+ [RequestType.CREATE_PSD_USER]: z5.object({
1430
+ type: z5.literal(RequestType.CREATE_PSD_USER),
1431
+ data: zCreatePsdUserRequestData
1432
+ }),
1377
1433
  [RequestType.CREATE_API_USER]: z5.object({
1378
1434
  type: z5.literal(RequestType.CREATE_API_USER),
1379
1435
  data: zCreateApiUserRequestData
@@ -1424,6 +1480,7 @@ var zVaultRequestMixinsByType = {
1424
1480
  }),
1425
1481
  [RequestType.EDIT_POLICY]: z5.object({
1426
1482
  type: z5.literal(RequestType.EDIT_POLICY),
1483
+ targetId: z5.string(),
1427
1484
  data: zEditPolicyRequestData
1428
1485
  }),
1429
1486
  // Tradelink
@@ -1460,7 +1517,10 @@ var zVaultRequestMixinsByType = {
1460
1517
  }),
1461
1518
  [RequestType.CREATE_SETTLEMENT]: z5.object({
1462
1519
  type: z5.literal(RequestType.CREATE_SETTLEMENT),
1463
- data: zCreateSettlementRequestData
1520
+ data: zCreateSettlementRequestData,
1521
+ meta: z5.object({
1522
+ hash: z5.string().nullable()
1523
+ }).optional().nullable()
1464
1524
  }),
1465
1525
  [RequestType.FORCE_UNPLEDGE]: z5.object({
1466
1526
  type: z5.literal(RequestType.FORCE_UNPLEDGE),
@@ -1468,7 +1528,10 @@ var zVaultRequestMixinsByType = {
1468
1528
  }),
1469
1529
  [RequestType.TRADELINK_WITHDRAW]: z5.object({
1470
1530
  type: z5.literal(RequestType.TRADELINK_WITHDRAW),
1471
- data: zTradelinkWithdrawRequestData
1531
+ data: zTradelinkWithdrawRequestData,
1532
+ meta: z5.object({
1533
+ hash: z5.string().nullable()
1534
+ }).optional().nullable()
1472
1535
  }),
1473
1536
  // Deprecate ADMIN_GOV_RULE
1474
1537
  [RequestType.CREATE_ADMIN_GOV_RULE]: z5.object({
@@ -1480,6 +1543,16 @@ var zVaultRequestMixinsByType = {
1480
1543
  data: z5.object({}).describe("Deprecated")
1481
1544
  })
1482
1545
  };
1546
+ var zVaultRequestMixinsByLegacyType = {
1547
+ CREATE_ADMIN: z5.object({
1548
+ type: z5.literal(RequestType.CREATE_ADMIN),
1549
+ data: zCreateAdminRequestData
1550
+ }),
1551
+ CREATE_OPERATOR: z5.object({
1552
+ type: z5.literal(RequestType.CREATE_OPERATOR),
1553
+ data: zCreateOperatorRequestData
1554
+ })
1555
+ };
1483
1556
 
1484
1557
  // src/requests/app-types.ts
1485
1558
  var zRequestReviewResponse = z5.object({
@@ -1502,14 +1575,19 @@ var zVaultRequestCommonMixin = z5.object({
1502
1575
  reviews: z5.array(zRequestReviewResponse).describe("Requests reviews"),
1503
1576
  // `type` and `data` are correlated -- See `zVaultRequestMixinsByType`
1504
1577
  createdAt: z5.coerce.date().describe("Creation timestamp"),
1505
- updatedAt: z5.coerce.date().describe("Last modification timestamp")
1578
+ updatedAt: z5.coerce.date().describe("Last modification timestamp"),
1579
+ // `inflight` is fetched from ONGOING RequestSaga
1580
+ inflight: z5.object({
1581
+ lastError: z5.string().describe("Error message from the last failure"),
1582
+ numFailed: z5.number().int().describe("Number of failures so far"),
1583
+ retryAfter: z5.coerce.date().describe("Date after which next retry is scheduled")
1584
+ }).optional().describe("Extra information if the request is currently being processed")
1506
1585
  });
1507
1586
  var allowedRequestCreationInput = {
1508
- [RequestType.CREATE_ADMIN]: zVaultRequestMixinsByType[RequestType.CREATE_ADMIN],
1587
+ [RequestType.CREATE_PSD_USER]: zVaultRequestMixinsByType[RequestType.CREATE_PSD_USER],
1509
1588
  [RequestType.CREATE_GROUP]: zVaultRequestMixinsByType[RequestType.CREATE_GROUP],
1510
1589
  [RequestType.CREATE_WHITELIST]: zVaultRequestMixinsByType[RequestType.CREATE_WHITELIST],
1511
1590
  [RequestType.EDIT_WHITELIST]: zVaultRequestMixinsByType[RequestType.EDIT_WHITELIST],
1512
- [RequestType.CREATE_OPERATOR]: zVaultRequestMixinsByType[RequestType.CREATE_OPERATOR],
1513
1591
  [RequestType.CREATE_TRANSACTION]: zVaultRequestMixinsByType[RequestType.CREATE_TRANSACTION],
1514
1592
  [RequestType.CREATE_POLICY]: zVaultRequestMixinsByType[RequestType.CREATE_POLICY],
1515
1593
  [RequestType.EDIT_POLICY]: zVaultRequestMixinsByType[RequestType.EDIT_POLICY],
@@ -1517,6 +1595,7 @@ var allowedRequestCreationInput = {
1517
1595
  type: z5.literal(RequestType.CREATE_ACCOUNT),
1518
1596
  data: zCreateAccountUserInputData
1519
1597
  }),
1598
+ [RequestType.EDIT_ACCOUNT]: zVaultRequestMixinsByType[RequestType.EDIT_ACCOUNT],
1520
1599
  [RequestType.ACTIVATE_TRADELINK_ACCOUNT]: zVaultRequestMixinsByType[RequestType.ACTIVATE_TRADELINK_ACCOUNT],
1521
1600
  [RequestType.CREATE_TRADELINK_CUSTODIAN]: zVaultRequestMixinsByType[RequestType.CREATE_TRADELINK_CUSTODIAN],
1522
1601
  [RequestType.EDIT_TRADELINK_CUSTODIAN]: zVaultRequestMixinsByType[RequestType.EDIT_TRADELINK_CUSTODIAN],
@@ -1543,16 +1622,7 @@ z5.object({
1543
1622
  var zVaultRequestResponse = z5.discriminatedUnion(
1544
1623
  "type",
1545
1624
  ensureNonEmptyArray(
1546
- Object.values(zVaultRequestMixinsByType).map((_) => {
1547
- const requestType = _.shape.type._def.value;
1548
- return _.merge(zVaultRequestCommonMixin).describe(`${requestType} request`);
1549
- })
1550
- )
1551
- );
1552
- z5.discriminatedUnion(
1553
- "type",
1554
- ensureNonEmptyArray(
1555
- Object.values(zUserCreationVaultRequestMixinsByType).map((_) => {
1625
+ Object.values({ ...zVaultRequestMixinsByType, ...zVaultRequestMixinsByLegacyType }).map((_) => {
1556
1626
  const requestType = _.shape.type._def.value;
1557
1627
  return _.merge(zVaultRequestCommonMixin).describe(`${requestType} request`);
1558
1628
  })
@@ -1590,8 +1660,15 @@ var shouldHaveTargetHsmId = (request) => {
1590
1660
  return void 0;
1591
1661
  }
1592
1662
  return true;
1663
+ case RequestType.CREATE_PSD_USER:
1664
+ case RequestType.CREATE_API_USER:
1665
+ case RequestType.CREATE_API_USER_ACCESS:
1666
+ // targeting / editing an existing `User`
1667
+ case RequestType.REVOKE_USER:
1593
1668
  case RequestType.UPDATE_QUORUM:
1594
1669
  case RequestType.CREATE_TRANSACTION:
1670
+ case RequestType.SIGN_MESSAGE:
1671
+ case RequestType.SIGN_DIGESTS:
1595
1672
  case RequestType.CREATE_ACCOUNT:
1596
1673
  case RequestType.EDIT_ACCOUNT:
1597
1674
  case RequestType.ACTIVATE_TRADELINK_ACCOUNT:
@@ -1600,10 +1677,6 @@ var shouldHaveTargetHsmId = (request) => {
1600
1677
  case RequestType.REVOKE_GROUP:
1601
1678
  case RequestType.CREATE_WHITELIST:
1602
1679
  case RequestType.EDIT_WHITELIST:
1603
- case RequestType.CREATE_API_USER:
1604
- case RequestType.CREATE_API_USER_ACCESS:
1605
- // targeting / editing an existing `User`
1606
- case RequestType.REVOKE_USER:
1607
1680
  case RequestType.CREATE_POLICY:
1608
1681
  case RequestType.EDIT_POLICY:
1609
1682
  case RequestType.CREATE_TRADELINK_CUSTODIAN:
@@ -1628,15 +1701,18 @@ var shouldHaveTargetId = (request) => {
1628
1701
  case RequestType.REVOKE_API_KEY:
1629
1702
  return false;
1630
1703
  case RequestType.CREATE_TRANSACTION:
1704
+ case RequestType.SIGN_MESSAGE:
1705
+ case RequestType.SIGN_DIGESTS:
1631
1706
  return false;
1707
+ case RequestType.CREATE_PSD_USER:
1708
+ case RequestType.CREATE_ADMIN:
1709
+ case RequestType.CREATE_OPERATOR:
1710
+ case RequestType.CREATE_API_USER:
1632
1711
  case RequestType.CREATE_WORKSPACE_RULE:
1633
1712
  case RequestType.CREATE_ACCOUNT:
1634
1713
  case RequestType.CREATE_GROUP:
1635
1714
  case RequestType.CREATE_WHITELIST:
1636
1715
  case RequestType.CREATE_ENTITY:
1637
- case RequestType.CREATE_ADMIN:
1638
- case RequestType.CREATE_OPERATOR:
1639
- case RequestType.CREATE_API_USER:
1640
1716
  case RequestType.CREATE_SCICONFIG:
1641
1717
  case RequestType.CREATE_POLICY:
1642
1718
  case RequestType.CREATE_TRADELINK_CUSTODIAN:
@@ -1679,12 +1755,16 @@ function serializeVaultRequest(request) {
1679
1755
  ...request,
1680
1756
  legacyId: request.gateId
1681
1757
  };
1682
- if (request.type === "CREATE_TRANSACTION") {
1683
- Object.assign(serialized, {
1684
- meta: {
1685
- hash: request.transactionMeta?.hash ?? null
1686
- }
1687
- });
1758
+ switch (request.type) {
1759
+ case "CREATE_TRANSACTION":
1760
+ case "TRADELINK_WITHDRAW":
1761
+ case "CREATE_SETTLEMENT":
1762
+ Object.assign(serialized, {
1763
+ meta: {
1764
+ hash: request.transactionMeta?.hash ?? null
1765
+ }
1766
+ });
1767
+ break;
1688
1768
  }
1689
1769
  return zVaultRequestResponse.parse(serialized);
1690
1770
  }