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