@ledgerhq/revault-api 1.39.1 → 1.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/fakes.mjs CHANGED
@@ -1,69 +1,10 @@
1
1
  import { __export } from './chunk-J5LGTIGS.mjs';
2
2
  import { faker } from '@faker-js/faker';
3
- import { AllowedAction, AccountType, ChallengeType, PsdModel, UserRole, UserRegistrationState, AdminPermission, RequestType, MessageType, AccountGovernanceType, ActivationStatus, WhitelistType, RequestReviewStatus, RequestState, GateAccountType } from '@prisma/client';
4
- import z10, { z } from 'zod';
3
+ import { AccountType, ChallengeType, PsdModel, UserRole, UserRegistrationState, AllowedAction, AdminPermission, MessageType, RequestType, AccountGovernanceType, ActivationStatus, WhitelistType, RequestReviewStatus, RequestState, GateAccountType } from '@prisma/client';
4
+ import { omit, times, get, isPlainObject } from 'lodash';
5
5
  import 'axios';
6
6
  import invariant from 'invariant';
7
- import { omit, times, get, isPlainObject } from 'lodash';
8
-
9
- var zHexString = z.string().regex(/^[0-9a-fA-F]+$/);
10
- var zIntString = z.string().nonempty().regex(/^(-?[1-9]\d*|0)$/);
11
- var zUnsignedIntString = z.string().nonempty().regex(/^([1-9]\d*|0)$/);
12
- var zCurrencyString = z.string().nonempty().max(40).regex(/^\w+$/).meta({ description: "Will be deprecated soon, use network instead. Currency" });
13
- var zNetwork = z.string().nonempty().max(40).regex(/^\w+$/).meta({ description: "Network (Same as currency for now)" });
14
- var zCurrency = z.object({
15
- network: zNetwork,
16
- contractAddress: z.string().nonempty().nullable().meta({ description: "Token contract address" })
17
- });
18
- z.string().regex(/^[\w-]+$/).nonempty();
19
- var zHsmObjectId = z.string().regex(/^[\w-]+$/).nonempty();
20
- z.codec(z.iso.datetime(), z.date(), {
21
- decode: (isoString) => new Date(isoString),
22
- // ISO string → Date
23
- encode: (date) => date.toISOString()
24
- // Date → ISO string
25
- });
26
-
27
- // src/types/operation.ts
28
- var zValueTransactionOperationType = z.enum([
29
- AllowedAction.SEND,
30
- AllowedAction.STAKE,
31
- AllowedAction.DEPLOY_CONTRACT,
32
- AllowedAction.EXECUTE_CONTRACT,
33
- AllowedAction.ACTIVATE_TOKEN
34
- ]);
35
- var zValueTransactionOperation = z.object({
36
- type: zValueTransactionOperationType,
37
- currency: zCurrencyString,
38
- recipient: z.string().nonempty(),
39
- destinationTag: z.string().nonempty().optional(),
40
- value: zUnsignedIntString
41
- });
42
- var zSigningOperationType = z.enum([AllowedAction.SIGN_MESSAGE, AllowedAction.SIGN_DIGESTS]);
43
- var zSigningOperation = z.object({
44
- type: zSigningOperationType
45
- });
46
- var zClassicOperationType = z.enum([
47
- AllowedAction.SEND,
48
- AllowedAction.STAKE,
49
- AllowedAction.DEPLOY_CONTRACT,
50
- AllowedAction.EXECUTE_CONTRACT,
51
- AllowedAction.SIGN_MESSAGE,
52
- AllowedAction.ACTIVATE_TOKEN
53
- ]);
54
- z.enum([AllowedAction.SIGN_DIGESTS]);
55
- var zOperationType = z.enum([
56
- ...zValueTransactionOperationType.options,
57
- ...zSigningOperationType.options
58
- ]);
59
- z.discriminatedUnion("type", [
60
- zValueTransactionOperation,
61
- zSigningOperation
62
- ]);
63
- var zNote = z10.object({
64
- title: z10.string().meta({ description: "Note title" }),
65
- content: z10.string().meta({ description: "Note content" })
66
- });
7
+ import z9, { z } from 'zod';
67
8
 
68
9
  // src/errors.ts
