@ledgerhq/revault-api 1.43.1 → 1.43.2
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/{app-types-C5PTn2QL.d.mts → app-types-TiTgl5lF.d.mts} +143 -1
- package/lib/fakes.d.mts +23 -3
- package/lib/fakes.mjs +1064 -26
- package/lib/fakes.mjs.map +1 -1
- package/lib/index.d.mts +22 -157
- package/package.json +1 -2
package/lib/fakes.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { __export } from './chunk-J5LGTIGS.mjs';
|
|
2
2
|
import { faker } from '@faker-js/faker';
|
|
3
|
-
import {
|
|
4
|
-
import 'ts-pattern';
|
|
3
|
+
import { ChallengeType, PsdModel, UserRole, UserRegistrationState, AllowedAction, AdminPermission, RequestType, AccountGovernanceType, ActivationStatus, AccountType, MessageType, WhitelistType, UserDeviceType, RequestReviewStatus, RequestState, GateAccountType, GateUserType } from '@prisma/client';
|
|
4
|
+
import { match, P } from 'ts-pattern';
|
|
5
5
|
import z14, { z } from 'zod';
|
|
6
|
-
import { omit, times, get, isPlainObject } from 'lodash';
|
|
7
6
|
import invariant8 from 'invariant';
|
|
7
|
+
import { ec } from 'elliptic';
|
|
8
|
+
import { omit, times, get, isPlainObject } from 'lodash-es';
|
|
8
9
|
import 'axios';
|
|
9
10
|
|
|
10
11
|
var zHexString = z.string().regex(/^[0-9a-fA-F]+$/);
|
|
@@ -27,7 +28,21 @@ z.codec(z.iso.datetime(), z.date(), {
|
|
|
27
28
|
});
|
|
28
29
|
|
|
29
30
|
// src/networks/common.ts
|
|
30
|
-
var NetworkFamily =
|
|
31
|
+
var NetworkFamily = {
|
|
32
|
+
BITCOIN_LIKE: "BITCOIN_LIKE",
|
|
33
|
+
CANTON_LIKE: "CANTON_LIKE",
|
|
34
|
+
CARDANO_LIKE: "CARDANO_LIKE",
|
|
35
|
+
ETHEREUM_LIKE: "ETHEREUM_LIKE",
|
|
36
|
+
GENERIC_LIKE: "GENERIC_LIKE",
|
|
37
|
+
HEDERA_LIKE: "HEDERA_LIKE",
|
|
38
|
+
POLKADOT_LIKE: "POLKADOT_LIKE",
|
|
39
|
+
RIPPLE_LIKE: "RIPPLE_LIKE",
|
|
40
|
+
SOLANA_LIKE: "SOLANA_LIKE",
|
|
41
|
+
STELLAR_LIKE: "STELLAR_LIKE",
|
|
42
|
+
SUI_LIKE: "SUI_LIKE",
|
|
43
|
+
TEZOS_LIKE: "TEZOS_LIKE",
|
|
44
|
+
TRON_LIKE: "TRON_LIKE"
|
|
45
|
+
};
|
|
31
46
|
var zHexDataString = z14.codec(z14.string().regex(/^(?:0x|0X)?[a-fA-F0-9]+$/), z14.string(), {
|
|
32
47
|
decode: (hex) => `0x${hex.toLowerCase().replace("0x", "")}`,
|
|
33
48
|
encode: (hex) => hex
|
|
@@ -89,19 +104,22 @@ var zBitcoinLikeSendData = zCommonTransactionData.extend({
|
|
|
89
104
|
id: "BitcoinLikeSendData"
|
|
90
105
|
});
|
|
91
106
|
var zBitcoinLikeTransactionData = z14.discriminatedUnion("type", [zBitcoinLikeSendData]);
|
|
107
|
+
var zBitcoinLikeEstimatedFees = z14.object({
|
|
108
|
+
type: z14.literal(NetworkFamily.BITCOIN_LIKE),
|
|
109
|
+
fee: zIntString
|
|
110
|
+
}).meta({ description: "Bitcoin-like fees" });
|
|
92
111
|
var zBitcoinLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
93
112
|
zCommonTransactionResponse.extend({ type: zBitcoinLikeTransactionType }).meta({ description: "Bitcoin-like transaction" })
|
|
94
113
|
]);
|
|
95
114
|
|
|
96
115
|
// src/networks/bitcoin/index.ts
|
|
97
116
|
var BITCOIN_SPEC = {
|
|
98
|
-
family: NetworkFamily.BITCOIN_LIKE,
|
|
99
117
|
zAssetFields: zBitcoinLikeAssetFields,
|
|
100
118
|
zLiveData: zBitcoinLikeLiveData,
|
|
101
119
|
zTransactionType: zBitcoinLikeTransactionType,
|
|
102
120
|
zTransactionData: zBitcoinLikeTransactionData,
|
|
103
121
|
zSendTransactionData: zBitcoinLikeSendData,
|
|
104
|
-
zEstimatedFees:
|
|
122
|
+
zEstimatedFees: zBitcoinLikeEstimatedFees,
|
|
105
123
|
zTransactionResponse: zBitcoinLikeTransactionResponse,
|
|
106
124
|
zStakingFields: z14.never()};
|
|
107
125
|
var zCantonTransferProposal = z14.object({
|
|
@@ -204,7 +222,6 @@ var zCantonLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
204
222
|
|
|
205
223
|
// src/networks/canton/index.ts
|
|
206
224
|
var CANTON_SPEC = {
|
|
207
|
-
family: NetworkFamily.CANTON_LIKE,
|
|
208
225
|
zAssetFields: zCantonLikeAssetFields,
|
|
209
226
|
zLiveData: zCantonLikeLiveData,
|
|
210
227
|
zTransactionType: zCantonLikeTransactionType,
|
|
@@ -301,7 +318,6 @@ var zCardanoLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
301
318
|
|
|
302
319
|
// src/networks/cardano/index.ts
|
|
303
320
|
var CARDANO_SPEC = {
|
|
304
|
-
family: NetworkFamily.CARDANO_LIKE,
|
|
305
321
|
zAssetFields: zCardanoLikeAssetFields,
|
|
306
322
|
zLiveData: zCardanoLikeLiveData,
|
|
307
323
|
zTransactionType: zCardanoLikeTransactionType,
|
|
@@ -403,7 +419,6 @@ var zEthereumLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
403
419
|
|
|
404
420
|
// src/networks/ethereum/index.ts
|
|
405
421
|
var ETHEREUM_SPEC = {
|
|
406
|
-
family: NetworkFamily.ETHEREUM_LIKE,
|
|
407
422
|
zAssetFields: zEthereumLikeAssetFields,
|
|
408
423
|
zLiveData: zEthereumLikeLiveData,
|
|
409
424
|
zTransactionType: zEthereumLikeTransactionType,
|
|
@@ -433,7 +448,6 @@ var zGenericTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
433
448
|
|
|
434
449
|
// src/networks/generic/index.ts
|
|
435
450
|
var GENERIC_SPEC = {
|
|
436
|
-
family: NetworkFamily.GENERIC_LIKE,
|
|
437
451
|
zAssetFields: zGenericAssetFields,
|
|
438
452
|
zLiveData: zGenericLiveData,
|
|
439
453
|
zTransactionType: zGenericTransactionType,
|
|
@@ -485,7 +499,6 @@ var zHederaLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
485
499
|
|
|
486
500
|
// src/networks/hedera/index.ts
|
|
487
501
|
var HEDERA_SPEC = {
|
|
488
|
-
family: NetworkFamily.HEDERA_LIKE,
|
|
489
502
|
zAssetFields: zHederaLikeAssetFields,
|
|
490
503
|
zLiveData: zHederaLikeLiveData,
|
|
491
504
|
zTransactionType: zHederaLikeTransactionType,
|
|
@@ -681,7 +694,6 @@ var zPolkadotLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
681
694
|
|
|
682
695
|
// src/networks/polkadot/index.ts
|
|
683
696
|
var POLKADOT_SPEC = {
|
|
684
|
-
family: NetworkFamily.POLKADOT_LIKE,
|
|
685
697
|
zAssetFields: zPolkadotLikeAssetFields,
|
|
686
698
|
zLiveData: zPolkadotLikeLiveData,
|
|
687
699
|
zTransactionType: zPolkadotLikeTransactionType,
|
|
@@ -721,7 +733,6 @@ var zRippleLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
721
733
|
|
|
722
734
|
// src/networks/ripple/index.ts
|
|
723
735
|
var RIPPLE_SPEC = {
|
|
724
|
-
family: NetworkFamily.RIPPLE_LIKE,
|
|
725
736
|
zAssetFields: zRippleLikeAssetFields,
|
|
726
737
|
zLiveData: zRippleLikeLiveData,
|
|
727
738
|
zTransactionType: zRippleLikeTransactionType,
|
|
@@ -917,7 +928,6 @@ var zSolanaLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
917
928
|
|
|
918
929
|
// src/networks/solana/index.ts
|
|
919
930
|
var SOLANA_SPEC = {
|
|
920
|
-
family: NetworkFamily.SOLANA_LIKE,
|
|
921
931
|
zAssetFields: zSolanaLikeAssetFields,
|
|
922
932
|
zLiveData: zSolanaLikeLiveData,
|
|
923
933
|
zTransactionType: zSolanaLikeTransactionType,
|
|
@@ -967,7 +977,6 @@ var zStellarLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
967
977
|
|
|
968
978
|
// src/networks/stellar/index.ts
|
|
969
979
|
var STELLAR_SPEC = {
|
|
970
|
-
family: NetworkFamily.STELLAR_LIKE,
|
|
971
980
|
zAssetFields: zStellarLikeAssetFields,
|
|
972
981
|
zLiveData: zStellarLikeLiveData,
|
|
973
982
|
zTransactionType: zStellarLikeTransactionType,
|
|
@@ -1057,7 +1066,6 @@ var zSuiLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
1057
1066
|
|
|
1058
1067
|
// src/networks/sui/index.ts
|
|
1059
1068
|
var SUI_SPEC = {
|
|
1060
|
-
family: NetworkFamily.SUI_LIKE,
|
|
1061
1069
|
zAssetFields: zSuiLikeAssetFields,
|
|
1062
1070
|
zLiveData: zSuiLikeLiveData,
|
|
1063
1071
|
zTransactionType: zSuiLikeTransactionType,
|
|
@@ -1134,7 +1142,6 @@ var zTezosLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
1134
1142
|
|
|
1135
1143
|
// src/networks/tezos/index.ts
|
|
1136
1144
|
var TEZOS_SPEC = {
|
|
1137
|
-
family: NetworkFamily.TEZOS_LIKE,
|
|
1138
1145
|
zAssetFields: zTezosLikeAssetFields,
|
|
1139
1146
|
zLiveData: zTezosLikeLiveData,
|
|
1140
1147
|
zTransactionType: zTezosLikeTransactionType,
|
|
@@ -1182,7 +1189,6 @@ var zTronLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
1182
1189
|
|
|
1183
1190
|
// src/networks/tron/index.ts
|
|
1184
1191
|
var TRON_SPEC = {
|
|
1185
|
-
family: NetworkFamily.TRON_LIKE,
|
|
1186
1192
|
zAssetFields: zTronLikeAssetFields,
|
|
1187
1193
|
zLiveData: zTronLikeLiveData,
|
|
1188
1194
|
zTransactionType: zTronLikeTransactionType,
|
|
@@ -1232,6 +1238,7 @@ z14.discriminatedUnion("type", [
|
|
|
1232
1238
|
TEZOS_SPEC.zStakingFields
|
|
1233
1239
|
]);
|
|
1234
1240
|
z14.discriminatedUnion("type", [
|
|
1241
|
+
BITCOIN_SPEC.zEstimatedFees,
|
|
1235
1242
|
ETHEREUM_SPEC.zEstimatedFees,
|
|
1236
1243
|
HEDERA_SPEC.zEstimatedFees,
|
|
1237
1244
|
RIPPLE_SPEC.zEstimatedFees,
|
|
@@ -1270,11 +1277,6 @@ z14.union([
|
|
|
1270
1277
|
...TEZOS_SPEC.zTransactionType.enum,
|
|
1271
1278
|
...TRON_SPEC.zTransactionType.enum
|
|
1272
1279
|
});
|
|
1273
|
-
({
|
|
1274
|
-
...NetworkFamily,
|
|
1275
|
-
// TODO: Sometimes `NetworkFamily` is not a `TransactionType` prefix - but why?
|
|
1276
|
-
[NetworkFamily.GENERIC_LIKE]: "GENERIC"
|
|
1277
|
-
});
|
|
1278
1280
|
var zTransactionData = z14.discriminatedUnion("type", [
|
|
1279
1281
|
...BITCOIN_SPEC.zTransactionData.options,
|
|
1280
1282
|
...CANTON_SPEC.zTransactionData.options,
|
|
@@ -1334,6 +1336,14 @@ var buildGateSyncId = (workspaceName, gateType, gateId) => {
|
|
|
1334
1336
|
|
|
1335
1337
|
// src/utils.ts
|
|
1336
1338
|
var isRecord = (value) => isPlainObject(value);
|
|
1339
|
+
var randomHex = (length) => {
|
|
1340
|
+
const hexBytes = times(length, () => {
|
|
1341
|
+
const randomByte = Math.floor(Math.random() * 256);
|
|
1342
|
+
return randomByte.toString(16).padStart(2, "0");
|
|
1343
|
+
});
|
|
1344
|
+
return hexBytes.join("").toUpperCase();
|
|
1345
|
+
};
|
|
1346
|
+
var genAuthUserId = () => randomHex(20);
|
|
1337
1347
|
var ensureNonEmptyArray = (values, message) => {
|
|
1338
1348
|
invariant8(
|
|
1339
1349
|
values.length > 0,
|
|
@@ -1348,7 +1358,8 @@ function unreachable(value) {
|
|
|
1348
1358
|
// src/__fakes__/faker-utils.ts
|
|
1349
1359
|
var fakeUniqueName = (length = 20) => faker.string.alphanumeric({ length, casing: "lower" });
|
|
1350
1360
|
var fakeHexString = (length, casing = "upper") => faker.string.hexadecimal({ prefix: "", casing, length });
|
|
1351
|
-
var fakePubKey = () =>
|
|
1361
|
+
var fakePubKey = () => new ec("p256").genKeyPair().getPublic(false, "hex");
|
|
1362
|
+
var fakeDeviceUserId = () => faker.string.hexadecimal({ prefix: "", casing: "upper", length: 16 });
|
|
1352
1363
|
var fakeIntegerId = () => faker.number.int({ min: 1, max: 2e9 });
|
|
1353
1364
|
var fakeGateId = fakeIntegerId;
|
|
1354
1365
|
var fakeBase64String = (length) => btoa(faker.string.sample(length));
|
|
@@ -1373,6 +1384,8 @@ var fakeWorkspaceName = () => faker.string.alphanumeric({ length: 16, casing: "l
|
|
|
1373
1384
|
// src/__fakes__/canton.ts
|
|
1374
1385
|
var fakeCantonAddress = (role) => `${role}-${faker.lorem.word()}::${fakeHexString(68, "lower")}`;
|
|
1375
1386
|
var fakeCantonPartyId = () => fakeCantonAddress("party");
|
|
1387
|
+
var fakeCantonContractId = () => fakeHexString(138, "lower");
|
|
1388
|
+
var fakeCantonInstrumentId = () => fakeHexString(10, "lower");
|
|
1376
1389
|
var injectSyncId = (obj) => {
|
|
1377
1390
|
let { syncId } = obj;
|
|
1378
1391
|
if (syncId === void 0) {
|
|
@@ -1652,6 +1665,482 @@ var genAccount = (opts) => {
|
|
|
1652
1665
|
...rest
|
|
1653
1666
|
});
|
|
1654
1667
|
};
|
|
1668
|
+
var genSignMessageData = (opts) => ({
|
|
1669
|
+
message: {
|
|
1670
|
+
type: "EIP191",
|
|
1671
|
+
data: fakeHexString(10, "upper")
|
|
1672
|
+
},
|
|
1673
|
+
accountId: faker.string.uuid(),
|
|
1674
|
+
address: faker.finance.ethereumAddress(),
|
|
1675
|
+
derivationPath: "44'/60'/0'/0/0",
|
|
1676
|
+
...opts
|
|
1677
|
+
});
|
|
1678
|
+
var genBitcoinLikeSendData = (opts) => {
|
|
1679
|
+
return {
|
|
1680
|
+
type: "BITCOIN_LIKE_SEND",
|
|
1681
|
+
currency: "bitcoin",
|
|
1682
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1683
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1684
|
+
recipient: faker.finance.bitcoinAddress(),
|
|
1685
|
+
feeStrategy: {
|
|
1686
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST", "CUSTOM"]),
|
|
1687
|
+
feePerByte: faker.number.bigInt({ min: 1 }).toString()
|
|
1688
|
+
},
|
|
1689
|
+
...opts
|
|
1690
|
+
};
|
|
1691
|
+
};
|
|
1692
|
+
var genCardanoLikeTxData = (txType) => {
|
|
1693
|
+
switch (txType) {
|
|
1694
|
+
case "CARDANO_LIKE_SEND":
|
|
1695
|
+
return {
|
|
1696
|
+
type: txType,
|
|
1697
|
+
currency: "cardano",
|
|
1698
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1699
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1700
|
+
recipient: faker.string.alphanumeric({ length: 30 }),
|
|
1701
|
+
feeStrategy: {
|
|
1702
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1703
|
+
}
|
|
1704
|
+
};
|
|
1705
|
+
case "CARDANO_LIKE_STAKING_DELEGATE":
|
|
1706
|
+
return {
|
|
1707
|
+
type: txType,
|
|
1708
|
+
currency: "cardano",
|
|
1709
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1710
|
+
stakePoolId: `pool${faker.string.alphanumeric({ length: 52 })}`,
|
|
1711
|
+
feeStrategy: {
|
|
1712
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1713
|
+
}
|
|
1714
|
+
};
|
|
1715
|
+
case "CARDANO_LIKE_STAKING_REGISTER":
|
|
1716
|
+
case "CARDANO_LIKE_STAKING_DEREGISTER":
|
|
1717
|
+
case "CARDANO_LIKE_STAKING_WITHDRAW":
|
|
1718
|
+
return {
|
|
1719
|
+
type: txType,
|
|
1720
|
+
currency: "cardano",
|
|
1721
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1722
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1723
|
+
feeStrategy: {
|
|
1724
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1725
|
+
}
|
|
1726
|
+
};
|
|
1727
|
+
}
|
|
1728
|
+
};
|
|
1729
|
+
var genEthereumLikeSendData = (opts) => {
|
|
1730
|
+
const gasLimit = faker.number.bigInt({ min: 1 });
|
|
1731
|
+
const gasPrice = faker.number.bigInt({ min: 1 });
|
|
1732
|
+
const maxFee = gasLimit * gasPrice;
|
|
1733
|
+
return {
|
|
1734
|
+
type: "ETHEREUM_LIKE_SEND",
|
|
1735
|
+
currency: "ethereum",
|
|
1736
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1737
|
+
maxFee: maxFee.toString(),
|
|
1738
|
+
recipient: faker.finance.bitcoinAddress(),
|
|
1739
|
+
feeStrategy: {
|
|
1740
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST", "CUSTOM"]),
|
|
1741
|
+
gasLimit: gasLimit.toString(),
|
|
1742
|
+
gasPrice: gasPrice.toString()
|
|
1743
|
+
},
|
|
1744
|
+
...opts
|
|
1745
|
+
};
|
|
1746
|
+
};
|
|
1747
|
+
var genEthereumLikeExecuteContractData = (opts) => {
|
|
1748
|
+
const sendData = genEthereumLikeSendData();
|
|
1749
|
+
return {
|
|
1750
|
+
...omit(sendData, ["type"]),
|
|
1751
|
+
type: "ETHEREUM_LIKE_EXECUTE_CONTRACT",
|
|
1752
|
+
contractData: faker.string.hexadecimal({ prefix: "", casing: "lower", length: 128 }),
|
|
1753
|
+
...opts
|
|
1754
|
+
};
|
|
1755
|
+
};
|
|
1756
|
+
var genEthereumLikeDeployContractData = (opts) => {
|
|
1757
|
+
const sendData = genEthereumLikeSendData();
|
|
1758
|
+
return {
|
|
1759
|
+
...omit(sendData, ["type"]),
|
|
1760
|
+
type: "ETHEREUM_LIKE_DEPLOY_CONTRACT",
|
|
1761
|
+
recipient: "0x0000000000000000000000000000000000000000",
|
|
1762
|
+
contractData: faker.string.hexadecimal({ prefix: "", casing: "lower", length: 128 }),
|
|
1763
|
+
...opts
|
|
1764
|
+
};
|
|
1765
|
+
};
|
|
1766
|
+
var genGenericTransactionData = () => {
|
|
1767
|
+
return {
|
|
1768
|
+
type: "GENERIC_TRANSACTION",
|
|
1769
|
+
currency: "tron",
|
|
1770
|
+
rawTx: faker.string.alphanumeric({ length: 100 })
|
|
1771
|
+
};
|
|
1772
|
+
};
|
|
1773
|
+
var genHederaLikeSendData = (txType) => {
|
|
1774
|
+
return {
|
|
1775
|
+
type: txType,
|
|
1776
|
+
currency: "hedera",
|
|
1777
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1778
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1779
|
+
recipient: `0.0.${faker.number.int({ min: 1e7, max: 99999999 }).toString()}`,
|
|
1780
|
+
feeStrategy: {
|
|
1781
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1782
|
+
}
|
|
1783
|
+
};
|
|
1784
|
+
};
|
|
1785
|
+
var genPolkadotLikeTxData = (txType) => {
|
|
1786
|
+
switch (txType) {
|
|
1787
|
+
case "POLKADOT_LIKE_SEND":
|
|
1788
|
+
return {
|
|
1789
|
+
type: txType,
|
|
1790
|
+
currency: "polkadot",
|
|
1791
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1792
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1793
|
+
recipient: faker.string.alphanumeric({ length: 30 })
|
|
1794
|
+
};
|
|
1795
|
+
case "POLKADOT_LIKE_ADDPROXY":
|
|
1796
|
+
case "POLKADOT_LIKE_REMOVEPROXY":
|
|
1797
|
+
return {
|
|
1798
|
+
type: txType,
|
|
1799
|
+
currency: "polkadot",
|
|
1800
|
+
kind: "Staking",
|
|
1801
|
+
proxy: faker.string.alphanumeric({ length: 30 })
|
|
1802
|
+
};
|
|
1803
|
+
case "POLKADOT_LIKE_BOND":
|
|
1804
|
+
return {
|
|
1805
|
+
type: txType,
|
|
1806
|
+
currency: "polkadot",
|
|
1807
|
+
payee: faker.helpers.arrayElement(["Staked", "Stash"]),
|
|
1808
|
+
amount: faker.number.bigInt({ min: 0 }).toString()
|
|
1809
|
+
};
|
|
1810
|
+
case "POLKADOT_LIKE_REBOND":
|
|
1811
|
+
case "POLKADOT_LIKE_UNBOND":
|
|
1812
|
+
return {
|
|
1813
|
+
type: txType,
|
|
1814
|
+
currency: "polkadot",
|
|
1815
|
+
amount: faker.number.bigInt({ min: 0 }).toString()
|
|
1816
|
+
};
|
|
1817
|
+
case "POLKADOT_LIKE_BONDEXTRA":
|
|
1818
|
+
return {
|
|
1819
|
+
type: txType,
|
|
1820
|
+
currency: "polkadot",
|
|
1821
|
+
amount: faker.number.bigInt({ min: 0 }).toString()
|
|
1822
|
+
};
|
|
1823
|
+
case "POLKADOT_LIKE_WITHDRAWUNBONDED":
|
|
1824
|
+
case "POLKADOT_LIKE_CHILL":
|
|
1825
|
+
return {
|
|
1826
|
+
type: txType,
|
|
1827
|
+
currency: "polkadot"
|
|
1828
|
+
};
|
|
1829
|
+
case "POLKADOT_LIKE_SETPAYEE":
|
|
1830
|
+
return {
|
|
1831
|
+
type: txType,
|
|
1832
|
+
currency: "polkadot",
|
|
1833
|
+
payee: faker.helpers.arrayElement(["Staked", "Stash"])
|
|
1834
|
+
};
|
|
1835
|
+
case "POLKADOT_LIKE_ANONYMOUSPROXY":
|
|
1836
|
+
case "POLKADOT_LIKE_KILLANONYMOUS":
|
|
1837
|
+
return {
|
|
1838
|
+
type: txType,
|
|
1839
|
+
currency: "polkadot"
|
|
1840
|
+
};
|
|
1841
|
+
}
|
|
1842
|
+
};
|
|
1843
|
+
var genRippleLikeSendData = (txType) => {
|
|
1844
|
+
return {
|
|
1845
|
+
type: txType,
|
|
1846
|
+
currency: "ripple",
|
|
1847
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1848
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1849
|
+
recipient: faker.string.alphanumeric({ length: 30 }),
|
|
1850
|
+
destinationTag: faker.helpers.arrayElement([faker.number.int().toString(), null]),
|
|
1851
|
+
feeStrategy: {
|
|
1852
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1853
|
+
}
|
|
1854
|
+
};
|
|
1855
|
+
};
|
|
1856
|
+
var genSolanaLikeTxData = (txType) => {
|
|
1857
|
+
switch (txType) {
|
|
1858
|
+
case "SOLANA_LIKE_SEND":
|
|
1859
|
+
case "SOLANA_LIKE_CREATE_DELEGATE_STAKE":
|
|
1860
|
+
case "SOLANA_LIKE_SEND_TOKEN":
|
|
1861
|
+
case "SOLANA_LIKE_FUND_AND_SEND_TOKEN":
|
|
1862
|
+
return {
|
|
1863
|
+
type: txType,
|
|
1864
|
+
currency: "solana",
|
|
1865
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1866
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1867
|
+
recipient: faker.string.alphanumeric({ length: 30 }),
|
|
1868
|
+
feeStrategy: {
|
|
1869
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1870
|
+
}
|
|
1871
|
+
};
|
|
1872
|
+
case "SOLANA_LIKE_DELEGATE_STAKE":
|
|
1873
|
+
return {
|
|
1874
|
+
type: txType,
|
|
1875
|
+
currency: "solana",
|
|
1876
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1877
|
+
recipient: faker.string.alphanumeric({ length: 30 }),
|
|
1878
|
+
stakeAccount: faker.string.alphanumeric({ length: 30 }),
|
|
1879
|
+
feeStrategy: {
|
|
1880
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1881
|
+
}
|
|
1882
|
+
};
|
|
1883
|
+
case "SOLANA_LIKE_DEACTIVATE_STAKE":
|
|
1884
|
+
return {
|
|
1885
|
+
type: txType,
|
|
1886
|
+
currency: "solana",
|
|
1887
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1888
|
+
stakeAccount: faker.string.alphanumeric({ length: 30 }),
|
|
1889
|
+
feeStrategy: {
|
|
1890
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1891
|
+
}
|
|
1892
|
+
};
|
|
1893
|
+
case "SOLANA_LIKE_SPLIT_DEACTIVATE_STAKE":
|
|
1894
|
+
case "SOLANA_LIKE_SPLIT_STAKE":
|
|
1895
|
+
case "SOLANA_LIKE_WITHDRAW_STAKE":
|
|
1896
|
+
return {
|
|
1897
|
+
type: txType,
|
|
1898
|
+
currency: "solana",
|
|
1899
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1900
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1901
|
+
stakeAccount: faker.string.alphanumeric({ length: 30 }),
|
|
1902
|
+
feeStrategy: {
|
|
1903
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1904
|
+
}
|
|
1905
|
+
};
|
|
1906
|
+
case "SOLANA_LIKE_MERGE_STAKE":
|
|
1907
|
+
return {
|
|
1908
|
+
type: txType,
|
|
1909
|
+
currency: "solana",
|
|
1910
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1911
|
+
mergeSrcAccount: faker.string.alphanumeric({ length: 30 }),
|
|
1912
|
+
mergeDstAccount: faker.string.alphanumeric({ length: 30 }),
|
|
1913
|
+
feeStrategy: {
|
|
1914
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1915
|
+
}
|
|
1916
|
+
};
|
|
1917
|
+
case "SOLANA_LIKE_CREATE_SPL_TOKEN_ACCOUNT":
|
|
1918
|
+
return {
|
|
1919
|
+
type: txType,
|
|
1920
|
+
currency: "solana",
|
|
1921
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1922
|
+
feeStrategy: {
|
|
1923
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1924
|
+
}
|
|
1925
|
+
};
|
|
1926
|
+
}
|
|
1927
|
+
};
|
|
1928
|
+
var genStellarLikeSendData = (txType) => {
|
|
1929
|
+
return {
|
|
1930
|
+
type: txType,
|
|
1931
|
+
currency: "stellar",
|
|
1932
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1933
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1934
|
+
recipient: faker.string.alphanumeric({ length: 30 }),
|
|
1935
|
+
memo: faker.helpers.arrayElement([
|
|
1936
|
+
{ MEMO_ID: faker.number.bigInt({ min: 0 }).toString() },
|
|
1937
|
+
{ MEMO_TEXT: faker.word.conjunction(28) },
|
|
1938
|
+
{ MEMO_HASH: faker.string.hexadecimal({ prefix: "", casing: "lower", length: 64 }) },
|
|
1939
|
+
{ MEMO_RETURN: faker.string.hexadecimal({ prefix: "", casing: "lower", length: 64 }) },
|
|
1940
|
+
null
|
|
1941
|
+
]),
|
|
1942
|
+
feeStrategy: {
|
|
1943
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1944
|
+
}
|
|
1945
|
+
};
|
|
1946
|
+
};
|
|
1947
|
+
var genSuiLikeTxData = (txType) => {
|
|
1948
|
+
return {
|
|
1949
|
+
currency: "sui",
|
|
1950
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1951
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1952
|
+
feeStrategy: {
|
|
1953
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1954
|
+
},
|
|
1955
|
+
...match(txType).with("SUI_LIKE_STAKE", (type) => ({
|
|
1956
|
+
type,
|
|
1957
|
+
validator: faker.string.alphanumeric({ length: 30 })
|
|
1958
|
+
})).with("SUI_LIKE_UNSTAKE", (type) => ({
|
|
1959
|
+
type,
|
|
1960
|
+
stakedSuiId: faker.string.alphanumeric({ length: 30 }),
|
|
1961
|
+
useAllAmount: faker.datatype.boolean()
|
|
1962
|
+
})).with(P.union("SUI_LIKE_SEND", "SUI_LIKE_SEND_TOKEN"), (type) => ({
|
|
1963
|
+
type,
|
|
1964
|
+
recipient: faker.string.alphanumeric({ length: 30 })
|
|
1965
|
+
})).exhaustive()
|
|
1966
|
+
};
|
|
1967
|
+
};
|
|
1968
|
+
var genTezosLikeTxData = (txType) => {
|
|
1969
|
+
return {
|
|
1970
|
+
type: txType,
|
|
1971
|
+
currency: "tezos",
|
|
1972
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1973
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1974
|
+
recipient: faker.string.alphanumeric({ length: 30 }),
|
|
1975
|
+
feeStrategy: {
|
|
1976
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST", "CUSTOM"])
|
|
1977
|
+
}
|
|
1978
|
+
};
|
|
1979
|
+
};
|
|
1980
|
+
var genTronLikeTxData = (txType) => {
|
|
1981
|
+
return {
|
|
1982
|
+
type: txType,
|
|
1983
|
+
currency: "tron",
|
|
1984
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1985
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
1986
|
+
recipient: faker.string.alphanumeric({ length: 30 }),
|
|
1987
|
+
feeStrategy: {
|
|
1988
|
+
type: faker.helpers.arrayElement(["SLOW", "NORMAL", "FAST"])
|
|
1989
|
+
}
|
|
1990
|
+
};
|
|
1991
|
+
};
|
|
1992
|
+
var genCantonTransferProposal = () => ({
|
|
1993
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
1994
|
+
contractId: fakeCantonContractId(),
|
|
1995
|
+
instrumentId: fakeCantonInstrumentId(),
|
|
1996
|
+
expiresAtMicros: faker.date.future().getTime() * 1e3,
|
|
1997
|
+
memo: faker.lorem.sentence(),
|
|
1998
|
+
sender: fakeCantonPartyId(),
|
|
1999
|
+
recipient: fakeCantonPartyId()
|
|
2000
|
+
});
|
|
2001
|
+
var genCantonLikeTxData = (txType) => {
|
|
2002
|
+
switch (txType) {
|
|
2003
|
+
case "CANTON_LIKE_SEND":
|
|
2004
|
+
case "CANTON_LIKE_SEND_TOKEN":
|
|
2005
|
+
return {
|
|
2006
|
+
type: txType,
|
|
2007
|
+
currency: "canton_network",
|
|
2008
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
2009
|
+
recipient: fakeCantonPartyId()
|
|
2010
|
+
};
|
|
2011
|
+
case "CANTON_LIKE_WITHDRAW":
|
|
2012
|
+
return {
|
|
2013
|
+
type: txType,
|
|
2014
|
+
currency: "canton_network",
|
|
2015
|
+
transferProposal: genCantonTransferProposal(),
|
|
2016
|
+
reason: faker.lorem.sentence()
|
|
2017
|
+
};
|
|
2018
|
+
case "CANTON_LIKE_RECEIVE":
|
|
2019
|
+
return {
|
|
2020
|
+
type: txType,
|
|
2021
|
+
currency: "canton_network",
|
|
2022
|
+
transferProposal: genCantonTransferProposal(),
|
|
2023
|
+
verdict: "ACCEPT",
|
|
2024
|
+
reason: faker.lorem.sentence()
|
|
2025
|
+
};
|
|
2026
|
+
case "CANTON_LIKE_PRE_APPROVAL":
|
|
2027
|
+
return {
|
|
2028
|
+
type: txType,
|
|
2029
|
+
currency: "canton_network",
|
|
2030
|
+
recipient: fakeCantonPartyId()
|
|
2031
|
+
};
|
|
2032
|
+
case "CANTON_LIKE_TAP":
|
|
2033
|
+
return {
|
|
2034
|
+
type: txType,
|
|
2035
|
+
currency: "canton_network",
|
|
2036
|
+
amount: faker.number.bigInt({ min: 0 }).toString(),
|
|
2037
|
+
maxFee: null,
|
|
2038
|
+
recipient: fakeCantonPartyId()
|
|
2039
|
+
};
|
|
2040
|
+
}
|
|
2041
|
+
};
|
|
2042
|
+
var mergeTransactionData = (defaults, custom) => {
|
|
2043
|
+
const merged = {
|
|
2044
|
+
...defaults,
|
|
2045
|
+
...custom,
|
|
2046
|
+
type: defaults.type
|
|
2047
|
+
// make sure `type` comes from `defaults`
|
|
2048
|
+
};
|
|
2049
|
+
return zTransactionData.parse(merged);
|
|
2050
|
+
};
|
|
2051
|
+
var genCreateTransactionData = (opts) => {
|
|
2052
|
+
const { accountId, transaction } = opts ?? {};
|
|
2053
|
+
const transactionType = transaction?.type ?? "ETHEREUM_LIKE_SEND";
|
|
2054
|
+
let transactionDefaults;
|
|
2055
|
+
switch (transactionType) {
|
|
2056
|
+
case "BITCOIN_LIKE_SEND":
|
|
2057
|
+
transactionDefaults = genBitcoinLikeSendData();
|
|
2058
|
+
break;
|
|
2059
|
+
case "CANTON_LIKE_SEND":
|
|
2060
|
+
case "CANTON_LIKE_SEND_TOKEN":
|
|
2061
|
+
case "CANTON_LIKE_WITHDRAW":
|
|
2062
|
+
case "CANTON_LIKE_RECEIVE":
|
|
2063
|
+
case "CANTON_LIKE_PRE_APPROVAL":
|
|
2064
|
+
case "CANTON_LIKE_TAP":
|
|
2065
|
+
transactionDefaults = genCantonLikeTxData(transactionType);
|
|
2066
|
+
break;
|
|
2067
|
+
case "CARDANO_LIKE_SEND":
|
|
2068
|
+
case "CARDANO_LIKE_STAKING_REGISTER":
|
|
2069
|
+
case "CARDANO_LIKE_STAKING_DEREGISTER":
|
|
2070
|
+
case "CARDANO_LIKE_STAKING_DELEGATE":
|
|
2071
|
+
case "CARDANO_LIKE_STAKING_WITHDRAW":
|
|
2072
|
+
transactionDefaults = genCardanoLikeTxData(transactionType);
|
|
2073
|
+
break;
|
|
2074
|
+
case "ETHEREUM_LIKE_SEND":
|
|
2075
|
+
transactionDefaults = genEthereumLikeSendData();
|
|
2076
|
+
break;
|
|
2077
|
+
case "ETHEREUM_LIKE_EXECUTE_CONTRACT":
|
|
2078
|
+
transactionDefaults = genEthereumLikeExecuteContractData();
|
|
2079
|
+
break;
|
|
2080
|
+
case "ETHEREUM_LIKE_DEPLOY_CONTRACT":
|
|
2081
|
+
transactionDefaults = genEthereumLikeDeployContractData();
|
|
2082
|
+
break;
|
|
2083
|
+
case "GENERIC_TRANSACTION":
|
|
2084
|
+
transactionDefaults = genGenericTransactionData();
|
|
2085
|
+
break;
|
|
2086
|
+
case "HEDERA_LIKE_SEND":
|
|
2087
|
+
case "HEDERA_LIKE_SEND_TOKEN":
|
|
2088
|
+
transactionDefaults = genHederaLikeSendData(transactionType);
|
|
2089
|
+
break;
|
|
2090
|
+
case "POLKADOT_LIKE_SEND":
|
|
2091
|
+
case "POLKADOT_LIKE_ADDPROXY":
|
|
2092
|
+
case "POLKADOT_LIKE_REMOVEPROXY":
|
|
2093
|
+
case "POLKADOT_LIKE_BOND":
|
|
2094
|
+
case "POLKADOT_LIKE_REBOND":
|
|
2095
|
+
case "POLKADOT_LIKE_BONDEXTRA":
|
|
2096
|
+
case "POLKADOT_LIKE_UNBOND":
|
|
2097
|
+
case "POLKADOT_LIKE_WITHDRAWUNBONDED":
|
|
2098
|
+
case "POLKADOT_LIKE_SETPAYEE":
|
|
2099
|
+
case "POLKADOT_LIKE_ANONYMOUSPROXY":
|
|
2100
|
+
case "POLKADOT_LIKE_KILLANONYMOUS":
|
|
2101
|
+
case "POLKADOT_LIKE_CHILL":
|
|
2102
|
+
transactionDefaults = genPolkadotLikeTxData(transactionType);
|
|
2103
|
+
break;
|
|
2104
|
+
case "RIPPLE_LIKE_SEND":
|
|
2105
|
+
transactionDefaults = genRippleLikeSendData(transactionType);
|
|
2106
|
+
break;
|
|
2107
|
+
case "SOLANA_LIKE_SEND":
|
|
2108
|
+
case "SOLANA_LIKE_CREATE_DELEGATE_STAKE":
|
|
2109
|
+
case "SOLANA_LIKE_DELEGATE_STAKE":
|
|
2110
|
+
case "SOLANA_LIKE_WITHDRAW_STAKE":
|
|
2111
|
+
case "SOLANA_LIKE_DEACTIVATE_STAKE":
|
|
2112
|
+
case "SOLANA_LIKE_SPLIT_STAKE":
|
|
2113
|
+
case "SOLANA_LIKE_SPLIT_DEACTIVATE_STAKE":
|
|
2114
|
+
case "SOLANA_LIKE_MERGE_STAKE":
|
|
2115
|
+
case "SOLANA_LIKE_SEND_TOKEN":
|
|
2116
|
+
case "SOLANA_LIKE_FUND_AND_SEND_TOKEN":
|
|
2117
|
+
case "SOLANA_LIKE_CREATE_SPL_TOKEN_ACCOUNT":
|
|
2118
|
+
transactionDefaults = genSolanaLikeTxData(transactionType);
|
|
2119
|
+
break;
|
|
2120
|
+
case "STELLAR_LIKE_SEND":
|
|
2121
|
+
transactionDefaults = genStellarLikeSendData(transactionType);
|
|
2122
|
+
break;
|
|
2123
|
+
case "TEZOS_LIKE_SEND":
|
|
2124
|
+
case "TEZOS_LIKE_DELEGATE":
|
|
2125
|
+
case "TEZOS_LIKE_UNDELEGATE":
|
|
2126
|
+
transactionDefaults = genTezosLikeTxData(transactionType);
|
|
2127
|
+
break;
|
|
2128
|
+
case "SUI_LIKE_SEND":
|
|
2129
|
+
case "SUI_LIKE_SEND_TOKEN":
|
|
2130
|
+
case "SUI_LIKE_STAKE":
|
|
2131
|
+
case "SUI_LIKE_UNSTAKE":
|
|
2132
|
+
transactionDefaults = genSuiLikeTxData(transactionType);
|
|
2133
|
+
break;
|
|
2134
|
+
case "TRON_LIKE_SEND":
|
|
2135
|
+
case "TRON_LIKE_SEND_TOKEN":
|
|
2136
|
+
transactionDefaults = genTronLikeTxData(transactionType);
|
|
2137
|
+
break;
|
|
2138
|
+
}
|
|
2139
|
+
return {
|
|
2140
|
+
accountId: accountId ?? faker.string.uuid(),
|
|
2141
|
+
transaction: mergeTransactionData(transactionDefaults, transaction)
|
|
2142
|
+
};
|
|
2143
|
+
};
|
|
1655
2144
|
var shouldHaveTargetHsmId = (request) => {
|
|
1656
2145
|
switch (request.type) {
|
|
1657
2146
|
case RequestType.CREATE_ENTITY:
|
|
@@ -1743,8 +2232,368 @@ var shouldHaveTargetId = (request) => {
|
|
|
1743
2232
|
return true;
|
|
1744
2233
|
}
|
|
1745
2234
|
};
|
|
2235
|
+
var genCreateAccountData = (opts) => {
|
|
2236
|
+
return {
|
|
2237
|
+
name: fakeUniqueName(),
|
|
2238
|
+
type: "BITCOIN_LIKE",
|
|
2239
|
+
currency: "bitcoin",
|
|
2240
|
+
contractAddress: null,
|
|
2241
|
+
tokenIdentifier: null,
|
|
2242
|
+
governance: {
|
|
2243
|
+
type: "CLASSIC",
|
|
2244
|
+
policy: { rules: [] }
|
|
2245
|
+
// TODO: account gov rules should not be empty
|
|
2246
|
+
},
|
|
2247
|
+
index: 0,
|
|
2248
|
+
derivationPath: "m/84'/0'/0'",
|
|
2249
|
+
...opts
|
|
2250
|
+
};
|
|
2251
|
+
};
|
|
2252
|
+
var genEditAccountData = (opts) => {
|
|
2253
|
+
return {
|
|
2254
|
+
name: fakeUniqueName(),
|
|
2255
|
+
governance: {
|
|
2256
|
+
type: "CLASSIC",
|
|
2257
|
+
policy: { rules: [] }
|
|
2258
|
+
// TODO: account gov rules should not be empty
|
|
2259
|
+
},
|
|
2260
|
+
...opts
|
|
2261
|
+
};
|
|
2262
|
+
};
|
|
2263
|
+
var genEditTokenRuleData = (opts) => {
|
|
2264
|
+
return {
|
|
2265
|
+
parentAccountId: faker.string.uuid(),
|
|
2266
|
+
contractAddress: faker.string.alphanumeric({ length: 44 }),
|
|
2267
|
+
rules: [
|
|
2268
|
+
{
|
|
2269
|
+
operationType: "SEND",
|
|
2270
|
+
reviewSteps: [
|
|
2271
|
+
{
|
|
2272
|
+
quorum: 1,
|
|
2273
|
+
userIds: []
|
|
2274
|
+
}
|
|
2275
|
+
]
|
|
2276
|
+
}
|
|
2277
|
+
],
|
|
2278
|
+
...opts
|
|
2279
|
+
};
|
|
2280
|
+
};
|
|
2281
|
+
var genCreateApiKeyData = (opts) => {
|
|
2282
|
+
return {
|
|
2283
|
+
name: faker.company.name().slice(0, 19),
|
|
2284
|
+
entities: [],
|
|
2285
|
+
scopes: {},
|
|
2286
|
+
// FIXME what should we put there?
|
|
2287
|
+
...opts
|
|
2288
|
+
};
|
|
2289
|
+
};
|
|
2290
|
+
var genEditApiKeyData = (opts) => {
|
|
2291
|
+
return {
|
|
2292
|
+
name: faker.company.name().slice(0, 19),
|
|
2293
|
+
entities: [],
|
|
2294
|
+
scopes: {},
|
|
2295
|
+
// FIXME what should we put there?
|
|
2296
|
+
...opts
|
|
2297
|
+
};
|
|
2298
|
+
};
|
|
2299
|
+
var genSignDigestsData = (opts) => {
|
|
2300
|
+
const { accountId, digests } = opts ?? {};
|
|
2301
|
+
return {
|
|
2302
|
+
accountId: accountId ?? faker.string.uuid(),
|
|
2303
|
+
digests: digests ?? [
|
|
2304
|
+
{
|
|
2305
|
+
digest: faker.string.hexadecimal({ prefix: "", length: 64 }),
|
|
2306
|
+
derivationPath: "m/44'/60'/0'"
|
|
2307
|
+
}
|
|
2308
|
+
]
|
|
2309
|
+
};
|
|
2310
|
+
};
|
|
2311
|
+
var genCreateEntityData = (opts) => {
|
|
2312
|
+
return {
|
|
2313
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2314
|
+
accountIds: [],
|
|
2315
|
+
memberIds: [],
|
|
2316
|
+
...opts
|
|
2317
|
+
};
|
|
2318
|
+
};
|
|
2319
|
+
var genEditEntityData = (opts) => {
|
|
2320
|
+
return {
|
|
2321
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2322
|
+
accountIds: [],
|
|
2323
|
+
memberIds: [],
|
|
2324
|
+
...opts
|
|
2325
|
+
};
|
|
2326
|
+
};
|
|
2327
|
+
var genCreateGroupData = (opts) => {
|
|
2328
|
+
return {
|
|
2329
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2330
|
+
description: faker.lorem.sentence(),
|
|
2331
|
+
members: [],
|
|
2332
|
+
...opts
|
|
2333
|
+
};
|
|
2334
|
+
};
|
|
2335
|
+
var genEditGroupData = (opts) => {
|
|
2336
|
+
return {
|
|
2337
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2338
|
+
description: faker.lorem.sentence(),
|
|
2339
|
+
members: [],
|
|
2340
|
+
...opts
|
|
2341
|
+
};
|
|
2342
|
+
};
|
|
2343
|
+
var genCreatePolicyData = (opts) => {
|
|
2344
|
+
return {
|
|
2345
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2346
|
+
description: faker.lorem.sentence(),
|
|
2347
|
+
currency: "bitcoin",
|
|
2348
|
+
govRules: [],
|
|
2349
|
+
...opts
|
|
2350
|
+
};
|
|
2351
|
+
};
|
|
2352
|
+
var genEditPolicyData = (opts) => {
|
|
2353
|
+
return {
|
|
2354
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2355
|
+
description: faker.lorem.sentence(),
|
|
2356
|
+
govRules: [],
|
|
2357
|
+
...opts
|
|
2358
|
+
};
|
|
2359
|
+
};
|
|
2360
|
+
var genCreateSciConfigData = (opts) => {
|
|
2361
|
+
return {
|
|
2362
|
+
account: faker.string.uuid(),
|
|
2363
|
+
config: {
|
|
2364
|
+
dapps: times(faker.number.int({ min: 0, max: 5 }), () => faker.word.noun()),
|
|
2365
|
+
customContractCallEnabled: faker.datatype.boolean()
|
|
2366
|
+
},
|
|
2367
|
+
...opts
|
|
2368
|
+
};
|
|
2369
|
+
};
|
|
2370
|
+
var genEditSciConfigData = (opts) => {
|
|
2371
|
+
return {
|
|
2372
|
+
config: {
|
|
2373
|
+
dapps: times(faker.number.int({ min: 0, max: 5 }), () => faker.word.noun()),
|
|
2374
|
+
customContractCallEnabled: faker.datatype.boolean()
|
|
2375
|
+
},
|
|
2376
|
+
...opts
|
|
2377
|
+
};
|
|
2378
|
+
};
|
|
2379
|
+
var genCreatePledgeIncrementData = (opts) => ({
|
|
2380
|
+
accountId: faker.string.uuid(),
|
|
2381
|
+
exchangeId: faker.string.uuid(),
|
|
2382
|
+
amount: "42",
|
|
2383
|
+
...opts
|
|
2384
|
+
});
|
|
2385
|
+
var genRepledgeRequestData = (opts) => ({
|
|
2386
|
+
accountId: faker.string.uuid(),
|
|
2387
|
+
exchangeId: faker.string.uuid(),
|
|
2388
|
+
amount: "42",
|
|
2389
|
+
...opts
|
|
2390
|
+
});
|
|
2391
|
+
var genCreateSettlementData = (opts) => ({
|
|
2392
|
+
accountId: faker.string.uuid(),
|
|
2393
|
+
exchangeId: faker.string.uuid(),
|
|
2394
|
+
transaction: {
|
|
2395
|
+
type: "BITCOIN_LIKE_SEND",
|
|
2396
|
+
amount: "42",
|
|
2397
|
+
currency: "bitcoin",
|
|
2398
|
+
maxFee: "999",
|
|
2399
|
+
recipient: faker.finance.bitcoinAddress(),
|
|
2400
|
+
feeStrategy: { type: "NORMAL" }
|
|
2401
|
+
},
|
|
2402
|
+
...opts
|
|
2403
|
+
});
|
|
2404
|
+
var genForceUnpledgeData = (opts) => ({
|
|
2405
|
+
accountId: faker.string.uuid(),
|
|
2406
|
+
exchangeId: faker.string.uuid(),
|
|
2407
|
+
...opts
|
|
2408
|
+
});
|
|
2409
|
+
var genTradelinkWithdrawData = (opts) => ({
|
|
2410
|
+
accountId: faker.string.uuid(),
|
|
2411
|
+
transaction: {
|
|
2412
|
+
type: "ETHEREUM_LIKE_SEND",
|
|
2413
|
+
recipient: "0x63e4195AF1509490b430F3f5bCb85A82a24F5C82",
|
|
2414
|
+
amount: faker.number.bigInt({ min: 0, max: 99 }).toString(),
|
|
2415
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
2416
|
+
currency: "ethereum",
|
|
2417
|
+
feeStrategy: {
|
|
2418
|
+
type: "NORMAL",
|
|
2419
|
+
gasPrice: "2",
|
|
2420
|
+
gasLimit: "10"
|
|
2421
|
+
}
|
|
2422
|
+
},
|
|
2423
|
+
...opts
|
|
2424
|
+
});
|
|
2425
|
+
var genTradelinkArbitrationData = (opts) => ({
|
|
2426
|
+
accountId: faker.string.uuid(),
|
|
2427
|
+
transaction: {
|
|
2428
|
+
type: "ETHEREUM_LIKE_SEND",
|
|
2429
|
+
recipient: "0xcefd70CFCd7a2FAa0fe956E3d496F9313297CB44",
|
|
2430
|
+
amount: faker.number.bigInt({ min: 0, max: 99 }).toString(),
|
|
2431
|
+
maxFee: faker.number.bigInt({ min: 1 }).toString(),
|
|
2432
|
+
currency: "ethereum",
|
|
2433
|
+
feeStrategy: {
|
|
2434
|
+
type: "NORMAL",
|
|
2435
|
+
gasPrice: "2",
|
|
2436
|
+
gasLimit: "10"
|
|
2437
|
+
}
|
|
2438
|
+
},
|
|
2439
|
+
...opts
|
|
2440
|
+
});
|
|
2441
|
+
var genCreatePsdUserData = (opts) => ({
|
|
2442
|
+
registrationId: faker.string.uuid(),
|
|
2443
|
+
...opts
|
|
2444
|
+
});
|
|
2445
|
+
var genCreateApiUserData = (opts) => {
|
|
2446
|
+
return {
|
|
2447
|
+
name: faker.person.firstName(),
|
|
2448
|
+
pubKey: fakePubKey(),
|
|
2449
|
+
role: UserRole.OPERATOR,
|
|
2450
|
+
viewAll: false,
|
|
2451
|
+
...opts
|
|
2452
|
+
};
|
|
2453
|
+
};
|
|
2454
|
+
var genCreateApiUserAccessData = (opts) => {
|
|
2455
|
+
return {
|
|
2456
|
+
name: faker.person.firstName(),
|
|
2457
|
+
...opts
|
|
2458
|
+
};
|
|
2459
|
+
};
|
|
2460
|
+
var genCreateWhitelistData = (opts) => {
|
|
2461
|
+
return {
|
|
2462
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2463
|
+
description: faker.lorem.sentence(),
|
|
2464
|
+
type: faker.helpers.arrayElement(Object.values(WhitelistType)),
|
|
2465
|
+
addresses: [
|
|
2466
|
+
{
|
|
2467
|
+
name: faker.lorem.words(3),
|
|
2468
|
+
currency: "bitcoin",
|
|
2469
|
+
address: faker.finance.bitcoinAddress(),
|
|
2470
|
+
destinationTags: []
|
|
2471
|
+
},
|
|
2472
|
+
{
|
|
2473
|
+
name: faker.lorem.words(3),
|
|
2474
|
+
currency: "ethereum",
|
|
2475
|
+
address: faker.finance.ethereumAddress(),
|
|
2476
|
+
destinationTags: []
|
|
2477
|
+
}
|
|
2478
|
+
],
|
|
2479
|
+
...opts
|
|
2480
|
+
};
|
|
2481
|
+
};
|
|
2482
|
+
var genEditWhitelistData = (opts) => {
|
|
2483
|
+
return {
|
|
2484
|
+
name: faker.word.noun({ length: { min: 5, max: 19 } }),
|
|
2485
|
+
addresses: [
|
|
2486
|
+
{
|
|
2487
|
+
name: faker.lorem.words(3),
|
|
2488
|
+
currency: "bitcoin",
|
|
2489
|
+
address: faker.finance.bitcoinAddress(),
|
|
2490
|
+
destinationTags: []
|
|
2491
|
+
},
|
|
2492
|
+
{
|
|
2493
|
+
name: faker.lorem.words(3),
|
|
2494
|
+
currency: "ethereum",
|
|
2495
|
+
address: faker.finance.ethereumAddress(),
|
|
2496
|
+
destinationTags: []
|
|
2497
|
+
}
|
|
2498
|
+
],
|
|
2499
|
+
...opts
|
|
2500
|
+
};
|
|
2501
|
+
};
|
|
2502
|
+
var genWorkspaceRuleData = (opts) => {
|
|
2503
|
+
return {
|
|
2504
|
+
permission: AdminPermission.CREATE_ACCOUNT_WITH_POLICY,
|
|
2505
|
+
reviewConfig: [{ userIds: [], quorum: 2 }],
|
|
2506
|
+
...opts
|
|
2507
|
+
};
|
|
2508
|
+
};
|
|
1746
2509
|
|
|
1747
2510
|
// src/__fakes__/models/requests/requests-and-reviews.ts
|
|
2511
|
+
var genRequestData = (type, opts) => {
|
|
2512
|
+
switch (type) {
|
|
2513
|
+
// Workspace...
|
|
2514
|
+
case RequestType.UPDATE_QUORUM:
|
|
2515
|
+
return { quorum: 3, ...opts };
|
|
2516
|
+
// User...
|
|
2517
|
+
case RequestType.CREATE_PSD_USER:
|
|
2518
|
+
return genCreatePsdUserData(opts);
|
|
2519
|
+
case RequestType.CREATE_API_USER:
|
|
2520
|
+
return genCreateApiUserData(opts);
|
|
2521
|
+
case RequestType.CREATE_API_USER_ACCESS:
|
|
2522
|
+
return genCreateApiUserAccessData(opts);
|
|
2523
|
+
case RequestType.REVOKE_USER:
|
|
2524
|
+
return {};
|
|
2525
|
+
// Admin gov rule...
|
|
2526
|
+
case RequestType.EDIT_WORKSPACE_RULE:
|
|
2527
|
+
return genWorkspaceRuleData(opts);
|
|
2528
|
+
// Group...
|
|
2529
|
+
case RequestType.CREATE_GROUP:
|
|
2530
|
+
return genCreateGroupData(opts);
|
|
2531
|
+
case RequestType.EDIT_GROUP:
|
|
2532
|
+
return genEditGroupData(opts);
|
|
2533
|
+
case RequestType.REVOKE_GROUP:
|
|
2534
|
+
return {};
|
|
2535
|
+
// ApiKey...
|
|
2536
|
+
case RequestType.CREATE_API_KEY:
|
|
2537
|
+
return genCreateApiKeyData(opts);
|
|
2538
|
+
case RequestType.EDIT_API_KEY:
|
|
2539
|
+
return genEditApiKeyData(opts);
|
|
2540
|
+
case RequestType.REVOKE_API_KEY:
|
|
2541
|
+
return {};
|
|
2542
|
+
// Whitelist...
|
|
2543
|
+
case RequestType.CREATE_WHITELIST:
|
|
2544
|
+
return genCreateWhitelistData(opts);
|
|
2545
|
+
case RequestType.EDIT_WHITELIST:
|
|
2546
|
+
return genEditWhitelistData(opts);
|
|
2547
|
+
// Entity...
|
|
2548
|
+
case RequestType.CREATE_ENTITY:
|
|
2549
|
+
return genCreateEntityData(opts);
|
|
2550
|
+
case RequestType.EDIT_ENTITY:
|
|
2551
|
+
return genEditEntityData(opts);
|
|
2552
|
+
case RequestType.REVOKE_ENTITY:
|
|
2553
|
+
return {};
|
|
2554
|
+
// Account...
|
|
2555
|
+
case RequestType.CREATE_ACCOUNT:
|
|
2556
|
+
return genCreateAccountData(opts);
|
|
2557
|
+
case RequestType.EDIT_ACCOUNT:
|
|
2558
|
+
return genEditAccountData(opts);
|
|
2559
|
+
case RequestType.EDIT_TOKEN_RULE:
|
|
2560
|
+
return genEditTokenRuleData(opts);
|
|
2561
|
+
// Operator requests...
|
|
2562
|
+
case RequestType.CREATE_TRANSACTION:
|
|
2563
|
+
return genCreateTransactionData(opts);
|
|
2564
|
+
case RequestType.SIGN_MESSAGE:
|
|
2565
|
+
return genSignMessageData(opts);
|
|
2566
|
+
case RequestType.SIGN_DIGESTS:
|
|
2567
|
+
return genSignDigestsData(opts);
|
|
2568
|
+
// SCI config...
|
|
2569
|
+
case RequestType.CREATE_SCICONFIG:
|
|
2570
|
+
return genCreateSciConfigData(opts);
|
|
2571
|
+
case RequestType.EDIT_SCICONFIG:
|
|
2572
|
+
return genEditSciConfigData(opts);
|
|
2573
|
+
// Policy
|
|
2574
|
+
case RequestType.CREATE_POLICY:
|
|
2575
|
+
return genCreatePolicyData(opts);
|
|
2576
|
+
case RequestType.EDIT_POLICY:
|
|
2577
|
+
return genEditPolicyData(opts);
|
|
2578
|
+
// Tradelink...
|
|
2579
|
+
case RequestType.TRADELINK_ADJUST_PLEDGE:
|
|
2580
|
+
return genCreatePledgeIncrementData(opts);
|
|
2581
|
+
case RequestType.TRADELINK_CREATE_SETTLEMENT:
|
|
2582
|
+
return genCreateSettlementData(opts);
|
|
2583
|
+
case RequestType.TRADELINK_FORCE_UNPLEDGE:
|
|
2584
|
+
return genForceUnpledgeData(opts);
|
|
2585
|
+
case RequestType.TRADELINK_WITHDRAW:
|
|
2586
|
+
return genTradelinkWithdrawData(opts);
|
|
2587
|
+
case RequestType.TRADELINK_REPLEDGE:
|
|
2588
|
+
return genRepledgeRequestData(opts);
|
|
2589
|
+
case RequestType.TRADELINK_ARBITRATE:
|
|
2590
|
+
return genTradelinkArbitrationData(opts);
|
|
2591
|
+
default: {
|
|
2592
|
+
const unknownType = type;
|
|
2593
|
+
throw new Error(`Unknown request type: ${unknownType}`);
|
|
2594
|
+
}
|
|
2595
|
+
}
|
|
2596
|
+
};
|
|
1748
2597
|
var genRequestReviewSteps = (numSteps) => times(1, () => ({ stageName: "default", quorum: 2 }));
|
|
1749
2598
|
var genVaultRequest = (opts) => {
|
|
1750
2599
|
const { type, state = RequestState.PENDING_APPROVAL, data, ...custom } = opts;
|
|
@@ -1813,6 +2662,98 @@ var genVaultRequestReview = (opts) => {
|
|
|
1813
2662
|
...opts
|
|
1814
2663
|
};
|
|
1815
2664
|
};
|
|
2665
|
+
var genUserFieldsForDeviceType = (deviceType) => {
|
|
2666
|
+
switch (deviceType) {
|
|
2667
|
+
case UserDeviceType.PSD:
|
|
2668
|
+
case UserDeviceType.SOFT_PSD:
|
|
2669
|
+
return {
|
|
2670
|
+
deviceType,
|
|
2671
|
+
deviceUserId: fakeDeviceUserId(),
|
|
2672
|
+
hsmId: null
|
|
2673
|
+
};
|
|
2674
|
+
case UserDeviceType.API:
|
|
2675
|
+
return {
|
|
2676
|
+
deviceType,
|
|
2677
|
+
deviceUserId: null,
|
|
2678
|
+
hsmId: faker.string.uuid()
|
|
2679
|
+
};
|
|
2680
|
+
}
|
|
2681
|
+
};
|
|
2682
|
+
var genUser = (opts) => {
|
|
2683
|
+
const role = opts?.role ?? faker.helpers.arrayElement([UserRole.ADMIN, UserRole.OPERATOR]);
|
|
2684
|
+
const deviceType = opts?.deviceType ?? UserDeviceType.PSD;
|
|
2685
|
+
const userFieldsForDeviceType = genUserFieldsForDeviceType(deviceType);
|
|
2686
|
+
const gateType = role === UserRole.READ_ONLY_API_KEY ? GateUserType.VaultApiKey : GateUserType.Person;
|
|
2687
|
+
return injectSyncId({
|
|
2688
|
+
id: faker.string.uuid(),
|
|
2689
|
+
name: faker.person.fullName(),
|
|
2690
|
+
...userFieldsForDeviceType,
|
|
2691
|
+
authUserId: genAuthUserId(),
|
|
2692
|
+
pubKey: fakePubKey(),
|
|
2693
|
+
workspaceName: fakeWorkspaceName(),
|
|
2694
|
+
u2fKeyHandle: fakePubKey(),
|
|
2695
|
+
u2fPubKey: fakePubKey(),
|
|
2696
|
+
legacyViewAll: false,
|
|
2697
|
+
role,
|
|
2698
|
+
status: ActivationStatus.ACTIVE,
|
|
2699
|
+
isSuspended: false,
|
|
2700
|
+
gateType,
|
|
2701
|
+
gateId: fakeGateId(),
|
|
2702
|
+
createdAt: faker.date.past(),
|
|
2703
|
+
updatedAt: faker.date.past(),
|
|
2704
|
+
...opts
|
|
2705
|
+
});
|
|
2706
|
+
};
|
|
2707
|
+
var genGroup = (opts) => injectSyncId({
|
|
2708
|
+
id: faker.string.uuid(),
|
|
2709
|
+
workspaceName: fakeWorkspaceName(),
|
|
2710
|
+
name: faker.person.fullName(),
|
|
2711
|
+
description: faker.lorem.sentence(10),
|
|
2712
|
+
hsmId: fakeHsmObjectId(),
|
|
2713
|
+
status: ActivationStatus.ACTIVE,
|
|
2714
|
+
gateId: fakeGateId(),
|
|
2715
|
+
gateType: "Group",
|
|
2716
|
+
createdAt: faker.date.past(),
|
|
2717
|
+
updatedAt: faker.date.past(),
|
|
2718
|
+
...opts
|
|
2719
|
+
});
|
|
2720
|
+
var genGroupWithMembers = (opts) => {
|
|
2721
|
+
const group = genGroup(opts);
|
|
2722
|
+
return {
|
|
2723
|
+
...group,
|
|
2724
|
+
members: opts?.members ?? []
|
|
2725
|
+
};
|
|
2726
|
+
};
|
|
2727
|
+
var genWhitelist = (opts) => {
|
|
2728
|
+
return injectSyncId({
|
|
2729
|
+
id: faker.string.uuid(),
|
|
2730
|
+
workspaceName: fakeWorkspaceName(),
|
|
2731
|
+
name: faker.lorem.words(3),
|
|
2732
|
+
description: faker.lorem.sentence(10),
|
|
2733
|
+
addresses: [
|
|
2734
|
+
{
|
|
2735
|
+
name: faker.lorem.words(3),
|
|
2736
|
+
currency: "bitcoin",
|
|
2737
|
+
address: faker.finance.bitcoinAddress(),
|
|
2738
|
+
destinationTags: []
|
|
2739
|
+
},
|
|
2740
|
+
{
|
|
2741
|
+
name: faker.lorem.words(3),
|
|
2742
|
+
currency: "ethereum",
|
|
2743
|
+
address: faker.finance.ethereumAddress(),
|
|
2744
|
+
destinationTags: []
|
|
2745
|
+
}
|
|
2746
|
+
],
|
|
2747
|
+
hsmId: fakeHsmObjectId(),
|
|
2748
|
+
type: faker.helpers.arrayElement(Object.values(WhitelistType)),
|
|
2749
|
+
status: faker.helpers.arrayElement(Object.values(ActivationStatus)),
|
|
2750
|
+
gateId: fakeGateId(),
|
|
2751
|
+
gateType: "Whitelist",
|
|
2752
|
+
createdAt: faker.date.past(),
|
|
2753
|
+
updatedAt: faker.date.past(),
|
|
2754
|
+
...opts
|
|
2755
|
+
});
|
|
2756
|
+
};
|
|
1816
2757
|
var zPubKey = zHexString.meta({ description: "Public key" });
|
|
1817
2758
|
var zHsmCertificate = z.object({
|
|
1818
2759
|
codeHash: z.base64().meta({ description: "Hash of the executable that generated this certificate" }),
|
|
@@ -1939,7 +2880,7 @@ var zCreatePsdUserRequestData = z14.object({
|
|
|
1939
2880
|
});
|
|
1940
2881
|
var zCreateApiUserRequestData = z14.object({
|
|
1941
2882
|
name: zUserName,
|
|
1942
|
-
pubKey: z14.string().meta({ description: "Public key" }),
|
|
2883
|
+
pubKey: z14.string().regex(/^04[0-9a-fA-F]{128}$/).meta({ description: "Public key, uncompressed secp256r1 format" }),
|
|
1943
2884
|
role: z14.enum(["ADMIN", "OPERATOR"]).meta({ description: "User role" }),
|
|
1944
2885
|
viewAll: z14.boolean().meta({ description: "View all data" }).optional()
|
|
1945
2886
|
}).meta({ description: "Create API user request data" });
|
|
@@ -2695,6 +3636,63 @@ var serializeAccount = (account) => {
|
|
|
2695
3636
|
};
|
|
2696
3637
|
return zAccountResponse.parse(response);
|
|
2697
3638
|
};
|
|
3639
|
+
var zUserResponse = z14.object({
|
|
3640
|
+
id: z14.string().meta({ description: "Internal unique identifier" }),
|
|
3641
|
+
legacyId: z14.number().meta({ description: "Legacy internal unique identifier (for retro-compatibility)" }),
|
|
3642
|
+
legacyViewAll: z14.boolean().meta({ description: "If true, user can read all resources on the workspace" }),
|
|
3643
|
+
workspaceName: z14.string().meta({ description: "User's workspace name" }),
|
|
3644
|
+
name: z14.string().meta({ description: "User name" }),
|
|
3645
|
+
deviceUserId: z14.string().nullable().meta({ description: "User's device ID (for non-API users)" }),
|
|
3646
|
+
deviceType: z14.enum(UserDeviceType).meta({ description: "User's device type" }),
|
|
3647
|
+
role: z14.enum(UserRole).meta({ description: "User role" }),
|
|
3648
|
+
pubKey: z14.string().meta({ description: "User public key" }),
|
|
3649
|
+
status: z14.enum(ActivationStatus).meta({ description: "User status" }),
|
|
3650
|
+
isSuspended: z14.boolean().meta({ description: "Whether the user is suspended" }),
|
|
3651
|
+
createdAt: z14.coerce.date().meta({ description: "Creation timestamp" }),
|
|
3652
|
+
updatedAt: z14.coerce.date().meta({ description: "Last modification timestamp" })
|
|
3653
|
+
});
|
|
3654
|
+
zUserResponse.extend({
|
|
3655
|
+
role: z14.literal(UserRole.ADMIN).meta({ description: "Should always be ADMIN" })
|
|
3656
|
+
});
|
|
3657
|
+
z14.enum([
|
|
3658
|
+
"name",
|
|
3659
|
+
"role",
|
|
3660
|
+
"status",
|
|
3661
|
+
"createdAt",
|
|
3662
|
+
"updatedAt"
|
|
3663
|
+
]).default("createdAt");
|
|
3664
|
+
|
|
3665
|
+
// src/users/app-utils.ts
|
|
3666
|
+
function serializeUser(user) {
|
|
3667
|
+
const serialized = {
|
|
3668
|
+
...user,
|
|
3669
|
+
legacyId: user.gateId
|
|
3670
|
+
};
|
|
3671
|
+
return zUserResponse.parse(serialized);
|
|
3672
|
+
}
|
|
3673
|
+
|
|
3674
|
+
// src/groups/app-types.ts
|
|
3675
|
+
var zGroupResponse = z14.object({
|
|
3676
|
+
id: z14.string().meta({ description: "Internal unique identifier" }),
|
|
3677
|
+
legacyId: z14.number().meta({ description: "Legacy internal unique identifier (for retro-compatibility)" }),
|
|
3678
|
+
name: z14.string().meta({ description: "Group name" }),
|
|
3679
|
+
description: z14.string().nullable().meta({ description: "Group description" }),
|
|
3680
|
+
status: z14.enum(ActivationStatus).meta({ description: "Group status" }),
|
|
3681
|
+
members: z14.array(zUserResponse).meta({ description: "Group members" }),
|
|
3682
|
+
createdAt: z14.coerce.date().meta({ description: "Creation timestamp" }),
|
|
3683
|
+
updatedAt: z14.coerce.date().meta({ description: "Last modification timestamp" })
|
|
3684
|
+
});
|
|
3685
|
+
z14.enum(["name", "status", "createdAt", "updatedAt"]).default("createdAt");
|
|
3686
|
+
|
|
3687
|
+
// src/groups/app-utils.ts
|
|
3688
|
+
function serializeGroup(group) {
|
|
3689
|
+
const serialized = {
|
|
3690
|
+
...group,
|
|
3691
|
+
legacyId: group.gateId,
|
|
3692
|
+
members: group.members.map(serializeUser)
|
|
3693
|
+
};
|
|
3694
|
+
return zGroupResponse.parse(serialized);
|
|
3695
|
+
}
|
|
2698
3696
|
|
|
2699
3697
|
// src/compat/patch-request-expired-at.ts
|
|
2700
3698
|
var patchRequestExpiredAt = (data) => ({
|
|
@@ -3062,6 +4060,31 @@ function serializeVaultRequest(request) {
|
|
|
3062
4060
|
patched = patchTezosRequestData(patched);
|
|
3063
4061
|
return patched;
|
|
3064
4062
|
}
|
|
4063
|
+
var zWhitelistAddressResponse = z14.object({
|
|
4064
|
+
name: z14.string().min(1).max(50).meta({ description: "Address name" }),
|
|
4065
|
+
currency: zCurrencyString.meta({ description: "Address currency" }),
|
|
4066
|
+
address: z14.string().min(1).max(200).meta({ description: "Address value" }),
|
|
4067
|
+
destinationTags: z14.array(z14.string().min(1).regex(/^\w+$/)).optional().meta({ description: "List of destination tags (applicable for Ripple currency)" })
|
|
4068
|
+
});
|
|
4069
|
+
var zWhitelistResponse = z14.object({
|
|
4070
|
+
id: z14.string().meta({ description: "Internal unique identifier" }),
|
|
4071
|
+
legacyId: z14.number().meta({ description: "Legacy internal unique identifier (for retro-compatibility)" }),
|
|
4072
|
+
name: z14.string().meta({ description: "Whitelist name" }),
|
|
4073
|
+
status: z14.enum(ActivationStatus).meta({ description: "Whitelist status" }),
|
|
4074
|
+
addresses: z14.array(zWhitelistAddressResponse),
|
|
4075
|
+
createdAt: z14.coerce.date().meta({ description: "Creation timestamp" }),
|
|
4076
|
+
updatedAt: z14.coerce.date().meta({ description: "Last modification timestamp" }),
|
|
4077
|
+
description: z14.string().nullable().meta({ description: "Whitelist description" })
|
|
4078
|
+
}).meta({ description: "Whitelist", id: "WhitelistResponse" });
|
|
4079
|
+
z14.enum(["name", "status", "createdAt", "updatedAt"]).default("createdAt");
|
|
4080
|
+
var serializeWhitelist = (whitelist) => {
|
|
4081
|
+
const serialized = {
|
|
4082
|
+
...whitelist,
|
|
4083
|
+
legacyId: whitelist.gateId,
|
|
4084
|
+
addresses: z.array(zWhitelistAddressResponse).parse(whitelist.addresses)
|
|
4085
|
+
};
|
|
4086
|
+
return zWhitelistResponse.parse(serialized);
|
|
4087
|
+
};
|
|
3065
4088
|
|
|
3066
4089
|
// src/__fakes__/responses.ts
|
|
3067
4090
|
function genVaultRequestResponse(opts, reviews = []) {
|
|
@@ -3074,8 +4097,23 @@ function genAccountResponse(overrides) {
|
|
|
3074
4097
|
const account = serializeAccount(dbAccount);
|
|
3075
4098
|
return zAccountResponse.parse(account);
|
|
3076
4099
|
}
|
|
4100
|
+
function genUserResponse(overrides) {
|
|
4101
|
+
const dbUser = genUser(overrides);
|
|
4102
|
+
const user = serializeUser(dbUser);
|
|
4103
|
+
return zUserResponse.parse(user);
|
|
4104
|
+
}
|
|
4105
|
+
function genGroupResponse(overrides) {
|
|
4106
|
+
const dbGroup = genGroupWithMembers(overrides);
|
|
4107
|
+
const group = serializeGroup(dbGroup);
|
|
4108
|
+
return zGroupResponse.parse(group);
|
|
4109
|
+
}
|
|
4110
|
+
function genWhitelistResponse(overrides) {
|
|
4111
|
+
const dbWhitelist = genWhitelist(overrides);
|
|
4112
|
+
const whitelist = serializeWhitelist(dbWhitelist);
|
|
4113
|
+
return zWhitelistResponse.parse(whitelist);
|
|
4114
|
+
}
|
|
3077
4115
|
/* v8 ignore next -- @preserve */
|
|
3078
4116
|
|
|
3079
|
-
export { genAccountResponse, genVaultRequestResponse, genVaultRequestReview };
|
|
4117
|
+
export { genAccountResponse, genCreateTransactionData, genGroupResponse, genRequestData, genUserResponse, genVaultRequestResponse, genVaultRequestReview, genWhitelistResponse };
|
|
3080
4118
|
//# sourceMappingURL=fakes.mjs.map
|
|
3081
4119
|
//# sourceMappingURL=fakes.mjs.map
|