@ledgerhq/revault-api 1.43.0 → 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-BxhO5dk7.d.mts → app-types-TiTgl5lF.d.mts} +268 -5
- package/lib/fakes.d.mts +48 -4
- package/lib/fakes.mjs +1114 -29
- package/lib/fakes.mjs.map +1 -1
- package/lib/index.d.mts +311 -165
- package/package.json +2 -3
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]+$/);
|
|
@@ -14,7 +15,8 @@ var zCurrencyString = z.string().nonempty().max(40).regex(/^\w+$/).meta({ descri
|
|
|
14
15
|
var zNetwork = z.string().nonempty().max(40).regex(/^\w+$/).meta({ description: "Network (Same as currency for now)" });
|
|
15
16
|
var zCurrency = z.object({
|
|
16
17
|
network: zNetwork,
|
|
17
|
-
contractAddress: z.string().nonempty().nullable().meta({ description: "Token
|
|
18
|
+
contractAddress: z.string().nonempty().nullable().meta({ description: "Token issuer" }),
|
|
19
|
+
tokenIdentifier: z.string().nonempty().nullable().meta({ description: "Token identifier" })
|
|
18
20
|
});
|
|
19
21
|
z.string().regex(/^[\w-]+$/).nonempty();
|
|
20
22
|
var zHsmObjectId = z.string().regex(/^[\w-]+$/).nonempty();
|
|
@@ -26,7 +28,21 @@ z.codec(z.iso.datetime(), z.date(), {
|
|
|
26
28
|
});
|
|
27
29
|
|
|
28
30
|
// src/networks/common.ts
|
|
29
|
-
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
|
+
};
|
|
30
46
|
var zHexDataString = z14.codec(z14.string().regex(/^(?:0x|0X)?[a-fA-F0-9]+$/), z14.string(), {
|
|
31
47
|
decode: (hex) => `0x${hex.toLowerCase().replace("0x", "")}`,
|
|
32
48
|
encode: (hex) => hex
|
|
@@ -88,19 +104,22 @@ var zBitcoinLikeSendData = zCommonTransactionData.extend({
|
|
|
88
104
|
id: "BitcoinLikeSendData"
|
|
89
105
|
});
|
|
90
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" });
|
|
91
111
|
var zBitcoinLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
92
112
|
zCommonTransactionResponse.extend({ type: zBitcoinLikeTransactionType }).meta({ description: "Bitcoin-like transaction" })
|
|
93
113
|
]);
|
|
94
114
|
|
|
95
115
|
// src/networks/bitcoin/index.ts
|
|
96
116
|
var BITCOIN_SPEC = {
|
|
97
|
-
family: NetworkFamily.BITCOIN_LIKE,
|
|
98
117
|
zAssetFields: zBitcoinLikeAssetFields,
|
|
99
118
|
zLiveData: zBitcoinLikeLiveData,
|
|
100
119
|
zTransactionType: zBitcoinLikeTransactionType,
|
|
101
120
|
zTransactionData: zBitcoinLikeTransactionData,
|
|
102
121
|
zSendTransactionData: zBitcoinLikeSendData,
|
|
103
|
-
zEstimatedFees:
|
|
122
|
+
zEstimatedFees: zBitcoinLikeEstimatedFees,
|
|
104
123
|
zTransactionResponse: zBitcoinLikeTransactionResponse,
|
|
105
124
|
zStakingFields: z14.never()};
|
|
106
125
|
var zCantonTransferProposal = z14.object({
|
|
@@ -122,13 +141,41 @@ var zCantonLikeAssetFields = z14.object({
|
|
|
122
141
|
var zCantonLikeLiveData = zCommonLiveData.extend({
|
|
123
142
|
type: z14.literal(NetworkFamily.CANTON_LIKE).meta({ description: "Account type" })
|
|
124
143
|
}).meta({ description: "Canton-like" });
|
|
125
|
-
var zCantonLikeTransactionType = z14.enum([
|
|
144
|
+
var zCantonLikeTransactionType = z14.enum([
|
|
145
|
+
"CANTON_LIKE_SEND",
|
|
146
|
+
"CANTON_LIKE_SEND_TOKEN",
|
|
147
|
+
"CANTON_LIKE_WITHDRAW",
|
|
148
|
+
"CANTON_LIKE_RECEIVE",
|
|
149
|
+
"CANTON_LIKE_PRE_APPROVAL",
|
|
150
|
+
"CANTON_LIKE_TAP"
|
|
151
|
+
]).meta({ description: "Canton-like transaction type" });
|
|
152
|
+
var zExecuteBeforeSeconds = z14.number().int().positive().optional().meta({ description: "Execute before seconds" });
|
|
126
153
|
var zCantonLikeSendData = zCommonTransactionData.omit({ maxFee: true }).extend({
|
|
154
|
+
executeBeforeSeconds: zExecuteBeforeSeconds,
|
|
127
155
|
type: z14.literal(zCantonLikeTransactionType.enum.CANTON_LIKE_SEND)
|
|
128
156
|
}).meta({
|
|
129
157
|
description: "Canton-like send data",
|
|
130
158
|
id: "CantonLikeSendData"
|
|
131
159
|
});
|
|
160
|
+
var zCantonLikeSendTokenData = zCommonTransactionData.omit({ maxFee: true }).extend({
|
|
161
|
+
executeBeforeSeconds: zExecuteBeforeSeconds,
|
|
162
|
+
type: z14.literal(zCantonLikeTransactionType.enum.CANTON_LIKE_SEND_TOKEN)
|
|
163
|
+
}).meta({
|
|
164
|
+
description: "Canton-like send token data",
|
|
165
|
+
id: "CantonLikeSendTokenData"
|
|
166
|
+
});
|
|
167
|
+
var zCantonLikeWithdrawData = z14.object({
|
|
168
|
+
currency: zCurrencyString.meta({
|
|
169
|
+
description: "Will be deprecated soon, use Account.network. Transfer currency"
|
|
170
|
+
}),
|
|
171
|
+
// TODO: to remove, use account.network instead
|
|
172
|
+
transferProposal: zCantonTransferProposal,
|
|
173
|
+
reason: z14.string().nullable().meta({ description: "Reason of the verdict" }),
|
|
174
|
+
type: z14.literal(zCantonLikeTransactionType.enum.CANTON_LIKE_WITHDRAW)
|
|
175
|
+
}).meta({
|
|
176
|
+
description: "Canton-like withdraw data",
|
|
177
|
+
id: "CantonLikeWithdrawData"
|
|
178
|
+
});
|
|
132
179
|
var zCantonLikeReceiveData = z14.object({
|
|
133
180
|
currency: zCurrencyString.meta({
|
|
134
181
|
description: "Will be deprecated soon, use Account.network. Transfer currency"
|
|
@@ -163,6 +210,8 @@ var zCantonLikeTapData = zCommonTransactionData.extend({
|
|
|
163
210
|
});
|
|
164
211
|
var zCantonLikeTransactionData = z14.discriminatedUnion("type", [
|
|
165
212
|
zCantonLikeSendData,
|
|
213
|
+
zCantonLikeSendTokenData,
|
|
214
|
+
zCantonLikeWithdrawData,
|
|
166
215
|
zCantonLikeReceiveData,
|
|
167
216
|
zCantonLikePreApprovalData,
|
|
168
217
|
zCantonLikeTapData
|
|
@@ -173,7 +222,6 @@ var zCantonLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
173
222
|
|
|
174
223
|
// src/networks/canton/index.ts
|
|
175
224
|
var CANTON_SPEC = {
|
|
176
|
-
family: NetworkFamily.CANTON_LIKE,
|
|
177
225
|
zAssetFields: zCantonLikeAssetFields,
|
|
178
226
|
zLiveData: zCantonLikeLiveData,
|
|
179
227
|
zTransactionType: zCantonLikeTransactionType,
|
|
@@ -270,7 +318,6 @@ var zCardanoLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
270
318
|
|
|
271
319
|
// src/networks/cardano/index.ts
|
|
272
320
|
var CARDANO_SPEC = {
|
|
273
|
-
family: NetworkFamily.CARDANO_LIKE,
|
|
274
321
|
zAssetFields: zCardanoLikeAssetFields,
|
|
275
322
|
zLiveData: zCardanoLikeLiveData,
|
|
276
323
|
zTransactionType: zCardanoLikeTransactionType,
|
|
@@ -372,7 +419,6 @@ var zEthereumLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
372
419
|
|
|
373
420
|
// src/networks/ethereum/index.ts
|
|
374
421
|
var ETHEREUM_SPEC = {
|
|
375
|
-
family: NetworkFamily.ETHEREUM_LIKE,
|
|
376
422
|
zAssetFields: zEthereumLikeAssetFields,
|
|
377
423
|
zLiveData: zEthereumLikeLiveData,
|
|
378
424
|
zTransactionType: zEthereumLikeTransactionType,
|
|
@@ -402,7 +448,6 @@ var zGenericTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
402
448
|
|
|
403
449
|
// src/networks/generic/index.ts
|
|
404
450
|
var GENERIC_SPEC = {
|
|
405
|
-
family: NetworkFamily.GENERIC_LIKE,
|
|
406
451
|
zAssetFields: zGenericAssetFields,
|
|
407
452
|
zLiveData: zGenericLiveData,
|
|
408
453
|
zTransactionType: zGenericTransactionType,
|
|
@@ -454,7 +499,6 @@ var zHederaLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
454
499
|
|
|
455
500
|
// src/networks/hedera/index.ts
|
|
456
501
|
var HEDERA_SPEC = {
|
|
457
|
-
family: NetworkFamily.HEDERA_LIKE,
|
|
458
502
|
zAssetFields: zHederaLikeAssetFields,
|
|
459
503
|
zLiveData: zHederaLikeLiveData,
|
|
460
504
|
zTransactionType: zHederaLikeTransactionType,
|
|
@@ -650,7 +694,6 @@ var zPolkadotLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
650
694
|
|
|
651
695
|
// src/networks/polkadot/index.ts
|
|
652
696
|
var POLKADOT_SPEC = {
|
|
653
|
-
family: NetworkFamily.POLKADOT_LIKE,
|
|
654
697
|
zAssetFields: zPolkadotLikeAssetFields,
|
|
655
698
|
zLiveData: zPolkadotLikeLiveData,
|
|
656
699
|
zTransactionType: zPolkadotLikeTransactionType,
|
|
@@ -690,7 +733,6 @@ var zRippleLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
690
733
|
|
|
691
734
|
// src/networks/ripple/index.ts
|
|
692
735
|
var RIPPLE_SPEC = {
|
|
693
|
-
family: NetworkFamily.RIPPLE_LIKE,
|
|
694
736
|
zAssetFields: zRippleLikeAssetFields,
|
|
695
737
|
zLiveData: zRippleLikeLiveData,
|
|
696
738
|
zTransactionType: zRippleLikeTransactionType,
|
|
@@ -886,7 +928,6 @@ var zSolanaLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
886
928
|
|
|
887
929
|
// src/networks/solana/index.ts
|
|
888
930
|
var SOLANA_SPEC = {
|
|
889
|
-
family: NetworkFamily.SOLANA_LIKE,
|
|
890
931
|
zAssetFields: zSolanaLikeAssetFields,
|
|
891
932
|
zLiveData: zSolanaLikeLiveData,
|
|
892
933
|
zTransactionType: zSolanaLikeTransactionType,
|
|
@@ -936,7 +977,6 @@ var zStellarLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
936
977
|
|
|
937
978
|
// src/networks/stellar/index.ts
|
|
938
979
|
var STELLAR_SPEC = {
|
|
939
|
-
family: NetworkFamily.STELLAR_LIKE,
|
|
940
980
|
zAssetFields: zStellarLikeAssetFields,
|
|
941
981
|
zLiveData: zStellarLikeLiveData,
|
|
942
982
|
zTransactionType: zStellarLikeTransactionType,
|
|
@@ -1026,7 +1066,6 @@ var zSuiLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
1026
1066
|
|
|
1027
1067
|
// src/networks/sui/index.ts
|
|
1028
1068
|
var SUI_SPEC = {
|
|
1029
|
-
family: NetworkFamily.SUI_LIKE,
|
|
1030
1069
|
zAssetFields: zSuiLikeAssetFields,
|
|
1031
1070
|
zLiveData: zSuiLikeLiveData,
|
|
1032
1071
|
zTransactionType: zSuiLikeTransactionType,
|
|
@@ -1103,7 +1142,6 @@ var zTezosLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
1103
1142
|
|
|
1104
1143
|
// src/networks/tezos/index.ts
|
|
1105
1144
|
var TEZOS_SPEC = {
|
|
1106
|
-
family: NetworkFamily.TEZOS_LIKE,
|
|
1107
1145
|
zAssetFields: zTezosLikeAssetFields,
|
|
1108
1146
|
zLiveData: zTezosLikeLiveData,
|
|
1109
1147
|
zTransactionType: zTezosLikeTransactionType,
|
|
@@ -1151,7 +1189,6 @@ var zTronLikeTransactionResponse = z14.discriminatedUnion("type", [
|
|
|
1151
1189
|
|
|
1152
1190
|
// src/networks/tron/index.ts
|
|
1153
1191
|
var TRON_SPEC = {
|
|
1154
|
-
family: NetworkFamily.TRON_LIKE,
|
|
1155
1192
|
zAssetFields: zTronLikeAssetFields,
|
|
1156
1193
|
zLiveData: zTronLikeLiveData,
|
|
1157
1194
|
zTransactionType: zTronLikeTransactionType,
|
|
@@ -1201,6 +1238,7 @@ z14.discriminatedUnion("type", [
|
|
|
1201
1238
|
TEZOS_SPEC.zStakingFields
|
|
1202
1239
|
]);
|
|
1203
1240
|
z14.discriminatedUnion("type", [
|
|
1241
|
+
BITCOIN_SPEC.zEstimatedFees,
|
|
1204
1242
|
ETHEREUM_SPEC.zEstimatedFees,
|
|
1205
1243
|
HEDERA_SPEC.zEstimatedFees,
|
|
1206
1244
|
RIPPLE_SPEC.zEstimatedFees,
|
|
@@ -1239,11 +1277,6 @@ z14.union([
|
|
|
1239
1277
|
...TEZOS_SPEC.zTransactionType.enum,
|
|
1240
1278
|
...TRON_SPEC.zTransactionType.enum
|
|
1241
1279
|
});
|
|
1242
|
-
({
|
|
1243
|
-
...NetworkFamily,
|
|
1244
|
-
// TODO: Sometimes `NetworkFamily` is not a `TransactionType` prefix - but why?
|
|
1245
|
-
[NetworkFamily.GENERIC_LIKE]: "GENERIC"
|
|
1246
|
-
});
|
|
1247
1280
|
var zTransactionData = z14.discriminatedUnion("type", [
|
|
1248
1281
|
...BITCOIN_SPEC.zTransactionData.options,
|
|
1249
1282
|
...CANTON_SPEC.zTransactionData.options,
|
|
@@ -1303,6 +1336,14 @@ var buildGateSyncId = (workspaceName, gateType, gateId) => {
|
|
|
1303
1336
|
|
|
1304
1337
|
// src/utils.ts
|
|
1305
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);
|
|
1306
1347
|
var ensureNonEmptyArray = (values, message) => {
|
|
1307
1348
|
invariant8(
|
|
1308
1349
|
values.length > 0,
|
|
@@ -1317,7 +1358,8 @@ function unreachable(value) {
|
|
|
1317
1358
|
// src/__fakes__/faker-utils.ts
|
|
1318
1359
|
var fakeUniqueName = (length = 20) => faker.string.alphanumeric({ length, casing: "lower" });
|
|
1319
1360
|
var fakeHexString = (length, casing = "upper") => faker.string.hexadecimal({ prefix: "", casing, length });
|
|
1320
|
-
var fakePubKey = () =>
|
|
1361
|
+
var fakePubKey = () => new ec("p256").genKeyPair().getPublic(false, "hex");
|
|
1362
|
+
var fakeDeviceUserId = () => faker.string.hexadecimal({ prefix: "", casing: "upper", length: 16 });
|
|
1321
1363
|
var fakeIntegerId = () => faker.number.int({ min: 1, max: 2e9 });
|
|
1322
1364
|
var fakeGateId = fakeIntegerId;
|
|
1323
1365
|
var fakeBase64String = (length) => btoa(faker.string.sample(length));
|
|
@@ -1342,6 +1384,8 @@ var fakeWorkspaceName = () => faker.string.alphanumeric({ length: 16, casing: "l
|
|
|
1342
1384
|
// src/__fakes__/canton.ts
|
|
1343
1385
|
var fakeCantonAddress = (role) => `${role}-${faker.lorem.word()}::${fakeHexString(68, "lower")}`;
|
|
1344
1386
|
var fakeCantonPartyId = () => fakeCantonAddress("party");
|
|
1387
|
+
var fakeCantonContractId = () => fakeHexString(138, "lower");
|
|
1388
|
+
var fakeCantonInstrumentId = () => fakeHexString(10, "lower");
|
|
1345
1389
|
var injectSyncId = (obj) => {
|
|
1346
1390
|
let { syncId } = obj;
|
|
1347
1391
|
if (syncId === void 0) {
|
|
@@ -1399,6 +1443,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1399
1443
|
derivationPath: "84'/0'/0'",
|
|
1400
1444
|
address: null,
|
|
1401
1445
|
contractAddress: null,
|
|
1446
|
+
tokenIdentifier: null,
|
|
1402
1447
|
xpub: fakeHexString(120),
|
|
1403
1448
|
hsmXpub,
|
|
1404
1449
|
hsmChainCode
|
|
@@ -1410,6 +1455,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1410
1455
|
derivationPath: "44'/60'/0'",
|
|
1411
1456
|
address: faker.finance.ethereumAddress(),
|
|
1412
1457
|
contractAddress: null,
|
|
1458
|
+
tokenIdentifier: null,
|
|
1413
1459
|
xpub: null,
|
|
1414
1460
|
hsmXpub,
|
|
1415
1461
|
hsmChainCode
|
|
@@ -1421,6 +1467,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1421
1467
|
derivationPath: "44'/6767'/0'/0'/0'",
|
|
1422
1468
|
address: fakeCantonPartyId(),
|
|
1423
1469
|
contractAddress: null,
|
|
1470
|
+
tokenIdentifier: null,
|
|
1424
1471
|
xpub: null,
|
|
1425
1472
|
hsmXpub,
|
|
1426
1473
|
hsmChainCode: null
|
|
@@ -1432,6 +1479,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1432
1479
|
derivationPath: "1852'/1815'/0'",
|
|
1433
1480
|
address: `addr${faker.string.alphanumeric({ length: 100, casing: "lower" })}`,
|
|
1434
1481
|
contractAddress: null,
|
|
1482
|
+
tokenIdentifier: null,
|
|
1435
1483
|
xpub: null,
|
|
1436
1484
|
hsmXpub,
|
|
1437
1485
|
hsmChainCode
|
|
@@ -1443,6 +1491,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1443
1491
|
derivationPath: "44'/501'/0'",
|
|
1444
1492
|
address: faker.string.alphanumeric({ length: 44, casing: "lower" }),
|
|
1445
1493
|
contractAddress: null,
|
|
1494
|
+
tokenIdentifier: null,
|
|
1446
1495
|
xpub: null,
|
|
1447
1496
|
hsmXpub,
|
|
1448
1497
|
hsmChainCode: null
|
|
@@ -1454,6 +1503,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1454
1503
|
derivationPath: "44'/1729'/0'",
|
|
1455
1504
|
address: `tz${faker.string.alphanumeric({ length: 34, casing: "mixed" })}`,
|
|
1456
1505
|
contractAddress: null,
|
|
1506
|
+
tokenIdentifier: null,
|
|
1457
1507
|
xpub: null,
|
|
1458
1508
|
hsmXpub,
|
|
1459
1509
|
hsmChainCode
|
|
@@ -1465,6 +1515,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1465
1515
|
derivationPath: "44'/148'/0'",
|
|
1466
1516
|
address: faker.string.alphanumeric({ length: 56, casing: "upper" }),
|
|
1467
1517
|
contractAddress: null,
|
|
1518
|
+
tokenIdentifier: null,
|
|
1468
1519
|
xpub: null,
|
|
1469
1520
|
hsmXpub,
|
|
1470
1521
|
hsmChainCode
|
|
@@ -1476,6 +1527,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1476
1527
|
derivationPath: "44'/144'/0'",
|
|
1477
1528
|
address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
|
|
1478
1529
|
contractAddress: null,
|
|
1530
|
+
tokenIdentifier: null,
|
|
1479
1531
|
xpub: `xpub${faker.string.alphanumeric({ length: 107, casing: "mixed" })}`,
|
|
1480
1532
|
hsmXpub,
|
|
1481
1533
|
hsmChainCode
|
|
@@ -1487,6 +1539,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1487
1539
|
derivationPath: "44'/354'/0'",
|
|
1488
1540
|
address: faker.string.alphanumeric({ length: 48, casing: "mixed" }),
|
|
1489
1541
|
contractAddress: null,
|
|
1542
|
+
tokenIdentifier: null,
|
|
1490
1543
|
xpub: null,
|
|
1491
1544
|
hsmXpub,
|
|
1492
1545
|
hsmChainCode: null
|
|
@@ -1498,6 +1551,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1498
1551
|
derivationPath: "44'/195'/0'",
|
|
1499
1552
|
address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
|
|
1500
1553
|
contractAddress: null,
|
|
1554
|
+
tokenIdentifier: null,
|
|
1501
1555
|
xpub: null,
|
|
1502
1556
|
hsmXpub,
|
|
1503
1557
|
hsmChainCode
|
|
@@ -1509,6 +1563,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1509
1563
|
derivationPath: "44'/784'/0'",
|
|
1510
1564
|
address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
|
|
1511
1565
|
contractAddress: null,
|
|
1566
|
+
tokenIdentifier: null,
|
|
1512
1567
|
xpub: null,
|
|
1513
1568
|
hsmXpub,
|
|
1514
1569
|
hsmChainCode: null
|
|
@@ -1520,6 +1575,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1520
1575
|
derivationPath: "44'/3030'/0'",
|
|
1521
1576
|
address: faker.string.hexadecimal({ length: 34, casing: "mixed" }),
|
|
1522
1577
|
contractAddress: null,
|
|
1578
|
+
tokenIdentifier: null,
|
|
1523
1579
|
xpub: null,
|
|
1524
1580
|
hsmXpub,
|
|
1525
1581
|
hsmChainCode
|
|
@@ -1531,6 +1587,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1531
1587
|
derivationPath: "44'/118'/0'",
|
|
1532
1588
|
address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
|
|
1533
1589
|
contractAddress: null,
|
|
1590
|
+
tokenIdentifier: null,
|
|
1534
1591
|
xpub: null,
|
|
1535
1592
|
hsmXpub,
|
|
1536
1593
|
hsmChainCode
|
|
@@ -1542,6 +1599,7 @@ var genAssetFieldsForType = (type) => {
|
|
|
1542
1599
|
derivationPath: "44'/118'/0'",
|
|
1543
1600
|
address: null,
|
|
1544
1601
|
contractAddress: null,
|
|
1602
|
+
tokenIdentifier: null,
|
|
1545
1603
|
xpub: null,
|
|
1546
1604
|
hsmXpub,
|
|
1547
1605
|
hsmChainCode
|
|
@@ -1607,6 +1665,482 @@ var genAccount = (opts) => {
|
|
|
1607
1665
|
...rest
|
|
1608
1666
|
});
|
|
1609
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
|
+
};
|
|
1610
2144
|
var shouldHaveTargetHsmId = (request) => {
|
|
1611
2145
|
switch (request.type) {
|
|
1612
2146
|
case RequestType.CREATE_ENTITY:
|
|
@@ -1698,8 +2232,368 @@ var shouldHaveTargetId = (request) => {
|
|
|
1698
2232
|
return true;
|
|
1699
2233
|
}
|
|
1700
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
|
+
};
|
|
1701
2509
|
|
|
1702
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
|
+
};
|
|
1703
2597
|
var genRequestReviewSteps = (numSteps) => times(1, () => ({ stageName: "default", quorum: 2 }));
|
|
1704
2598
|
var genVaultRequest = (opts) => {
|
|
1705
2599
|
const { type, state = RequestState.PENDING_APPROVAL, data, ...custom } = opts;
|
|
@@ -1768,6 +2662,98 @@ var genVaultRequestReview = (opts) => {
|
|
|
1768
2662
|
...opts
|
|
1769
2663
|
};
|
|
1770
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
|
+
};
|
|
1771
2757
|
var zPubKey = zHexString.meta({ description: "Public key" });
|
|
1772
2758
|
var zHsmCertificate = z.object({
|
|
1773
2759
|
codeHash: z.base64().meta({ description: "Hash of the executable that generated this certificate" }),
|
|
@@ -1894,7 +2880,7 @@ var zCreatePsdUserRequestData = z14.object({
|
|
|
1894
2880
|
});
|
|
1895
2881
|
var zCreateApiUserRequestData = z14.object({
|
|
1896
2882
|
name: zUserName,
|
|
1897
|
-
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" }),
|
|
1898
2884
|
role: z14.enum(["ADMIN", "OPERATOR"]).meta({ description: "User role" }),
|
|
1899
2885
|
viewAll: z14.boolean().meta({ description: "View all data" }).optional()
|
|
1900
2886
|
}).meta({ description: "Create API user request data" });
|
|
@@ -2285,6 +3271,7 @@ var zAccountCommonFields = z14.object({
|
|
|
2285
3271
|
currency: zCurrencyString,
|
|
2286
3272
|
network: zNetwork,
|
|
2287
3273
|
contractAddress: z14.string().nullable().meta({ description: "Token contract address for Token account" }),
|
|
3274
|
+
tokenIdentifier: z14.string().nullable().meta({ description: "Token identifier for Token account" }),
|
|
2288
3275
|
index: z14.number().gte(0).meta({ description: "BIP44 account index" }),
|
|
2289
3276
|
derivationPath: z14.string().meta({ description: "Derivation path" }),
|
|
2290
3277
|
status: z14.enum(ActivationStatus).meta({ description: "Status" }),
|
|
@@ -2500,7 +3487,8 @@ var zCreateAccountUserInputData = z14.object({
|
|
|
2500
3487
|
currency: zCurrencyString,
|
|
2501
3488
|
// "bitcoin"
|
|
2502
3489
|
index: z14.number().nonnegative().optional().meta({ description: "Account index" }),
|
|
2503
|
-
contractAddress: z14.string().
|
|
3490
|
+
contractAddress: z14.string().nonempty().nullable().meta({ description: "Token issuer" }),
|
|
3491
|
+
tokenIdentifier: z14.string().nonempty().nullable().meta({ description: "Token identifier" }),
|
|
2504
3492
|
governance: zCreateAccountGovernanceData
|
|
2505
3493
|
});
|
|
2506
3494
|
var zCreateAccountRequestData = zCreateAccountUserInputData.omit({ index: true }).extend({
|
|
@@ -2648,6 +3636,63 @@ var serializeAccount = (account) => {
|
|
|
2648
3636
|
};
|
|
2649
3637
|
return zAccountResponse.parse(response);
|
|
2650
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
|
+
}
|
|
2651
3696
|
|
|
2652
3697
|
// src/compat/patch-request-expired-at.ts
|
|
2653
3698
|
var patchRequestExpiredAt = (data) => ({
|
|
@@ -3015,6 +4060,31 @@ function serializeVaultRequest(request) {
|
|
|
3015
4060
|
patched = patchTezosRequestData(patched);
|
|
3016
4061
|
return patched;
|
|
3017
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
|
+
};
|
|
3018
4088
|
|
|
3019
4089
|
// src/__fakes__/responses.ts
|
|
3020
4090
|
function genVaultRequestResponse(opts, reviews = []) {
|
|
@@ -3027,8 +4097,23 @@ function genAccountResponse(overrides) {
|
|
|
3027
4097
|
const account = serializeAccount(dbAccount);
|
|
3028
4098
|
return zAccountResponse.parse(account);
|
|
3029
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
|
+
}
|
|
3030
4115
|
/* v8 ignore next -- @preserve */
|
|
3031
4116
|
|
|
3032
|
-
export { genAccountResponse, genVaultRequestResponse, genVaultRequestReview };
|
|
4117
|
+
export { genAccountResponse, genCreateTransactionData, genGroupResponse, genRequestData, genUserResponse, genVaultRequestResponse, genVaultRequestReview, genWhitelistResponse };
|
|
3033
4118
|
//# sourceMappingURL=fakes.mjs.map
|
|
3034
4119
|
//# sourceMappingURL=fakes.mjs.map
|