69
10
  var ValidationError = class extends Error {
@@ -90,323 +31,598 @@ var ensureNonEmptyArray = (values, message) => {
90
31
  function unreachable(value) {
91
32
  throw new Error(`Un-covered: ${value}`);
92
33
  }
93
- var NetworkFamily = omit(AccountType, ["RAW_SIGNING"]);
94
- var zHexDataString = z10.codec(z10.string().regex(/^(?:0x|0X)?[a-fA-F0-9]+$/), z10.string(), {
95
- decode: (hex) => `0x${hex.toLowerCase().replace("0x", "")}`,
96
- encode: (hex) => hex
97
- });
98
- var zCommonLiveData = z10.object({
99
- id: z10.string().meta({ description: "Account internal unique identifier" }),
100
- balance: z10.object({
101
- total: z10.string().meta({ description: "Total balance" }),
102
- pending: z10.string().meta({ description: "Pending balance" })
103
- }).meta({ description: "Balance fields" })
104
- });
105
- var zCommonTransactionData = z10.object({
106
- amount: zUnsignedIntString.meta({ description: "Transaction amount" }),
107
- currency: zCurrencyString.meta({
108
- description: "Will be deprecated soon, use Account.network. Transaction currency"
109
- }),
110
- // TODO: to remove, use account.network instead
111
- maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
112
- recipient: z10.string().nonempty().meta({ description: "Transaction recipient" })
113
- });
114
- var zFeeStrategyCustom = z10.object({
115
- type: z10.enum(["SLOW", "NORMAL", "FAST", "CUSTOM"])
116
- });
117
- var zFeeStrategy = z10.object({
118
- type: z10.enum(["SLOW", "NORMAL", "FAST"])
119
- });
120
- var zTransactionStatus = z10.enum(["SUCCESSFUL", "FAILED"]);
121
- var zCommonTransactionResponse = z10.object({
122
- id: z10.string().meta({ description: "Internal unique identifier" }),
123
- hash: z10.string().meta({ description: "Transaction hash" }),
124
- block: z10.object({
125
- height: z10.string().nullable().meta({ description: "Transaction block height" }),
126
- time: z10.string().nullable().meta({ description: "Transaction block time" })
127
- }),
128
- status: zTransactionStatus.meta({ description: "Transaction status" }),
129
- confirmations: z10.string().meta({ description: "Block confirmations" }),
130
- amount: z10.string().meta({ description: "Transaction amount" }),
131
- fee: z10.string().meta({ description: "Transaction fee" }),
132
- senders: z10.array(z10.string()).meta({ description: "Senders (can be multiple for UTXOs-based accounts)" }),
133
- recipients: z10.array(z10.string()).meta({ description: "Recipients (can be multiple for multi-output transactions)" })
134
- });
135
34
 
136
- // src/networks/bitcoin.ts
137
- var zBitcoinLikeAssetFields = z10.object({
138
- type: z10.literal(NetworkFamily.BITCOIN_LIKE).meta({ description: "Account type" }),
139
- xpub: z10.string().meta({ description: "xpub (extended public key)" })
140
- }).meta({ description: "Bitcoin-like" });
141
- var zBitcoinLikeLiveData = zCommonLiveData.extend({
142
- type: z10.literal(NetworkFamily.BITCOIN_LIKE).meta({ description: "Account type" })
143
- }).meta({ description: "Bitcoin-like" });
144
- var zBitcoinLikeTransactionType = z10.enum(["BITCOIN_LIKE_SEND", "BITCOIN_LIKE_RECEIVE"]).meta({ description: "Bitcoin-like transaction type" });
145
- var zBitcoinLikeFeeStrategy = zFeeStrategyCustom.extend({
146
- // nullish is optional + nullable, it is easier to seed rather than just optional
147
- feePerByte: zUnsignedIntString.nullish().meta({ description: "Fee per byte" })
148
- }).meta({ description: "Bitcoin-like fee strategy" });
149
- var zBitcoinLikeSendData = zCommonTransactionData.extend({
150
- type: z10.literal(zBitcoinLikeTransactionType.enum.BITCOIN_LIKE_SEND),
151
- feeStrategy: zBitcoinLikeFeeStrategy
152
- }).meta({
153
- description: "Bitcoin-like send data",
154
- id: "BitcoinLikeSendData"
155
- });
156
- var zBitcoinLikeTransactionData = z10.discriminatedUnion("type", [zBitcoinLikeSendData]);
157
- var zBitcoinLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zBitcoinLikeTransactionType }).meta({ description: "Bitcoin-like transaction" });
158
- var zCardanoLikeAssetFields = z10.object({
159
- type: z10.literal(NetworkFamily.CARDANO_LIKE).meta({ description: "Account type" }),
160
- address: z10.string().nullable().meta({ description: "Account address" })
161
- }).meta({ description: "Cardano-like" });
162
- var zCardanoLikeStakingData = z10.object({
163
- staked: z10.string().meta({ description: "Staked balance" })
164
- }).nullable().meta({ description: "Cardano-like staking data" });
165
- var zCardanoLikeStakingFields = z10.object({
166
- type: z10.literal(NetworkFamily.CARDANO_LIKE).meta({ description: "Account type" }),
167
- staking: zCardanoLikeStakingData.optional()
168
- });
169
- var zCardanoLikeLiveData = zCommonLiveData.extend(zCardanoLikeStakingFields.shape).meta({ description: "Cardano-like" });
170
- var zCardanoLikeTransactionType = z10.enum([
171
- "CARDANO_LIKE_SEND",
172
- "CARDANO_LIKE_RECEIVE",
173
- "CARDANO_LIKE_STAKING_REGISTER",
174
- "CARDANO_LIKE_STAKING_DEREGISTER",
175
- "CARDANO_LIKE_STAKING_DELEGATE",
176
- "CARDANO_LIKE_STAKING_WITHDRAW"
177
- ]).meta({ description: "Cardano-like transaction type" });
178
- var zCardanoLikeSendData = zCommonTransactionData.extend({
179
- type: z10.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_SEND),
180
- feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" })
181
- }).meta({
182
- description: "Cardano-like send data",
183
- id: "CardanoSendData"
184
- });
185
- var zCardanoStakingDelegateData = z10.object({
186
- type: z10.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_DELEGATE),
187
- currency: zCurrencyString.meta({ description: "Transaction currency" }),
188
- // TODO: strict literal or enum?
189
- maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
190
- feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
191
- // DELEGATE doesn't have neither amount nor recipient
192
- stakePoolId: z10.string().min(1).max(100).meta({ description: "" })
193
- }).meta({
194
- description: "Cardano-like staking delegate",
195
- id: "CardanoStakingDelegateData"
196
- });
197
- var zCardanoStakingDeregisterData = z10.object({
198
- type: z10.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_DEREGISTER),
199
- currency: zCurrencyString.meta({ description: "Transaction currency" }),
200
- // TODO: strict literal or enum?
201
- maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
202
- feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
203
- // DEREGISTER doesn't have a recipient
204
- amount: zUnsignedIntString.meta({ description: "Amount to deregister" })
205
- }).meta({
206
- description: "Cardano-like staking deregister data",
207
- id: "CardanoStakingDeregisterData"
208
- });
209
- var zCardanoStakingRegisterData = z10.object({
210
- type: z10.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_REGISTER),
211
- currency: zCurrencyString.meta({ description: "Transaction currency" }),
212
- // TODO: strict literal or enum?
213
- maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
214
- feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
215
- // REGISTER doesn't have a recipient
216
- amount: zUnsignedIntString.meta({ description: "Amount to register" })
217
- }).meta({
218
- description: "Cardano-like staking register data",
219
- id: "CardanoStakingRegisterData"
220
- });
221
- var zCardanoStakingWithdrawData = z10.object({
222
- type: z10.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_WITHDRAW),
223
- currency: zCurrencyString.meta({ description: "Transaction currency" }),
224
- // TODO: strict literal or enum?
225
- maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
226
- feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
227
- // WITHDRAW doesn't have a recipient
228
- amount: zUnsignedIntString.meta({ description: "Amount to withdraw" })
229
- }).meta({
230
- description: "Cardano-like staking withdraw data",
231
- id: "CardanoStakingWithdrawData"
232
- });
233
- var zCardanoLikeTransactionData = z10.discriminatedUnion("type", [
234
- zCardanoLikeSendData,
235
- zCardanoStakingDelegateData,
236
- zCardanoStakingDeregisterData,
237
- zCardanoStakingRegisterData,
238
- zCardanoStakingWithdrawData
239
- ]);
240
- var zCardanoLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zCardanoLikeTransactionType }).meta({ description: "Cardano-like transaction" });
241
- var zEthereumLikeAssetFields = z10.object({
242
- type: z10.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: "Account type" }),
243
- address: z10.string().nullable().meta({ description: "Account address" })
244
- }).meta({ description: "Ethereum-like" });
245
- var zEthereumTokenLikeAssetFields = z10.object({
246
- type: z10.enum([NetworkFamily.ERC20_LIKE, NetworkFamily.BEP20_LIKE]).meta({ description: "Account type" }),
247
- address: z10.string().nullable().meta({ description: "Account address" }),
248
- contractAddress: z10.string().meta({
249
- description: "Will be deprecated, Use contractAddress at root level instead; Token contract address"
250
- }).optional()
251
- }).meta({ description: "Ethereum-like token" });
252
- var zEthereumLikeStakingData = z10.object({
253
- totalStaking: z10.string().meta({ description: "Total staked amount" }),
254
- totalRewards: z10.string().meta({ description: "Total of rewards" }),
255
- availableRewards: z10.string().meta({ description: "Available rewards" }),
256
- networkApy: z10.number().meta({ description: "Network APY" })
257
- }).nullable().meta({ description: "Ethereum-like staking data" });
258
- var zEthereumLikeStakingFields = z10.object({
259
- type: z10.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: "Account type" }),
260
- staking: zEthereumLikeStakingData.optional()
261
- });
262
- var zEthereumLikeLiveData = zCommonLiveData.extend(zEthereumLikeStakingFields.shape).meta({ description: "Ethereum-like" });
263
- var zEthereumTokenLikeLiveData = zCommonLiveData.extend({
264
- type: z10.enum([NetworkFamily.ERC20_LIKE, NetworkFamily.BEP20_LIKE]).meta({ description: "Account type" })
265
- }).meta({ description: "Ethereum-like token" });
266
- var zEthereumLikeEstimatedFees = z10.object({
267
- type: z10.literal(NetworkFamily.ETHEREUM_LIKE),
268
- baseFees: zIntString,
269
- gasLimit: zIntString,
270
- nonce: z10.string(),
271
- priorityFees: zIntString
272
- }).meta({ description: "Ethereum-like fees" });
273
- var zEthereumLikeTransferTransactionType = z10.enum(["ETHEREUM_LIKE_SEND", "ETHEREUM_LIKE_RECEIVE"]).meta({ description: "Ethereum-like transaction type" });
274
- var zEthereumLikeContractTransactionType = z10.enum(["ETHEREUM_LIKE_EXECUTE_CONTRACT", "ETHEREUM_LIKE_DEPLOY_CONTRACT"]).meta({ description: "Ethereum-like transaction type" });
275
- var zEthereumLikeLegacyFeeStrategy = zFeeStrategyCustom.extend({
276
- gasPrice: zUnsignedIntString.meta({ description: "Gas price" }),
277
- gasLimit: zUnsignedIntString.meta({ description: "Gas limit" })
278
- }).meta({ description: "Ethereum-like legacy fee strategy" });
279
- var zEthereumLikeEip1559FeeStrategy = zFeeStrategyCustom.extend({
280
- maxPriorityFeePerGas: zUnsignedIntString.meta({ description: "Maximum priority fee per gas" }),
281
- maxFeePerGas: zUnsignedIntString.meta({ description: "Maximum fee per gas (base + priority)" }),
282
- gasLimit: zUnsignedIntString.meta({ description: "Gas limit" })
283
- }).meta({ description: "Ethereum-like EIP-1559 fee strategy" });
284
- var zEthereumLikeFeeStrategy = z10.union([zEthereumLikeLegacyFeeStrategy, zEthereumLikeEip1559FeeStrategy]).meta({
285
- description: "Ethereum-like fee strategy",
286
- id: "EthereumLikeFeeStrategy"
287
- });
288
- var zEthereumLikeDeployContractData = zCommonTransactionData.extend({
289
- type: z10.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_DEPLOY_CONTRACT),
290
- // force the recipient to be the zero address
291
- recipient: z10.literal("0x0000000000000000000000000000000000000000"),
292
- contractData: zHexDataString.meta({ description: "Contract data in hexadecimal format" }),
293
- feeStrategy: zEthereumLikeFeeStrategy
294
- }).meta({
295
- description: "Ethereum-like deploy contract data",
296
- id: "EthereumLikeDeployContractData"
297
- });
298
- var zEthereumLikeExecuteContractData = zCommonTransactionData.extend({
299
- type: z10.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_EXECUTE_CONTRACT),
300
- contractData: zHexDataString.meta({ description: "Contract call data in hexadecimal format" }),
301
- feeStrategy: zEthereumLikeFeeStrategy
302
- }).meta({
303
- description: "Ethereum-like execute contract data",
304
- id: "EthereumLikeExecuteContractData"
305
- });
306
- var zEthereumLikeSendData = zCommonTransactionData.extend({
307
- type: z10.literal(zEthereumLikeTransferTransactionType.enum.ETHEREUM_LIKE_SEND),
308
- feeStrategy: zEthereumLikeFeeStrategy
309
- }).meta({
310
- description: "Ethereum-like send data",
311
- id: "EthereumLikeSendData"
312
- });
313
- var zEthereumLikeTransactionData = z10.discriminatedUnion("type", [
314
- zEthereumLikeDeployContractData,
315
- zEthereumLikeExecuteContractData,
316
- zEthereumLikeSendData
317
- ]);
318
- var zEthereumLikeTransferCoinFields = z10.object({
319
- type: zEthereumLikeTransferTransactionType,
320
- gasPrice: z10.string(),
321
- gasLimit: z10.string(),
322
- nonce: z10.string()
323
- });
324
- var zEthereumLikeContractCoinFields = zEthereumLikeTransferCoinFields.extend({
325
- type: zEthereumLikeContractTransactionType,
326
- contractData: z10.string().meta({ description: "Contract deployment or contract execution data" })
327
- });
328
- var zEthereumLikeTransferTransactionResponse = zCommonTransactionResponse.extend(zEthereumLikeTransferCoinFields.shape).meta({ description: "Ethereum-like transfer transaction" });
329
- var zEthereumLikeContractTransactionResponse = zCommonTransactionResponse.extend(zEthereumLikeContractCoinFields.shape).meta({ description: "Ethereum-like contract transaction" });
330
- var zGenericLikeAssetFields = z10.object({ type: z10.literal(NetworkFamily.GENERIC_LIKE).meta({ description: "Account type" }) }).meta({ description: "Generic-like" });
331
- var zGenericLikeLiveData = zCommonLiveData.extend({
332
- type: z10.literal(NetworkFamily.GENERIC_LIKE).meta({ description: "Account type" })
333
- }).meta({ description: "Generic-like" });
334
- var zGenericTransactionType = z10.enum(["GENERIC_TRANSACTION"]).meta({ description: "Generic transaction type" });
335
- var zGenericTransactionData = z10.object({
336
- type: z10.literal(zGenericTransactionType.enum.GENERIC_TRANSACTION),
337
- currency: zCurrencyString.meta({ description: "Transaction currency" }),
338
- rawTx: z10.string().meta({ description: "Raw tx" })
339
- }).meta({
340
- description: "Generic transaction data",
341
- id: "GenericTransactionData"
35
+ // src/__fakes__/faker-utils.ts
36
+ var fakeUniqueName = (length = 20) => faker.string.alphanumeric({ length, casing: "lower" });
37
+ var fakeHexString = (length, casing = "upper") => faker.string.hexadecimal({ prefix: "", casing, length });
38
+ var fakePubKey = () => fakeHexString(130);
39
+ var fakeIntegerId = () => faker.number.int({ min: 1, max: 2e9 });
40
+ var fakeGateId = fakeIntegerId;
41
+ var fakeBase64String = (length) => btoa(faker.string.sample(length));
42
+ var fakePsdSignature = () => fakeBase64String(100);
43
+ var fakeJws = () => times(3, () => faker.string.hexadecimal({ prefix: "", length: 100 })).join(".");
44
+ var fakeHsmObjectId = () => faker.string.uuid();
45
+ var fakeHsmCertificate = () => ({
46
+ codeHash: fakeBase64String(10),
47
+ attestationPub: fakeBase64String(20),
48
+ certificate: fakeBase64String(20),
49
+ signature: fakeBase64String(20)
342
50
  });
343
- var zGenericTransactionResponse = zCommonTransactionResponse.extend({ type: zGenericTransactionType }).meta({ description: "Generic transaction" });
344
- var zPolkadotLikeAssetFields = z10.object({
345
- type: z10.literal(NetworkFamily.POLKADOT_LIKE).meta({ description: "Account type" }),
346
- address: z10.string().nullable().meta({ description: "Account address" })
347
- }).meta({ description: "Polkadot-like" });
348
- var zPolkadotUnbondingAmount = z10.object({
349
- amount: z10.string().meta({ description: "Amount" }),
350
- waiting_time: z10.string().meta({ description: "Waiting time" })
351
- });
352
- var zPolkadotLikeStakingData = z10.object({
353
- info: z10.object({
354
- controllerAddress: z10.string().nullable().meta({ description: "Controller address" }),
355
- rewardsDestination: z10.string().nullable().meta({ description: "Rewards destination" }),
356
- proxies: z10.array(z10.string()).meta({ description: "Proxies" }),
357
- legacyStaking: z10.boolean().meta({ description: "True if account uses legacy staking" }),
358
- isNominator: z10.boolean().meta({ description: "True if is nominator" })
359
- }),
360
- balances: z10.object({
361
- free: z10.string().meta({ description: "Free balance" }),
362
- reserved: z10.string().meta({ description: "Reserved balance" }),
363
- frozen: z10.string().meta({ description: "Frozen balance" }),
364
- bonded: z10.string().meta({ description: "Bonded balance" }),
365
- available: z10.string().meta({ description: "Available balance" }),
366
- unbonding: z10.array(zPolkadotUnbondingAmount).meta({ description: "Unbonding balances" }),
367
- unbonded: z10.array(zPolkadotUnbondingAmount).meta({ description: "Unbonded balances" }),
368
- totalUnbonding: z10.string().meta({ description: "Total unbonding" }),
369
- totalUnbonded: z10.string().meta({ description: "Total unbonded" })
370
- }),
371
- anonymousProxy: z10.object({
372
- address: z10.string().meta({ description: "Address" }),
373
- createdAt: z10.string().meta({ description: "Creation date" }),
374
- isController: z10.boolean().meta({ description: "True if is controller" }),
375
- isMain: z10.boolean().meta({ description: "True if is main" }),
376
- balances: z10.object({
377
- free: z10.string().meta({ description: "Anonymous proxy free balance" }),
378
- reserved: z10.string().meta({ description: "Anonymous proxy reserved balance" }),
379
- frozen: z10.string().meta({ description: "Anonymous proxy frozen balance" }),
380
- bonded: z10.string().meta({ description: "Anonymous proxy bonded balance" }),
381
- available: z10.string().meta({ description: "Anonymous proxy available balance" }),
382
- total: z10.string().meta({ description: "Anonymous proxy total balance" })
383
- }).nullable(),
384
- blockHeight: z10.string().meta({ description: "Anonymous proxy block height" }),
385
- extIndex: z10.string().meta({ description: "Ext index" }),
386
- index: z10.string().meta({ description: "Index" }),
387
- kind: z10.string().meta({ description: "Kind" })
388
- }).nullable().meta({ description: "Anonymous proxy" })
389
- }).nullable().meta({ description: "Polkadot-like staking data" });
390
- var zPolkadotLikeStakingFields = z10.object({
391
- type: z10.literal(NetworkFamily.POLKADOT_LIKE).meta({ description: "Account type" }),
392
- staking: zPolkadotLikeStakingData.optional()
51
+ var fakePsdChallenge = () => ({
52
+ challengeType: "PSD",
53
+ wActions: [fakeBase64String(50), fakeBase64String(50), fakeBase64String(50)],
54
+ handshake: fakeBase64String(100),
55
+ handshakeAttestation: fakeHsmCertificate(),
56
+ partitionId: fakeBase64String(20)
393
57
  });
394
- var zPolkadotLikeLiveData = zCommonLiveData.extend(zPolkadotLikeStakingFields.shape).meta({ description: "Polkadot-like" });
395
- var zPolkadotLikeTransactionType = z10.enum([
396
- "POLKADOT_LIKE_SEND",
397
- "POLKADOT_LIKE_RECEIVE",
398
- "POLKADOT_LIKE_ADDPROXY",
399
- "POLKADOT_LIKE_REMOVEPROXY",
400
- "POLKADOT_LIKE_BOND",
401
- "POLKADOT_LIKE_REBOND",
402
- "POLKADOT_LIKE_BONDEXTRA",
403
- "POLKADOT_LIKE_UNBOND",
404
- "POLKADOT_LIKE_WITHDRAWUNBONDED",
405
- "POLKADOT_LIKE_SETCONTROLLER",
406
- "POLKADOT_LIKE_SETPAYEE",
407
- "POLKADOT_LIKE_PROXY",
408
- "POLKADOT_LIKE_ANONYMOUSPROXY",
409
- "POLKADOT_LIKE_KILLANONYMOUS",
58
+ var fakeWorkspaceName = () => faker.string.alpha({ length: 8, casing: "lower" });
59
+ var injectSyncId = (obj) => {
60
+ let { syncId } = obj;
61
+ if (syncId === void 0) {
62
+ if (obj.gateType !== null && obj.gateId !== 0) {
63
+ syncId = buildGateSyncId(obj.workspaceName, obj.gateType, obj.gateId);
64
+ } else if (obj.gateType === null && obj.gateId === 0) {
65
+ syncId = faker.string.uuid();
66
+ } else {
67
+ throw new Error(`Invalid gateType and gateId: ${obj.gateType}, ${obj.gateId}`);
68
+ }
69
+ }
70
+ return { ...obj, syncId };
71
+ };
72
+
73
+ // src/__fakes__/models/accounts.ts
74
+ var genAssetFieldsForType = (type) => {
75
+ const hsmXpub = faker.string.hexadecimal({ prefix: "", casing: "upper", length: 66 });
76
+ const hsmChainCode = faker.string.hexadecimal({ prefix: "", casing: "upper", length: 64 });
77
+ switch (type) {
78
+ case "BITCOIN_LIKE":
79
+ return {
80
+ type,
81
+ currency: faker.helpers.arrayElement(["bitcoin", "bitcoin_testnet"]),
82
+ derivationPath: "84'/0'/0'",
83
+ address: null,
84
+ contractAddress: null,
85
+ xpub: faker.string.hexadecimal({ prefix: "", length: 120 }),
86
+ hsmXpub,
87
+ hsmChainCode
88
+ };
89
+ case "ETHEREUM_LIKE":
90
+ return {
91
+ type,
92
+ currency: faker.helpers.arrayElement(["ethereum", "ethereum_goerli"]),
93
+ derivationPath: "44'/60'/0'",
94
+ address: faker.finance.ethereumAddress(),
95
+ contractAddress: null,
96
+ xpub: null,
97
+ hsmXpub,
98
+ hsmChainCode
99
+ };
100
+ case "CANTON_LIKE":
101
+ return {
102
+ type,
103
+ currency: "canton",
104
+ derivationPath: "44'/6767'/0'/0'/0'",
105
+ address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
106
+ contractAddress: null,
107
+ xpub: null,
108
+ hsmXpub,
109
+ hsmChainCode: null
110
+ };
111
+ case "CARDANO_LIKE":
112
+ return {
113
+ type,
114
+ currency: faker.helpers.arrayElement(["cardano"]),
115
+ derivationPath: "1852'/1815'/0'",
116
+ address: `addr${faker.string.alphanumeric({ length: 100, casing: "lower" })}`,
117
+ contractAddress: null,
118
+ xpub: null,
119
+ hsmXpub,
120
+ hsmChainCode
121
+ };
122
+ case "SOLANA_LIKE":
123
+ return {
124
+ type,
125
+ currency: faker.helpers.arrayElement(["solana"]),
126
+ derivationPath: "44'/501'/0'",
127
+ address: faker.string.alphanumeric({ length: 44, casing: "lower" }),
128
+ contractAddress: null,
129
+ xpub: null,
130
+ hsmXpub,
131
+ hsmChainCode: null
132
+ };
133
+ case "TEZOS_LIKE":
134
+ return {
135
+ type,
136
+ currency: faker.helpers.arrayElement(["tezos"]),
137
+ derivationPath: "44'/1729'/0'",
138
+ address: `tz${faker.string.alphanumeric({ length: 34, casing: "mixed" })}`,
139
+ contractAddress: null,
140
+ xpub: null,
141
+ hsmXpub,
142
+ hsmChainCode
143
+ };
144
+ case "STELLAR_LIKE":
145
+ return {
146
+ type,
147
+ currency: faker.helpers.arrayElement(["stellar"]),
148
+ derivationPath: "44'/148'/0'",
149
+ address: faker.string.alphanumeric({ length: 56, casing: "upper" }),
150
+ contractAddress: null,
151
+ xpub: null,
152
+ hsmXpub,
153
+ hsmChainCode
154
+ };
155
+ case "RIPPLE_LIKE":
156
+ return {
157
+ type,
158
+ currency: faker.helpers.arrayElement(["ripple"]),
159
+ derivationPath: "44'/144'/0'",
160
+ address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
161
+ contractAddress: null,
162
+ xpub: `xpub${faker.string.alphanumeric({ length: 107, casing: "mixed" })}`,
163
+ hsmXpub,
164
+ hsmChainCode
165
+ };
166
+ case "POLKADOT_LIKE":
167
+ return {
168
+ type,
169
+ currency: faker.helpers.arrayElement(["polkadot"]),
170
+ derivationPath: "44'/354'/0'",
171
+ address: faker.string.alphanumeric({ length: 48, casing: "mixed" }),
172
+ contractAddress: null,
173
+ xpub: null,
174
+ hsmXpub,
175
+ hsmChainCode: null
176
+ };
177
+ case "TRON_LIKE":
178
+ return {
179
+ type,
180
+ currency: faker.helpers.arrayElement(["tron"]),
181
+ derivationPath: "44'/195'/0'",
182
+ address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
183
+ contractAddress: null,
184
+ xpub: null,
185
+ hsmXpub,
186
+ hsmChainCode
187
+ };
188
+ case "SUI_LIKE":
189
+ return {
190
+ type,
191
+ currency: faker.helpers.arrayElement(["sui"]),
192
+ derivationPath: "44'/784'/0'",
193
+ address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
194
+ contractAddress: null,
195
+ xpub: null,
196
+ hsmXpub,
197
+ hsmChainCode: null
198
+ };
199
+ case "GENERIC_LIKE":
200
+ return {
201
+ type,
202
+ currency: faker.helpers.arrayElement(["cosmos"]),
203
+ derivationPath: "44'/118'/0'",
204
+ address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
205
+ contractAddress: null,
206
+ xpub: null,
207
+ hsmXpub,
208
+ hsmChainCode
209
+ };
210
+ case "RAW_SIGNING":
211
+ return {
212
+ type,
213
+ currency: faker.helpers.arrayElement(["ethereum", "bitcoin"]),
214
+ derivationPath: "44'/118'/0'",
215
+ address: null,
216
+ contractAddress: null,
217
+ xpub: null,
218
+ hsmXpub,
219
+ hsmChainCode
220
+ };
221
+ }
222
+ };
223
+ var genGovernanceFieldsForType = (governanceType, {
224
+ accountId,
225
+ policyId,
226
+ assetManagerId
227
+ }) => {
228
+ switch (governanceType) {
229
+ case AccountGovernanceType.CLASSIC:
230
+ case AccountGovernanceType.RAW_SIGNING:
231
+ return {
232
+ governanceType,
233
+ classicGovernanceMixin: {
234
+ id: faker.number.int(),
235
+ policyId: policyId ?? faker.string.uuid(),
236
+ accountId
237
+ },
238
+ tradelinkGovernanceMixin: null
239
+ };
240
+ case AccountGovernanceType.TRADELINK:
241
+ return {
242
+ governanceType,
243
+ classicGovernanceMixin: null,
244
+ tradelinkGovernanceMixin: {
245
+ id: faker.number.int(),
246
+ assetManagerId: assetManagerId ?? faker.string.uuid(),
247
+ accountId,
248
+ exchangeConfigs: [],
249
+ status: ActivationStatus.ACTIVE
250
+ }
251
+ };
252
+ }
253
+ };
254
+ var genAccount = (opts) => {
255
+ const { policyId, assetManagerId, ...rest } = opts ?? {};
256
+ const commonFields = {
257
+ id: faker.string.uuid(),
258
+ workspaceName: fakeWorkspaceName(),
259
+ name: fakeUniqueName(),
260
+ hsmId: fakeHsmObjectId(),
261
+ status: ActivationStatus.ACTIVE,
262
+ index: faker.number.int({ min: 0, max: 10 }),
263
+ gateId: fakeGateId(),
264
+ gateType: GateAccountType.Account,
265
+ lesWalletId: faker.string.uuid(),
266
+ createdAt: faker.date.past(),
267
+ updatedAt: faker.date.past()
268
+ };
269
+ const assetFields = genAssetFieldsForType(
270
+ opts?.type ?? faker.helpers.arrayElement(Object.values(AccountType))
271
+ );
272
+ const governanceFields = genGovernanceFieldsForType(
273
+ opts?.governanceType ?? faker.helpers.arrayElement(Object.values(AccountGovernanceType)),
274
+ { accountId: commonFields.id, policyId, assetManagerId }
275
+ );
276
+ return injectSyncId({
277
+ ...commonFields,
278
+ ...governanceFields,
279
+ ...assetFields,
280
+ ...rest
281
+ });
282
+ };
283
+ var zHexString = z.string().regex(/^[0-9a-fA-F]+$/);
284
+ var zIntString = z.string().nonempty().regex(/^(-?[1-9]\d*|0)$/);
285
+ var zUnsignedIntString = z.string().nonempty().regex(/^([1-9]\d*|0)$/);
286
+ var zCurrencyString = z.string().nonempty().max(40).regex(/^\w+$/).meta({ description: "Will be deprecated soon, use network instead. Currency" });
287
+ var zNetwork = z.string().nonempty().max(40).regex(/^\w+$/).meta({ description: "Network (Same as currency for now)" });
288
+ var zCurrency = z.object({
289
+ network: zNetwork,
290
+ contractAddress: z.string().nonempty().nullable().meta({ description: "Token contract address" })
291
+ });
292
+ z.string().regex(/^[\w-]+$/).nonempty();
293
+ var zHsmObjectId = z.string().regex(/^[\w-]+$/).nonempty();
294
+ z.codec(z.iso.datetime(), z.date(), {
295
+ decode: (isoString) => new Date(isoString),
296
+ // ISO string → Date
297
+ encode: (date) => date.toISOString()
298
+ // Date → ISO string
299
+ });
300
+ var NetworkFamily = omit(AccountType, ["RAW_SIGNING"]);
301
+ var zHexDataString = z9.codec(z9.string().regex(/^(?:0x|0X)?[a-fA-F0-9]+$/), z9.string(), {
302
+ decode: (hex) => `0x${hex.toLowerCase().replace("0x", "")}`,
303
+ encode: (hex) => hex
304
+ });
305
+ var zCommonLiveData = z9.object({
306
+ id: z9.string().meta({ description: "Account internal unique identifier" }),
307
+ balance: z9.object({
308
+ total: z9.string().meta({ description: "Total balance" }),
309
+ pending: z9.string().meta({ description: "Pending balance" })
310
+ }).meta({ description: "Balance fields" })
311
+ });
312
+ var zCommonTransactionData = z9.object({
313
+ amount: zUnsignedIntString.meta({ description: "Transaction amount" }),
314
+ currency: zCurrencyString.meta({
315
+ description: "Will be deprecated soon, use Account.network. Transaction currency"
316
+ }),
317
+ // TODO: to remove, use account.network instead
318
+ maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
319
+ recipient: z9.string().nonempty().meta({ description: "Transaction recipient" })
320
+ });
321
+ var zFeeStrategyCustom = z9.object({
322
+ type: z9.enum(["SLOW", "NORMAL", "FAST", "CUSTOM"])
323
+ });
324
+ var zFeeStrategy = z9.object({
325
+ type: z9.enum(["SLOW", "NORMAL", "FAST"])
326
+ });
327
+ var zTransactionStatus = z9.enum(["SUCCESSFUL", "FAILED"]);
328
+ var zCommonTransactionResponse = z9.object({
329
+ id: z9.string().meta({ description: "Internal unique identifier" }),
330
+ hash: z9.string().meta({ description: "Transaction hash" }),
331
+ block: z9.object({
332
+ height: z9.string().nullable().meta({ description: "Transaction block height" }),
333
+ time: z9.string().nullable().meta({ description: "Transaction block time" })
334
+ }),
335
+ status: zTransactionStatus.meta({ description: "Transaction status" }),
336
+ confirmations: z9.string().meta({ description: "Block confirmations" }),
337
+ amount: z9.string().meta({ description: "Transaction amount" }),
338
+ fee: z9.string().meta({ description: "Transaction fee" }),
339
+ senders: z9.array(z9.string()).meta({ description: "Senders (can be multiple for UTXOs-based accounts)" }),
340
+ recipients: z9.array(z9.string()).meta({ description: "Recipients (can be multiple for multi-output transactions)" })
341
+ });
342
+
343
+ // src/networks/bitcoin.ts
344
+ var zBitcoinLikeAssetFields = z9.object({
345
+ type: z9.literal(NetworkFamily.BITCOIN_LIKE).meta({ description: "Account type" }),
346
+ xpub: z9.string().meta({ description: "xpub (extended public key)" })
347
+ }).meta({ description: "Bitcoin-like" });
348
+ var zBitcoinLikeLiveData = zCommonLiveData.extend({
349
+ type: z9.literal(NetworkFamily.BITCOIN_LIKE).meta({ description: "Account type" })
350
+ }).meta({ description: "Bitcoin-like" });
351
+ var zBitcoinLikeTransactionType = z9.enum(["BITCOIN_LIKE_SEND", "BITCOIN_LIKE_RECEIVE"]).meta({ description: "Bitcoin-like transaction type" });
352
+ var zBitcoinLikeFeeStrategy = zFeeStrategyCustom.extend({
353
+ // nullish is optional + nullable, it is easier to seed rather than just optional
354
+ feePerByte: zUnsignedIntString.nullish().meta({ description: "Fee per byte" })
355
+ }).meta({ description: "Bitcoin-like fee strategy" });
356
+ var zBitcoinLikeSendData = zCommonTransactionData.extend({
357
+ type: z9.literal(zBitcoinLikeTransactionType.enum.BITCOIN_LIKE_SEND),
358
+ feeStrategy: zBitcoinLikeFeeStrategy
359
+ }).meta({
360
+ description: "Bitcoin-like send data",
361
+ id: "BitcoinLikeSendData"
362
+ });
363
+ var zBitcoinLikeTransactionData = z9.discriminatedUnion("type", [zBitcoinLikeSendData]);
364
+ var zBitcoinLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zBitcoinLikeTransactionType }).meta({ description: "Bitcoin-like transaction" });
365
+ var zCantonLikeAssetFields = z9.object({
366
+ type: z9.literal(NetworkFamily.CANTON_LIKE).meta({ description: "Account type" }),
367
+ address: z9.string().nullable().meta({ description: "Account address" })
368
+ }).meta({ description: "Canton-like" });
369
+ var zCantonLikeLiveData = zCommonLiveData.extend({
370
+ type: z9.literal(NetworkFamily.CANTON_LIKE).meta({ description: "Account type" })
371
+ }).meta({ description: "Canton-like" });
372
+ var zCantonLikeTransactionType = z9.enum(["CANTON_LIKE_SEND", "CANTON_LIKE_RECEIVE"]).meta({ description: "Canton-like transaction type" });
373
+ var zCantonLikeSendData = zCommonTransactionData.extend({
374
+ type: z9.literal(zCantonLikeTransactionType.enum.CANTON_LIKE_SEND)
375
+ }).meta({
376
+ description: "Canton-like send data",
377
+ id: "CantonLikeSendData"
378
+ });
379
+ var zCantonLikeTransactionData = z9.discriminatedUnion("type", [zCantonLikeSendData]);
380
+ var zCantonLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zCantonLikeTransactionType }).meta({ description: "Canton-like transaction" });
381
+ var zCardanoLikeAssetFields = z9.object({
382
+ type: z9.literal(NetworkFamily.CARDANO_LIKE).meta({ description: "Account type" }),
383
+ address: z9.string().nullable().meta({ description: "Account address" })
384
+ }).meta({ description: "Cardano-like" });
385
+ var zCardanoLikeStakingData = z9.object({
386
+ staked: z9.string().meta({ description: "Staked balance" })
387
+ }).nullable().meta({ description: "Cardano-like staking data" });
388
+ var zCardanoLikeStakingFields = z9.object({
389
+ type: z9.literal(NetworkFamily.CARDANO_LIKE).meta({ description: "Account type" }),
390
+ staking: zCardanoLikeStakingData.optional()
391
+ });
392
+ var zCardanoLikeLiveData = zCommonLiveData.extend(zCardanoLikeStakingFields.shape).meta({ description: "Cardano-like" });
393
+ var zCardanoLikeTransactionType = z9.enum([
394
+ "CARDANO_LIKE_SEND",
395
+ "CARDANO_LIKE_RECEIVE",
396
+ "CARDANO_LIKE_STAKING_REGISTER",
397
+ "CARDANO_LIKE_STAKING_DEREGISTER",
398
+ "CARDANO_LIKE_STAKING_DELEGATE",
399
+ "CARDANO_LIKE_STAKING_WITHDRAW"
400
+ ]).meta({ description: "Cardano-like transaction type" });
401
+ var zCardanoLikeSendData = zCommonTransactionData.extend({
402
+ type: z9.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_SEND),
403
+ feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" })
404
+ }).meta({
405
+ description: "Cardano-like send data",
406
+ id: "CardanoSendData"
407
+ });
408
+ var zCardanoStakingDelegateData = z9.object({
409
+ type: z9.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_DELEGATE),
410
+ currency: zCurrencyString.meta({ description: "Transaction currency" }),
411
+ // TODO: strict literal or enum?
412
+ maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
413
+ feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
414
+ // DELEGATE doesn't have neither amount nor recipient
415
+ stakePoolId: z9.string().min(1).max(100).meta({ description: "" })
416
+ }).meta({
417
+ description: "Cardano-like staking delegate",
418
+ id: "CardanoStakingDelegateData"
419
+ });
420
+ var zCardanoStakingDeregisterData = z9.object({
421
+ type: z9.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_DEREGISTER),
422
+ currency: zCurrencyString.meta({ description: "Transaction currency" }),
423
+ // TODO: strict literal or enum?
424
+ maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
425
+ feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
426
+ // DEREGISTER doesn't have a recipient
427
+ amount: zUnsignedIntString.meta({ description: "Amount to deregister" })
428
+ }).meta({
429
+ description: "Cardano-like staking deregister data",
430
+ id: "CardanoStakingDeregisterData"
431
+ });
432
+ var zCardanoStakingRegisterData = z9.object({
433
+ type: z9.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_REGISTER),
434
+ currency: zCurrencyString.meta({ description: "Transaction currency" }),
435
+ // TODO: strict literal or enum?
436
+ maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
437
+ feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
438
+ // REGISTER doesn't have a recipient
439
+ amount: zUnsignedIntString.meta({ description: "Amount to register" })
440
+ }).meta({
441
+ description: "Cardano-like staking register data",
442
+ id: "CardanoStakingRegisterData"
443
+ });
444
+ var zCardanoStakingWithdrawData = z9.object({
445
+ type: z9.literal(zCardanoLikeTransactionType.enum.CARDANO_LIKE_STAKING_WITHDRAW),
446
+ currency: zCurrencyString.meta({ description: "Transaction currency" }),
447
+ // TODO: strict literal or enum?
448
+ maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
449
+ feeStrategy: zFeeStrategy.meta({ description: "Cardano-like fee strategy" }),
450
+ // WITHDRAW doesn't have a recipient
451
+ amount: zUnsignedIntString.meta({ description: "Amount to withdraw" })
452
+ }).meta({
453
+ description: "Cardano-like staking withdraw data",
454
+ id: "CardanoStakingWithdrawData"
455
+ });
456
+ var zCardanoLikeTransactionData = z9.discriminatedUnion("type", [
457
+ zCardanoLikeSendData,
458
+ zCardanoStakingDelegateData,
459
+ zCardanoStakingDeregisterData,
460
+ zCardanoStakingRegisterData,
461
+ zCardanoStakingWithdrawData
462
+ ]);
463
+ var zCardanoLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zCardanoLikeTransactionType }).meta({ description: "Cardano-like transaction" });
464
+ var zEthereumLikeAssetFields = z9.object({
465
+ type: z9.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: "Account type" }),
466
+ address: z9.string().nullable().meta({ description: "Account address" }),
467
+ contractAddress: z9.string().nullable().meta({
468
+ description: "Will be deprecated, Use contractAddress at root level instead; Token contract address"
469
+ }).optional()
470
+ }).meta({ description: "Ethereum-like" });
471
+ var zEthereumLikeStakingData = z9.object({
472
+ totalStaking: z9.string().meta({ description: "Total staked amount" }),
473
+ totalRewards: z9.string().meta({ description: "Total of rewards" }),
474
+ availableRewards: z9.string().meta({ description: "Available rewards" }),
475
+ networkApy: z9.number().meta({ description: "Network APY" })
476
+ }).nullable().meta({ description: "Ethereum-like staking data" });
477
+ var zEthereumLikeStakingFields = z9.object({
478
+ type: z9.literal(NetworkFamily.ETHEREUM_LIKE).meta({ description: "Account type" }),
479
+ staking: zEthereumLikeStakingData.optional()
480
+ });
481
+ var zEthereumLikeLiveData = zCommonLiveData.extend(zEthereumLikeStakingFields.shape).meta({ description: "Ethereum-like" });
482
+ var zEthereumLikeEstimatedFees = z9.object({
483
+ type: z9.literal(NetworkFamily.ETHEREUM_LIKE),
484
+ baseFees: zIntString,
485
+ gasLimit: zIntString,
486
+ nonce: z9.string(),
487
+ priorityFees: zIntString
488
+ }).meta({ description: "Ethereum-like fees" });
489
+ var zEthereumLikeTransferTransactionType = z9.enum(["ETHEREUM_LIKE_SEND", "ETHEREUM_LIKE_RECEIVE"]).meta({ description: "Ethereum-like transaction type" });
490
+ var zEthereumLikeContractTransactionType = z9.enum(["ETHEREUM_LIKE_EXECUTE_CONTRACT", "ETHEREUM_LIKE_DEPLOY_CONTRACT"]).meta({ description: "Ethereum-like transaction type" });
491
+ var zEthereumLikeLegacyFeeStrategy = zFeeStrategyCustom.extend({
492
+ gasPrice: zUnsignedIntString.meta({ description: "Gas price" }),
493
+ gasLimit: zUnsignedIntString.meta({ description: "Gas limit" })
494
+ }).meta({ description: "Ethereum-like legacy fee strategy" });
495
+ var zEthereumLikeEip1559FeeStrategy = zFeeStrategyCustom.extend({
496
+ maxPriorityFeePerGas: zUnsignedIntString.meta({ description: "Maximum priority fee per gas" }),
497
+ maxFeePerGas: zUnsignedIntString.meta({ description: "Maximum fee per gas (base + priority)" }),
498
+ gasLimit: zUnsignedIntString.meta({ description: "Gas limit" })
499
+ }).meta({ description: "Ethereum-like EIP-1559 fee strategy" });
500
+ var zEthereumLikeFeeStrategy = z9.union([zEthereumLikeLegacyFeeStrategy, zEthereumLikeEip1559FeeStrategy]).meta({
501
+ description: "Ethereum-like fee strategy",
502
+ id: "EthereumLikeFeeStrategy"
503
+ });
504
+ var zEthereumLikeDeployContractData = zCommonTransactionData.extend({
505
+ type: z9.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_DEPLOY_CONTRACT),
506
+ // force the recipient to be the zero address
507
+ recipient: z9.literal("0x0000000000000000000000000000000000000000"),
508
+ contractData: zHexDataString.meta({ description: "Contract data in hexadecimal format" }),
509
+ feeStrategy: zEthereumLikeFeeStrategy
510
+ }).meta({
511
+ description: "Ethereum-like deploy contract data",
512
+ id: "EthereumLikeDeployContractData"
513
+ });
514
+ var zEthereumLikeExecuteContractData = zCommonTransactionData.extend({
515
+ type: z9.literal(zEthereumLikeContractTransactionType.enum.ETHEREUM_LIKE_EXECUTE_CONTRACT),
516
+ contractData: zHexDataString.meta({ description: "Contract call data in hexadecimal format" }),
517
+ feeStrategy: zEthereumLikeFeeStrategy
518
+ }).meta({
519
+ description: "Ethereum-like execute contract data",
520
+ id: "EthereumLikeExecuteContractData"
521
+ });
522
+ var zEthereumLikeSendData = zCommonTransactionData.extend({
523
+ type: z9.literal(zEthereumLikeTransferTransactionType.enum.ETHEREUM_LIKE_SEND),
524
+ feeStrategy: zEthereumLikeFeeStrategy
525
+ }).meta({
526
+ description: "Ethereum-like send data",
527
+ id: "EthereumLikeSendData"
528
+ });
529
+ var zEthereumLikeTransactionData = z9.discriminatedUnion("type", [
530
+ zEthereumLikeDeployContractData,
531
+ zEthereumLikeExecuteContractData,
532
+ zEthereumLikeSendData
533
+ ]);
534
+ var zEthereumLikeTransferCoinFields = z9.object({
535
+ type: zEthereumLikeTransferTransactionType,
536
+ gasPrice: z9.string(),
537
+ gasLimit: z9.string(),
538
+ nonce: z9.string()
539
+ });
540
+ var zEthereumLikeContractCoinFields = zEthereumLikeTransferCoinFields.extend({
541
+ type: zEthereumLikeContractTransactionType,
542
+ contractData: z9.string().meta({ description: "Contract deployment or contract execution data" })
543
+ });
544
+ var zEthereumLikeTransferTransactionResponse = zCommonTransactionResponse.extend(zEthereumLikeTransferCoinFields.shape).meta({ description: "Ethereum-like transfer transaction" });
545
+ var zEthereumLikeContractTransactionResponse = zCommonTransactionResponse.extend(zEthereumLikeContractCoinFields.shape).meta({ description: "Ethereum-like contract transaction" });
546
+ var zGenericLikeAssetFields = z9.object({ type: z9.literal(NetworkFamily.GENERIC_LIKE).meta({ description: "Account type" }) }).meta({ description: "Generic-like" });
547
+ var zGenericLikeLiveData = zCommonLiveData.extend({
548
+ type: z9.literal(NetworkFamily.GENERIC_LIKE).meta({ description: "Account type" })
549
+ }).meta({ description: "Generic-like" });
550
+ var zGenericTransactionType = z9.enum(["GENERIC_TRANSACTION"]).meta({ description: "Generic transaction type" });
551
+ var zGenericTransactionData = z9.object({
552
+ type: z9.literal(zGenericTransactionType.enum.GENERIC_TRANSACTION),
553
+ currency: zCurrencyString.meta({ description: "Transaction currency" }),
554
+ rawTx: z9.string().meta({ description: "Raw tx" })
555
+ }).meta({
556
+ description: "Generic transaction data",
557
+ id: "GenericTransactionData"
558
+ });
559
+ var zGenericTransactionResponse = zCommonTransactionResponse.extend({ type: zGenericTransactionType }).meta({ description: "Generic transaction" });
560
+ var zPolkadotLikeAssetFields = z9.object({
561
+ type: z9.literal(NetworkFamily.POLKADOT_LIKE).meta({ description: "Account type" }),
562
+ address: z9.string().nullable().meta({ description: "Account address" })
563
+ }).meta({ description: "Polkadot-like" });
564
+ var zPolkadotUnbondingAmount = z9.object({
565
+ amount: z9.string().meta({ description: "Amount" }),
566
+ waiting_time: z9.string().meta({ description: "Waiting time" })
567
+ });
568
+ var zPolkadotLikeStakingData = z9.object({
569
+ info: z9.object({
570
+ controllerAddress: z9.string().nullable().meta({ description: "Controller address" }),
571
+ rewardsDestination: z9.string().nullable().meta({ description: "Rewards destination" }),
572
+ proxies: z9.array(z9.string()).meta({ description: "Proxies" }),
573
+ legacyStaking: z9.boolean().meta({ description: "True if account uses legacy staking" }),
574
+ isNominator: z9.boolean().meta({ description: "True if is nominator" })
575
+ }),
576
+ balances: z9.object({
577
+ free: z9.string().meta({ description: "Free balance" }),
578
+ reserved: z9.string().meta({ description: "Reserved balance" }),
579
+ frozen: z9.string().meta({ description: "Frozen balance" }),
580
+ bonded: z9.string().meta({ description: "Bonded balance" }),
581
+ available: z9.string().meta({ description: "Available balance" }),
582
+ unbonding: z9.array(zPolkadotUnbondingAmount).meta({ description: "Unbonding balances" }),
583
+ unbonded: z9.array(zPolkadotUnbondingAmount).meta({ description: "Unbonded balances" }),
584
+ totalUnbonding: z9.string().meta({ description: "Total unbonding" }),
585
+ totalUnbonded: z9.string().meta({ description: "Total unbonded" })
586
+ }),
587
+ anonymousProxy: z9.object({
588
+ address: z9.string().meta({ description: "Address" }),
589
+ createdAt: z9.string().meta({ description: "Creation date" }),
590
+ isController: z9.boolean().meta({ description: "True if is controller" }),
591
+ isMain: z9.boolean().meta({ description: "True if is main" }),
592
+ balances: z9.object({
593
+ free: z9.string().meta({ description: "Anonymous proxy free balance" }),
594
+ reserved: z9.string().meta({ description: "Anonymous proxy reserved balance" }),
595
+ frozen: z9.string().meta({ description: "Anonymous proxy frozen balance" }),
596
+ bonded: z9.string().meta({ description: "Anonymous proxy bonded balance" }),
597
+ available: z9.string().meta({ description: "Anonymous proxy available balance" }),
598
+ total: z9.string().meta({ description: "Anonymous proxy total balance" })
599
+ }).nullable(),
600
+ blockHeight: z9.string().meta({ description: "Anonymous proxy block height" }),
601
+ extIndex: z9.string().meta({ description: "Ext index" }),
602
+ index: z9.string().meta({ description: "Index" }),
603
+ kind: z9.string().meta({ description: "Kind" })
604
+ }).nullable().meta({ description: "Anonymous proxy" })
605
+ }).nullable().meta({ description: "Polkadot-like staking data" });
606
+ var zPolkadotLikeStakingFields = z9.object({
607
+ type: z9.literal(NetworkFamily.POLKADOT_LIKE).meta({ description: "Account type" }),
608
+ staking: zPolkadotLikeStakingData.optional()
609
+ });
610
+ var zPolkadotLikeLiveData = zCommonLiveData.extend(zPolkadotLikeStakingFields.shape).meta({ description: "Polkadot-like" });
611
+ var zPolkadotLikeTransactionType = z9.enum([
612
+ "POLKADOT_LIKE_SEND",
613
+ "POLKADOT_LIKE_RECEIVE",
614
+ "POLKADOT_LIKE_ADDPROXY",
615
+ "POLKADOT_LIKE_REMOVEPROXY",
616
+ "POLKADOT_LIKE_BOND",
617
+ "POLKADOT_LIKE_REBOND",
618
+ "POLKADOT_LIKE_BONDEXTRA",
619
+ "POLKADOT_LIKE_UNBOND",
620
+ "POLKADOT_LIKE_WITHDRAWUNBONDED",
621
+ "POLKADOT_LIKE_SETCONTROLLER",
622
+ "POLKADOT_LIKE_SETPAYEE",
623
+ "POLKADOT_LIKE_PROXY",
624
+ "POLKADOT_LIKE_ANONYMOUSPROXY",
625
+ "POLKADOT_LIKE_KILLANONYMOUS",
410
626
  "POLKADOT_LIKE_PUREPROXY",
411
627
  "POLKADOT_LIKE_KILLPURE",
412
628
  "POLKADOT_LIKE_NOMINATE",
@@ -414,25 +630,25 @@ var zPolkadotLikeTransactionType = z10.enum([
414
630
  "POLKADOT_LIKE_CHILL",
415
631
  "POLKADOT_LIKE_TRANSFERALL"
416
632
  ]).meta({ description: "Polkadot-like transaction type" });
417
- var zPolkadotRewardDestination = z10.enum(["Staked", "Stash"]);
418
- var zPolkadotLikeAddProxyData = z10.object({
419
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_ADDPROXY),
633
+ var zPolkadotRewardDestination = z9.enum(["Staked", "Stash"]);
634
+ var zPolkadotLikeAddProxyData = z9.object({
635
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_ADDPROXY),
420
636
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
421
- kind: z10.literal("Staking").meta({ description: "Proxy kind" }),
422
- proxy: z10.string().meta({ description: "Proxy address" })
637
+ kind: z9.literal("Staking").meta({ description: "Proxy kind" }),
638
+ proxy: z9.string().meta({ description: "Proxy address" })
423
639
  }).meta({
424
640
  description: "Polkadot-like add proxy data",
425
641
  id: "PolkadotLikeAddProxyData"
426
642
  });
427
- var zPolkadotLikeAnonymousProxyData = z10.object({
428
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_ANONYMOUSPROXY),
643
+ var zPolkadotLikeAnonymousProxyData = z9.object({
644
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_ANONYMOUSPROXY),
429
645
  currency: zCurrencyString.meta({ description: "Transaction currency" })
430
646
  }).meta({
431
647
  description: "Polkadot-like anonymous proxy data",
432
648
  id: "PolkadotLikeAnonymousProxyData"
433
649
  });
434
- var zPolkadotLikeBondData = z10.object({
435
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_BOND),
650
+ var zPolkadotLikeBondData = z9.object({
651
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_BOND),
436
652
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
437
653
  payee: zPolkadotRewardDestination,
438
654
  amount: zUnsignedIntString.meta({ description: "Amount" })
@@ -440,75 +656,75 @@ var zPolkadotLikeBondData = z10.object({
440
656
  description: "Polkadot-like bond data",
441
657
  id: "PolkadotLikeBondData"
442
658
  });
443
- var zPolkadotLikeBondExtraData = z10.object({
444
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_BONDEXTRA),
659
+ var zPolkadotLikeBondExtraData = z9.object({
660
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_BONDEXTRA),
445
661
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
446
662
  amount: zUnsignedIntString.meta({ description: "Amount" })
447
663
  }).meta({
448
664
  description: "Polkadot-like bond extra data",
449
665
  id: "PolkadotLikeBondExtraData"
450
666
  });
451
- var zPolkadotLikeChillData = z10.object({
452
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_CHILL),
667
+ var zPolkadotLikeChillData = z9.object({
668
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_CHILL),
453
669
  currency: zCurrencyString.meta({ description: "Transaction currency" })
454
670
  }).meta({
455
671
  description: "Polkadot-like chill data",
456
672
  id: "PolkadotLikeChillData"
457
673
  });
458
- var zPolkadotLikeKillAnonymousData = z10.object({
459
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_KILLANONYMOUS),
674
+ var zPolkadotLikeKillAnonymousData = z9.object({
675
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_KILLANONYMOUS),
460
676
  currency: zCurrencyString.meta({ description: "Transaction currency" })
461
677
  }).meta({
462
678
  description: "Polkadot-like kill anonymous data",
463
679
  id: "PolkadotLikeKillAnonymousData"
464
680
  });
465
- var zPolkadotLikeRebondData = z10.object({
466
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_REBOND),
681
+ var zPolkadotLikeRebondData = z9.object({
682
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_REBOND),
467
683
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
468
684
  amount: zUnsignedIntString.meta({ description: "Amount" })
469
685
  }).meta({
470
686
  description: "Polkadot-like rebond data",
471
687
  id: "PolkadotLikeRebondData"
472
688
  });
473
- var zPolkadotLikeRemoveProxyData = z10.object({
474
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_REMOVEPROXY),
689
+ var zPolkadotLikeRemoveProxyData = z9.object({
690
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_REMOVEPROXY),
475
691
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
476
- kind: z10.literal("Staking"),
477
- proxy: z10.string().meta({ description: "Proxy address" })
692
+ kind: z9.literal("Staking"),
693
+ proxy: z9.string().meta({ description: "Proxy address" })
478
694
  }).meta({
479
695
  description: "Polkadot-like remove proxy data",
480
696
  id: "PolkadotLikeRemoveProxyData"
481
697
  });
482
698
  var zPolkadotLikeSendData = zCommonTransactionData.extend({
483
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_SEND)
699
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_SEND)
484
700
  }).meta({
485
701
  description: "Polkadot-like send data",
486
702
  id: "PolkadotLikeSendData"
487
703
  });
488
- var zPolkadotLikeSetPayeeData = z10.object({
489
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_SETPAYEE),
704
+ var zPolkadotLikeSetPayeeData = z9.object({
705
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_SETPAYEE),
490
706
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
491
707
  payee: zPolkadotRewardDestination
492
708
  }).meta({
493
709
  description: "Polkadot-like set payee data",
494
710
  id: "PolkadotLikeSetPayeeData"
495
711
  });
496
- var zPolkadotLikeUnbondData = z10.object({
497
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_UNBOND),
712
+ var zPolkadotLikeUnbondData = z9.object({
713
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_UNBOND),
498
714
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
499
715
  amount: zUnsignedIntString.meta({ description: "Amount" })
500
716
  }).meta({
501
717
  description: "Polkadot-like unbond data",
502
718
  id: "PolkadotLikeUnbondData"
503
719
  });
504
- var zPolkadotLikeWithdrawUnbondedData = z10.object({
505
- type: z10.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_WITHDRAWUNBONDED),
720
+ var zPolkadotLikeWithdrawUnbondedData = z9.object({
721
+ type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_WITHDRAWUNBONDED),
506
722
  currency: zCurrencyString.meta({ description: "Transaction currency" })
507
723
  }).meta({
508
724
  description: "Polkadot-like withdraw unbonded data",
509
725
  id: "PolkadotLikeWithdrawUnbondedData"
510
726
  });
511
- var zPolkadotLikeTransactionData = z10.discriminatedUnion("type", [
727
+ var zPolkadotLikeTransactionData = z9.discriminatedUnion("type", [
512
728
  zPolkadotLikeAddProxyData,
513
729
  zPolkadotLikeAnonymousProxyData,
514
730
  zPolkadotLikeBondData,
@@ -523,77 +739,77 @@ var zPolkadotLikeTransactionData = z10.discriminatedUnion("type", [
523
739
  zPolkadotLikeWithdrawUnbondedData
524
740
  ]);
525
741
  var zPolkadotLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zPolkadotLikeTransactionType }).meta({ description: "Polkadot-like transaction" });
526
- var zRippleLikeAssetFields = z10.object({
527
- type: z10.literal(NetworkFamily.RIPPLE_LIKE).meta({ description: "Account type" }),
528
- address: z10.string().nullable().meta({ description: "Account address" })
742
+ var zRippleLikeAssetFields = z9.object({
743
+ type: z9.literal(NetworkFamily.RIPPLE_LIKE).meta({ description: "Account type" }),
744
+ address: z9.string().nullable().meta({ description: "Account address" })
529
745
  }).meta({ description: "Ripple-like" });
530
746
  var zRippleLikeLiveData = zCommonLiveData.extend({
531
- type: z10.literal(NetworkFamily.RIPPLE_LIKE).meta({ description: "Account type" })
747
+ type: z9.literal(NetworkFamily.RIPPLE_LIKE).meta({ description: "Account type" })
532
748
  }).meta({ description: "Ripple-like" });
533
- var zRippleLikeEstimatedFees = z10.object({
534
- type: z10.literal(NetworkFamily.RIPPLE_LIKE),
749
+ var zRippleLikeEstimatedFees = z9.object({
750
+ type: z9.literal(NetworkFamily.RIPPLE_LIKE),
535
751
  fee: zIntString
536
752
  }).meta({ description: "Ripple-like fees" });
537
- var zRippleLikeTransactionType = z10.enum(["RIPPLE_LIKE_SEND", "RIPPLE_LIKE_RECEIVE"]).meta({ description: "Ripple-like transaction type" });
753
+ var zRippleLikeTransactionType = z9.enum(["RIPPLE_LIKE_SEND", "RIPPLE_LIKE_RECEIVE"]).meta({ description: "Ripple-like transaction type" });
538
754
  var zRippleLikeSendData = zCommonTransactionData.extend({
539
- type: z10.literal(zRippleLikeTransactionType.enum.RIPPLE_LIKE_SEND),
755
+ type: z9.literal(zRippleLikeTransactionType.enum.RIPPLE_LIKE_SEND),
540
756
  destinationTag: zIntString.nullable().meta({ description: "Destination tag" }),
541
757
  feeStrategy: zFeeStrategyCustom.meta({ description: "Ripple-like fee strategy" })
542
758
  }).meta({
543
759
  description: "Ripple-like send data",
544
760
  id: "RippleLikeSendData"
545
761
  });
546
- var zRippleLikeTransactionData = z10.discriminatedUnion("type", [zRippleLikeSendData]);
762
+ var zRippleLikeTransactionData = z9.discriminatedUnion("type", [zRippleLikeSendData]);
547
763
  var zRippleLikeTransactionResponse = zCommonTransactionResponse.extend({
548
764
  type: zRippleLikeTransactionType,
549
- memos: z10.array(z10.string()),
550
- destinationTag: z10.string()
765
+ memos: z9.array(z9.string()),
766
+ destinationTag: z9.string()
551
767
  }).meta({ description: "Ripple-like transaction" });
552
- var zSolanaLikeAssetFields = z10.object({
553
- type: z10.literal(NetworkFamily.SOLANA_LIKE).meta({ description: "Account type" }),
554
- address: z10.string().nullable().meta({ description: "Account address" }),
555
- contractAddress: z10.string().meta({
768
+ var zSolanaLikeAssetFields = z9.object({
769
+ type: z9.literal(NetworkFamily.SOLANA_LIKE).meta({ description: "Account type" }),
770
+ address: z9.string().nullable().meta({ description: "Account address" }),
771
+ contractAddress: z9.string().meta({
556
772
  description: "Will be deprecated, Use contractAddress at root level instead; Token contract address"
557
773
  }).nullable().optional()
558
774
  }).meta({ description: "Solana-like" });
559
- var zSolanaStakingAccountStatus = z10.enum(["not_sync", "activating", "activated", "deactivating", "deactivated", "deleted"]).meta({ description: "Staking account status" });
560
- var zSolanaLikeStakingData = z10.object({
561
- staked: z10.string().meta({ description: "Staked balance" }),
562
- rewards: z10.object({
563
- total: z10.string().meta({ description: "Total rewards" }),
564
- last7: z10.string().meta({ description: "Rewards on last 7 days" }),
565
- last30: z10.string().meta({ description: "Rewards on last 30 days" })
775
+ var zSolanaStakingAccountStatus = z9.enum(["not_sync", "activating", "activated", "deactivating", "deactivated", "deleted"]).meta({ description: "Staking account status" });
776
+ var zSolanaLikeStakingData = z9.object({
777
+ staked: z9.string().meta({ description: "Staked balance" }),
778
+ rewards: z9.object({
779
+ total: z9.string().meta({ description: "Total rewards" }),
780
+ last7: z9.string().meta({ description: "Rewards on last 7 days" }),
781
+ last30: z9.string().meta({ description: "Rewards on last 30 days" })
566
782
  }),
567
- stakes: z10.array(
568
- z10.object({
569
- uid: z10.string(),
570
- baseAccountUid: z10.string(),
571
- pubKey: z10.string().meta({ description: "Public key" }),
572
- validatorPubKey: z10.string().nullable().meta({ description: "Validator public key" }),
573
- initialAmount: z10.string().meta({ description: "Initial amount" }),
574
- activeAmount: z10.string().meta({ description: "Active amount" }),
575
- inactiveAmount: z10.string().meta({ description: "Inactive amount" }),
576
- totalBalance: z10.string().meta({ description: "Total balance" }),
577
- creationDate: z10.string().meta({ description: "Creation date" }),
578
- activationEpoch: z10.string().nullable().meta({ description: "Activation epoch" }),
579
- activationDate: z10.string().nullable().meta({ description: "Activation date" }),
580
- deactivationEpoch: z10.string().nullable().meta({ description: "Deactivation epoch" }),
581
- deactivationDate: z10.string().nullable().meta({ description: "Deactivation date" }),
783
+ stakes: z9.array(
784
+ z9.object({
785
+ uid: z9.string(),
786
+ baseAccountUid: z9.string(),
787
+ pubKey: z9.string().meta({ description: "Public key" }),
788
+ validatorPubKey: z9.string().nullable().meta({ description: "Validator public key" }),
789
+ initialAmount: z9.string().meta({ description: "Initial amount" }),
790
+ activeAmount: z9.string().meta({ description: "Active amount" }),
791
+ inactiveAmount: z9.string().meta({ description: "Inactive amount" }),
792
+ totalBalance: z9.string().meta({ description: "Total balance" }),
793
+ creationDate: z9.string().meta({ description: "Creation date" }),
794
+ activationEpoch: z9.string().nullable().meta({ description: "Activation epoch" }),
795
+ activationDate: z9.string().nullable().meta({ description: "Activation date" }),
796
+ deactivationEpoch: z9.string().nullable().meta({ description: "Deactivation epoch" }),
797
+ deactivationDate: z9.string().nullable().meta({ description: "Deactivation date" }),
582
798
  status: zSolanaStakingAccountStatus,
583
- rentExemptReserve: z10.string().meta({ description: "Rent exempt reserve" }),
584
- withdrawableAmount: z10.string().meta({ description: "Withdrawable amount" }),
585
- totalRewards: z10.string().meta({ description: "Total rewards" }),
586
- creationTxHash: z10.string().nullable().meta({ description: "Creation transaction hash" }),
587
- actionsTxHashes: z10.array(z10.string()).meta({ description: "Actions transactions hashes" })
799
+ rentExemptReserve: z9.string().meta({ description: "Rent exempt reserve" }),
800
+ withdrawableAmount: z9.string().meta({ description: "Withdrawable amount" }),
801
+ totalRewards: z9.string().meta({ description: "Total rewards" }),
802
+ creationTxHash: z9.string().nullable().meta({ description: "Creation transaction hash" }),
803
+ actionsTxHashes: z9.array(z9.string()).meta({ description: "Actions transactions hashes" })
588
804
  })
589
805
  )
590
806
  }).nullable().meta({ description: "Solana-like staking data" });
591
- var zSolanaLikeStakingFields = z10.object({
592
- type: z10.literal(NetworkFamily.SOLANA_LIKE).meta({ description: "Account type" }),
807
+ var zSolanaLikeStakingFields = z9.object({
808
+ type: z9.literal(NetworkFamily.SOLANA_LIKE).meta({ description: "Account type" }),
593
809
  staking: zSolanaLikeStakingData.optional()
594
810
  });
595
811
  var zSolanaLikeLiveData = zCommonLiveData.extend(zSolanaLikeStakingFields.shape).meta({ description: "Solana-like" });
596
- var zSolanaLikeTransactionType = z10.enum([
812
+ var zSolanaLikeTransactionType = z9.enum([
597
813
  "SOLANA_LIKE_SEND",
598
814
  "SOLANA_LIKE_RECEIVE",
599
815
  "SOLANA_LIKE_CREATE_DELEGATE_STAKE",
@@ -608,43 +824,43 @@ var zSolanaLikeTransactionType = z10.enum([
608
824
  "SOLANA_LIKE_CREATE_SPL_TOKEN_ACCOUNT"
609
825
  ]).meta({ description: "Solana-like transaction type" });
610
826
  var zSolanaLikeCreateDelegateStakeData = zCommonTransactionData.extend({
611
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_CREATE_DELEGATE_STAKE),
612
- recipient: z10.string().meta({ description: "Delegated vote address" }),
827
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_CREATE_DELEGATE_STAKE),
828
+ recipient: z9.string().meta({ description: "Delegated vote address" }),
613
829
  // Re-described
614
830
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
615
831
  }).meta({
616
832
  description: "Solana-like create delegate stake data",
617
833
  id: "SolanaLikeCreateDelegateStakeData"
618
834
  });
619
- var zSolanaLikeDeactivateStakeData = z10.object({
620
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_DEACTIVATE_STAKE),
835
+ var zSolanaLikeDeactivateStakeData = z9.object({
836
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_DEACTIVATE_STAKE),
621
837
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
622
838
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
623
- stakeAccount: z10.string().meta({ description: "Stake account address" }),
839
+ stakeAccount: z9.string().meta({ description: "Stake account address" }),
624
840
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
625
841
  // No recipient, no amount
626
842
  }).meta({
627
843
  description: "Solana-like deactivate stake data",
628
844
  id: "SolanaLikeDeactivateStakeData"
629
845
  });
630
- var zSolanaLikeDelegateStakeData = z10.object({
631
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_DELEGATE_STAKE),
846
+ var zSolanaLikeDelegateStakeData = z9.object({
847
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_DELEGATE_STAKE),
632
848
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
633
849
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
634
- recipient: z10.string().meta({ description: "Delegated vote address" }),
635
- stakeAccount: z10.string().meta({ description: "Stake account address" }),
850
+ recipient: z9.string().meta({ description: "Delegated vote address" }),
851
+ stakeAccount: z9.string().meta({ description: "Stake account address" }),
636
852
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
637
853
  // No amount
638
854
  }).meta({
639
855
  description: "Solana-like delegate stake data",
640
856
  id: "SolanaLikeDelegateStakeData"
641
857
  });
642
- var zSolanaLikeMergeStakeData = z10.object({
643
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_MERGE_STAKE),
858
+ var zSolanaLikeMergeStakeData = z9.object({
859
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_MERGE_STAKE),
644
860
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
645
861
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
646
- mergeSrcAccount: z10.string().meta({ description: "Source stake address" }),
647
- mergeDstAccount: z10.string().meta({ description: "Destination stake address" }),
862
+ mergeSrcAccount: z9.string().meta({ description: "Source stake address" }),
863
+ mergeDstAccount: z9.string().meta({ description: "Destination stake address" }),
648
864
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
649
865
  // No recipient, no amount
650
866
  }).meta({
@@ -652,42 +868,42 @@ var zSolanaLikeMergeStakeData = z10.object({
652
868
  id: "SolanaLikeMergeStakeData"
653
869
  });
654
870
  var zSolanaLikeSendData = zCommonTransactionData.extend({
655
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SEND),
871
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SEND),
656
872
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
657
873
  }).meta({
658
874
  description: "Solana-like send data",
659
875
  id: "SolanaLikeSendData"
660
876
  });
661
- var zSolanaLikeSplitDeactivateStakeData = z10.object({
662
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SPLIT_DEACTIVATE_STAKE),
877
+ var zSolanaLikeSplitDeactivateStakeData = z9.object({
878
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SPLIT_DEACTIVATE_STAKE),
663
879
  amount: zUnsignedIntString.meta({ description: "Transaction amount" }),
664
880
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
665
881
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
666
- stakeAccount: z10.string().meta({ description: "Stake account address" }),
882
+ stakeAccount: z9.string().meta({ description: "Stake account address" }),
667
883
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
668
884
  // No recipient
669
885
  }).meta({
670
886
  description: "Solana-like split deactivate stake data",
671
887
  id: "SolanaLikeSplitDeactivateStakeData"
672
888
  });
673
- var zSolanaLikeSplitStakeData = z10.object({
674
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SPLIT_STAKE),
889
+ var zSolanaLikeSplitStakeData = z9.object({
890
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SPLIT_STAKE),
675
891
  amount: zUnsignedIntString.meta({ description: "Transaction amount" }),
676
892
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
677
893
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
678
- stakeAccount: z10.string().meta({ description: "Stake account address" }),
894
+ stakeAccount: z9.string().meta({ description: "Stake account address" }),
679
895
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
680
896
  // No recipient
681
897
  }).meta({
682
898
  description: "Solana-like split stake data",
683
899
  id: "SolanaLikeSplitStakeData"
684
900
  });
685
- var zSolanaLikeWithdrawStakeData = z10.object({
686
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_WITHDRAW_STAKE),
901
+ var zSolanaLikeWithdrawStakeData = z9.object({
902
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_WITHDRAW_STAKE),
687
903
  amount: zUnsignedIntString.meta({ description: "Transaction amount" }),
688
904
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
689
905
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
690
- stakeAccount: z10.string().meta({ description: "Stake account address" }),
906
+ stakeAccount: z9.string().meta({ description: "Stake account address" }),
691
907
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
692
908
  // No recipient
693
909
  }).meta({
@@ -695,21 +911,21 @@ var zSolanaLikeWithdrawStakeData = z10.object({
695
911
  id: "SolanaLikeWithdrawStakeData"
696
912
  });
697
913
  var zSolanaLikeSendTokenData = zCommonTransactionData.extend({
698
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SEND_TOKEN),
914
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_SEND_TOKEN),
699
915
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
700
916
  }).meta({
701
917
  description: "Solana-like send token data",
702
918
  id: "SolanaLikeSendTokenData"
703
919
  });
704
920
  var zSolanaLikeFundAndSendTokenData = zCommonTransactionData.extend({
705
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_FUND_AND_SEND_TOKEN),
921
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_FUND_AND_SEND_TOKEN),
706
922
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
707
923
  }).meta({
708
924
  description: "Solana-like fund token account and send token data",
709
925
  id: "SolanaLikeFundAndSendTokenData"
710
926
  });
711
- var zSolanaLikeCreateTokenAccountData = z10.object({
712
- type: z10.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_CREATE_SPL_TOKEN_ACCOUNT),
927
+ var zSolanaLikeCreateTokenAccountData = z9.object({
928
+ type: z9.literal(zSolanaLikeTransactionType.enum.SOLANA_LIKE_CREATE_SPL_TOKEN_ACCOUNT),
713
929
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
714
930
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
715
931
  feeStrategy: zFeeStrategy.meta({ description: "Solana-like fee strategy" })
@@ -717,7 +933,7 @@ var zSolanaLikeCreateTokenAccountData = z10.object({
717
933
  description: "Solana-like create token account",
718
934
  id: "SolanaLikeCreateTokenAccountData"
719
935
  });
720
- var zSolanaLikeTransactionData = z10.discriminatedUnion("type", [
936
+ var zSolanaLikeTransactionData = z9.discriminatedUnion("type", [
721
937
  zSolanaLikeCreateDelegateStakeData,
722
938
  zSolanaLikeDeactivateStakeData,
723
939
  zSolanaLikeDelegateStakeData,
@@ -731,60 +947,60 @@ var zSolanaLikeTransactionData = z10.discriminatedUnion("type", [
731
947
  zSolanaLikeCreateTokenAccountData
732
948
  ]);
733
949
  var zSolanaLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zSolanaLikeTransactionType }).meta({ description: "Solana-like transaction" });
734
- var zStellarLikeAssetFields = z10.object({
735
- type: z10.literal(NetworkFamily.STELLAR_LIKE).meta({ description: "Account type" }),
736
- address: z10.string().nullable().meta({ description: "Account address" })
950
+ var zStellarLikeAssetFields = z9.object({
951
+ type: z9.literal(NetworkFamily.STELLAR_LIKE).meta({ description: "Account type" }),
952
+ address: z9.string().nullable().meta({ description: "Account address" })
737
953
  }).meta({ description: "Stellar-like" });
738
954
  var zStellarLikeLiveData = zCommonLiveData.extend({
739
- type: z10.literal(NetworkFamily.STELLAR_LIKE).meta({ description: "Account type" })
955
+ type: z9.literal(NetworkFamily.STELLAR_LIKE).meta({ description: "Account type" })
740
956
  }).meta({ description: "Stellar-like" });
741
- var zStellarLikeEstimatedFees = z10.object({
742
- type: z10.literal(NetworkFamily.STELLAR_LIKE),
957
+ var zStellarLikeEstimatedFees = z9.object({
958
+ type: z9.literal(NetworkFamily.STELLAR_LIKE),
743
959
  fee: zIntString
744
960
  }).meta({ description: "Stellar-like fees" });
745
- var zStellarLikeTransactionType = z10.enum(["STELLAR_LIKE_SEND", "STELLAR_LIKE_RECEIVE"]).meta({ description: "Stellar-like transaction type" });
746
- var zStellarMemo = z10.union([
747
- z10.object({
748
- MEMO_TEXT: z10.string().max(28).meta({ description: "Text memo (at most a 28 bytes string)" })
961
+ var zStellarLikeTransactionType = z9.enum(["STELLAR_LIKE_SEND", "STELLAR_LIKE_RECEIVE"]).meta({ description: "Stellar-like transaction type" });
962
+ var zStellarMemo = z9.union([
963
+ z9.object({
964
+ MEMO_TEXT: z9.string().max(28).meta({ description: "Text memo (at most a 28 bytes string)" })
749
965
  }).meta({ description: "Text memo" }),
750
- z10.object({ MEMO_ID: zIntString.meta({ description: "Id memo (unsigned 64 bits integer)" }) }).meta({ description: "Id memo" }),
751
- z10.object({
752
- MEMO_HASH: z10.string().max(128).regex(/^[a-fA-F0-9]+$/).meta({ description: "Transaction hash memo (64 bytes hexadecimal string)" })
966
+ z9.object({ MEMO_ID: zIntString.meta({ description: "Id memo (unsigned 64 bits integer)" }) }).meta({ description: "Id memo" }),
967
+ z9.object({
968
+ MEMO_HASH: z9.string().max(128).regex(/^[a-fA-F0-9]+$/).meta({ description: "Transaction hash memo (64 bytes hexadecimal string)" })
753
969
  }).meta({ description: "Hash memo" }),
754
- z10.object({
755
- MEMO_RETURN: z10.string().max(128).regex(/^[a-fA-F0-9]+$/).meta({
970
+ z9.object({
971
+ MEMO_RETURN: z9.string().max(128).regex(/^[a-fA-F0-9]+$/).meta({
756
972
  description: "A 64 bytes hexadecimal string intended to be interpreted as the hash of the transaction the sender is refunding."
757
973
  })
758
974
  }).meta({ description: "Return memo" })
759
975
  ]);
760
976
  var zStellarLikeSendData = zCommonTransactionData.extend({
761
- type: z10.literal(zStellarLikeTransactionType.enum.STELLAR_LIKE_SEND),
977
+ type: z9.literal(zStellarLikeTransactionType.enum.STELLAR_LIKE_SEND),
762
978
  memo: zStellarMemo.nullable().meta({ description: "Stellar memo" }),
763
979
  feeStrategy: zFeeStrategy.meta({ description: "Stellar-like fee strategy" })
764
980
  }).meta({
765
981
  description: "Stellar-like send data",
766
982
  id: "StellarLikeSendData"
767
983
  });
768
- var zStellarLikeTransactionData = z10.discriminatedUnion("type", [zStellarLikeSendData]);
984
+ var zStellarLikeTransactionData = z9.discriminatedUnion("type", [zStellarLikeSendData]);
769
985
  var zStellarLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zStellarLikeTransactionType }).meta({ description: "Stellar-like transaction" });
770
- var zSuiLikeAssetFields = z10.object({
771
- type: z10.literal(NetworkFamily.SUI_LIKE).meta({ description: "Account type" }),
772
- address: z10.string().nullable().meta({ description: "Account address" })
986
+ var zSuiLikeAssetFields = z9.object({
987
+ type: z9.literal(NetworkFamily.SUI_LIKE).meta({ description: "Account type" }),
988
+ address: z9.string().nullable().meta({ description: "Account address" })
773
989
  }).meta({ description: "Sui-like" });
774
- var zSuiLikeStakingData = z10.object({
775
- totalStaked: z10.string().meta({ description: "Total staked amount" }),
776
- totalRewards: z10.string().meta({ description: "Total of rewards" })
990
+ var zSuiLikeStakingData = z9.object({
991
+ totalStaked: z9.string().meta({ description: "Total staked amount" }),
992
+ totalRewards: z9.string().meta({ description: "Total of rewards" })
777
993
  }).nullable().meta({ description: "Sui-like staking data" });
778
- var zSuiLikeStakingFields = z10.object({
779
- type: z10.literal(NetworkFamily.SUI_LIKE).meta({ description: "Account type" }),
994
+ var zSuiLikeStakingFields = z9.object({
995
+ type: z9.literal(NetworkFamily.SUI_LIKE).meta({ description: "Account type" }),
780
996
  staking: zSuiLikeStakingData.optional()
781
997
  });
782
998
  var zSuiLikeLiveData = zCommonLiveData.extend(zSuiLikeStakingFields.shape).meta({ description: "Sui-like" });
783
- var zSuiLikeEstimatedFees = z10.object({
784
- type: z10.literal(NetworkFamily.SUI_LIKE),
999
+ var zSuiLikeEstimatedFees = z9.object({
1000
+ type: z9.literal(NetworkFamily.SUI_LIKE),
785
1001
  fee: zIntString
786
1002
  }).meta({ description: "Sui-like fees" });
787
- var zSuiLikeTransactionType = z10.enum([
1003
+ var zSuiLikeTransactionType = z9.enum([
788
1004
  "SUI_LIKE_SEND",
789
1005
  "SUI_LIKE_RECEIVE",
790
1006
  "SUI_LIKE_SEND_TOKEN",
@@ -793,21 +1009,21 @@ var zSuiLikeTransactionType = z10.enum([
793
1009
  "SUI_LIKE_UNSTAKE"
794
1010
  ]).meta({ description: "Sui-like transaction type" });
795
1011
  var zSuiLikeSendData = zCommonTransactionData.extend({
796
- type: z10.literal(zSuiLikeTransactionType.enum.SUI_LIKE_SEND),
1012
+ type: z9.literal(zSuiLikeTransactionType.enum.SUI_LIKE_SEND),
797
1013
  feeStrategy: zFeeStrategy.meta({ description: "Sui-like fee strategy" })
798
1014
  }).meta({
799
1015
  description: "Sui-like send data",
800
1016
  id: "SuiLikeSendData"
801
1017
  });
802
1018
  var zSuiLikeTransferTokenData = zCommonTransactionData.extend({
803
- type: z10.literal(zSuiLikeTransactionType.enum.SUI_LIKE_SEND_TOKEN),
1019
+ type: z9.literal(zSuiLikeTransactionType.enum.SUI_LIKE_SEND_TOKEN),
804
1020
  feeStrategy: zFeeStrategy.meta({ description: "Sui-like fee strategy" })
805
1021
  }).meta({
806
1022
  description: "Sui-like transfer token data",
807
1023
  id: "SuiLikeTransferTokenData"
808
1024
  });
809
- var zSuiLikeStakeData = z10.object({
810
- type: z10.literal(zSuiLikeTransactionType.enum.SUI_LIKE_STAKE),
1025
+ var zSuiLikeStakeData = z9.object({
1026
+ type: z9.literal(zSuiLikeTransactionType.enum.SUI_LIKE_STAKE),
811
1027
  feeStrategy: zFeeStrategy.meta({ description: "Sui-like fee strategy" }),
812
1028
  amount: zUnsignedIntString.meta({ description: "Transaction amount" }),
813
1029
  currency: zCurrencyString.meta({
@@ -815,55 +1031,55 @@ var zSuiLikeStakeData = z10.object({
815
1031
  }),
816
1032
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
817
1033
  // DELEGATE does not have recipient, but has validator instead
818
- validator: z10.string().nonempty().meta({ description: "Validator address" })
1034
+ validator: z9.string().nonempty().meta({ description: "Validator address" })
819
1035
  }).meta({
820
1036
  description: "Sui-like stake data",
821
1037
  id: "SuiLikeStakeData"
822
1038
  });
823
- var zSuiLikeUnstakeData = z10.object({
824
- type: z10.literal(zSuiLikeTransactionType.enum.SUI_LIKE_UNSTAKE),
1039
+ var zSuiLikeUnstakeData = z9.object({
1040
+ type: z9.literal(zSuiLikeTransactionType.enum.SUI_LIKE_UNSTAKE),
825
1041
  feeStrategy: zFeeStrategy.meta({ description: "Sui-like fee strategy" }),
826
1042
  currency: zCurrencyString.meta({
827
1043
  description: "Will be deprecated soon, use Account.network. Transaction currency"
828
1044
  }),
829
1045
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
830
- stakedSuiId: z10.string().nonempty().meta({ description: "Staked object to (partially?) unstake" }),
1046
+ stakedSuiId: z9.string().nonempty().meta({ description: "Staked object to (partially?) unstake" }),
831
1047
  amount: zUnsignedIntString.meta({ description: "Amount to unstake from the position" }),
832
- useAllAmount: z10.boolean().meta({
1048
+ useAllAmount: z9.boolean().meta({
833
1049
  description: "Whether to unstake the full amount (triggers different sets of transaction commands)"
834
1050
  })
835
1051
  }).meta({
836
1052
  description: "Sui-like unstake data",
837
1053
  id: "SuiLikeUnstakeData"
838
1054
  });
839
- var zSuiLikeTransactionData = z10.discriminatedUnion("type", [
1055
+ var zSuiLikeTransactionData = z9.discriminatedUnion("type", [
840
1056
  zSuiLikeSendData,
841
1057
  zSuiLikeTransferTokenData,
842
1058
  zSuiLikeStakeData,
843
1059
  zSuiLikeUnstakeData
844
1060
  ]);
845
1061
  var zSuiLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zSuiLikeTransactionType }).meta({ description: "Sui-like transaction" });
846
- var zTezosLikeAssetFields = z10.object({
847
- type: z10.literal(NetworkFamily.TEZOS_LIKE).meta({ description: "Account type" }),
848
- address: z10.string().nullable().meta({ description: "Account address" })
1062
+ var zTezosLikeAssetFields = z9.object({
1063
+ type: z9.literal(NetworkFamily.TEZOS_LIKE).meta({ description: "Account type" }),
1064
+ address: z9.string().nullable().meta({ description: "Account address" })
849
1065
  }).meta({ description: "Tezos-like" });
850
- var zTezosLikeStakingData = z10.object({
851
- delegations: z10.array(
852
- z10.object({
853
- address: z10.string()
1066
+ var zTezosLikeStakingData = z9.object({
1067
+ delegations: z9.array(
1068
+ z9.object({
1069
+ address: z9.string()
854
1070
  })
855
1071
  )
856
1072
  }).nullable().meta({ description: "Tezos-like staking data" });
857
- var zTezosLikeStakingFields = z10.object({
858
- type: z10.literal(NetworkFamily.TEZOS_LIKE).meta({ description: "Account type" }),
1073
+ var zTezosLikeStakingFields = z9.object({
1074
+ type: z9.literal(NetworkFamily.TEZOS_LIKE).meta({ description: "Account type" }),
859
1075
  staking: zTezosLikeStakingData.optional()
860
1076
  });
861
1077
  var zTezosLikeLiveData = zCommonLiveData.extend(zTezosLikeStakingFields.shape).meta({ description: "Tezos-like" });
862
- var zTezosLikeEstimatedFees = z10.object({
863
- type: z10.literal(NetworkFamily.TEZOS_LIKE),
1078
+ var zTezosLikeEstimatedFees = z9.object({
1079
+ type: z9.literal(NetworkFamily.TEZOS_LIKE),
864
1080
  fee: zIntString
865
1081
  }).describe("Tezos-like fees");
866
- var zTezosLikeTransactionType = z10.enum([
1082
+ var zTezosLikeTransactionType = z9.enum([
867
1083
  "TEZOS_LIKE_SEND",
868
1084
  "TEZOS_LIKE_RECEIVE",
869
1085
  "TEZOS_LIKE_REVEAL",
@@ -872,84 +1088,80 @@ var zTezosLikeTransactionType = z10.enum([
872
1088
  ]).meta({ description: "Tezos-like transaction type" });
873
1089
  var zTezosLikeFeeStrategy = zFeeStrategyCustom.meta({ description: "Tezos-like fee strategy" });
874
1090
  var zTezosLikeSendData = zCommonTransactionData.extend({
875
- type: z10.literal(zTezosLikeTransactionType.enum.TEZOS_LIKE_SEND),
1091
+ type: z9.literal(zTezosLikeTransactionType.enum.TEZOS_LIKE_SEND),
876
1092
  feeStrategy: zTezosLikeFeeStrategy
877
1093
  }).meta({
878
1094
  description: "Tezos-like send data",
879
1095
  id: "TezosLikeSendData"
880
1096
  });
881
- var zTezosLikeDelegateData = z10.object({
882
- type: z10.literal(zTezosLikeTransactionType.enum.TEZOS_LIKE_DELEGATE),
1097
+ var zTezosLikeDelegateData = z9.object({
1098
+ type: z9.literal(zTezosLikeTransactionType.enum.TEZOS_LIKE_DELEGATE),
883
1099
  amount: zUnsignedIntString.optional().meta({ description: "Deprecated: DO NOT USE!" }),
884
1100
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
885
1101
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
886
- recipient: z10.string().nonempty().meta({ description: "Transaction recipient" }),
1102
+ recipient: z9.string().nonempty().meta({ description: "Transaction recipient" }),
887
1103
  feeStrategy: zTezosLikeFeeStrategy
888
1104
  }).meta({
889
1105
  description: "Tezos-like delegate data",
890
1106
  id: "TezosLikeDelegateData"
891
1107
  });
892
- var zTezosLikeUndelegateData = z10.object({
893
- type: z10.literal(zTezosLikeTransactionType.enum.TEZOS_LIKE_UNDELEGATE),
1108
+ var zTezosLikeUndelegateData = z9.object({
1109
+ type: z9.literal(zTezosLikeTransactionType.enum.TEZOS_LIKE_UNDELEGATE),
894
1110
  amount: zUnsignedIntString.optional().meta({ description: "Deprecated: DO NOT USE!" }),
895
1111
  currency: zCurrencyString.meta({ description: "Transaction currency" }),
896
1112
  maxFee: zUnsignedIntString.nullable().meta({ description: "Transaction max fee" }),
897
- recipient: z10.string().nonempty().optional().meta({ description: "Deprecated: DO NOT USE!" }),
1113
+ recipient: z9.string().nonempty().optional().meta({ description: "Deprecated: DO NOT USE!" }),
898
1114
  feeStrategy: zTezosLikeFeeStrategy
899
1115
  }).meta({
900
1116
  description: "Tezos-like undelegate data",
901
1117
  id: "TezosLikeUndelegateData"
902
1118
  });
903
- var zTezosLikeTransactionData = z10.discriminatedUnion("type", [
1119
+ var zTezosLikeTransactionData = z9.discriminatedUnion("type", [
904
1120
  zTezosLikeSendData,
905
1121
  zTezosLikeDelegateData,
906
1122
  zTezosLikeUndelegateData
907
1123
  ]);
908
1124
  var zTezosLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zTezosLikeTransactionType }).meta({ description: "Tezos-like transaction" });
909
- var zTronLikeAssetFields = z10.object({
910
- type: z10.literal(NetworkFamily.TRON_LIKE).meta({ description: "Account type" }),
911
- address: z10.string().nullable().meta({ description: "Account address" })
912
- }).meta({ description: "Tron-like" });
913
- var zTrc20LikeAssetFields = z10.object({
914
- type: z10.literal(NetworkFamily.TRC20_LIKE).meta({ description: "Account type" }),
915
- address: z10.string().nullable().meta({ description: "Account address" }),
916
- contractAddress: z10.string().meta({
1125
+ var zTronLikeAssetFields = z9.object({
1126
+ type: z9.literal(NetworkFamily.TRON_LIKE).meta({ description: "Account type" }),
1127
+ address: z9.string().nullable().meta({ description: "Account address" }),
1128
+ contractAddress: z9.string().nullable().meta({
917
1129
  description: "Will be deprecated, Use contractAddress at root level instead; Token contract address"
918
1130
  }).optional()
919
- }).meta({ description: "Tron-like token" });
1131
+ }).meta({ description: "Tron-like" });
920
1132
  var zTronLikeLiveData = zCommonLiveData.extend({
921
- type: z10.enum([NetworkFamily.TRON_LIKE, NetworkFamily.TRC20_LIKE]).meta({ description: "Account type" })
1133
+ type: z9.literal(NetworkFamily.TRON_LIKE).meta({ description: "Account type" })
922
1134
  }).meta({ description: "Tron-like" });
923
- var zTronLikeEstimatedFees = z10.object({
924
- type: z10.literal(NetworkFamily.TRON_LIKE),
1135
+ var zTronLikeEstimatedFees = z9.object({
1136
+ type: z9.literal(NetworkFamily.TRON_LIKE),
925
1137
  fee: zIntString
926
1138
  }).meta({ description: "Tron-like fees" });
927
- var zTronLikeTransactionType = z10.enum(["TRON_LIKE_SEND", "TRON_LIKE_RECEIVE", "TRON_LIKE_SEND_TOKEN", "TRON_LIKE_RECEIVE_TOKEN"]).meta({ description: "Tron-like transaction type" });
1139
+ var zTronLikeTransactionType = z9.enum(["TRON_LIKE_SEND", "TRON_LIKE_RECEIVE", "TRON_LIKE_SEND_TOKEN", "TRON_LIKE_RECEIVE_TOKEN"]).meta({ description: "Tron-like transaction type" });
928
1140
  var zTronLikeSendData = zCommonTransactionData.extend({
929
- type: z10.literal(zTronLikeTransactionType.enum.TRON_LIKE_SEND),
1141
+ type: z9.literal(zTronLikeTransactionType.enum.TRON_LIKE_SEND),
930
1142
  feeStrategy: zFeeStrategy.meta({ description: "Tron-like fee strategy" })
931
1143
  }).meta({
932
1144
  description: "Tron-like send data",
933
1145
  id: "TronLikeSendData"
934
1146
  });
935
1147
  var zTronLikeSendTokenData = zCommonTransactionData.extend({
936
- type: z10.literal(zTronLikeTransactionType.enum.TRON_LIKE_SEND_TOKEN),
1148
+ type: z9.literal(zTronLikeTransactionType.enum.TRON_LIKE_SEND_TOKEN),
937
1149
  feeStrategy: zFeeStrategy.meta({ description: "Tron-like fee strategy" })
938
1150
  }).meta({
939
1151
  description: "Tron-like send token data",
940
1152
  id: "TronLikeSendTokenData"
941
1153
  });
942
- var zTronLikeTransactionData = z10.discriminatedUnion("type", [
1154
+ var zTronLikeTransactionData = z9.discriminatedUnion("type", [
943
1155
  zTronLikeSendData,
944
1156
  zTronLikeSendTokenData
945
1157
  ]);
946
1158
 
947
1159
  // src/networks/index.ts
948
- var zNetworkAssetFields = z10.discriminatedUnion("type", [
1160
+ var zNetworkAssetFields = z9.discriminatedUnion("type", [
949
1161
  zBitcoinLikeAssetFields,
1162
+ zCantonLikeAssetFields,
950
1163
  zCardanoLikeAssetFields,
951
1164
  zEthereumLikeAssetFields,
952
- zEthereumTokenLikeAssetFields,
953
1165
  zGenericLikeAssetFields,
954
1166
  zPolkadotLikeAssetFields,
955
1167
  zRippleLikeAssetFields,
@@ -957,14 +1169,13 @@ var zNetworkAssetFields = z10.discriminatedUnion("type", [
957
1169
  zStellarLikeAssetFields,
958
1170
  zTezosLikeAssetFields,
959
1171
  zSuiLikeAssetFields,
960
- zTronLikeAssetFields,
961
- zTrc20LikeAssetFields
1172
+ zTronLikeAssetFields
962
1173
  ]).meta({ description: "Network asset fields" });
963
- var zAccountLiveData = z10.discriminatedUnion("type", [
1174
+ var zAccountLiveData = z9.discriminatedUnion("type", [
964
1175
  zBitcoinLikeLiveData,
1176
+ zCantonLikeLiveData,
965
1177
  zCardanoLikeLiveData,
966
1178
  zEthereumLikeLiveData,
967
- zEthereumTokenLikeLiveData,
968
1179
  zGenericLikeLiveData,
969
1180
  zPolkadotLikeLiveData,
970
1181
  zRippleLikeLiveData,
@@ -974,7 +1185,7 @@ var zAccountLiveData = z10.discriminatedUnion("type", [
974
1185
  zTezosLikeLiveData,
975
1186
  zTronLikeLiveData
976
1187
  ]);
977
- z10.discriminatedUnion("type", [
1188
+ z9.discriminatedUnion("type", [
978
1189
  zCardanoLikeStakingFields,
979
1190
  zEthereumLikeStakingFields,
980
1191
  zPolkadotLikeStakingFields,
@@ -982,7 +1193,7 @@ z10.discriminatedUnion("type", [
982
1193
  zSuiLikeStakingFields,
983
1194
  zTezosLikeStakingFields
984
1195
  ]);
985
- z10.discriminatedUnion("type", [
1196
+ z9.discriminatedUnion("type", [
986
1197
  zEthereumLikeEstimatedFees,
987
1198
  zRippleLikeEstimatedFees,
988
1199
  zStellarLikeEstimatedFees,
@@ -990,8 +1201,9 @@ z10.discriminatedUnion("type", [
990
1201
  zTezosLikeEstimatedFees,
991
1202
  zTronLikeEstimatedFees
992
1203
  ]);
993
- z10.union([
1204
+ z9.union([
994
1205
  zBitcoinLikeTransactionType,
1206
+ zCantonLikeTransactionType,
995
1207
  zCardanoLikeTransactionType,
996
1208
  zEthereumLikeTransferTransactionType,
997
1209
  zEthereumLikeContractTransactionType,
@@ -1006,6 +1218,7 @@ z10.union([
1006
1218
  ]);
1007
1219
  ({
1008
1220
  ...zBitcoinLikeTransactionType.enum,
1221
+ ...zCantonLikeTransactionType.enum,
1009
1222
  ...zCardanoLikeTransactionType.enum,
1010
1223
  ...zEthereumLikeTransferTransactionType.enum,
1011
1224
  ...zEthereumLikeContractTransactionType.enum,
@@ -1021,13 +1234,11 @@ z10.union([
1021
1234
  ({
1022
1235
  ...NetworkFamily,
1023
1236
  // TODO: Sometimes `NetworkFamily` is not a `TransactionType` prefix - but why?
1024
- [NetworkFamily.ERC20_LIKE]: "ETHEREUM_LIKE",
1025
- [NetworkFamily.BEP20_LIKE]: "ETHEREUM_LIKE",
1026
- [NetworkFamily.TRC20_LIKE]: "TRON_LIKE",
1027
1237
  [NetworkFamily.GENERIC_LIKE]: "GENERIC"
1028
1238
  });
1029
- var zTransactionData = z10.discriminatedUnion("type", [
1239
+ var zTransactionData = z9.discriminatedUnion("type", [
1030
1240
  ...zBitcoinLikeTransactionData.options,
1241
+ ...zCantonLikeTransactionData.options,
1031
1242
  ...zCardanoLikeTransactionData.options,
1032
1243
  ...zEthereumLikeTransactionData.options,
1033
1244
  ...zPolkadotLikeTransactionData.options,
@@ -1039,8 +1250,9 @@ var zTransactionData = z10.discriminatedUnion("type", [
1039
1250
  ...zTronLikeTransactionData.options,
1040
1251
  zGenericTransactionData
1041
1252
  ]);
1042
- var zSendOnlyTransactionData = z10.discriminatedUnion("type", [
1253
+ var zSendOnlyTransactionData = z9.discriminatedUnion("type", [
1043
1254
  zBitcoinLikeSendData,
1255
+ zCantonLikeSendData,
1044
1256
  zCardanoLikeSendData,
1045
1257
  zEthereumLikeSendData,
1046
1258
  zPolkadotLikeSendData,
@@ -1050,8 +1262,9 @@ var zSendOnlyTransactionData = z10.discriminatedUnion("type", [
1050
1262
  zSuiLikeSendData,
1051
1263
  zTezosLikeSendData
1052
1264
  ]);
1053
- var zTransactionResponse = z10.discriminatedUnion("type", [
1265
+ var zTransactionResponse = z9.discriminatedUnion("type", [
1054
1266
  zBitcoinLikeTransactionResponse,
1267
+ zCantonLikeTransactionResponse,
1055
1268
  zCardanoLikeTransactionResponse,
1056
1269
  zEthereumLikeTransferTransactionResponse,
1057
1270
  zEthereumLikeContractTransactionResponse,
@@ -1063,71 +1276,163 @@ var zTransactionResponse = z10.discriminatedUnion("type", [
1063
1276
  zSuiLikeTransactionResponse,
1064
1277
  zTezosLikeTransactionResponse
1065
1278
  ]);
1279
+ var shouldHaveTargetHsmId = (request) => {
1280
+ switch (request.type) {
1281
+ case RequestType.CREATE_ENTITY:
1282
+ case RequestType.EDIT_ENTITY:
1283
+ case RequestType.REVOKE_ENTITY:
1284
+ case RequestType.CREATE_SCICONFIG:
1285
+ case RequestType.EDIT_SCICONFIG:
1286
+ case RequestType.CREATE_API_KEY:
1287
+ case RequestType.EDIT_API_KEY:
1288
+ case RequestType.REVOKE_API_KEY:
1289
+ case RequestType.EDIT_WORKSPACE_RULE:
1290
+ case RequestType.UPDATE_QUORUM:
1291
+ return false;
1292
+ case RequestType.CREATE_PSD_USER:
1293
+ case RequestType.CREATE_API_USER:
1294
+ case RequestType.CREATE_API_USER_ACCESS:
1295
+ // targeting / editing an existing `User`
1296
+ case RequestType.REVOKE_USER:
1297
+ case RequestType.CREATE_TRANSACTION:
1298
+ case RequestType.SIGN_MESSAGE:
1299
+ case RequestType.SIGN_DIGESTS:
1300
+ case RequestType.CREATE_ACCOUNT:
1301
+ case RequestType.EDIT_ACCOUNT:
1302
+ case RequestType.TRADELINK_ACTIVATE_ACCOUNT:
1303
+ case RequestType.CREATE_GROUP:
1304
+ case RequestType.EDIT_GROUP:
1305
+ case RequestType.REVOKE_GROUP:
1306
+ case RequestType.CREATE_WHITELIST:
1307
+ case RequestType.EDIT_WHITELIST:
1308
+ case RequestType.CREATE_POLICY:
1309
+ case RequestType.EDIT_POLICY:
1310
+ case RequestType.TRADELINK_CREATE_CUSTODIAN:
1311
+ case RequestType.TRADELINK_EDIT_CUSTODIAN:
1312
+ case RequestType.TRADELINK_CREATE_EXCHANGE:
1313
+ case RequestType.TRADELINK_EDIT_EXCHANGE:
1314
+ case RequestType.TRADELINK_CREATE_ASSET_MANAGER:
1315
+ case RequestType.TRADELINK_EDIT_ASSET_MANAGER:
1316
+ return request.state !== RequestState.INITIAL;
1317
+ case RequestType.EDIT_TOKEN_RULE:
1318
+ return true;
1319
+ }
1320
+ };
1321
+ var shouldHaveTargetId = (request) => {
1322
+ switch (request.type) {
1323
+ case RequestType.CREATE_API_KEY:
1324
+ case RequestType.EDIT_API_KEY:
1325
+ case RequestType.REVOKE_API_KEY:
1326
+ return false;
1327
+ case RequestType.CREATE_TRANSACTION:
1328
+ case RequestType.SIGN_DIGESTS:
1329
+ return false;
1330
+ case RequestType.UPDATE_QUORUM:
1331
+ case RequestType.CREATE_PSD_USER:
1332
+ case RequestType.CREATE_API_USER:
1333
+ case RequestType.CREATE_ACCOUNT:
1334
+ case RequestType.CREATE_GROUP:
1335
+ case RequestType.CREATE_WHITELIST:
1336
+ case RequestType.CREATE_ENTITY:
1337
+ case RequestType.CREATE_SCICONFIG:
1338
+ case RequestType.CREATE_POLICY:
1339
+ case RequestType.SIGN_MESSAGE:
1340
+ case RequestType.TRADELINK_CREATE_CUSTODIAN:
1341
+ case RequestType.TRADELINK_CREATE_EXCHANGE:
1342
+ case RequestType.TRADELINK_CREATE_ASSET_MANAGER:
1343
+ return request.state === RequestState.EXECUTED;
1344
+ case RequestType.EDIT_WORKSPACE_RULE:
1345
+ case RequestType.EDIT_ACCOUNT:
1346
+ case RequestType.TRADELINK_ACTIVATE_ACCOUNT:
1347
+ case RequestType.EDIT_TOKEN_RULE:
1348
+ // EDIT_TOKEN_RULE targetId is the parent account which must always exist, even when creating new token rule.
1349
+ case RequestType.EDIT_GROUP:
1350
+ case RequestType.REVOKE_GROUP:
1351
+ case RequestType.EDIT_WHITELIST:
1352
+ case RequestType.EDIT_ENTITY:
1353
+ case RequestType.REVOKE_ENTITY:
1354
+ case RequestType.CREATE_API_USER_ACCESS:
1355
+ case RequestType.REVOKE_USER:
1356
+ case RequestType.EDIT_SCICONFIG:
1357
+ case RequestType.EDIT_POLICY:
1358
+ case RequestType.TRADELINK_EDIT_CUSTODIAN:
1359
+ case RequestType.TRADELINK_EDIT_EXCHANGE:
1360
+ case RequestType.TRADELINK_EDIT_ASSET_MANAGER:
1361
+ case RequestType.TRADELINK_ADJUST_PLEDGE:
1362
+ case RequestType.TRADELINK_REPLEDGE:
1363
+ case RequestType.TRADELINK_CREATE_SETTLEMENT:
1364
+ case RequestType.TRADELINK_FORCE_UNPLEDGE:
1365
+ case RequestType.TRADELINK_WITHDRAW:
1366
+ case RequestType.TRADELINK_ARBITRATE:
1367
+ return true;
1368
+ }
1369
+ };
1066
1370
 
1067
- // src/accounts/clients/types.ts
1068
- z10.discriminatedUnion(
1069
- zTransactionResponse._zod.def.discriminator,
1070
- ensureNonEmptyArray(
1071
- zTransactionResponse.options.map((_) => _.extend({ note: zNote.nullable() }))
1072
- )
1073
- );
1074
- var zReviewStepWithUsers = z.object({
1075
- quorum: z.number().min(0).meta({ description: "Number of required approvals for the step" }),
1076
- userIds: z.array(z.string().min(1)).meta({ description: "User ids in the step" })
1077
- // PKs to `User` model
1078
- }).meta({ description: "Review step with users" });
1079
- var zReviewStepWithUsersArray = z.array(zReviewStepWithUsers);
1080
- var zReviewStepData = z.union([
1081
- zReviewStepWithUsers,
1082
- z.object({
1083
- quorum: z.number().min(0).meta({ description: "Number of required approvals for the step" }),
1084
- groupId: z.string().min(1).meta({ description: "Group id in the step" })
1085
- // PKs to `Group` model
1086
- }).meta({ description: "Review step with group" })
1087
- ]);
1088
- var zReviewStepsArray = z.array(zReviewStepData).min(1).meta({ description: "Review steps" });
1089
-
1090
- // src/prisma-utils/policy.ts
1091
- var policy_exports = {};
1092
- __export(policy_exports, {
1093
- parseFields: () => parseFields,
1094
- zGovRuleJsonObject: () => zGovRuleJsonObject,
1095
- zGovRulesJsonArray: () => zGovRulesJsonArray,
1096
- zThreshold: () => zThreshold,
1097
- zWhitelistIds: () => zWhitelistIds
1098
- });
1099
- var zThreshold = z.object({
1100
- min: zUnsignedIntString.nullable().meta({ description: "Minimum transaction amount" }),
1101
- max: zUnsignedIntString.nullable().meta({ description: "Maximum transaction amount" })
1102
- }).meta({ description: "Threshold for the transaction value" });
1103
- var zWhitelistIds = z.array(z.string().min(1)).meta({ description: "IDs of whitelists for the recipient address" });
1104
- var zGovRuleJsonObject = z.object({
1105
- // Required.
1106
- operationType: zOperationType.meta({ description: "Allowed operation type" }),
1107
- // Optional threshold on transaction value: null `min` = 0, null `max` = +inf
1108
- threshold: zThreshold,
1109
- // Optional whitelist on transaction recipient: Empty list means no whitelist.
1110
- whitelistIds: zWhitelistIds,
1111
- reviewConfigId: z.string().min(1).meta({ description: "Id of ReviewConfig" }),
1112
- // HSM id for the rule
1113
- hsmId: zHsmObjectId
1114
- }).meta({ description: "INTERNAL: Governance rule JSON representation in DB" });
1115
- var zGovRulesJsonArray = z.array(zGovRuleJsonObject);
1116
- var parseFields = (policy) => {
1117
- const rulesJsonArray = zGovRulesJsonArray.parse(policy.rulesJsonArray);
1118
- return { ...policy, rulesJsonArray };
1371
+ // src/__fakes__/models/requests/requests-and-reviews.ts
1372
+ var genRequestReviewSteps = (numSteps) => times(1, () => ({ stageName: "default", quorum: 2 }));
1373
+ var genVaultRequest = (opts) => {
1374
+ const { type, state = RequestState.PENDING_APPROVAL, data, ...custom } = opts;
1375
+ const targetHsmId = shouldHaveTargetHsmId({ type, state }) ? type === RequestType.CREATE_PSD_USER ? fakePubKey() : fakeHsmObjectId() : null;
1376
+ const targetId = shouldHaveTargetId({ type, state }) ? faker.string.uuid() : null;
1377
+ return injectSyncId({
1378
+ id: faker.string.uuid(),
1379
+ workspaceName: fakeWorkspaceName(),
1380
+ type,
1381
+ state,
1382
+ reviewSteps: genRequestReviewSteps(),
1383
+ currentStepIndex: 0,
1384
+ expiresAt: faker.date.future(),
1385
+ targetHsmId,
1386
+ createdById: faker.string.uuid(),
1387
+ createdAt: faker.date.past(),
1388
+ updatedAt: faker.date.past(),
1389
+ note: null,
1390
+ managedData: null,
1391
+ data,
1392
+ targetId,
1393
+ gateTargetType: "Whatsoever",
1394
+ gateTargetId: 0,
1395
+ gateType: "Request",
1396
+ gateId: fakeGateId(),
1397
+ // Note: Custom properties will overwrite the default ones. It is still possible for caller
1398
+ // to overwrite `targetId`. Thus it is not guaranteed that these values will always be
1399
+ // consistent with `type` and `state`.
1400
+ ...custom
1401
+ });
1119
1402
  };
1120
-
1121
- // src/prisma-utils/review-config.ts
1122
- var review_config_exports = {};
1123
- __export(review_config_exports, {
1124
- INCLUDE_MEMBERS: () => INCLUDE_MEMBERS
1125
- });
1126
- var INCLUDE_MEMBERS = {
1127
- users: true,
1128
- groups: {
1129
- include: { members: true }
1403
+ var genVaultRequestReview = (opts) => {
1404
+ const status = opts?.status ?? RequestReviewStatus.PENDING;
1405
+ const challenge = opts?.challenge ?? fakePsdChallenge();
1406
+ const { challengeType } = challenge;
1407
+ let signature;
1408
+ if (status !== RequestReviewStatus.APPROVED) {
1409
+ signature = null;
1410
+ } else {
1411
+ switch (challengeType) {
1412
+ case ChallengeType.PSD:
1413
+ signature = fakePsdSignature();
1414
+ break;
1415
+ case ChallengeType.API:
1416
+ signature = fakeJws();
1417
+ break;
1418
+ }
1130
1419
  }
1420
+ return {
1421
+ id: faker.number.int(),
1422
+ requestId: faker.string.uuid(),
1423
+ stageName: "default",
1424
+ // assume the simple case where there is one single stage
1425
+ stepIndex: 0,
1426
+ userId: faker.string.uuid(),
1427
+ pubKey: fakePubKey(),
1428
+ challengeType,
1429
+ challenge,
1430
+ signature,
1431
+ status,
1432
+ createdAt: faker.date.past(),
1433
+ updatedAt: faker.date.past(),
1434
+ ...opts
1435
+ };
1131
1436
  };
1132
1437
  var zPubKey = zHexString.meta({ description: "Public key" });
1133
1438
  var zHsmCertificate = z.object({
@@ -1234,7 +1539,7 @@ var zHsmSignature = z.object({
1234
1539
  }),
1235
1540
  pubkey: zHexString.nullable().meta({ description: "Public key for signature verification, 32 or 33 bytes" })
1236
1541
  });
1237
- var zWorkspaceName = z10.string().min(1).max(20).regex(/^[a-z0-9]+$/);
1542
+ var zWorkspaceName = z9.string().min(1).max(20).regex(/^[a-z0-9]+$/);
1238
1543
  var zUserName = z.string().min(1).max(19).meta({ description: "User name" });
1239
1544
  var zUserRegistrationCreateInput = z.object({
1240
1545
  name: zUserName,
@@ -1250,1340 +1555,1044 @@ zUserRegistrationCreateInput.extend({
1250
1555
  });
1251
1556
 
1252
1557
  // src/users/request-data.ts
1253
- var zCreatePsdUserRequestData = z10.object({
1254
- registrationId: z10.string().meta({ description: "User registration ID" })
1558
+ var zCreatePsdUserRequestData = z9.object({
1559
+ registrationId: z9.string().meta({ description: "User registration ID" })
1255
1560
  });
1256
- var zCreateApiUserRequestData = z10.object({
1561
+ var zCreateApiUserRequestData = z9.object({
1257
1562
  name: zUserName,
1258
- pubKey: z10.string().meta({ description: "Public key" }),
1259
- role: z10.enum(["ADMIN", "OPERATOR"]).meta({ description: "User role" }),
1260
- viewAll: z10.boolean().meta({ description: "View all data" }).optional()
1563
+ pubKey: z9.string().meta({ description: "Public key" }),
1564
+ role: z9.enum(["ADMIN", "OPERATOR"]).meta({ description: "User role" }),
1565
+ viewAll: z9.boolean().meta({ description: "View all data" }).optional()
1261
1566
  }).meta({ description: "Create API user request data" });
1262
- var zCreateApiUserAccessRequestData = z10.object({
1567
+ var zCreateApiUserAccessRequestData = z9.object({
1263
1568
  name: zUserName
1264
1569
  }).meta({ description: "Create API user credential request data" });
1265
- z10.object({
1266
- authUserId: z10.string().meta({ description: "Authentication broker ID" })
1570
+ z9.object({
1571
+ authUserId: z9.string().meta({ description: "Authentication broker ID" })
1267
1572
  }).meta({ description: "Managed data for API user" });
1268
- var zRevokeUserRequestData = z10.object({});
1269
- var zUpdateQuorumRequestData = z10.object({
1270
- quorum: z10.number().int().min(2).meta({ description: "Workspace quorum" })
1271
- });
1272
- var NonRootAdminPermission = omit(AdminPermission, "ROOT");
1273
- var zWorkspaceRuleRequestData = z10.object({
1274
- permission: z10.enum(NonRootAdminPermission).meta({ description: "Granted permissions" }),
1275
- reviewConfig: zReviewStepWithUsersArray.meta({ description: "List of admin review steps" })
1276
- });
1277
- var zTradelinkWhitelistAddress = z10.object({
1278
- name: z10.string().min(1),
1279
- currency: zCurrencyString,
1280
- address: z10.string().min(1)
1281
- });
1282
- z10.array(zTradelinkWhitelistAddress);
1283
- var zTradelinkId = z10.string().meta({ description: "Unique identifier in Tradelink service" });
1284
- var zTradelinkOrgEntityResponse = z10.object({
1285
- tradelinkId: zTradelinkId,
1286
- name: z10.string().meta({ description: "Name" }),
1287
- code: z10.string().meta({ description: "Code" }),
1288
- logoUrl: z10.string().meta({ description: "Logo URL" })
1289
- });
1290
- zTradelinkOrgEntityResponse.omit({
1291
- tradelinkId: true
1292
- });
1293
- z10.object({
1294
- tradelinkId: zTradelinkId
1295
- });
1296
- var zTradelinkExchangeConfig = z10.object({
1297
- exchangeId: z10.string().meta({ description: "Tradelink exchange id" }),
1298
- repledgeAuthorized: z10.boolean().meta({
1299
- description: "Determines whether this exchange is authorized to repledge on this account"
1300
- }),
1301
- needsAssetManagerApprovalForSettlements: z10.boolean().meta({
1302
- description: 'Determines whether asset manager will "pre-approve" the settlement requests on this account'
1303
- })
1304
- });
1305
- var zTradelinkExchangeConfigs = z10.array(zTradelinkExchangeConfig);
1306
- z10.object({
1307
- workspaceName: zWorkspaceName,
1308
- custodian: z10.object({ name: z10.string() }),
1309
- assetManagers: z10.array(z10.object({ name: z10.string() })),
1310
- exchanges: z10.array(z10.object({ name: z10.string() }))
1311
- });
1312
- z10.object({
1313
- tradelinkId: z10.string(),
1314
- workspaceName: zWorkspaceName,
1315
- custodian: zTradelinkOrgEntityResponse,
1316
- assetManagers: z10.array(zTradelinkOrgEntityResponse),
1317
- exchanges: z10.array(zTradelinkOrgEntityResponse)
1318
- });
1319
- var zTradelinkAsset = z10.object({
1320
- name: z10.string(),
1321
- magnitude: z10.number().int().nonnegative()
1322
- });
1323
- z10.object({
1324
- tradelinkId: zTradelinkId,
1325
- asset: zTradelinkAsset,
1326
- state: z10.enum([
1327
- "PLEDGE_READY",
1328
- "PLEDGE_INCREMENT_PENDING_APPROVAL",
1329
- "PLEDGE_APPROVED",
1330
- "PLEDGE_REJECTED",
1331
- "UNPLEDGE_PENDING_APPROVAL",
1332
- "UNPLEDGE_APPROVED",
1333
- "UNPLEDGE_REJECTED",
1334
- "REPLEDGE_PENDING_APPROVAL",
1335
- "REPLEDGE_APPROVED",
1336
- "REPLEDGE_REJECTED",
1337
- "ASSIGNED_TO_SETTLEMENT",
1338
- "OUTBOUND_TRANSACTION_CONFIRMED",
1339
- "OUTBOUND_TRANSACTION_FAILED",
1340
- "RECOVERING_FROM_FAILURE",
1341
- "PLEDGE_CONSUMED"
1342
- ]),
1343
- isLocked: z10.boolean(),
1344
- amount: z10.string().meta({ description: "Currently pledged amount" }),
1345
- pending: z10.string().meta({ description: "Requested pledge increment, not yet approved" }),
1346
- repledge: z10.string().meta({ description: "TODO: describe this field" }),
1347
- exchangeTradelinkId: z10.string(),
1348
- accountId: z10.string()
1349
- });
1350
- z10.object({
1351
- workspaceName: z10.string(),
1352
- clientAccountId: z10.string().meta({ description: "Account ID from the client side" }),
1353
- exchangeTradelinkId: zTradelinkId,
1354
- asset: zTradelinkAsset
1355
- });
1356
- z10.object({
1357
- pledgeTradelinkId: zTradelinkId,
1358
- amount: zUnsignedIntString,
1359
- asset: zTradelinkAsset
1360
- });
1361
- z10.object({
1362
- tradelinkId: z10.string(),
1363
- pledgeTradelinkId: z10.string(),
1364
- state: z10.enum([
1365
- "REGISTERED",
1366
- "PENDING_REPLEDGE_CREATION_APPROVAL",
1367
- "PENDING_REPLEDGE_APPROVAL",
1368
- "PENDING_CREATION_APPROVAL",
1369
- "PENDING_PRE_APPROVAL",
1370
- "PRE_APPROVED",
1371
- "APPROVED",
1372
- "REJECTED",
1373
- "CONFIRMED",
1374
- "FAILED",
1375
- "CANCELED"
1376
- ]),
1377
- // For now we only consider the outbound settlement
1378
- outboundTransactionHash: z10.string().nullable()
1379
- });
1380
-
1381
- // src/tradelink/request-data.ts
1382
- var zTradelinkActivateAccountRequestData = z10.null();
1383
- var zTradelinkCustodianRequestData = z10.object({
1384
- settlement: zReviewStepWithUsersArray.meta({ description: "List of settlement review steps" }),
1385
- withdraw: zReviewStepWithUsersArray.meta({ description: "List of withdraw review steps" }),
1386
- arbitration: zReviewStepWithUsersArray.meta({ description: "List of arbitration review steps" })
1387
- });
1388
- var zTradelinkEntityRequestData = z10.object({
1389
- tradelinkId: z10.string().min(1),
1390
- groups: zReviewStepWithUsersArray.meta({ description: "List of asset manager review groups" }),
1391
- whitelist: z10.array(zTradelinkWhitelistAddress).meta({ description: "List of asset manager whitelisted addresses" })
1392
- });
1393
- var zTradelinkAdjustPledgeRequestData = z10.object({
1394
- accountId: z10.string().meta({ description: "Account id" }),
1395
- exchangeId: z10.string().meta({ description: "Exchange id" }),
1396
- amount: zIntString.meta({ description: "Amount to add to pledge" })
1397
- });
1398
- var zTradelinkRepledgeRequestData = z10.object({
1399
- accountId: z10.string().meta({ description: "Account id" }),
1400
- exchangeId: z10.string().meta({ description: "Exchange id" }),
1401
- amount: zIntString.meta({ description: "Amount to add to pledge" })
1402
- });
1403
- var zTradelinkCreateSettlementRequestData = z10.object({
1404
- accountId: z10.string().meta({ description: "Account id" }),
1405
- exchangeId: z10.string().meta({ description: "Exchange id" }),
1406
- transaction: zSendOnlyTransactionData
1407
- });
1408
- var zTradelinkForceUnpledgeRequestData = z10.object({
1409
- accountId: z10.string().meta({ description: "Account id" }),
1410
- exchangeId: z10.string().meta({ description: "Exchange id" })
1411
- });
1412
- var zTradelinkWithdrawRequestData = z10.object({
1413
- accountId: z10.string().meta({ description: "Account id" }),
1414
- transaction: zSendOnlyTransactionData
1415
- });
1416
- var zTradelinkArbitrationRequestData = z10.object({
1417
- accountId: z10.string().meta({ description: "Account id" }),
1418
- transaction: zSendOnlyTransactionData
1419
- });
1420
- var zTradelinkRequestMixinsByType = {
1421
- [RequestType.TRADELINK_ACTIVATE_ACCOUNT]: z10.object({
1422
- type: z10.literal(RequestType.TRADELINK_ACTIVATE_ACCOUNT),
1423
- targetId: z10.string(),
1424
- data: zTradelinkActivateAccountRequestData
1425
- }),
1426
- [RequestType.TRADELINK_CREATE_CUSTODIAN]: z10.object({
1427
- type: z10.literal(RequestType.TRADELINK_CREATE_CUSTODIAN),
1428
- data: zTradelinkCustodianRequestData
1429
- }),
1430
- [RequestType.TRADELINK_EDIT_CUSTODIAN]: z10.object({
1431
- type: z10.literal(RequestType.TRADELINK_EDIT_CUSTODIAN),
1432
- targetId: z10.string(),
1433
- data: zTradelinkCustodianRequestData
1434
- }),
1435
- [RequestType.TRADELINK_CREATE_EXCHANGE]: z10.object({
1436
- type: z10.literal(RequestType.TRADELINK_CREATE_EXCHANGE),
1437
- data: zTradelinkEntityRequestData
1438
- }),
1439
- [RequestType.TRADELINK_EDIT_EXCHANGE]: z10.object({
1440
- type: z10.literal(RequestType.TRADELINK_EDIT_EXCHANGE),
1441
- targetId: z10.string(),
1442
- data: zTradelinkEntityRequestData
1443
- }),
1444
- [RequestType.TRADELINK_CREATE_ASSET_MANAGER]: z10.object({
1445
- type: z10.literal(RequestType.TRADELINK_CREATE_ASSET_MANAGER),
1446
- data: zTradelinkEntityRequestData
1447
- }),
1448
- [RequestType.TRADELINK_EDIT_ASSET_MANAGER]: z10.object({
1449
- type: z10.literal(RequestType.TRADELINK_EDIT_ASSET_MANAGER),
1450
- targetId: z10.string(),
1451
- data: zTradelinkEntityRequestData
1452
- }),
1453
- [RequestType.TRADELINK_ADJUST_PLEDGE]: z10.object({
1454
- type: z10.literal(RequestType.TRADELINK_ADJUST_PLEDGE),
1455
- data: zTradelinkAdjustPledgeRequestData
1456
- }),
1457
- [RequestType.TRADELINK_REPLEDGE]: z10.object({
1458
- type: z10.literal(RequestType.TRADELINK_REPLEDGE),
1459
- data: zTradelinkRepledgeRequestData
1460
- }),
1461
- [RequestType.TRADELINK_CREATE_SETTLEMENT]: z10.object({
1462
- type: z10.literal(RequestType.TRADELINK_CREATE_SETTLEMENT),
1463
- data: zTradelinkCreateSettlementRequestData,
1464
- meta: z10.object({
1465
- hash: z10.string().nullable()
1466
- }).optional().nullable()
1467
- }),
1468
- [RequestType.TRADELINK_FORCE_UNPLEDGE]: z10.object({
1469
- type: z10.literal(RequestType.TRADELINK_FORCE_UNPLEDGE),
1470
- data: zTradelinkForceUnpledgeRequestData
1471
- }),
1472
- [RequestType.TRADELINK_WITHDRAW]: z10.object({
1473
- type: z10.literal(RequestType.TRADELINK_WITHDRAW),
1474
- data: zTradelinkWithdrawRequestData,
1475
- meta: z10.object({
1476
- hash: z10.string().nullable()
1477
- }).optional().nullable()
1478
- }),
1479
- [RequestType.TRADELINK_ARBITRATE]: z10.object({
1480
- type: z10.literal(RequestType.TRADELINK_ARBITRATE),
1481
- data: zTradelinkArbitrationRequestData,
1482
- meta: z10.object({
1483
- hash: z10.string().nullable()
1484
- }).optional().nullable()
1485
- })
1486
- };
1487
- var zMessageType = z10.enum(MessageType).meta({ description: "Type of the message to sign" });
1488
- var zMessageData = zHexString.nonempty().meta({
1489
- description: "Hex data to sign, either a json string for EIP712, or a raw string for EIP191"
1490
- });
1491
- var zMessage = z10.object({
1492
- type: zMessageType,
1493
- data: zMessageData
1494
- });
1495
- z10.object({
1496
- id: z10.string().meta({ description: "Unique identifier" }),
1497
- type: zMessageType,
1498
- data: zMessageData,
1499
- address: z10.string().meta({ description: "Address of the signing key" }),
1500
- derivationPath: z10.string().meta({ description: "Derivation path of the signing key" }),
1501
- signature: zHsmSignature.meta({ description: "Signature of the message" }),
1502
- createdById: z10.string().meta({ description: "ID of the creator" }),
1503
- createdAt: z10.coerce.date().meta({ description: "Creation timestamp" })
1504
- }).meta({ description: "Signed message", id: "SignedMessageResponse" });
1505
- var zCreateTransactionRequestData = z10.object({
1506
- accountId: z10.string().min(1).meta({ description: "Target account id" }),
1507
- transaction: zTransactionData
1508
- }).meta({
1509
- description: "Create transaction request data",
1510
- id: "CreateTransactionRequestData"
1511
- });
1512
- var zSignMessageRequestData = z10.object({
1513
- message: zMessage.meta({ description: "Message to sign" }),
1514
- accountId: z10.string().min(1).meta({ description: "Target account id" }),
1515
- address: z10.string().nonempty().meta({ description: "Address with which to sign the message" }),
1516
- derivationPath: z10.string().nonempty().meta({ description: "Derivation path of the signing address" })
1517
- });
1518
- var zSignMessageUserInputData = zSignMessageRequestData.partial({
1519
- address: true,
1520
- derivationPath: true
1521
- });
1522
- var zDigestData = z10.object({
1523
- digest: zHexString.meta({ description: "The hex string digest to sign" }),
1524
- derivationPath: z10.string().nonempty().meta({ description: "The derivation path with which to sign the digest" })
1525
- });
1526
- var zSignDigestsRequestData = z10.object({
1527
- accountId: z10.string().min(1).meta({ description: "Target account id" }),
1528
- digests: z10.array(zDigestData).meta({ description: "The digests to sign" })
1529
- });
1530
- z10.object({
1531
- signatures: z10.array(zHsmSignature)
1532
- });
1533
-
1534
- // src/accounts/account-governance-fields.ts
1535
- var zClassicAccountGovernanceFields = z.object({
1536
- type: z.literal(AccountGovernanceType.CLASSIC).meta({ description: "Classic account governance" }),
1537
- policyId: z.string().meta({ description: "Identifier of corresponding governance policy" })
1538
- }).meta({ description: "Classic" });
1539
- var zTradelinkAccountGovernanceFields = z.object({
1540
- type: z.literal(AccountGovernanceType.TRADELINK).meta({ description: "Tradelink account governance" }),
1541
- assetManagerId: z.string().meta({ description: "Identifier of corresponding asset manager" }),
1542
- exchangeConfigs: zTradelinkExchangeConfigs.meta({
1543
- description: "Tradelink exchange configurations"
1544
- })
1545
- }).meta({ description: "Tradelink" });
1546
- var zAccountGovernanceFields = z.discriminatedUnion("type", [zClassicAccountGovernanceFields, zTradelinkAccountGovernanceFields]).meta({ description: "Governance fields" });
1547
-
1548
- // src/accounts/types.ts
1549
- var zAccountCommonFields = z10.object({
1550
- id: z10.string().meta({ description: "Internal unique identifier" }),
1551
- legacyId: z10.number().meta({ description: "Legacy internal unique identifier (for retro-compatibility)" }),
1552
- name: z10.string().meta({ description: "Name" }),
1553
- currency: zCurrencyString,
1554
- network: zNetwork,
1555
- contractAddress: z10.string().nullable().meta({ description: "Token contract address for Token account" }),
1556
- index: z10.number().gte(0).meta({ description: "BIP44 account index" }),
1557
- derivationPath: z10.string().meta({ description: "Derivation path" }),
1558
- status: z10.enum(ActivationStatus).meta({ description: "Status" }),
1559
- createdAt: z10.coerce.date().meta({ description: "Creation timestamp" }),
1560
- updatedAt: z10.coerce.date().meta({ description: "Last modification timestamp" })
1561
- });
1562
- var zRawSigningAssetFields = z10.object({ type: z10.literal(AccountType.RAW_SIGNING).meta({ description: "Account type" }) }).meta({ description: "Raw signing account" });
1563
- var zAccountAssetFields = z10.discriminatedUnion("type", [zRawSigningAssetFields, ...zNetworkAssetFields.options]).meta({ description: "Account asset fields" });
1564
- var zAccountResponse = zAccountCommonFields.extend({
1565
- asset: zAccountAssetFields,
1566
- governance: zAccountGovernanceFields
1567
- });
1568
- z10.enum([
1569
- "name",
1570
- "currency",
1571
- "index",
1572
- "createdAt",
1573
- "updatedAt"
1574
- ]).default("createdAt");
1575
- var zRawSigningLiveData = zCommonLiveData.extend({
1576
- type: z10.literal(AccountType.RAW_SIGNING).meta({ description: "Account type" })
1577
- }).meta({ description: "Raw signing account" });
1578
- z10.discriminatedUnion("type", [
1579
- zRawSigningLiveData,
1580
- ...zAccountLiveData.options
1573
+ var zRevokeUserRequestData = z9.object({});
1574
+ var zReviewStepWithUsers = z.object({
1575
+ quorum: z.number().min(0).meta({ description: "Number of required approvals for the step" }),
1576
+ userIds: z.array(z.string().min(1)).meta({ description: "User ids in the step" })
1577
+ // PKs to `User` model
1578
+ }).meta({ description: "Review step with users" });
1579
+ var zReviewStepWithUsersArray = z.array(zReviewStepWithUsers);
1580
+ var zReviewStepData = z.union([
1581
+ zReviewStepWithUsers,
1582
+ z.object({
1583
+ quorum: z.number().min(0).meta({ description: "Number of required approvals for the step" }),
1584
+ groupId: z.string().min(1).meta({ description: "Group id in the step" })
1585
+ // PKs to `Group` model
1586
+ }).meta({ description: "Review step with group" })
1581
1587
  ]);
1582
- z10.object({
1583
- address: z10.string().meta({ description: "Address" }),
1584
- derivationPath: z10.string().nullable().meta({ description: "Derivation path" })
1585
- });
1586
- z10.object({
1587
- amount: zIntString.meta({ description: "Amount in the smallest unit of the currency" }),
1588
- currency: zCurrency
1589
- });
1590
- z10.object({
1591
- id: z10.string().nonempty().meta({ description: "Staking position ID (if applicable)" }),
1592
- validator: z10.string().nonempty().meta({ description: "Validator address" }),
1593
- state: z10.enum(["ACTIVE", "INACTIVE", "ACTIVATING", "DEACTIVATING", "UNKNOWN"]).meta({ description: "Stake state" }),
1594
- staked: z10.string().meta({ description: "Staked amount" }),
1595
- rewards: z10.object({
1596
- total: z10.string().meta({ description: "Total rewards" })
1597
- })
1588
+ var zReviewStepsArray = z.array(zReviewStepData).min(1).meta({ description: "Review steps" });
1589
+
1590
+ // src/prisma-utils/policy.ts
1591
+ var policy_exports = {};
1592
+ __export(policy_exports, {
1593
+ parseFields: () => parseFields,
1594
+ zGovRuleJsonObject: () => zGovRuleJsonObject,
1595
+ zGovRulesJsonArray: () => zGovRulesJsonArray,
1596
+ zThreshold: () => zThreshold,
1597
+ zWhitelistIds: () => zWhitelistIds
1598
1598
  });
1599
- z10.object({
1600
- address: z10.string().meta({ description: "Validator address" }),
1601
- apy: z10.string().nullable().meta({ description: "Validator APY" }),
1602
- balance: z10.string().nullable().meta({ description: "Validator balance" }),
1603
- commissionRate: z10.string().nullable().meta({ description: "Validator commission rate" }),
1604
- description: z10.string().nullable().meta({ description: "Description" }),
1605
- logo: z10.string().nullable().meta({ description: "Logo URL" }),
1606
- name: z10.string().nullable().meta({ description: "Validator name" }),
1607
- url: z10.string().nullable().meta({ description: "Validator URL" })
1599
+ var zNote = z9.object({
1600
+ title: z9.string().meta({ description: "Note title" }),
1601
+ content: z9.string().meta({ description: "Note content" })
1608
1602
  });
1609
-
1610
- // src/accounts/app-types.ts
1611
- z10.discriminatedUnion(
1612
- zTransactionResponse._zod.def.discriminator,
1613
- ensureNonEmptyArray(
1614
- zTransactionResponse.options.map(
1615
- (_) => _.extend({
1616
- note: zNote.nullable().meta({ description: "Optional transaction note" })
1617
- })
1618
- )
1619
- )
1620
- );
1621
- var zWhitelistAddress = z10.object({
1622
- name: z10.string().min(1).max(50),
1603
+ var zValueTransactionOperationType = z.enum([
1604
+ AllowedAction.SEND,
1605
+ AllowedAction.STAKE,
1606
+ AllowedAction.DEPLOY_CONTRACT,
1607
+ AllowedAction.EXECUTE_CONTRACT,
1608
+ AllowedAction.ACTIVATE_TOKEN,
1609
+ AllowedAction.RECEIVE
1610
+ ]);
1611
+ var zValueTransactionOperation = z.object({
1612
+ type: zValueTransactionOperationType,
1623
1613
  currency: zCurrencyString,
1624
- address: z10.string().min(1).max(200),
1625
- // Destination tags are numeric-only or alpha-numeric.
1626
- // Empty array (or undefined) means no check on destination tag.
1627
- destinationTags: z10.array(z10.string().min(1).regex(/^\w+$/)).optional()
1628
- });
1629
- var zWhitelistAddresses = z10.array(zWhitelistAddress);
1630
- var zWhitelistName = z10.string().min(1).max(45).meta({ description: "Whitelist name" });
1631
- var zCreateWhitelistRequestData = z10.object({
1632
- name: zWhitelistName,
1633
- description: z10.string().nullable(),
1634
- addresses: zWhitelistAddresses,
1635
- type: z10.enum(WhitelistType)
1614
+ recipient: z.string().nonempty(),
1615
+ destinationTag: z.string().nonempty().optional(),
1616
+ value: zUnsignedIntString
1636
1617
  });
1637
- var zEditWhitelistRequestData = z10.object({
1638
- name: zWhitelistName,
1639
- addresses: zWhitelistAddresses
1618
+ var zSigningOperationType = z.enum([AllowedAction.SIGN_MESSAGE, AllowedAction.SIGN_DIGESTS]);
1619
+ var zSigningOperation = z.object({
1620
+ type: zSigningOperationType
1640
1621
  });
1622
+ var zClassicOperationType = z.enum([
1623
+ AllowedAction.SEND,
1624
+ AllowedAction.STAKE,
1625
+ AllowedAction.DEPLOY_CONTRACT,
1626
+ AllowedAction.EXECUTE_CONTRACT,
1627
+ AllowedAction.SIGN_MESSAGE,
1628
+ AllowedAction.ACTIVATE_TOKEN,
1629
+ AllowedAction.RECEIVE
1630
+ ]);
1631
+ z.enum([AllowedAction.SIGN_DIGESTS]);
1632
+ var zOperationType = z.enum([
1633
+ ...zValueTransactionOperationType.options,
1634
+ ...zSigningOperationType.options
1635
+ ]);
1636
+ z.discriminatedUnion("type", [
1637
+ zValueTransactionOperation,
1638
+ zSigningOperation
1639
+ ]);
1641
1640
 
1642
- // src/policies/db-utils.ts
1643
- var zBaseGovRuleData = z10.object({
1644
- // Steps of users that will need to review operations
1645
- reviewSteps: zReviewStepsArray,
1641
+ // src/prisma-utils/policy.ts
1642
+ var zThreshold = z.object({
1643
+ min: zUnsignedIntString.nullable().meta({ description: "Minimum transaction amount" }),
1644
+ max: zUnsignedIntString.nullable().meta({ description: "Maximum transaction amount" })
1645
+ }).meta({ description: "Threshold for the transaction value" });
1646
+ var zWhitelistIds = z.array(z.string().min(1)).meta({ description: "IDs of whitelists for the recipient address" });
1647
+ var zGovRuleJsonObject = z.object({
1648
+ // Required.
1649
+ operationType: zOperationType.meta({ description: "Allowed operation type" }),
1646
1650
  // Optional threshold on transaction value: null `min` = 0, null `max` = +inf
1647
- threshold: policy_exports.zThreshold.optional(),
1651
+ threshold: zThreshold,
1648
1652
  // Optional whitelist on transaction recipient: Empty list means no whitelist.
1649
- whitelistIds: policy_exports.zWhitelistIds.optional()
1650
- });
1651
- var zClassicGovRuleData = zBaseGovRuleData.extend({
1652
- operationType: zClassicOperationType.meta({ description: "Allowed operation type" })
1653
- }).meta({ description: "Account governance rule", id: "ClassicGovRuleData" });
1654
- zBaseGovRuleData.extend({
1655
- operationType: zOperationType.meta({ description: "Allowed operation type" })
1656
- }).meta({ description: "Governance rule", id: "GovRuleResponse" });
1657
- ({
1658
- reviewConfigs: { include: review_config_exports.INCLUDE_MEMBERS }
1653
+ whitelistIds: zWhitelistIds,
1654
+ reviewConfigId: z.string().min(1).meta({ description: "Id of ReviewConfig" }),
1655
+ // HSM id for the rule
1656
+ hsmId: zHsmObjectId
1657
+ }).meta({ description: "INTERNAL: Governance rule JSON representation in DB" });
1658
+ var zGovRulesJsonArray = z.array(zGovRuleJsonObject);
1659
+ var parseFields = (policy) => {
1660
+ const rulesJsonArray = zGovRulesJsonArray.parse(policy.rulesJsonArray);
1661
+ return { ...policy, rulesJsonArray };
1662
+ };
1663
+
1664
+ // src/prisma-utils/review-config.ts
1665
+ var review_config_exports = {};
1666
+ __export(review_config_exports, {
1667
+ INCLUDE_MEMBERS: () => INCLUDE_MEMBERS
1659
1668
  });
1660
- var zPolicyName = z10.string().min(1).max(19).meta({ description: "Policy name" });
1661
- var zCurrency2 = z10.string().min(1).max(40).regex(/^\w+$/).meta({ description: "Currency" });
1662
- var zCreatePublicPolicyRequestData = z10.object({
1663
- name: zPolicyName,
1664
- description: z10.string().nullable().meta({ description: "Description" }),
1665
- currency: zCurrency2.nullable(),
1666
- govRules: z10.array(zClassicGovRuleData).meta({ description: "Governance rules" })
1669
+ var INCLUDE_MEMBERS = {
1670
+ users: true,
1671
+ groups: {
1672
+ include: { members: true }
1673
+ }
1674
+ };
1675
+ var zUpdateQuorumRequestData = z9.object({
1676
+ quorum: z9.number().int().min(2).meta({ description: "Workspace quorum" })
1667
1677
  });
1668
- var zEditPublicPolicyRequestData = z10.object({
1669
- name: zPolicyName,
1670
- description: z10.string().nullable().meta({ description: "Description" }),
1671
- govRules: z10.array(zClassicGovRuleData).meta({ description: "Governance rules" })
1678
+ var NonRootAdminPermission = omit(AdminPermission, "ROOT");
1679
+ var zWorkspaceRuleRequestData = z9.object({
1680
+ permission: z9.enum(NonRootAdminPermission).meta({ description: "Granted permissions" }),
1681
+ reviewConfig: zReviewStepWithUsersArray.meta({ description: "List of admin review steps" })
1672
1682
  });
1673
- var zAccountName = z10.string().min(1).max(40).meta({ description: "Account name" });
1674
- var zSignDigestsGovRuleData = z10.object({
1675
- operationType: z10.literal("SIGN_DIGESTS"),
1676
- reviewSteps: zReviewStepWithUsersArray
1677
- // we need to control for API users only
1678
- }).meta({ description: "Digest signing rule" });
1679
- var zAccountPolicyRequestData = z10.union([
1680
- z10.object({ policyId: z10.string() }).meta({ description: "Account policy" }),
1681
- z10.object({ rules: z10.array(zClassicGovRuleData) }).meta({ description: "Account governance rules" })
1682
- ]).meta({ description: "Account policy or governance rules" });
1683
- var zCreateAccountGovernanceData = z10.discriminatedUnion("type", [
1684
- z10.object({
1685
- type: z10.literal(AccountGovernanceType.CLASSIC),
1686
- policy: zAccountPolicyRequestData
1687
- }).meta({ description: "Classic governance" }),
1688
- z10.object({
1689
- type: z10.literal(AccountGovernanceType.TRADELINK),
1690
- assetManagerId: z10.string(),
1691
- exchangeConfigs: zTradelinkExchangeConfigs
1692
- }).meta({ description: "Tradelink governance" }),
1693
- z10.object({
1694
- type: z10.literal(AccountGovernanceType.RAW_SIGNING),
1695
- policy: z10.object({ rules: z10.array(zSignDigestsGovRuleData) })
1696
- }).meta({ description: "Raw signing governance" })
1697
- ]).meta({ description: "Governance fields" });
1698
- var zCreateAccountUserInputData = z10.object({
1699
- name: zAccountName,
1700
- currency: zCurrencyString,
1701
- // "bitcoin"
1702
- index: z10.number().nonnegative().optional().meta({ description: "Account index" }),
1703
- contractAddress: z10.string().min(1).optional().meta({ description: "Account contract address" }),
1704
- governance: zCreateAccountGovernanceData
1683
+ z9.discriminatedUnion(
1684
+ zTransactionResponse._zod.def.discriminator,
1685
+ ensureNonEmptyArray(
1686
+ zTransactionResponse.options.map((_) => _.extend({ note: zNote.nullable() }))
1687
+ )
1688
+ );
1689
+ var zMessageType = z9.enum(MessageType).meta({ description: "Type of the message to sign" });
1690
+ var zMessageData = zHexString.nonempty().meta({
1691
+ description: "Hex data to sign, either a json string for EIP712, or a raw string for EIP191"
1705
1692
  });
1706
- var zCreateAccountRequestData = zCreateAccountUserInputData.omit({ index: true }).extend({
1707
- index: z10.number().nonnegative().meta({ description: "Account index" }),
1708
- derivationPath: z10.string().meta({ description: "Account bip44 derivation path" }),
1709
- type: z10.enum(AccountType)
1710
- // "BITCOIN_LIKE"
1711
- }).meta({
1712
- description: "Create account request data",
1713
- id: "CreateAccountRequestData"
1693
+ var zMessage = z9.object({
1694
+ type: zMessageType,
1695
+ data: zMessageData
1714
1696
  });
1715
- var zEditAccountGovernanceData = z10.discriminatedUnion("type", [
1716
- z10.object({
1717
- type: z10.literal(AccountGovernanceType.CLASSIC),
1718
- policy: zAccountPolicyRequestData
1719
- }).meta({ description: "Classic governance" }),
1720
- z10.object({
1721
- type: z10.literal(AccountGovernanceType.TRADELINK),
1722
- exchangeConfigs: zTradelinkExchangeConfigs
1723
- }).meta({ description: "Tradelink governance" }),
1724
- z10.object({
1725
- type: z10.literal(AccountGovernanceType.RAW_SIGNING),
1726
- policy: z10.object({ rules: z10.array(zSignDigestsGovRuleData) })
1727
- }).meta({ description: "Raw signing governance" })
1728
- ]).meta({ description: "Governance fields" });
1729
- var zEditAccountRequestData = z10.object({
1730
- name: zAccountName,
1731
- governance: zEditAccountGovernanceData
1697
+ z9.object({
1698
+ id: z9.string().meta({ description: "Unique identifier" }),
1699
+ type: zMessageType,
1700
+ data: zMessageData,
1701
+ address: z9.string().meta({ description: "Address of the signing key" }),
1702
+ derivationPath: z9.string().meta({ description: "Derivation path of the signing key" }),
1703
+ signature: zHsmSignature.meta({ description: "Signature of the message" }),
1704
+ createdById: z9.string().meta({ description: "ID of the creator" }),
1705
+ createdAt: z9.coerce.date().meta({ description: "Creation timestamp" })
1706
+ }).meta({ description: "Signed message", id: "SignedMessageResponse" });
1707
+ var zCreateTransactionRequestData = z9.object({
1708
+ accountId: z9.string().min(1).meta({ description: "Target account id" }),
1709
+ transaction: zTransactionData
1732
1710
  }).meta({
1733
- description: "Edit account request data",
1734
- id: "EditAccountRequestData"
1735
- });
1736
- var zEditTokenRuleRequestData = z10.object({
1737
- parentAccountId: z10.string().min(1).meta({ description: "Parent account unique ID" }),
1738
- contractAddress: z10.string().min(1).meta({ description: "Token contract address" }),
1739
- rules: z10.array(zClassicGovRuleData).meta({ description: "Account governance rules" })
1740
- });
1741
-
1742
- // src/accounts/app-utils.ts
1743
- var getAccountAssetFields = (account) => {
1744
- switch (account.type) {
1745
- case AccountType.BITCOIN_LIKE:
1746
- return {
1747
- type: account.type,
1748
- xpub: account.xpub
1749
- };
1750
- case AccountType.ETHEREUM_LIKE:
1751
- return {
1752
- type: account.type,
1753
- address: account.address
1754
- };
1755
- case AccountType.ERC20_LIKE:
1756
- case AccountType.BEP20_LIKE:
1757
- case AccountType.TRC20_LIKE:
1758
- return {
1759
- type: account.type,
1760
- address: account.address,
1761
- contractAddress: account.contractAddress
1762
- };
1763
- case AccountType.CARDANO_LIKE:
1764
- return {
1765
- type: account.type,
1766
- address: account.address
1767
- };
1768
- case AccountType.SOLANA_LIKE:
1769
- return {
1770
- type: account.type,
1771
- address: account.address,
1772
- contractAddress: account.contractAddress
1773
- };
1774
- case AccountType.TEZOS_LIKE:
1775
- return {
1776
- type: account.type,
1777
- address: account.address
1778
- };
1779
- case AccountType.STELLAR_LIKE:
1780
- return {
1781
- type: account.type,
1782
- address: account.address
1783
- };
1784
- case AccountType.SUI_LIKE:
1785
- return {
1786
- type: account.type,
1787
- address: account.address
1788
- };
1789
- case AccountType.RIPPLE_LIKE:
1790
- return {
1791
- type: account.type,
1792
- address: account.address
1793
- };
1794
- case AccountType.POLKADOT_LIKE:
1795
- return {
1796
- type: account.type,
1797
- address: account.address
1798
- };
1799
- case AccountType.TRON_LIKE:
1800
- return {
1801
- type: account.type,
1802
- address: account.address
1803
- };
1804
- case AccountType.GENERIC_LIKE:
1805
- case AccountType.RAW_SIGNING:
1806
- return {
1807
- type: account.type
1808
- };
1809
- /* v8 ignore start */
1810
- default:
1811
- unreachable(account.type);
1812
- }
1813
- };
1814
- var getAccountGovernanceFields = (account) => {
1815
- switch (account.governanceType) {
1816
- case AccountGovernanceType.CLASSIC:
1817
- case AccountGovernanceType.RAW_SIGNING:
1818
- return {
1819
- type: AccountGovernanceType.CLASSIC,
1820
- policyId: account.classicGovernanceMixin.policyId
1821
- };
1822
- case AccountGovernanceType.TRADELINK:
1823
- return {
1824
- type: AccountGovernanceType.TRADELINK,
1825
- assetManagerId: account.tradelinkGovernanceMixin.assetManagerId,
1826
- exchangeConfigs: zTradelinkExchangeConfigs.parse(
1827
- account.tradelinkGovernanceMixin.exchangeConfigs
1828
- )
1829
- };
1830
- /* v8 ignore start */
1831
- default:
1832
- unreachable(account.governanceType);
1833
- }
1834
- };
1835
- var serializeAccount = (account) => {
1836
- const asset = getAccountAssetFields(account);
1837
- const governance = getAccountGovernanceFields(account);
1838
- const response = {
1839
- ...account,
1840
- network: account.currency,
1841
- legacyId: account.gateId,
1842
- governance,
1843
- asset
1844
- };
1845
- return zAccountResponse.parse(response);
1846
- };
1847
-
1848
- // src/compat/patch-request-expired-at.ts
1849
- var patchRequestExpiredAt = (data) => ({
1850
- ...data,
1851
- expiredAt: data.expiresAt
1711
+ description: "Create transaction request data",
1712
+ id: "CreateTransactionRequestData"
1852
1713
  });
1853
- var patchTezosRequestData = (data) => {
1854
- if (data.type !== RequestType.CREATE_TRANSACTION) {
1855
- return data;
1856
- }
1857
- const transaction = get(data, ["data", "transaction"]);
1858
- if (!isRecord(transaction)) {
1859
- return data;
1860
- }
1861
- if (transaction.type === "TEZOS_LIKE_DELEGATE") {
1862
- transaction.amount = transaction.amount ?? "0";
1863
- } else if (transaction.type === "TEZOS_LIKE_UNDELEGATE") {
1864
- transaction.amount = transaction.amount ?? "0";
1865
- transaction.recipient = transaction.recipient ?? "0";
1866
- }
1867
- return data;
1868
- };
1869
- var zSciConfigData = z10.object({
1870
- dapps: z10.array(z10.string()).nullable().meta({ description: "Allowed DApps, null allows all" }),
1871
- customContractCallEnabled: z10.boolean().meta({ description: "Allow non-DApp SCI" })
1714
+ var zSignMessageRequestData = z9.object({
1715
+ message: zMessage.meta({ description: "Message to sign" }),
1716
+ accountId: z9.string().min(1).meta({ description: "Target account id" }),
1717
+ address: z9.string().nonempty().meta({ description: "Address with which to sign the message" }),
1718
+ derivationPath: z9.string().nonempty().meta({ description: "Derivation path of the signing address" })
1872
1719
  });
1873
- var zCreateSciConfigRequestData = z10.object({
1874
- account: z10.string().meta({ description: "Account UUID" }),
1875
- config: zSciConfigData
1720
+ var zSignMessageUserInputData = zSignMessageRequestData.partial({
1721
+ address: true,
1722
+ derivationPath: true
1876
1723
  });
1877
- var zEditSciConfigRequestData = z10.object({
1878
- config: zSciConfigData
1724
+ var zDigestData = z9.object({
1725
+ digest: zHexString.meta({ description: "The hex string digest to sign" }),
1726
+ derivationPath: z9.string().nonempty().meta({ description: "The derivation path with which to sign the digest" })
1879
1727
  });
1880
- var zRequestReviewStep = z.object({
1881
- stageName: z.string().regex(/^\w+$/).meta({ description: "The review stage name" }),
1882
- quorum: z.int().min(1).meta({ description: "Quorum for the review step" })
1728
+ var zSignDigestsRequestData = z9.object({
1729
+ accountId: z9.string().min(1).meta({ description: "Target account id" }),
1730
+ digests: z9.array(zDigestData).meta({ description: "The digests to sign" })
1883
1731
  });
1884
- var zRequestReviewSteps = z.array(zRequestReviewStep);
1885
- var zGroupName = z10.string().min(1).max(19).meta({ description: "Group name" });
1886
- var zCreateGroupRequestData = z10.object({
1887
- name: zGroupName,
1888
- description: z10.string().nullable().meta({ description: "Group description" }),
1889
- members: z10.array(z10.string()).meta({ description: "List of group members ids" })
1732
+ z9.object({
1733
+ signatures: z9.array(zHsmSignature)
1890
1734
  });
1891
- var zEditGroupRequestData = z10.object({
1892
- name: zGroupName,
1893
- description: z10.string().nullable().meta({ description: "Group description" }),
1894
- members: z10.array(z10.string()).meta({ description: "List of group members ids" })
1735
+ var zTradelinkWhitelistAddress = z9.object({
1736
+ name: z9.string().min(1),
1737
+ currency: zCurrencyString,
1738
+ address: z9.string().min(1)
1895
1739
  });
1896
- var zApiKeyName = z10.string().min(1).max(19).meta({ description: "API key name" });
1897
- var zCreateApiKeyRequestData = z10.object({
1898
- name: zApiKeyName,
1899
- entities: z10.array(z10.string()).meta({ description: "List of related entities ids" }),
1900
- scopes: z10.object({}).meta({ description: "FIXME to be precised" })
1901
- }).meta({ description: "Create read-only API key request data" });
1902
- var zEditApiKeyRequestData = zCreateApiKeyRequestData.meta({
1903
- description: "Edit read-only API key request data"
1740
+ z9.array(zTradelinkWhitelistAddress);
1741
+ var zTradelinkId = z9.string().meta({ description: "Unique identifier in Tradelink service" });
1742
+ var zTradelinkOrgEntityResponse = z9.object({
1743
+ tradelinkId: zTradelinkId,
1744
+ name: z9.string().meta({ description: "Name" }),
1745
+ code: z9.string().meta({ description: "Code" }),
1746
+ logoUrl: z9.string().meta({ description: "Logo URL" })
1904
1747
  });
1905
- var zEntityName = z10.string().min(1).max(19).meta({ description: "Entity name" });
1906
- var zCreateEntityRequestData = z10.object({
1907
- name: zEntityName,
1908
- accounts: z10.array(z10.string())
1748
+ zTradelinkOrgEntityResponse.omit({
1749
+ tradelinkId: true
1909
1750
  });
1910
- var zEditEntityRequestData = z10.object({
1911
- name: zEntityName,
1912
- accounts: z10.array(z10.string())
1751
+ z9.object({
1752
+ tradelinkId: zTradelinkId
1913
1753
  });
1914
-
1915
- // src/requests/request-data.ts
1916
- var zVaultRequestMixinsByType = {
1917
- // Workspaces
1918
- [RequestType.UPDATE_QUORUM]: z10.object({
1919
- type: z10.literal(RequestType.UPDATE_QUORUM),
1920
- data: zUpdateQuorumRequestData
1921
- }),
1922
- // Operator requests
1923
- [RequestType.CREATE_TRANSACTION]: z10.object({
1924
- type: z10.literal(RequestType.CREATE_TRANSACTION),
1925
- data: zCreateTransactionRequestData,
1926
- meta: z10.object({
1927
- hash: z10.string().nullable()
1928
- }).optional().nullable()
1929
- }),
1930
- [RequestType.SIGN_MESSAGE]: z10.object({
1931
- type: z10.literal(RequestType.SIGN_MESSAGE),
1932
- data: zSignMessageRequestData
1933
- }),
1934
- [RequestType.SIGN_DIGESTS]: z10.object({
1935
- type: z10.literal(RequestType.SIGN_DIGESTS),
1936
- data: zSignDigestsRequestData
1937
- }),
1938
- // Accounts
1939
- [RequestType.CREATE_ACCOUNT]: z10.object({
1940
- type: z10.literal(RequestType.CREATE_ACCOUNT),
1941
- data: zCreateAccountRequestData
1942
- }),
1943
- [RequestType.EDIT_ACCOUNT]: z10.object({
1944
- type: z10.literal(RequestType.EDIT_ACCOUNT),
1945
- targetId: z10.string(),
1946
- data: zEditAccountRequestData
1947
- }),
1948
- [RequestType.EDIT_TOKEN_RULE]: z10.object({
1949
- type: z10.literal(RequestType.EDIT_TOKEN_RULE),
1950
- targetId: z10.string(),
1951
- data: zEditTokenRuleRequestData
1952
- }),
1953
- // Groups
1954
- [RequestType.CREATE_GROUP]: z10.object({
1955
- type: z10.literal(RequestType.CREATE_GROUP),
1956
- data: zCreateGroupRequestData
1957
- }),
1958
- [RequestType.EDIT_GROUP]: z10.object({
1959
- type: z10.literal(RequestType.EDIT_GROUP),
1960
- targetId: z10.string(),
1961
- data: zEditGroupRequestData
1962
- }),
1963
- [RequestType.REVOKE_GROUP]: z10.object({
1964
- type: z10.literal(RequestType.REVOKE_GROUP),
1965
- targetId: z10.string(),
1966
- data: zRevokeUserRequestData
1967
- }),
1968
- // Whitelists
1969
- [RequestType.CREATE_WHITELIST]: z10.object({
1970
- type: z10.literal(RequestType.CREATE_WHITELIST),
1971
- data: zCreateWhitelistRequestData
1972
- }),
1973
- [RequestType.EDIT_WHITELIST]: z10.object({
1974
- type: z10.literal(RequestType.EDIT_WHITELIST),
1975
- targetId: z10.string(),
1976
- data: zEditWhitelistRequestData
1977
- }),
1978
- // Entities
1979
- [RequestType.CREATE_ENTITY]: z10.object({
1980
- type: z10.literal(RequestType.CREATE_ENTITY),
1981
- data: zCreateEntityRequestData
1982
- }),
1983
- [RequestType.EDIT_ENTITY]: z10.object({
1984
- type: z10.literal(RequestType.EDIT_ENTITY),
1985
- data: zEditEntityRequestData
1986
- }),
1987
- [RequestType.REVOKE_ENTITY]: z10.object({
1988
- type: z10.literal(RequestType.REVOKE_ENTITY),
1989
- data: z10.object({})
1754
+ var zTradelinkExchangeConfig = z9.object({
1755
+ exchangeId: z9.string().meta({ description: "Tradelink exchange id" }),
1756
+ repledgeAuthorized: z9.boolean().meta({
1757
+ description: "Determines whether this exchange is authorized to repledge on this account"
1990
1758
  }),
1991
- // Users
1992
- [RequestType.CREATE_PSD_USER]: z10.object({
1993
- type: z10.literal(RequestType.CREATE_PSD_USER),
1994
- data: zCreatePsdUserRequestData
1759
+ needsAssetManagerApprovalForSettlements: z9.boolean().meta({
1760
+ description: 'Determines whether asset manager will "pre-approve" the settlement requests on this account'
1761
+ })
1762
+ });
1763
+ var zTradelinkExchangeConfigs = z9.array(zTradelinkExchangeConfig);
1764
+ z9.object({
1765
+ workspaceName: zWorkspaceName,
1766
+ custodian: z9.object({ name: z9.string() }),
1767
+ assetManagers: z9.array(z9.object({ name: z9.string() })),
1768
+ exchanges: z9.array(z9.object({ name: z9.string() }))
1769
+ });
1770
+ z9.object({
1771
+ tradelinkId: z9.string(),
1772
+ workspaceName: zWorkspaceName,
1773
+ custodian: zTradelinkOrgEntityResponse,
1774
+ assetManagers: z9.array(zTradelinkOrgEntityResponse),
1775
+ exchanges: z9.array(zTradelinkOrgEntityResponse)
1776
+ });
1777
+ var zTradelinkAsset = z9.object({
1778
+ name: z9.string(),
1779
+ magnitude: z9.number().int().nonnegative()
1780
+ });
1781
+ z9.object({
1782
+ tradelinkId: zTradelinkId,
1783
+ asset: zTradelinkAsset,
1784
+ state: z9.enum([
1785
+ "PLEDGE_READY",
1786
+ "PLEDGE_INCREMENT_PENDING_APPROVAL",
1787
+ "PLEDGE_APPROVED",
1788
+ "PLEDGE_REJECTED",
1789
+ "UNPLEDGE_PENDING_APPROVAL",
1790
+ "UNPLEDGE_APPROVED",
1791
+ "UNPLEDGE_REJECTED",
1792
+ "REPLEDGE_PENDING_APPROVAL",
1793
+ "REPLEDGE_APPROVED",
1794
+ "REPLEDGE_REJECTED",
1795
+ "ASSIGNED_TO_SETTLEMENT",
1796
+ "OUTBOUND_TRANSACTION_CONFIRMED",
1797
+ "OUTBOUND_TRANSACTION_FAILED",
1798
+ "RECOVERING_FROM_FAILURE",
1799
+ "PLEDGE_CONSUMED"
1800
+ ]),
1801
+ isLocked: z9.boolean(),
1802
+ amount: z9.string().meta({ description: "Currently pledged amount" }),
1803
+ pending: z9.string().meta({ description: "Requested pledge increment, not yet approved" }),
1804
+ repledge: z9.string().meta({ description: "TODO: describe this field" }),
1805
+ exchangeTradelinkId: z9.string(),
1806
+ accountId: z9.string()
1807
+ });
1808
+ z9.object({
1809
+ workspaceName: z9.string(),
1810
+ clientAccountId: z9.string().meta({ description: "Account ID from the client side" }),
1811
+ exchangeTradelinkId: zTradelinkId,
1812
+ asset: zTradelinkAsset
1813
+ });
1814
+ z9.object({
1815
+ pledgeTradelinkId: zTradelinkId,
1816
+ amount: zUnsignedIntString,
1817
+ asset: zTradelinkAsset
1818
+ });
1819
+ z9.object({
1820
+ tradelinkId: z9.string(),
1821
+ pledgeTradelinkId: z9.string(),
1822
+ state: z9.enum([
1823
+ "REGISTERED",
1824
+ "PENDING_REPLEDGE_CREATION_APPROVAL",
1825
+ "PENDING_REPLEDGE_APPROVAL",
1826
+ "PENDING_CREATION_APPROVAL",
1827
+ "PENDING_PRE_APPROVAL",
1828
+ "PRE_APPROVED",
1829
+ "APPROVED",
1830
+ "REJECTED",
1831
+ "CONFIRMED",
1832
+ "FAILED",
1833
+ "CANCELED"
1834
+ ]),
1835
+ // For now we only consider the outbound settlement
1836
+ outboundTransactionHash: z9.string().nullable()
1837
+ });
1838
+ var zTradelinkActivateAccountRequestData = z9.null();
1839
+ var zTradelinkCustodianRequestData = z9.object({
1840
+ settlement: zReviewStepWithUsersArray.meta({ description: "List of settlement review steps" }),
1841
+ withdraw: zReviewStepWithUsersArray.meta({ description: "List of withdraw review steps" }),
1842
+ arbitration: zReviewStepWithUsersArray.meta({ description: "List of arbitration review steps" })
1843
+ });
1844
+ var zTradelinkEntityRequestData = z9.object({
1845
+ tradelinkId: z9.string().min(1),
1846
+ groups: zReviewStepWithUsersArray.meta({ description: "List of asset manager review groups" }),
1847
+ whitelist: z9.array(zTradelinkWhitelistAddress).meta({ description: "List of asset manager whitelisted addresses" })
1848
+ });
1849
+ var zTradelinkAdjustPledgeRequestData = z9.object({
1850
+ accountId: z9.string().meta({ description: "Account id" }),
1851
+ exchangeId: z9.string().meta({ description: "Exchange id" }),
1852
+ amount: zIntString.meta({ description: "Amount to add to pledge" })
1853
+ });
1854
+ var zTradelinkRepledgeRequestData = z9.object({
1855
+ accountId: z9.string().meta({ description: "Account id" }),
1856
+ exchangeId: z9.string().meta({ description: "Exchange id" }),
1857
+ amount: zIntString.meta({ description: "Amount to add to pledge" })
1858
+ });
1859
+ var zTradelinkCreateSettlementRequestData = z9.object({
1860
+ accountId: z9.string().meta({ description: "Account id" }),
1861
+ exchangeId: z9.string().meta({ description: "Exchange id" }),
1862
+ transaction: zSendOnlyTransactionData
1863
+ });
1864
+ var zTradelinkForceUnpledgeRequestData = z9.object({
1865
+ accountId: z9.string().meta({ description: "Account id" }),
1866
+ exchangeId: z9.string().meta({ description: "Exchange id" })
1867
+ });
1868
+ var zTradelinkWithdrawRequestData = z9.object({
1869
+ accountId: z9.string().meta({ description: "Account id" }),
1870
+ transaction: zSendOnlyTransactionData
1871
+ });
1872
+ var zTradelinkArbitrationRequestData = z9.object({
1873
+ accountId: z9.string().meta({ description: "Account id" }),
1874
+ transaction: zSendOnlyTransactionData
1875
+ });
1876
+ var zTradelinkRequestMixinsByType = {
1877
+ [RequestType.TRADELINK_ACTIVATE_ACCOUNT]: z9.object({
1878
+ type: z9.literal(RequestType.TRADELINK_ACTIVATE_ACCOUNT),
1879
+ targetId: z9.string(),
1880
+ data: zTradelinkActivateAccountRequestData
1995
1881
  }),
1996
- [RequestType.CREATE_API_USER]: z10.object({
1997
- type: z10.literal(RequestType.CREATE_API_USER),
1998
- data: zCreateApiUserRequestData
1882
+ [RequestType.TRADELINK_CREATE_CUSTODIAN]: z9.object({
1883
+ type: z9.literal(RequestType.TRADELINK_CREATE_CUSTODIAN),
1884
+ data: zTradelinkCustodianRequestData
1999
1885
  }),
2000
- [RequestType.CREATE_API_USER_ACCESS]: z10.object({
2001
- type: z10.literal(RequestType.CREATE_API_USER_ACCESS),
2002
- data: zCreateApiUserAccessRequestData
1886
+ [RequestType.TRADELINK_EDIT_CUSTODIAN]: z9.object({
1887
+ type: z9.literal(RequestType.TRADELINK_EDIT_CUSTODIAN),
1888
+ targetId: z9.string(),
1889
+ data: zTradelinkCustodianRequestData
2003
1890
  }),
2004
- [RequestType.REVOKE_USER]: z10.object({
2005
- type: z10.literal(RequestType.REVOKE_USER),
2006
- targetId: z10.string(),
2007
- data: zRevokeUserRequestData
1891
+ [RequestType.TRADELINK_CREATE_EXCHANGE]: z9.object({
1892
+ type: z9.literal(RequestType.TRADELINK_CREATE_EXCHANGE),
1893
+ data: zTradelinkEntityRequestData
2008
1894
  }),
2009
- // Admin gov rules
2010
- [RequestType.EDIT_WORKSPACE_RULE]: z10.object({
2011
- type: z10.literal(RequestType.EDIT_WORKSPACE_RULE),
2012
- data: zWorkspaceRuleRequestData
1895
+ [RequestType.TRADELINK_EDIT_EXCHANGE]: z9.object({
1896
+ type: z9.literal(RequestType.TRADELINK_EDIT_EXCHANGE),
1897
+ targetId: z9.string(),
1898
+ data: zTradelinkEntityRequestData
2013
1899
  }),
2014
- // SCI configs
2015
- [RequestType.CREATE_SCICONFIG]: z10.object({
2016
- type: z10.literal(RequestType.CREATE_SCICONFIG),
2017
- data: zCreateSciConfigRequestData
1900
+ [RequestType.TRADELINK_CREATE_ASSET_MANAGER]: z9.object({
1901
+ type: z9.literal(RequestType.TRADELINK_CREATE_ASSET_MANAGER),
1902
+ data: zTradelinkEntityRequestData
2018
1903
  }),
2019
- [RequestType.EDIT_SCICONFIG]: z10.object({
2020
- type: z10.literal(RequestType.EDIT_SCICONFIG),
2021
- data: zEditSciConfigRequestData
1904
+ [RequestType.TRADELINK_EDIT_ASSET_MANAGER]: z9.object({
1905
+ type: z9.literal(RequestType.TRADELINK_EDIT_ASSET_MANAGER),
1906
+ targetId: z9.string(),
1907
+ data: zTradelinkEntityRequestData
2022
1908
  }),
2023
- // API keys
2024
- [RequestType.CREATE_API_KEY]: z10.object({
2025
- type: z10.literal(RequestType.CREATE_API_KEY),
2026
- data: zCreateApiKeyRequestData
1909
+ [RequestType.TRADELINK_ADJUST_PLEDGE]: z9.object({
1910
+ type: z9.literal(RequestType.TRADELINK_ADJUST_PLEDGE),
1911
+ data: zTradelinkAdjustPledgeRequestData
2027
1912
  }),
2028
- [RequestType.EDIT_API_KEY]: z10.object({
2029
- type: z10.literal(RequestType.EDIT_API_KEY),
2030
- data: zEditApiKeyRequestData
1913
+ [RequestType.TRADELINK_REPLEDGE]: z9.object({
1914
+ type: z9.literal(RequestType.TRADELINK_REPLEDGE),
1915
+ data: zTradelinkRepledgeRequestData
2031
1916
  }),
2032
- [RequestType.REVOKE_API_KEY]: z10.object({
2033
- type: z10.literal(RequestType.REVOKE_API_KEY),
2034
- data: z10.object({})
1917
+ [RequestType.TRADELINK_CREATE_SETTLEMENT]: z9.object({
1918
+ type: z9.literal(RequestType.TRADELINK_CREATE_SETTLEMENT),
1919
+ data: zTradelinkCreateSettlementRequestData,
1920
+ meta: z9.object({
1921
+ hash: z9.string().nullable()
1922
+ }).optional().nullable()
2035
1923
  }),
2036
- // Policies
2037
- [RequestType.CREATE_POLICY]: z10.object({
2038
- type: z10.literal(RequestType.CREATE_POLICY),
2039
- data: zCreatePublicPolicyRequestData
1924
+ [RequestType.TRADELINK_FORCE_UNPLEDGE]: z9.object({
1925
+ type: z9.literal(RequestType.TRADELINK_FORCE_UNPLEDGE),
1926
+ data: zTradelinkForceUnpledgeRequestData
2040
1927
  }),
2041
- [RequestType.EDIT_POLICY]: z10.object({
2042
- type: z10.literal(RequestType.EDIT_POLICY),
2043
- targetId: z10.string(),
2044
- data: zEditPublicPolicyRequestData
1928
+ [RequestType.TRADELINK_WITHDRAW]: z9.object({
1929
+ type: z9.literal(RequestType.TRADELINK_WITHDRAW),
1930
+ data: zTradelinkWithdrawRequestData,
1931
+ meta: z9.object({
1932
+ hash: z9.string().nullable()
1933
+ }).optional().nullable()
2045
1934
  }),
2046
- // Tradelink-related requests
2047
- ...zTradelinkRequestMixinsByType
1935
+ [RequestType.TRADELINK_ARBITRATE]: z9.object({
1936
+ type: z9.literal(RequestType.TRADELINK_ARBITRATE),
1937
+ data: zTradelinkArbitrationRequestData,
1938
+ meta: z9.object({
1939
+ hash: z9.string().nullable()
1940
+ }).optional().nullable()
1941
+ })
2048
1942
  };
2049
1943
 
2050
- // src/requests/app-types.ts
2051
- var zRequestReviewResponse = z10.object({
2052
- // Note: Do NOT include `quorum` as it is already available in the request's `reviewSteps` field.
2053
- stepIndex: z10.number().int().meta({ description: "Index of the governance step in the request workflow" }),
2054
- userId: z10.string().meta({ description: "Reviewer id" }),
2055
- status: z10.enum(RequestReviewStatus).meta({ description: "Review status" }),
2056
- createdAt: z10.coerce.date().meta({ description: "Created date" }),
2057
- updatedAt: z10.coerce.date().meta({ description: "Updated date" })
2058
- });
2059
- var zVaultRequestCommonMixin = z10.object({
2060
- id: z10.string().meta({ description: "Request unique identifier" }),
2061
- legacyId: z10.number().meta({ description: "Legacy internal unique identifier (for retro-compatibility)" }),
2062
- state: z10.enum(RequestState).meta({ description: "Request state" }),
2063
- reviewSteps: zRequestReviewSteps.meta({ description: "Request review steps" }),
2064
- currentStepIndex: z10.number().int().min(0).meta({ description: "Index of the current approval step" }),
2065
- expiresAt: z10.coerce.date().meta({ description: "Request expiration date" }),
2066
- expiredAt: z10.coerce.date().optional().meta({ description: "Deprecated: use expiresAt" }),
2067
- targetId: z10.string().nullable().meta({ description: "Optional ID of the target object" }),
2068
- note: zNote.nullable().meta({ description: "Optional request note" }),
2069
- reviews: z10.array(zRequestReviewResponse).meta({ description: "Requests reviews" }),
2070
- // `type` and `data` are correlated -- See `zVaultRequestMixinsByType`
2071
- createdAt: z10.coerce.date().meta({ description: "Creation timestamp" }),
2072
- updatedAt: z10.coerce.date().meta({ description: "Last modification timestamp" }),
2073
- createdById: z10.string().meta({ description: "ID of the user who created the request" }),
2074
- // `inflight` is fetched from ONGOING RequestSaga
2075
- inflight: z10.object({
2076
- lastError: z10.string().nullable().meta({ description: "Error message from the last failure" }),
2077
- numFailed: z10.number().int().meta({ description: "Number of failures so far" }),
2078
- retryAfter: z10.coerce.date().meta({ description: "Date after which next retry is scheduled" })
2079
- }).optional().meta({ description: "Extra information if the request is currently being processed" })
1944
+ // src/accounts/account-governance-fields.ts
1945
+ var zClassicAccountGovernanceFields = z.object({
1946
+ type: z.literal(AccountGovernanceType.CLASSIC).meta({ description: "Classic account governance" }),
1947
+ policyId: z.string().meta({ description: "Identifier of corresponding governance policy" })
1948
+ }).meta({ description: "Classic" });
1949
+ var zTradelinkAccountGovernanceFields = z.object({
1950
+ type: z.literal(AccountGovernanceType.TRADELINK).meta({ description: "Tradelink account governance" }),
1951
+ assetManagerId: z.string().meta({ description: "Identifier of corresponding asset manager" }),
1952
+ exchangeConfigs: zTradelinkExchangeConfigs.meta({
1953
+ description: "Tradelink exchange configurations"
1954
+ })
1955
+ }).meta({ description: "Tradelink" });
1956
+ var zAccountGovernanceFields = z.discriminatedUnion("type", [zClassicAccountGovernanceFields, zTradelinkAccountGovernanceFields]).meta({ description: "Governance fields" });
1957
+
1958
+ // src/accounts/types.ts
1959
+ var zAccountCommonFields = z9.object({
1960
+ id: z9.string().meta({ description: "Internal unique identifier" }),
1961
+ legacyId: z9.number().meta({ description: "Legacy internal unique identifier (for retro-compatibility)" }),
1962
+ name: z9.string().meta({ description: "Name" }),
1963
+ currency: zCurrencyString,
1964
+ network: zNetwork,
1965
+ contractAddress: z9.string().nullable().meta({ description: "Token contract address for Token account" }),
1966
+ index: z9.number().gte(0).meta({ description: "BIP44 account index" }),
1967
+ derivationPath: z9.string().meta({ description: "Derivation path" }),
1968
+ status: z9.enum(ActivationStatus).meta({ description: "Status" }),
1969
+ createdAt: z9.coerce.date().meta({ description: "Creation timestamp" }),
1970
+ updatedAt: z9.coerce.date().meta({ description: "Last modification timestamp" })
1971
+ });
1972
+ var zRawSigningAssetFields = z9.object({ type: z9.literal(AccountType.RAW_SIGNING).meta({ description: "Account type" }) }).meta({ description: "Raw signing account" });
1973
+ var zAccountAssetFields = z9.discriminatedUnion("type", [zRawSigningAssetFields, ...zNetworkAssetFields.options]).meta({ description: "Account asset fields" });
1974
+ var zAccountResponse = zAccountCommonFields.extend({
1975
+ asset: zAccountAssetFields,
1976
+ governance: zAccountGovernanceFields
2080
1977
  });
2081
- var allowedRequestCreationInputByType = {
2082
- [RequestType.UPDATE_QUORUM]: zVaultRequestMixinsByType[RequestType.UPDATE_QUORUM],
2083
- [RequestType.CREATE_PSD_USER]: zVaultRequestMixinsByType[RequestType.CREATE_PSD_USER],
2084
- [RequestType.CREATE_API_USER]: zVaultRequestMixinsByType[RequestType.CREATE_API_USER],
2085
- [RequestType.CREATE_GROUP]: zVaultRequestMixinsByType[RequestType.CREATE_GROUP],
2086
- [RequestType.EDIT_GROUP]: zVaultRequestMixinsByType[RequestType.EDIT_GROUP],
2087
- [RequestType.CREATE_WHITELIST]: zVaultRequestMixinsByType[RequestType.CREATE_WHITELIST],
2088
- [RequestType.EDIT_WHITELIST]: zVaultRequestMixinsByType[RequestType.EDIT_WHITELIST],
2089
- [RequestType.CREATE_TRANSACTION]: zVaultRequestMixinsByType[RequestType.CREATE_TRANSACTION],
2090
- [RequestType.SIGN_MESSAGE]: z10.object({
2091
- type: z10.literal(RequestType.SIGN_MESSAGE),
2092
- data: zSignMessageUserInputData
2093
- }),
2094
- [RequestType.CREATE_POLICY]: zVaultRequestMixinsByType[RequestType.CREATE_POLICY],
2095
- [RequestType.EDIT_POLICY]: zVaultRequestMixinsByType[RequestType.EDIT_POLICY],
2096
- [RequestType.CREATE_ACCOUNT]: z10.object({
2097
- type: z10.literal(RequestType.CREATE_ACCOUNT),
2098
- data: zCreateAccountUserInputData
2099
- }),
2100
- [RequestType.EDIT_ACCOUNT]: zVaultRequestMixinsByType[RequestType.EDIT_ACCOUNT],
2101
- [RequestType.TRADELINK_ACTIVATE_ACCOUNT]: zVaultRequestMixinsByType[RequestType.TRADELINK_ACTIVATE_ACCOUNT],
2102
- [RequestType.TRADELINK_CREATE_CUSTODIAN]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_CUSTODIAN],
2103
- [RequestType.TRADELINK_EDIT_CUSTODIAN]: zVaultRequestMixinsByType[RequestType.TRADELINK_EDIT_CUSTODIAN],
2104
- [RequestType.TRADELINK_CREATE_EXCHANGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_EXCHANGE],
2105
- [RequestType.TRADELINK_EDIT_EXCHANGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_EDIT_EXCHANGE],
2106
- [RequestType.TRADELINK_CREATE_ASSET_MANAGER]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_ASSET_MANAGER],
2107
- [RequestType.TRADELINK_EDIT_ASSET_MANAGER]: zVaultRequestMixinsByType[RequestType.TRADELINK_EDIT_ASSET_MANAGER],
2108
- [RequestType.TRADELINK_ADJUST_PLEDGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_ADJUST_PLEDGE],
2109
- [RequestType.TRADELINK_REPLEDGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_REPLEDGE],
2110
- [RequestType.TRADELINK_FORCE_UNPLEDGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_FORCE_UNPLEDGE],
2111
- [RequestType.TRADELINK_CREATE_SETTLEMENT]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_SETTLEMENT],
2112
- [RequestType.TRADELINK_WITHDRAW]: zVaultRequestMixinsByType[RequestType.TRADELINK_WITHDRAW],
2113
- [RequestType.TRADELINK_ARBITRATE]: zVaultRequestMixinsByType[RequestType.TRADELINK_ARBITRATE],
2114
- [RequestType.REVOKE_USER]: zVaultRequestMixinsByType[RequestType.REVOKE_USER],
2115
- [RequestType.EDIT_WORKSPACE_RULE]: zVaultRequestMixinsByType[RequestType.EDIT_WORKSPACE_RULE]
2116
- };
2117
- var zRequestCreationInputCommonMixin = z10.object({
2118
- note: zNote.optional().meta({ description: "Optional request note" })
1978
+ z9.enum([
1979
+ "name",
1980
+ "currency",
1981
+ "index",
1982
+ "createdAt",
1983
+ "updatedAt"
1984
+ ]).default("createdAt");
1985
+ var zRawSigningLiveData = zCommonLiveData.extend({
1986
+ type: z9.literal(AccountType.RAW_SIGNING).meta({ description: "Account type" })
1987
+ }).meta({ description: "Raw signing account" });
1988
+ z9.discriminatedUnion("type", [
1989
+ zRawSigningLiveData,
1990
+ ...zAccountLiveData.options
1991
+ ]);
1992
+ z9.object({
1993
+ address: z9.string().meta({ description: "Address" }),
1994
+ derivationPath: z9.string().nullable().meta({ description: "Derivation path" })
1995
+ });
1996
+ z9.object({
1997
+ amount: zIntString.meta({ description: "Amount in the smallest unit of the currency" }),
1998
+ currency: zCurrency
1999
+ });
2000
+ z9.object({
2001
+ id: z9.string().nonempty().meta({ description: "Staking position ID (if applicable)" }),
2002
+ validator: z9.string().nonempty().meta({ description: "Validator address" }),
2003
+ state: z9.enum(["ACTIVE", "INACTIVE", "ACTIVATING", "DEACTIVATING", "UNKNOWN"]).meta({ description: "Stake state" }),
2004
+ staked: z9.string().meta({ description: "Staked amount" }),
2005
+ rewards: z9.object({
2006
+ total: z9.string().meta({ description: "Total rewards" })
2007
+ })
2119
2008
  });
2120
- z10.object({
2121
- request: z10.discriminatedUnion(
2122
- "type",
2123
- ensureNonEmptyArray(
2124
- Object.values(allowedRequestCreationInputByType).map((_) => {
2125
- const requestType = _.shape.type.value;
2126
- return _.extend(zRequestCreationInputCommonMixin.shape).meta({
2127
- description: `${requestType} request data`
2128
- });
2009
+ z9.enum(["staked", "rewards", "total"]).default("total");
2010
+ z9.object({
2011
+ address: z9.string().meta({ description: "Validator address" }),
2012
+ apy: z9.string().nullable().meta({ description: "Validator APY" }),
2013
+ balance: z9.string().nullable().meta({ description: "Validator balance" }),
2014
+ commissionRate: z9.string().nullable().meta({ description: "Validator commission rate" }),
2015
+ description: z9.string().nullable().meta({ description: "Description" }),
2016
+ logo: z9.string().nullable().meta({ description: "Logo URL" }),
2017
+ name: z9.string().nullable().meta({ description: "Validator name" }),
2018
+ url: z9.string().nullable().meta({ description: "Validator URL" })
2019
+ });
2020
+ z9.enum(["balance"]).default("balance");
2021
+
2022
+ // src/accounts/app-types.ts
2023
+ z9.discriminatedUnion(
2024
+ zTransactionResponse._zod.def.discriminator,
2025
+ ensureNonEmptyArray(
2026
+ zTransactionResponse.options.map(
2027
+ (_) => _.extend({
2028
+ note: zNote.nullable().meta({ description: "Optional transaction note" }),
2029
+ requestId: z9.string().nullable().meta({ description: "Request ID associated with the transaction, if available" })
2129
2030
  })
2130
2031
  )
2131
2032
  )
2033
+ );
2034
+ var zWhitelistAddress = z9.object({
2035
+ name: z9.string().min(1).max(50),
2036
+ currency: zCurrencyString,
2037
+ address: z9.string().min(1).max(200),
2038
+ // Destination tags are numeric-only or alpha-numeric.
2039
+ // Empty array (or undefined) means no check on destination tag.
2040
+ destinationTags: z9.array(z9.string().min(1).regex(/^\w+$/)).optional()
2132
2041
  });
2133
- var zVaultRequestResponse = z10.discriminatedUnion(
2134
- "type",
2135
- ensureNonEmptyArray(
2136
- Object.values(zVaultRequestMixinsByType).map((_) => {
2137
- const requestType = _.shape.type.value;
2138
- return _.extend(zVaultRequestCommonMixin.shape).meta({
2139
- description: `${requestType} request`
2140
- });
2141
- })
2142
- )
2143
- ).meta({
2144
- description: "Vault request response data",
2145
- id: "VaultRequestResponse"
2042
+ var zWhitelistAddresses = z9.array(zWhitelistAddress);
2043
+ var zWhitelistName = z9.string().min(1).max(45).meta({ description: "Whitelist name" });
2044
+ var zCreateWhitelistRequestData = z9.object({
2045
+ name: zWhitelistName,
2046
+ description: z9.string().nullable(),
2047
+ addresses: zWhitelistAddresses,
2048
+ type: z9.enum(WhitelistType)
2146
2049
  });
2147
- z10.enum([
2148
- "state",
2149
- "expiresAt",
2150
- "createdAt",
2151
- "updatedAt"
2152
- ]).default("createdAt");
2153
- z10.object({
2154
- pubKey: z10.string().meta({ description: "Public key of the current user" }),
2155
- challenge: zUserChallenge.meta({
2156
- description: "Challenge data to sign with the user's private key"
2157
- })
2050
+ var zEditWhitelistRequestData = z9.object({
2051
+ name: zWhitelistName,
2052
+ addresses: zWhitelistAddresses
2158
2053
  });
2159
- var shouldHaveTargetHsmId = (request) => {
2160
- switch (request.type) {
2161
- case RequestType.CREATE_ENTITY:
2162
- case RequestType.EDIT_ENTITY:
2163
- case RequestType.REVOKE_ENTITY:
2164
- case RequestType.CREATE_SCICONFIG:
2165
- case RequestType.EDIT_SCICONFIG:
2166
- case RequestType.CREATE_API_KEY:
2167
- case RequestType.EDIT_API_KEY:
2168
- case RequestType.REVOKE_API_KEY:
2169
- case RequestType.EDIT_WORKSPACE_RULE:
2170
- case RequestType.UPDATE_QUORUM:
2171
- return false;
2172
- case RequestType.CREATE_PSD_USER:
2173
- case RequestType.CREATE_API_USER:
2174
- case RequestType.CREATE_API_USER_ACCESS:
2175
- // targeting / editing an existing `User`
2176
- case RequestType.REVOKE_USER:
2177
- case RequestType.CREATE_TRANSACTION:
2178
- case RequestType.SIGN_MESSAGE:
2179
- case RequestType.SIGN_DIGESTS:
2180
- case RequestType.CREATE_ACCOUNT:
2181
- case RequestType.EDIT_ACCOUNT:
2182
- case RequestType.TRADELINK_ACTIVATE_ACCOUNT:
2183
- case RequestType.CREATE_GROUP:
2184
- case RequestType.EDIT_GROUP:
2185
- case RequestType.REVOKE_GROUP:
2186
- case RequestType.CREATE_WHITELIST:
2187
- case RequestType.EDIT_WHITELIST:
2188
- case RequestType.CREATE_POLICY:
2189
- case RequestType.EDIT_POLICY:
2190
- case RequestType.TRADELINK_CREATE_CUSTODIAN:
2191
- case RequestType.TRADELINK_EDIT_CUSTODIAN:
2192
- case RequestType.TRADELINK_CREATE_EXCHANGE:
2193
- case RequestType.TRADELINK_EDIT_EXCHANGE:
2194
- case RequestType.TRADELINK_CREATE_ASSET_MANAGER:
2195
- case RequestType.TRADELINK_EDIT_ASSET_MANAGER:
2196
- return request.state !== RequestState.INITIAL;
2197
- case RequestType.EDIT_TOKEN_RULE:
2198
- return true;
2199
- }
2200
- };
2201
- var shouldHaveTargetId = (request) => {
2202
- switch (request.type) {
2203
- case RequestType.CREATE_API_KEY:
2204
- case RequestType.EDIT_API_KEY:
2205
- case RequestType.REVOKE_API_KEY:
2206
- return false;
2207
- case RequestType.CREATE_TRANSACTION:
2208
- case RequestType.SIGN_DIGESTS:
2209
- return false;
2210
- case RequestType.UPDATE_QUORUM:
2211
- case RequestType.CREATE_PSD_USER:
2212
- case RequestType.CREATE_API_USER:
2213
- case RequestType.CREATE_ACCOUNT:
2214
- case RequestType.CREATE_GROUP:
2215
- case RequestType.CREATE_WHITELIST:
2216
- case RequestType.CREATE_ENTITY:
2217
- case RequestType.CREATE_SCICONFIG:
2218
- case RequestType.CREATE_POLICY:
2219
- case RequestType.SIGN_MESSAGE:
2220
- case RequestType.TRADELINK_CREATE_CUSTODIAN:
2221
- case RequestType.TRADELINK_CREATE_EXCHANGE:
2222
- case RequestType.TRADELINK_CREATE_ASSET_MANAGER:
2223
- return request.state === RequestState.EXECUTED;
2224
- case RequestType.EDIT_WORKSPACE_RULE:
2225
- case RequestType.EDIT_ACCOUNT:
2226
- case RequestType.TRADELINK_ACTIVATE_ACCOUNT:
2227
- case RequestType.EDIT_TOKEN_RULE:
2228
- // EDIT_TOKEN_RULE targetId is the parent account which must always exist, even when creating new token rule.
2229
- case RequestType.EDIT_GROUP:
2230
- case RequestType.REVOKE_GROUP:
2231
- case RequestType.EDIT_WHITELIST:
2232
- case RequestType.EDIT_ENTITY:
2233
- case RequestType.REVOKE_ENTITY:
2234
- case RequestType.CREATE_API_USER_ACCESS:
2235
- case RequestType.REVOKE_USER:
2236
- case RequestType.EDIT_SCICONFIG:
2237
- case RequestType.EDIT_POLICY:
2238
- case RequestType.TRADELINK_EDIT_CUSTODIAN:
2239
- case RequestType.TRADELINK_EDIT_EXCHANGE:
2240
- case RequestType.TRADELINK_EDIT_ASSET_MANAGER:
2241
- case RequestType.TRADELINK_ADJUST_PLEDGE:
2242
- case RequestType.TRADELINK_REPLEDGE:
2243
- case RequestType.TRADELINK_CREATE_SETTLEMENT:
2244
- case RequestType.TRADELINK_FORCE_UNPLEDGE:
2245
- case RequestType.TRADELINK_WITHDRAW:
2246
- case RequestType.TRADELINK_ARBITRATE:
2247
- return true;
2248
- }
2249
- };
2250
2054
 
2251
- // src/requests/app-utils/index.ts
2252
- function serializeVaultRequest(request) {
2253
- const serialized = {
2254
- ...request,
2255
- legacyId: request.gateId
2256
- };
2257
- switch (request.type) {
2258
- case "CREATE_TRANSACTION":
2259
- case "TRADELINK_WITHDRAW":
2260
- case "TRADELINK_ARBITRATE":
2261
- case "TRADELINK_CREATE_SETTLEMENT":
2262
- Object.assign(serialized, {
2263
- meta: {
2264
- hash: request.transactionMeta?.hash ?? null
2265
- }
2266
- });
2267
- break;
2268
- }
2269
- let patched = zVaultRequestResponse.parse(serialized);
2270
- patched = patchRequestExpiredAt(patched);
2271
- patched = patchTezosRequestData(patched);
2272
- return patched;
2273
- }
2274
- var fakeUniqueName = (length = 20) => faker.string.alphanumeric({ length, casing: "lower" });
2275
- var fakeHexString = (length, casing = "upper") => faker.string.hexadecimal({ prefix: "", casing, length });
2276
- var fakePubKey = () => fakeHexString(130);
2277
- var fakeIntegerId = () => faker.number.int({ min: 1, max: 2e9 });
2278
- var fakeGateId = fakeIntegerId;
2279
- var fakeBase64String = (length) => btoa(faker.string.sample(length));
2280
- var fakePsdSignature = () => fakeBase64String(100);
2281
- var fakeJws = () => times(3, () => faker.string.hexadecimal({ prefix: "", length: 100 })).join(".");
2282
- var fakeHsmObjectId = () => faker.string.uuid();
2283
- var fakeHsmCertificate = () => ({
2284
- codeHash: fakeBase64String(10),
2285
- attestationPub: fakeBase64String(20),
2286
- certificate: fakeBase64String(20),
2287
- signature: fakeBase64String(20)
2055
+ // src/policies/db-utils.ts
2056
+ var zBaseGovRuleData = z9.object({
2057
+ // Steps of users that will need to review operations
2058
+ reviewSteps: zReviewStepsArray,
2059
+ // Optional threshold on transaction value: null `min` = 0, null `max` = +inf
2060
+ threshold: policy_exports.zThreshold.optional(),
2061
+ // Optional whitelist on transaction recipient: Empty list means no whitelist.
2062
+ whitelistIds: policy_exports.zWhitelistIds.optional()
2288
2063
  });
2289
- var fakePsdChallenge = () => ({
2290
- challengeType: "PSD",
2291
- wActions: [fakeBase64String(50), fakeBase64String(50), fakeBase64String(50)],
2292
- handshake: fakeBase64String(100),
2293
- handshakeAttestation: fakeHsmCertificate(),
2294
- partitionId: fakeBase64String(20)
2064
+ var zClassicGovRuleData = zBaseGovRuleData.extend({
2065
+ operationType: zClassicOperationType.meta({ description: "Allowed operation type" })
2066
+ }).meta({ description: "Account governance rule", id: "ClassicGovRuleData" });
2067
+ zBaseGovRuleData.extend({
2068
+ operationType: zOperationType.meta({ description: "Allowed operation type" })
2069
+ }).meta({ description: "Governance rule", id: "GovRuleResponse" });
2070
+ ({
2071
+ reviewConfigs: { include: review_config_exports.INCLUDE_MEMBERS }
2295
2072
  });
2296
- var fakeWorkspaceName = () => faker.string.alpha({ length: 8, casing: "lower" });
2297
- var injectSyncId = (obj) => {
2298
- let { syncId } = obj;
2299
- if (syncId === void 0) {
2300
- if (obj.gateType !== null && obj.gateId !== 0) {
2301
- syncId = buildGateSyncId(obj.workspaceName, obj.gateType, obj.gateId);
2302
- } else if (obj.gateType === null && obj.gateId === 0) {
2303
- syncId = faker.string.uuid();
2304
- } else {
2305
- throw new Error(`Invalid gateType and gateId: ${obj.gateType}, ${obj.gateId}`);
2306
- }
2307
- }
2308
- return { ...obj, syncId };
2309
- };
2310
- var genAssetFieldsForType = (type) => {
2311
- const hsmXpub = faker.string.hexadecimal({ prefix: "", casing: "upper", length: 66 });
2312
- const hsmChainCode = faker.string.hexadecimal({ prefix: "", casing: "upper", length: 64 });
2313
- switch (type) {
2314
- case "BITCOIN_LIKE":
2073
+ var zPolicyName = z9.string().min(1).max(19).meta({ description: "Policy name" });
2074
+ var zCurrency2 = z9.string().min(1).max(40).regex(/^\w+$/).meta({ description: "Currency" });
2075
+ var zCreatePublicPolicyRequestData = z9.object({
2076
+ name: zPolicyName,
2077
+ description: z9.string().nullable().meta({ description: "Description" }),
2078
+ currency: zCurrency2.nullable(),
2079
+ govRules: z9.array(zClassicGovRuleData).meta({ description: "Governance rules" })
2080
+ });
2081
+ var zEditPublicPolicyRequestData = z9.object({
2082
+ name: zPolicyName,
2083
+ description: z9.string().nullable().meta({ description: "Description" }),
2084
+ govRules: z9.array(zClassicGovRuleData).meta({ description: "Governance rules" })
2085
+ });
2086
+ var zAccountName = z9.string().min(1).max(40).meta({ description: "Account name" });
2087
+ z9.enum(["standalone", "legacy"]);
2088
+ var zSignDigestsGovRuleData = z9.object({
2089
+ operationType: z9.literal("SIGN_DIGESTS"),
2090
+ reviewSteps: zReviewStepWithUsersArray
2091
+ // we need to control for API users only
2092
+ }).meta({ description: "Digest signing rule" });
2093
+ var zAccountPolicyRequestData = z9.union([
2094
+ z9.object({ policyId: z9.string() }).meta({ description: "Account policy" }),
2095
+ z9.object({ rules: z9.array(zClassicGovRuleData) }).meta({ description: "Account governance rules" })
2096
+ ]).meta({ description: "Account policy or governance rules" });
2097
+ var zCreateAccountGovernanceData = z9.discriminatedUnion("type", [
2098
+ z9.object({
2099
+ type: z9.literal(AccountGovernanceType.CLASSIC),
2100
+ policy: zAccountPolicyRequestData
2101
+ }).meta({ description: "Classic governance" }),
2102
+ z9.object({
2103
+ type: z9.literal(AccountGovernanceType.TRADELINK),
2104
+ assetManagerId: z9.string(),
2105
+ exchangeConfigs: zTradelinkExchangeConfigs
2106
+ }).meta({ description: "Tradelink governance" }),
2107
+ z9.object({
2108
+ type: z9.literal(AccountGovernanceType.RAW_SIGNING),
2109
+ policy: z9.object({ rules: z9.array(zSignDigestsGovRuleData) })
2110
+ }).meta({ description: "Raw signing governance" })
2111
+ ]).meta({ description: "Governance fields" });
2112
+ var zCreateAccountUserInputData = z9.object({
2113
+ name: zAccountName,
2114
+ currency: zCurrencyString,
2115
+ // "bitcoin"
2116
+ index: z9.number().nonnegative().optional().meta({ description: "Account index" }),
2117
+ contractAddress: z9.string().min(1).optional().meta({ description: "Account contract address" }),
2118
+ governance: zCreateAccountGovernanceData
2119
+ });
2120
+ var zCreateAccountRequestData = zCreateAccountUserInputData.omit({ index: true }).extend({
2121
+ index: z9.number().nonnegative().meta({ description: "Account index" }),
2122
+ derivationPath: z9.string().meta({ description: "Account bip44 derivation path" }),
2123
+ type: z9.enum(AccountType)
2124
+ // "BITCOIN_LIKE"
2125
+ }).meta({
2126
+ description: "Create account request data",
2127
+ id: "CreateAccountRequestData"
2128
+ });
2129
+ var zEditAccountGovernanceData = z9.discriminatedUnion("type", [
2130
+ z9.object({
2131
+ type: z9.literal(AccountGovernanceType.CLASSIC),
2132
+ policy: zAccountPolicyRequestData
2133
+ }).meta({ description: "Classic governance" }),
2134
+ z9.object({
2135
+ type: z9.literal(AccountGovernanceType.TRADELINK),
2136
+ exchangeConfigs: zTradelinkExchangeConfigs
2137
+ }).meta({ description: "Tradelink governance" }),
2138
+ z9.object({
2139
+ type: z9.literal(AccountGovernanceType.RAW_SIGNING),
2140
+ policy: z9.object({ rules: z9.array(zSignDigestsGovRuleData) })
2141
+ }).meta({ description: "Raw signing governance" })
2142
+ ]).meta({ description: "Governance fields" });
2143
+ var zEditAccountRequestData = z9.object({
2144
+ name: zAccountName,
2145
+ governance: zEditAccountGovernanceData
2146
+ }).meta({
2147
+ description: "Edit account request data",
2148
+ id: "EditAccountRequestData"
2149
+ });
2150
+ var zEditTokenRuleRequestData = z9.object({
2151
+ parentAccountId: z9.string().min(1).meta({ description: "Parent account unique ID" }),
2152
+ contractAddress: z9.string().min(1).meta({ description: "Token contract address" }),
2153
+ rules: z9.array(zClassicGovRuleData).meta({ description: "Account governance rules" })
2154
+ });
2155
+
2156
+ // src/accounts/app-utils.ts
2157
+ var getAccountAssetFields = (account) => {
2158
+ switch (account.type) {
2159
+ case AccountType.BITCOIN_LIKE:
2160
+ return {
2161
+ type: account.type,
2162
+ xpub: account.xpub
2163
+ };
2164
+ case AccountType.ETHEREUM_LIKE:
2315
2165
  return {
2316
- type,
2317
- currency: faker.helpers.arrayElement(["bitcoin", "bitcoin_testnet"]),
2318
- derivationPath: "84'/0'/0'",
2319
- address: null,
2320
- contractAddress: null,
2321
- xpub: faker.string.hexadecimal({ prefix: "", length: 120 }),
2322
- hsmXpub,
2323
- hsmChainCode
2166
+ type: account.type,
2167
+ address: account.address,
2168
+ contractAddress: account.contractAddress
2324
2169
  };
2325
- case "ETHEREUM_LIKE":
2326
- // fall-through...
2327
- case "ERC20_LIKE":
2328
- case "BEP20_LIKE":
2170
+ case AccountType.CARDANO_LIKE:
2329
2171
  return {
2330
- type,
2331
- currency: type === "BEP20_LIKE" ? "bsc" : faker.helpers.arrayElement(["ethereum", "ethereum_goerli"]),
2332
- derivationPath: "44'/60'/0'",
2333
- address: faker.finance.ethereumAddress(),
2334
- contractAddress: type === "ETHEREUM_LIKE" ? null : faker.finance.ethereumAddress(),
2335
- xpub: null,
2336
- hsmXpub,
2337
- hsmChainCode
2172
+ type: account.type,
2173
+ address: account.address
2338
2174
  };
2339
- case "CARDANO_LIKE":
2175
+ case AccountType.SOLANA_LIKE:
2340
2176
  return {
2341
- type,
2342
- currency: faker.helpers.arrayElement(["cardano"]),
2343
- derivationPath: "1852'/1815'/0'",
2344
- address: `addr${faker.string.alphanumeric({ length: 100, casing: "lower" })}`,
2345
- contractAddress: null,
2346
- xpub: null,
2347
- hsmXpub,
2348
- hsmChainCode
2177
+ type: account.type,
2178
+ address: account.address,
2179
+ contractAddress: account.contractAddress
2349
2180
  };
2350
- case "SOLANA_LIKE":
2181
+ case AccountType.TEZOS_LIKE:
2351
2182
  return {
2352
- type,
2353
- currency: faker.helpers.arrayElement(["solana"]),
2354
- derivationPath: "44'/501'/0'",
2355
- address: faker.string.alphanumeric({ length: 44, casing: "lower" }),
2356
- contractAddress: null,
2357
- xpub: null,
2358
- hsmXpub,
2359
- hsmChainCode: null
2183
+ type: account.type,
2184
+ address: account.address
2360
2185
  };
2361
- case "TEZOS_LIKE":
2186
+ case AccountType.STELLAR_LIKE:
2362
2187
  return {
2363
- type,
2364
- currency: faker.helpers.arrayElement(["tezos"]),
2365
- derivationPath: "44'/1729'/0'",
2366
- address: `tz${faker.string.alphanumeric({ length: 34, casing: "mixed" })}`,
2367
- contractAddress: null,
2368
- xpub: null,
2369
- hsmXpub,
2370
- hsmChainCode
2188
+ type: account.type,
2189
+ address: account.address
2371
2190
  };
2372
- case "STELLAR_LIKE":
2191
+ case AccountType.SUI_LIKE:
2373
2192
  return {
2374
- type,
2375
- currency: faker.helpers.arrayElement(["stellar"]),
2376
- derivationPath: "44'/148'/0'",
2377
- address: faker.string.alphanumeric({ length: 56, casing: "upper" }),
2378
- contractAddress: null,
2379
- xpub: null,
2380
- hsmXpub,
2381
- hsmChainCode
2193
+ type: account.type,
2194
+ address: account.address
2382
2195
  };
2383
- case "RIPPLE_LIKE":
2196
+ case AccountType.RIPPLE_LIKE:
2384
2197
  return {
2385
- type,
2386
- currency: faker.helpers.arrayElement(["ripple"]),
2387
- derivationPath: "44'/144'/0'",
2388
- address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
2389
- contractAddress: null,
2390
- xpub: `xpub${faker.string.alphanumeric({ length: 107, casing: "mixed" })}`,
2391
- hsmXpub,
2392
- hsmChainCode
2198
+ type: account.type,
2199
+ address: account.address
2393
2200
  };
2394
- case "POLKADOT_LIKE":
2201
+ case AccountType.POLKADOT_LIKE:
2395
2202
  return {
2396
- type,
2397
- currency: faker.helpers.arrayElement(["polkadot"]),
2398
- derivationPath: "44'/354'/0'",
2399
- address: faker.string.alphanumeric({ length: 48, casing: "mixed" }),
2400
- contractAddress: null,
2401
- xpub: null,
2402
- hsmXpub,
2403
- hsmChainCode: null
2203
+ type: account.type,
2204
+ address: account.address
2404
2205
  };
2405
- case "TRC20_LIKE":
2206
+ case AccountType.TRON_LIKE:
2406
2207
  return {
2407
- type,
2408
- currency: faker.helpers.arrayElement(["tron"]),
2409
- derivationPath: "44'/195'/0'",
2410
- address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
2411
- contractAddress: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
2412
- xpub: null,
2413
- hsmXpub,
2414
- hsmChainCode
2208
+ type: account.type,
2209
+ address: account.address,
2210
+ contractAddress: account.contractAddress
2415
2211
  };
2416
- case "TRON_LIKE":
2212
+ case AccountType.GENERIC_LIKE:
2213
+ case AccountType.RAW_SIGNING:
2417
2214
  return {
2418
- type,
2419
- currency: faker.helpers.arrayElement(["tron"]),
2420
- derivationPath: "44'/195'/0'",
2421
- address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
2422
- contractAddress: null,
2423
- xpub: null,
2424
- hsmXpub,
2425
- hsmChainCode
2215
+ type: account.type
2426
2216
  };
2427
- case "SUI_LIKE":
2217
+ case AccountType.CANTON_LIKE:
2428
2218
  return {
2429
- type,
2430
- currency: faker.helpers.arrayElement(["sui"]),
2431
- derivationPath: "44'/784'/0'",
2432
- address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
2433
- contractAddress: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
2434
- xpub: null,
2435
- hsmXpub,
2436
- hsmChainCode: null
2219
+ type: account.type,
2220
+ address: account.address
2437
2221
  };
2438
- case "GENERIC_LIKE":
2222
+ /* v8 ignore next -- @preserve */
2223
+ default:
2224
+ unreachable(account.type);
2225
+ }
2226
+ };
2227
+ var getAccountGovernanceFields = (account) => {
2228
+ switch (account.governanceType) {
2229
+ case AccountGovernanceType.CLASSIC:
2230
+ case AccountGovernanceType.RAW_SIGNING:
2439
2231
  return {
2440
- type,
2441
- currency: faker.helpers.arrayElement(["cosmos"]),
2442
- derivationPath: "44'/118'/0'",
2443
- address: faker.string.alphanumeric({ length: 34, casing: "mixed" }),
2444
- contractAddress: null,
2445
- xpub: null,
2446
- hsmXpub,
2447
- hsmChainCode
2232
+ type: AccountGovernanceType.CLASSIC,
2233
+ policyId: account.classicGovernanceMixin.policyId
2448
2234
  };
2449
- case "RAW_SIGNING":
2235
+ case AccountGovernanceType.TRADELINK:
2450
2236
  return {
2451
- type,
2452
- currency: faker.helpers.arrayElement(["ethereum", "bitcoin"]),
2453
- derivationPath: "44'/118'/0'",
2454
- address: null,
2455
- contractAddress: null,
2456
- xpub: null,
2457
- hsmXpub,
2458
- hsmChainCode
2237
+ type: AccountGovernanceType.TRADELINK,
2238
+ assetManagerId: account.tradelinkGovernanceMixin.assetManagerId,
2239
+ exchangeConfigs: zTradelinkExchangeConfigs.parse(
2240
+ account.tradelinkGovernanceMixin.exchangeConfigs
2241
+ )
2459
2242
  };
2243
+ /* v8 ignore next -- @preserve */
2244
+ default:
2245
+ unreachable(account.governanceType);
2246
+ }
2247
+ };
2248
+ var serializeAccount = (account) => {
2249
+ const asset = getAccountAssetFields(account);
2250
+ const governance = getAccountGovernanceFields(account);
2251
+ const response = {
2252
+ ...account,
2253
+ network: account.currency,
2254
+ legacyId: account.gateId,
2255
+ governance,
2256
+ asset
2257
+ };
2258
+ return zAccountResponse.parse(response);
2259
+ };
2260
+
2261
+ // src/compat/patch-request-expired-at.ts
2262
+ var patchRequestExpiredAt = (data) => ({
2263
+ ...data,
2264
+ expiredAt: data.expiresAt
2265
+ });
2266
+ var patchTezosRequestData = (data) => {
2267
+ if (data.type !== RequestType.CREATE_TRANSACTION) {
2268
+ return data;
2269
+ }
2270
+ const transaction = get(data, ["data", "transaction"]);
2271
+ if (!isRecord(transaction)) {
2272
+ return data;
2273
+ }
2274
+ if (transaction.type === "TEZOS_LIKE_DELEGATE") {
2275
+ transaction.amount = transaction.amount ?? "0";
2276
+ } else if (transaction.type === "TEZOS_LIKE_UNDELEGATE") {
2277
+ transaction.amount = transaction.amount ?? "0";
2278
+ transaction.recipient = transaction.recipient ?? "0";
2460
2279
  }
2280
+ return data;
2281
+ };
2282
+ var zSciConfigData = z9.object({
2283
+ dapps: z9.array(z9.string()).nullable().meta({ description: "Allowed DApps, null allows all" }),
2284
+ customContractCallEnabled: z9.boolean().meta({ description: "Allow non-DApp SCI" })
2285
+ });
2286
+ var zCreateSciConfigRequestData = z9.object({
2287
+ account: z9.string().meta({ description: "Account UUID" }),
2288
+ config: zSciConfigData
2289
+ });
2290
+ var zEditSciConfigRequestData = z9.object({
2291
+ config: zSciConfigData
2292
+ });
2293
+ var zRequestReviewStep = z.object({
2294
+ stageName: z.string().regex(/^\w+$/).meta({ description: "The review stage name" }),
2295
+ quorum: z.int().min(1).meta({ description: "Quorum for the review step" })
2296
+ });
2297
+ var zRequestReviewSteps = z.array(zRequestReviewStep);
2298
+ var zGroupName = z9.string().min(1).max(19).meta({ description: "Group name" });
2299
+ var zCreateGroupRequestData = z9.object({
2300
+ name: zGroupName,
2301
+ description: z9.string().nullable().meta({ description: "Group description" }),
2302
+ members: z9.array(z9.string()).meta({ description: "List of group members ids" })
2303
+ });
2304
+ var zEditGroupRequestData = z9.object({
2305
+ name: zGroupName,
2306
+ description: z9.string().nullable().meta({ description: "Group description" }),
2307
+ members: z9.array(z9.string()).meta({ description: "List of group members ids" })
2308
+ });
2309
+ var zApiKeyName = z9.string().min(1).max(19).meta({ description: "API key name" });
2310
+ var zCreateApiKeyRequestData = z9.object({
2311
+ name: zApiKeyName,
2312
+ entities: z9.array(z9.string()).meta({ description: "List of related entities ids" }),
2313
+ scopes: z9.object({}).meta({ description: "FIXME to be precised" })
2314
+ }).meta({ description: "Create read-only API key request data" });
2315
+ var zEditApiKeyRequestData = zCreateApiKeyRequestData.meta({
2316
+ description: "Edit read-only API key request data"
2317
+ });
2318
+ var zEntityName = z9.string().min(1).max(19).meta({ description: "Entity name" });
2319
+ var zCreateEntityRequestData = z9.object({
2320
+ name: zEntityName,
2321
+ accounts: z9.array(z9.string())
2322
+ });
2323
+ var zEditEntityRequestData = z9.object({
2324
+ name: zEntityName,
2325
+ accounts: z9.array(z9.string())
2326
+ });
2327
+
2328
+ // src/requests/request-data.ts
2329
+ var zVaultRequestMixinsByType = {
2330
+ // Workspaces
2331
+ [RequestType.UPDATE_QUORUM]: z9.object({
2332
+ type: z9.literal(RequestType.UPDATE_QUORUM),
2333
+ data: zUpdateQuorumRequestData
2334
+ }),
2335
+ // Operator requests
2336
+ [RequestType.CREATE_TRANSACTION]: z9.object({
2337
+ type: z9.literal(RequestType.CREATE_TRANSACTION),
2338
+ data: zCreateTransactionRequestData,
2339
+ meta: z9.object({
2340
+ hash: z9.string().nullable()
2341
+ }).optional().nullable()
2342
+ }),
2343
+ [RequestType.SIGN_MESSAGE]: z9.object({
2344
+ type: z9.literal(RequestType.SIGN_MESSAGE),
2345
+ data: zSignMessageRequestData
2346
+ }),
2347
+ [RequestType.SIGN_DIGESTS]: z9.object({
2348
+ type: z9.literal(RequestType.SIGN_DIGESTS),
2349
+ data: zSignDigestsRequestData
2350
+ }),
2351
+ // Accounts
2352
+ [RequestType.CREATE_ACCOUNT]: z9.object({
2353
+ type: z9.literal(RequestType.CREATE_ACCOUNT),
2354
+ data: zCreateAccountRequestData
2355
+ }),
2356
+ [RequestType.EDIT_ACCOUNT]: z9.object({
2357
+ type: z9.literal(RequestType.EDIT_ACCOUNT),
2358
+ targetId: z9.string(),
2359
+ data: zEditAccountRequestData
2360
+ }),
2361
+ [RequestType.EDIT_TOKEN_RULE]: z9.object({
2362
+ type: z9.literal(RequestType.EDIT_TOKEN_RULE),
2363
+ targetId: z9.string(),
2364
+ data: zEditTokenRuleRequestData
2365
+ }),
2366
+ // Groups
2367
+ [RequestType.CREATE_GROUP]: z9.object({
2368
+ type: z9.literal(RequestType.CREATE_GROUP),
2369
+ data: zCreateGroupRequestData
2370
+ }),
2371
+ [RequestType.EDIT_GROUP]: z9.object({
2372
+ type: z9.literal(RequestType.EDIT_GROUP),
2373
+ targetId: z9.string(),
2374
+ data: zEditGroupRequestData
2375
+ }),
2376
+ [RequestType.REVOKE_GROUP]: z9.object({
2377
+ type: z9.literal(RequestType.REVOKE_GROUP),
2378
+ targetId: z9.string(),
2379
+ data: zRevokeUserRequestData
2380
+ }),
2381
+ // Whitelists
2382
+ [RequestType.CREATE_WHITELIST]: z9.object({
2383
+ type: z9.literal(RequestType.CREATE_WHITELIST),
2384
+ data: zCreateWhitelistRequestData
2385
+ }),
2386
+ [RequestType.EDIT_WHITELIST]: z9.object({
2387
+ type: z9.literal(RequestType.EDIT_WHITELIST),
2388
+ targetId: z9.string(),
2389
+ data: zEditWhitelistRequestData
2390
+ }),
2391
+ // Entities
2392
+ [RequestType.CREATE_ENTITY]: z9.object({
2393
+ type: z9.literal(RequestType.CREATE_ENTITY),
2394
+ data: zCreateEntityRequestData
2395
+ }),
2396
+ [RequestType.EDIT_ENTITY]: z9.object({
2397
+ type: z9.literal(RequestType.EDIT_ENTITY),
2398
+ data: zEditEntityRequestData
2399
+ }),
2400
+ [RequestType.REVOKE_ENTITY]: z9.object({
2401
+ type: z9.literal(RequestType.REVOKE_ENTITY),
2402
+ data: z9.object({})
2403
+ }),
2404
+ // Users
2405
+ [RequestType.CREATE_PSD_USER]: z9.object({
2406
+ type: z9.literal(RequestType.CREATE_PSD_USER),
2407
+ data: zCreatePsdUserRequestData
2408
+ }),
2409
+ [RequestType.CREATE_API_USER]: z9.object({
2410
+ type: z9.literal(RequestType.CREATE_API_USER),
2411
+ data: zCreateApiUserRequestData
2412
+ }),
2413
+ [RequestType.CREATE_API_USER_ACCESS]: z9.object({
2414
+ type: z9.literal(RequestType.CREATE_API_USER_ACCESS),
2415
+ data: zCreateApiUserAccessRequestData
2416
+ }),
2417
+ [RequestType.REVOKE_USER]: z9.object({
2418
+ type: z9.literal(RequestType.REVOKE_USER),
2419
+ targetId: z9.string(),
2420
+ data: zRevokeUserRequestData
2421
+ }),
2422
+ // Admin gov rules
2423
+ [RequestType.EDIT_WORKSPACE_RULE]: z9.object({
2424
+ type: z9.literal(RequestType.EDIT_WORKSPACE_RULE),
2425
+ data: zWorkspaceRuleRequestData
2426
+ }),
2427
+ // SCI configs
2428
+ [RequestType.CREATE_SCICONFIG]: z9.object({
2429
+ type: z9.literal(RequestType.CREATE_SCICONFIG),
2430
+ data: zCreateSciConfigRequestData
2431
+ }),
2432
+ [RequestType.EDIT_SCICONFIG]: z9.object({
2433
+ type: z9.literal(RequestType.EDIT_SCICONFIG),
2434
+ data: zEditSciConfigRequestData
2435
+ }),
2436
+ // API keys
2437
+ [RequestType.CREATE_API_KEY]: z9.object({
2438
+ type: z9.literal(RequestType.CREATE_API_KEY),
2439
+ data: zCreateApiKeyRequestData
2440
+ }),
2441
+ [RequestType.EDIT_API_KEY]: z9.object({
2442
+ type: z9.literal(RequestType.EDIT_API_KEY),
2443
+ data: zEditApiKeyRequestData
2444
+ }),
2445
+ [RequestType.REVOKE_API_KEY]: z9.object({
2446
+ type: z9.literal(RequestType.REVOKE_API_KEY),
2447
+ data: z9.object({})
2448
+ }),
2449
+ // Policies
2450
+ [RequestType.CREATE_POLICY]: z9.object({
2451
+ type: z9.literal(RequestType.CREATE_POLICY),
2452
+ data: zCreatePublicPolicyRequestData
2453
+ }),
2454
+ [RequestType.EDIT_POLICY]: z9.object({
2455
+ type: z9.literal(RequestType.EDIT_POLICY),
2456
+ targetId: z9.string(),
2457
+ data: zEditPublicPolicyRequestData
2458
+ }),
2459
+ // Tradelink-related requests
2460
+ ...zTradelinkRequestMixinsByType
2461
2461
  };
2462
- var genGovernanceFieldsForType = (governanceType, {
2463
- accountId,
2464
- policyId,
2465
- assetManagerId
2466
- }) => {
2467
- switch (governanceType) {
2468
- case AccountGovernanceType.CLASSIC:
2469
- case AccountGovernanceType.RAW_SIGNING:
2470
- return {
2471
- governanceType,
2472
- classicGovernanceMixin: {
2473
- id: faker.number.int(),
2474
- policyId: policyId ?? faker.string.uuid(),
2475
- accountId
2476
- },
2477
- tradelinkGovernanceMixin: null
2478
- };
2479
- case AccountGovernanceType.TRADELINK:
2480
- return {
2481
- governanceType,
2482
- classicGovernanceMixin: null,
2483
- tradelinkGovernanceMixin: {
2484
- id: faker.number.int(),
2485
- assetManagerId: assetManagerId ?? faker.string.uuid(),
2486
- accountId,
2487
- exchangeConfigs: [],
2488
- status: ActivationStatus.ACTIVE
2489
- }
2490
- };
2491
- }
2462
+
2463
+ // src/requests/app-types.ts
2464
+ var zRequestReviewResponse = z9.object({
2465
+ // Note: Do NOT include `quorum` as it is already available in the request's `reviewSteps` field.
2466
+ stepIndex: z9.number().int().meta({ description: "Index of the governance step in the request workflow" }),
2467
+ userId: z9.string().meta({ description: "Reviewer id" }),
2468
+ status: z9.enum(RequestReviewStatus).meta({ description: "Review status" }),
2469
+ createdAt: z9.coerce.date().meta({ description: "Created date" }),
2470
+ updatedAt: z9.coerce.date().meta({ description: "Updated date" })
2471
+ });
2472
+ var zVaultRequestCommonMixin = z9.object({
2473
+ id: z9.string().meta({ description: "Request unique identifier" }),
2474
+ legacyId: z9.number().meta({ description: "Legacy internal unique identifier (for retro-compatibility)" }),
2475
+ state: z9.enum(RequestState).meta({ description: "Request state" }),
2476
+ reviewSteps: zRequestReviewSteps.meta({ description: "Request review steps" }),
2477
+ currentStepIndex: z9.number().int().min(0).meta({ description: "Index of the current approval step" }),
2478
+ expiresAt: z9.coerce.date().meta({ description: "Request expiration date" }),
2479
+ expiredAt: z9.coerce.date().optional().meta({ description: "Deprecated: use expiresAt" }),
2480
+ targetId: z9.string().nullable().meta({ description: "Optional ID of the target object" }),
2481
+ note: zNote.nullable().meta({ description: "Optional request note" }),
2482
+ reviews: z9.array(zRequestReviewResponse).meta({ description: "Requests reviews" }),
2483
+ // `type` and `data` are correlated -- See `zVaultRequestMixinsByType`
2484
+ createdAt: z9.coerce.date().meta({ description: "Creation timestamp" }),
2485
+ updatedAt: z9.coerce.date().meta({ description: "Last modification timestamp" }),
2486
+ createdById: z9.string().meta({ description: "ID of the user who created the request" }),
2487
+ // `inflight` is fetched from ONGOING RequestSaga
2488
+ inflight: z9.object({
2489
+ lastError: z9.string().nullable().meta({ description: "Error message from the last failure" }),
2490
+ numFailed: z9.number().int().meta({ description: "Number of failures so far" }),
2491
+ retryAfter: z9.coerce.date().meta({ description: "Date after which next retry is scheduled" })
2492
+ }).optional().meta({ description: "Extra information if the request is currently being processed" })
2493
+ });
2494
+ var allowedRequestCreationInputByType = {
2495
+ [RequestType.UPDATE_QUORUM]: zVaultRequestMixinsByType[RequestType.UPDATE_QUORUM],
2496
+ [RequestType.CREATE_PSD_USER]: zVaultRequestMixinsByType[RequestType.CREATE_PSD_USER],
2497
+ [RequestType.CREATE_API_USER]: zVaultRequestMixinsByType[RequestType.CREATE_API_USER],
2498
+ [RequestType.CREATE_GROUP]: zVaultRequestMixinsByType[RequestType.CREATE_GROUP],
2499
+ [RequestType.EDIT_GROUP]: zVaultRequestMixinsByType[RequestType.EDIT_GROUP],
2500
+ [RequestType.CREATE_WHITELIST]: zVaultRequestMixinsByType[RequestType.CREATE_WHITELIST],
2501
+ [RequestType.EDIT_WHITELIST]: zVaultRequestMixinsByType[RequestType.EDIT_WHITELIST],
2502
+ [RequestType.CREATE_TRANSACTION]: zVaultRequestMixinsByType[RequestType.CREATE_TRANSACTION],
2503
+ [RequestType.SIGN_MESSAGE]: z9.object({
2504
+ type: z9.literal(RequestType.SIGN_MESSAGE),
2505
+ data: zSignMessageUserInputData
2506
+ }),
2507
+ [RequestType.CREATE_POLICY]: zVaultRequestMixinsByType[RequestType.CREATE_POLICY],
2508
+ [RequestType.EDIT_POLICY]: zVaultRequestMixinsByType[RequestType.EDIT_POLICY],
2509
+ [RequestType.CREATE_ACCOUNT]: z9.object({
2510
+ type: z9.literal(RequestType.CREATE_ACCOUNT),
2511
+ data: zCreateAccountUserInputData
2512
+ }),
2513
+ [RequestType.EDIT_ACCOUNT]: zVaultRequestMixinsByType[RequestType.EDIT_ACCOUNT],
2514
+ [RequestType.TRADELINK_ACTIVATE_ACCOUNT]: zVaultRequestMixinsByType[RequestType.TRADELINK_ACTIVATE_ACCOUNT],
2515
+ [RequestType.TRADELINK_CREATE_CUSTODIAN]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_CUSTODIAN],
2516
+ [RequestType.TRADELINK_EDIT_CUSTODIAN]: zVaultRequestMixinsByType[RequestType.TRADELINK_EDIT_CUSTODIAN],
2517
+ [RequestType.TRADELINK_CREATE_EXCHANGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_EXCHANGE],
2518
+ [RequestType.TRADELINK_EDIT_EXCHANGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_EDIT_EXCHANGE],
2519
+ [RequestType.TRADELINK_CREATE_ASSET_MANAGER]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_ASSET_MANAGER],
2520
+ [RequestType.TRADELINK_EDIT_ASSET_MANAGER]: zVaultRequestMixinsByType[RequestType.TRADELINK_EDIT_ASSET_MANAGER],
2521
+ [RequestType.TRADELINK_ADJUST_PLEDGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_ADJUST_PLEDGE],
2522
+ [RequestType.TRADELINK_REPLEDGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_REPLEDGE],
2523
+ [RequestType.TRADELINK_FORCE_UNPLEDGE]: zVaultRequestMixinsByType[RequestType.TRADELINK_FORCE_UNPLEDGE],
2524
+ [RequestType.TRADELINK_CREATE_SETTLEMENT]: zVaultRequestMixinsByType[RequestType.TRADELINK_CREATE_SETTLEMENT],
2525
+ [RequestType.TRADELINK_WITHDRAW]: zVaultRequestMixinsByType[RequestType.TRADELINK_WITHDRAW],
2526
+ [RequestType.TRADELINK_ARBITRATE]: zVaultRequestMixinsByType[RequestType.TRADELINK_ARBITRATE],
2527
+ [RequestType.REVOKE_USER]: zVaultRequestMixinsByType[RequestType.REVOKE_USER],
2528
+ [RequestType.EDIT_WORKSPACE_RULE]: zVaultRequestMixinsByType[RequestType.EDIT_WORKSPACE_RULE]
2492
2529
  };
2493
- var genAccount = (opts) => {
2494
- const { policyId, assetManagerId, ...rest } = opts ?? {};
2495
- const commonFields = {
2496
- id: faker.string.uuid(),
2497
- workspaceName: fakeWorkspaceName(),
2498
- name: fakeUniqueName(),
2499
- hsmId: fakeHsmObjectId(),
2500
- status: ActivationStatus.ACTIVE,
2501
- index: faker.number.int({ min: 0, max: 10 }),
2502
- gateId: fakeGateId(),
2503
- gateType: GateAccountType.Account,
2504
- lesWalletId: faker.string.uuid(),
2505
- createdAt: faker.date.past(),
2506
- updatedAt: faker.date.past()
2530
+ var zRequestCreationInputCommonMixin = z9.object({
2531
+ note: zNote.optional().meta({ description: "Optional request note" })
2532
+ });
2533
+ z9.object({
2534
+ request: z9.discriminatedUnion(
2535
+ "type",
2536
+ ensureNonEmptyArray(
2537
+ Object.values(allowedRequestCreationInputByType).map((_) => {
2538
+ const requestType = _.shape.type.value;
2539
+ return _.extend(zRequestCreationInputCommonMixin.shape).meta({
2540
+ description: `${requestType} request data`
2541
+ });
2542
+ })
2543
+ )
2544
+ )
2545
+ });
2546
+ var zVaultRequestResponse = z9.discriminatedUnion(
2547
+ "type",
2548
+ ensureNonEmptyArray(
2549
+ Object.values(zVaultRequestMixinsByType).map((_) => {
2550
+ const requestType = _.shape.type.value;
2551
+ return _.extend(zVaultRequestCommonMixin.shape).meta({
2552
+ description: `${requestType} request`
2553
+ });
2554
+ })
2555
+ )
2556
+ ).meta({
2557
+ description: "Vault request response data",
2558
+ id: "VaultRequestResponse"
2559
+ });
2560
+ z9.enum([
2561
+ "state",
2562
+ "expiresAt",
2563
+ "createdAt",
2564
+ "updatedAt"
2565
+ ]).default("createdAt");
2566
+ z9.object({
2567
+ pubKey: z9.string().meta({ description: "Public key of the current user" }),
2568
+ challenge: zUserChallenge.meta({
2569
+ description: "Challenge data to sign with the user's private key"
2570
+ })
2571
+ });
2572
+
2573
+ // src/requests/app-utils/index.ts
2574
+ function serializeVaultRequest(request) {
2575
+ const serialized = {
2576
+ ...request,
2577
+ legacyId: request.gateId
2507
2578
  };
2508
- const assetFields = genAssetFieldsForType(
2509
- opts?.type ?? faker.helpers.arrayElement(Object.values(AccountType))
2510
- );
2511
- const governanceFields = genGovernanceFieldsForType(
2512
- opts?.governanceType ?? faker.helpers.arrayElement(Object.values(AccountGovernanceType)),
2513
- { accountId: commonFields.id, policyId, assetManagerId }
2514
- );
2515
- return injectSyncId({
2516
- ...commonFields,
2517
- ...governanceFields,
2518
- ...assetFields,
2519
- ...rest
2520
- });
2521
- };
2522
- var genRequestReviewSteps = (numSteps) => times(1, () => ({ stageName: "default", quorum: 2 }));
2523
- var genVaultRequest = (opts) => {
2524
- const { type, state = RequestState.PENDING_APPROVAL, data, ...custom } = opts;
2525
- const targetHsmId = shouldHaveTargetHsmId({ type, state }) ? type === RequestType.CREATE_PSD_USER ? fakePubKey() : fakeHsmObjectId() : null;
2526
- const targetId = shouldHaveTargetId({ type, state }) ? faker.string.uuid() : null;
2527
- return injectSyncId({
2528
- id: faker.string.uuid(),
2529
- workspaceName: fakeWorkspaceName(),
2530
- type,
2531
- state,
2532
- reviewSteps: genRequestReviewSteps(),
2533
- currentStepIndex: 0,
2534
- expiresAt: faker.date.future(),
2535
- targetHsmId,
2536
- createdById: faker.string.uuid(),
2537
- createdAt: faker.date.past(),
2538
- updatedAt: faker.date.past(),
2539
- note: null,
2540
- managedData: null,
2541
- data,
2542
- targetId,
2543
- gateTargetType: "Whatsoever",
2544
- gateTargetId: 0,
2545
- gateType: "Request",
2546
- gateId: fakeGateId(),
2547
- // Note: Custom properties will overwrite the default ones. It is still possible for caller
2548
- // to overwrite `targetId`. Thus it is not guaranteed that these values will always be
2549
- // consistent with `type` and `state`.
2550
- ...custom
2551
- });
2552
- };
2553
- var genVaultRequestReview = (opts) => {
2554
- const status = opts?.status ?? RequestReviewStatus.PENDING;
2555
- const challenge = opts?.challenge ?? fakePsdChallenge();
2556
- const { challengeType } = challenge;
2557
- let signature;
2558
- if (status !== RequestReviewStatus.APPROVED) {
2559
- signature = null;
2560
- } else {
2561
- switch (challengeType) {
2562
- case ChallengeType.PSD:
2563
- signature = fakePsdSignature();
2564
- break;
2565
- case ChallengeType.API:
2566
- signature = fakeJws();
2567
- break;
2568
- }
2579
+ switch (request.type) {
2580
+ case "CREATE_TRANSACTION":
2581
+ case "TRADELINK_WITHDRAW":
2582
+ case "TRADELINK_ARBITRATE":
2583
+ case "TRADELINK_CREATE_SETTLEMENT":
2584
+ Object.assign(serialized, {
2585
+ meta: {
2586
+ hash: request.transactionMeta?.hash ?? null
2587
+ }
2588
+ });
2589
+ break;
2569
2590
  }
2570
- return {
2571
- id: faker.number.int(),
2572
- requestId: faker.string.uuid(),
2573
- stageName: "default",
2574
- // assume the simple case where there is one single stage
2575
- stepIndex: 0,
2576
- userId: faker.string.uuid(),
2577
- pubKey: fakePubKey(),
2578
- challengeType,
2579
- challenge,
2580
- signature,
2581
- status,
2582
- createdAt: faker.date.past(),
2583
- updatedAt: faker.date.past(),
2584
- ...opts
2585
- };
2586
- };
2591
+ let patched = zVaultRequestResponse.parse(serialized);
2592
+ patched = patchRequestExpiredAt(patched);
2593
+ patched = patchTezosRequestData(patched);
2594
+ return patched;
2595
+ }
2587
2596
 
2588
2597
  // src/__fakes__/responses.ts
2589
2598
  function genVaultRequestResponse(opts, reviews = []) {
@@ -2596,6 +2605,7 @@ function genAccountResponse(overrides) {
2596
2605
  const account = serializeAccount(dbAccount);
2597
2606
  return zAccountResponse.parse(account);
2598
2607
  }
2608
+ /* v8 ignore next -- @preserve */
2599
2609
 
2600
2610
  export { genAccountResponse, genVaultRequestResponse, genVaultRequestReview };
2601
2611
  //# sourceMappingURL=fakes.mjs.map