@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/{app-types-b9W8_2Yl.d.mts → app-types-BuzfKOYN.d.mts} +577 -448
- package/lib/fakes.d.mts +123 -96
- package/lib/fakes.mjs +1886 -1876
- package/lib/fakes.mjs.map +1 -1
- package/lib/index.d.mts +23294 -22951
- package/package.json +2 -2
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 {
|
|
4
|
-
import
|
|
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
|
|
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/
|
|
137
|
-
var
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
var
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var
|
|
145
|
-
var
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
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
|
|
395
|
-
var
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
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 =
|
|
418
|
-
var zPolkadotLikeAddProxyData =
|
|
419
|
-
type:
|
|
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:
|
|
422
|
-
proxy:
|
|
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 =
|
|
428
|
-
type:
|
|
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 =
|
|
435
|
-
type:
|
|
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 =
|
|
444
|
-
type:
|
|
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 =
|
|
452
|
-
type:
|
|
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 =
|
|
459
|
-
type:
|
|
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 =
|
|
466
|
-
type:
|
|
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 =
|
|
474
|
-
type:
|
|
689
|
+
var zPolkadotLikeRemoveProxyData = z9.object({
|
|
690
|
+
type: z9.literal(zPolkadotLikeTransactionType.enum.POLKADOT_LIKE_REMOVEPROXY),
|
|
475
691
|
currency: zCurrencyString.meta({ description: "Transaction currency" }),
|
|
476
|
-
kind:
|
|
477
|
-
proxy:
|
|
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:
|
|
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 =
|
|
489
|
-
type:
|
|
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 =
|
|
497
|
-
type:
|
|
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 =
|
|
505
|
-
type:
|
|
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 =
|
|
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 =
|
|
527
|
-
type:
|
|
528
|
-
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:
|
|
747
|
+
type: z9.literal(NetworkFamily.RIPPLE_LIKE).meta({ description: "Account type" })
|
|
532
748
|
}).meta({ description: "Ripple-like" });
|
|
533
|
-
var zRippleLikeEstimatedFees =
|
|
534
|
-
type:
|
|
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 =
|
|
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:
|
|
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 =
|
|
762
|
+
var zRippleLikeTransactionData = z9.discriminatedUnion("type", [zRippleLikeSendData]);
|
|
547
763
|
var zRippleLikeTransactionResponse = zCommonTransactionResponse.extend({
|
|
548
764
|
type: zRippleLikeTransactionType,
|
|
549
|
-
memos:
|
|
550
|
-
destinationTag:
|
|
765
|
+
memos: z9.array(z9.string()),
|
|
766
|
+
destinationTag: z9.string()
|
|
551
767
|
}).meta({ description: "Ripple-like transaction" });
|
|
552
|
-
var zSolanaLikeAssetFields =
|
|
553
|
-
type:
|
|
554
|
-
address:
|
|
555
|
-
contractAddress:
|
|
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 =
|
|
560
|
-
var zSolanaLikeStakingData =
|
|
561
|
-
staked:
|
|
562
|
-
rewards:
|
|
563
|
-
total:
|
|
564
|
-
last7:
|
|
565
|
-
last30:
|
|
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:
|
|
568
|
-
|
|
569
|
-
uid:
|
|
570
|
-
baseAccountUid:
|
|
571
|
-
pubKey:
|
|
572
|
-
validatorPubKey:
|
|
573
|
-
initialAmount:
|
|
574
|
-
activeAmount:
|
|
575
|
-
inactiveAmount:
|
|
576
|
-
totalBalance:
|
|
577
|
-
creationDate:
|
|
578
|
-
activationEpoch:
|
|
579
|
-
activationDate:
|
|
580
|
-
deactivationEpoch:
|
|
581
|
-
deactivationDate:
|
|
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:
|
|
584
|
-
withdrawableAmount:
|
|
585
|
-
totalRewards:
|
|
586
|
-
creationTxHash:
|
|
587
|
-
actionsTxHashes:
|
|
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 =
|
|
592
|
-
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 =
|
|
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:
|
|
612
|
-
recipient:
|
|
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 =
|
|
620
|
-
type:
|
|
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:
|
|
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 =
|
|
631
|
-
type:
|
|
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:
|
|
635
|
-
stakeAccount:
|
|
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 =
|
|
643
|
-
type:
|
|
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:
|
|
647
|
-
mergeDstAccount:
|
|
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:
|
|
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 =
|
|
662
|
-
type:
|
|
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:
|
|
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 =
|
|
674
|
-
type:
|
|
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:
|
|
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 =
|
|
686
|
-
type:
|
|
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:
|
|
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:
|
|
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:
|
|
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 =
|
|
712
|
-
type:
|
|
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 =
|
|
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 =
|
|
735
|
-
type:
|
|
736
|
-
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:
|
|
955
|
+
type: z9.literal(NetworkFamily.STELLAR_LIKE).meta({ description: "Account type" })
|
|
740
956
|
}).meta({ description: "Stellar-like" });
|
|
741
|
-
var zStellarLikeEstimatedFees =
|
|
742
|
-
type:
|
|
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 =
|
|
746
|
-
var zStellarMemo =
|
|
747
|
-
|
|
748
|
-
MEMO_TEXT:
|
|
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
|
-
|
|
751
|
-
|
|
752
|
-
MEMO_HASH:
|
|
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
|
-
|
|
755
|
-
MEMO_RETURN:
|
|
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:
|
|
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 =
|
|
984
|
+
var zStellarLikeTransactionData = z9.discriminatedUnion("type", [zStellarLikeSendData]);
|
|
769
985
|
var zStellarLikeTransactionResponse = zCommonTransactionResponse.extend({ type: zStellarLikeTransactionType }).meta({ description: "Stellar-like transaction" });
|
|
770
|
-
var zSuiLikeAssetFields =
|
|
771
|
-
type:
|
|
772
|
-
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 =
|
|
775
|
-
totalStaked:
|
|
776
|
-
totalRewards:
|
|
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 =
|
|
779
|
-
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 =
|
|
784
|
-
type:
|
|
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 =
|
|
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:
|
|
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:
|
|
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 =
|
|
810
|
-
type:
|
|
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:
|
|
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 =
|
|
824
|
-
type:
|
|
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:
|
|
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:
|
|
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 =
|
|
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 =
|
|
847
|
-
type:
|
|
848
|
-
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 =
|
|
851
|
-
delegations:
|
|
852
|
-
|
|
853
|
-
address:
|
|
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 =
|
|
858
|
-
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 =
|
|
863
|
-
type:
|
|
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 =
|
|
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:
|
|
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 =
|
|
882
|
-
type:
|
|
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:
|
|
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 =
|
|
893
|
-
type:
|
|
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:
|
|
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 =
|
|
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 =
|
|
910
|
-
type:
|
|
911
|
-
address:
|
|
912
|
-
|
|
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
|
|
1131
|
+
}).meta({ description: "Tron-like" });
|
|
920
1132
|
var zTronLikeLiveData = zCommonLiveData.extend({
|
|
921
|
-
type:
|
|
1133
|
+
type: z9.literal(NetworkFamily.TRON_LIKE).meta({ description: "Account type" })
|
|
922
1134
|
}).meta({ description: "Tron-like" });
|
|
923
|
-
var zTronLikeEstimatedFees =
|
|
924
|
-
type:
|
|
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 =
|
|
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:
|
|
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:
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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/
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
)
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
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
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
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 =
|
|
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 =
|
|
1254
|
-
registrationId:
|
|
1558
|
+
var zCreatePsdUserRequestData = z9.object({
|
|
1559
|
+
registrationId: z9.string().meta({ description: "User registration ID" })
|
|
1255
1560
|
});
|
|
1256
|
-
var zCreateApiUserRequestData =
|
|
1561
|
+
var zCreateApiUserRequestData = z9.object({
|
|
1257
1562
|
name: zUserName,
|
|
1258
|
-
pubKey:
|
|
1259
|
-
role:
|
|
1260
|
-
viewAll:
|
|
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 =
|
|
1567
|
+
var zCreateApiUserAccessRequestData = z9.object({
|
|
1263
1568
|
name: zUserName
|
|
1264
1569
|
}).meta({ description: "Create API user credential request data" });
|
|
1265
|
-
|
|
1266
|
-
authUserId:
|
|
1570
|
+
z9.object({
|
|
1571
|
+
authUserId: z9.string().meta({ description: "Authentication broker ID" })
|
|
1267
1572
|
}).meta({ description: "Managed data for API user" });
|
|
1268
|
-
var zRevokeUserRequestData =
|
|
1269
|
-
var
|
|
1270
|
-
quorum:
|
|
1271
|
-
})
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
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
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
}
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
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
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
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
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
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
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
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
|
|
1638
|
-
|
|
1639
|
-
|
|
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/
|
|
1643
|
-
var
|
|
1644
|
-
|
|
1645
|
-
|
|
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:
|
|
1651
|
+
threshold: zThreshold,
|
|
1648
1652
|
// Optional whitelist on transaction recipient: Empty list means no whitelist.
|
|
1649
|
-
whitelistIds:
|
|
1650
|
-
})
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
}).meta({ description: "
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
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
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
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
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
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
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
var
|
|
1680
|
-
|
|
1681
|
-
|
|
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
|
|
1707
|
-
|
|
1708
|
-
|
|
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
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
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: "
|
|
1734
|
-
id: "
|
|
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
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
}
|
|
1857
|
-
|
|
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
|
|
1874
|
-
|
|
1875
|
-
|
|
1720
|
+
var zSignMessageUserInputData = zSignMessageRequestData.partial({
|
|
1721
|
+
address: true,
|
|
1722
|
+
derivationPath: true
|
|
1876
1723
|
});
|
|
1877
|
-
var
|
|
1878
|
-
|
|
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
|
|
1881
|
-
|
|
1882
|
-
|
|
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
|
-
|
|
1885
|
-
|
|
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
|
|
1892
|
-
name:
|
|
1893
|
-
|
|
1894
|
-
|
|
1735
|
+
var zTradelinkWhitelistAddress = z9.object({
|
|
1736
|
+
name: z9.string().min(1),
|
|
1737
|
+
currency: zCurrencyString,
|
|
1738
|
+
address: z9.string().min(1)
|
|
1895
1739
|
});
|
|
1896
|
-
|
|
1897
|
-
var
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
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
|
-
|
|
1906
|
-
|
|
1907
|
-
name: zEntityName,
|
|
1908
|
-
accounts: z10.array(z10.string())
|
|
1748
|
+
zTradelinkOrgEntityResponse.omit({
|
|
1749
|
+
tradelinkId: true
|
|
1909
1750
|
});
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
accounts: z10.array(z10.string())
|
|
1751
|
+
z9.object({
|
|
1752
|
+
tradelinkId: zTradelinkId
|
|
1913
1753
|
});
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
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
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
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.
|
|
1997
|
-
type:
|
|
1998
|
-
data:
|
|
1882
|
+
[RequestType.TRADELINK_CREATE_CUSTODIAN]: z9.object({
|
|
1883
|
+
type: z9.literal(RequestType.TRADELINK_CREATE_CUSTODIAN),
|
|
1884
|
+
data: zTradelinkCustodianRequestData
|
|
1999
1885
|
}),
|
|
2000
|
-
[RequestType.
|
|
2001
|
-
type:
|
|
2002
|
-
|
|
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.
|
|
2005
|
-
type:
|
|
2006
|
-
|
|
2007
|
-
data: zRevokeUserRequestData
|
|
1891
|
+
[RequestType.TRADELINK_CREATE_EXCHANGE]: z9.object({
|
|
1892
|
+
type: z9.literal(RequestType.TRADELINK_CREATE_EXCHANGE),
|
|
1893
|
+
data: zTradelinkEntityRequestData
|
|
2008
1894
|
}),
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
data:
|
|
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
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
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.
|
|
2020
|
-
type:
|
|
2021
|
-
|
|
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
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
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.
|
|
2029
|
-
type:
|
|
2030
|
-
data:
|
|
1913
|
+
[RequestType.TRADELINK_REPLEDGE]: z9.object({
|
|
1914
|
+
type: z9.literal(RequestType.TRADELINK_REPLEDGE),
|
|
1915
|
+
data: zTradelinkRepledgeRequestData
|
|
2031
1916
|
}),
|
|
2032
|
-
[RequestType.
|
|
2033
|
-
type:
|
|
2034
|
-
data:
|
|
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
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
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.
|
|
2042
|
-
type:
|
|
2043
|
-
|
|
2044
|
-
|
|
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
|
-
|
|
2047
|
-
|
|
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/
|
|
2051
|
-
var
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
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
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
[
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
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
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
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
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
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
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
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/
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
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
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
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
|
|
2297
|
-
var
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
}
|
|
2308
|
-
|
|
2309
|
-
};
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
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
|
-
|
|
2318
|
-
|
|
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
|
|
2326
|
-
// fall-through...
|
|
2327
|
-
case "ERC20_LIKE":
|
|
2328
|
-
case "BEP20_LIKE":
|
|
2170
|
+
case AccountType.CARDANO_LIKE:
|
|
2329
2171
|
return {
|
|
2330
|
-
type,
|
|
2331
|
-
|
|
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
|
|
2175
|
+
case AccountType.SOLANA_LIKE:
|
|
2340
2176
|
return {
|
|
2341
|
-
type,
|
|
2342
|
-
|
|
2343
|
-
|
|
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
|
|
2181
|
+
case AccountType.TEZOS_LIKE:
|
|
2351
2182
|
return {
|
|
2352
|
-
type,
|
|
2353
|
-
|
|
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
|
|
2186
|
+
case AccountType.STELLAR_LIKE:
|
|
2362
2187
|
return {
|
|
2363
|
-
type,
|
|
2364
|
-
|
|
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
|
|
2191
|
+
case AccountType.SUI_LIKE:
|
|
2373
2192
|
return {
|
|
2374
|
-
type,
|
|
2375
|
-
|
|
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
|
|
2196
|
+
case AccountType.RIPPLE_LIKE:
|
|
2384
2197
|
return {
|
|
2385
|
-
type,
|
|
2386
|
-
|
|
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
|
|
2201
|
+
case AccountType.POLKADOT_LIKE:
|
|
2395
2202
|
return {
|
|
2396
|
-
type,
|
|
2397
|
-
|
|
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
|
|
2206
|
+
case AccountType.TRON_LIKE:
|
|
2406
2207
|
return {
|
|
2407
|
-
type,
|
|
2408
|
-
|
|
2409
|
-
|
|
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
|
|
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
|
|
2217
|
+
case AccountType.CANTON_LIKE:
|
|
2428
2218
|
return {
|
|
2429
|
-
type,
|
|
2430
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
2235
|
+
case AccountGovernanceType.TRADELINK:
|
|
2450
2236
|
return {
|
|
2451
|
-
type,
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
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
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
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
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
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
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
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
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
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
|