@ledgerhq/revault-sdk 0.21.2 → 0.21.4
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/bake.cjs +123 -66
- package/lib/bake.cjs.map +1 -1
- package/lib/bake.d.cts +271 -2502
- package/lib/bake.d.ts +271 -2502
- package/lib/bake.js +111 -54
- package/lib/bake.js.map +1 -1
- package/lib/{chunk-VMABO6WZ.js → chunk-7WN7G7BY.js} +4 -2
- package/lib/chunk-7WN7G7BY.js.map +1 -0
- package/lib/{chunk-PHC5IG6P.cjs → chunk-B5EUR3HT.cjs} +4 -2
- package/lib/chunk-B5EUR3HT.cjs.map +1 -0
- package/lib/{chunk-WVCYFF2Z.cjs → chunk-I6B5U4JR.cjs} +1 -1
- package/lib/{chunk-WVCYFF2Z.cjs.map → chunk-I6B5U4JR.cjs.map} +1 -1
- package/lib/{chunk-PEHCVOGV.js → chunk-IHGVWOD7.js} +1 -1
- package/lib/chunk-IHGVWOD7.js.map +1 -0
- package/lib/device.cjs +2 -2
- package/lib/device.js +1 -1
- package/lib/engine.cjs +23 -23
- package/lib/engine.d.cts +1 -1
- package/lib/engine.d.ts +1 -1
- package/lib/engine.js +2 -2
- package/lib/onboarding.d.cts +345 -345
- package/lib/onboarding.d.ts +345 -345
- package/package.json +15 -15
- package/lib/chunk-PEHCVOGV.js.map +0 -1
- package/lib/chunk-PHC5IG6P.cjs.map +0 -1
- package/lib/chunk-VMABO6WZ.js.map +0 -1
package/lib/bake.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkI6B5U4JRcjs = require('./chunk-I6B5U4JR.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkJGXOGWYBcjs = require('./chunk-JGXOGWYB.cjs');
|
|
@@ -44,6 +44,17 @@ async function createAndApproveRequest(input, approvers, logger) {
|
|
|
44
44
|
const request = await creator.client.requests.create.mutate({ request: input });
|
|
45
45
|
return approveRequest(request, approvers, logger);
|
|
46
46
|
}
|
|
47
|
+
function stripUndefinedDeep(obj) {
|
|
48
|
+
if (Array.isArray(obj)) {
|
|
49
|
+
return obj.map(stripUndefinedDeep);
|
|
50
|
+
}
|
|
51
|
+
if (obj && typeof obj === "object") {
|
|
52
|
+
return Object.fromEntries(
|
|
53
|
+
Object.entries(obj).filter(([_2, v]) => v !== void 0).map(([k, v]) => [k, stripUndefinedDeep(v)])
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
return obj;
|
|
57
|
+
}
|
|
47
58
|
|
|
48
59
|
// src/bake/bake-pledge.ts
|
|
49
60
|
var flattenApprovers = (groups) => {
|
|
@@ -54,12 +65,12 @@ var flattenApprovers = (groups) => {
|
|
|
54
65
|
};
|
|
55
66
|
async function bakePledgeAdjustment(options, logger) {
|
|
56
67
|
const { pledgeAdjustment, engine } = options;
|
|
57
|
-
const getDeviceIndex =
|
|
68
|
+
const getDeviceIndex = _chunkI6B5U4JRcjs.createDeviceIndexResolver.call(void 0, engine);
|
|
58
69
|
logger.info("Logging in with admin...");
|
|
59
70
|
const admin = await engine.withDeviceIndex(4).login();
|
|
60
71
|
logger.info("Fetching account, tradelink blueprint and network...");
|
|
61
72
|
const [matchingAccounts, blueprint, network] = await Promise.all([
|
|
62
|
-
|
|
73
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin.client.accounts.list.query, { name: pledgeAdjustment.account }),
|
|
63
74
|
admin.client.tradelink.getNetworkBlueprint.query(),
|
|
64
75
|
admin.client.tradelink.getNetwork.query()
|
|
65
76
|
]);
|
|
@@ -97,7 +108,7 @@ async function bakePledgeAdjustment(options, logger) {
|
|
|
97
108
|
);
|
|
98
109
|
await createAndApproveRequest(
|
|
99
110
|
{
|
|
100
|
-
type: "
|
|
111
|
+
type: "TRADELINK_ADJUST_PLEDGE",
|
|
101
112
|
data: {
|
|
102
113
|
accountId: account.id,
|
|
103
114
|
exchangeId: exchange.id,
|
|
@@ -204,7 +215,7 @@ async function bakeWorkspace(options, logger) {
|
|
|
204
215
|
const { workspace, engine, workspaceName } = options;
|
|
205
216
|
const workspaceEngine = engine.withWorkspace(workspaceName);
|
|
206
217
|
const { logTitle, logStep, logSubStep } = createBakeLogHelpers(logger);
|
|
207
|
-
const findDeviceIndex =
|
|
218
|
+
const findDeviceIndex = _chunkI6B5U4JRcjs.createDeviceIndexResolver.call(void 0, workspaceEngine);
|
|
208
219
|
logger.info("Authenticating with two admins...");
|
|
209
220
|
const [admin1, admin2] = await Promise.all([
|
|
210
221
|
workspaceEngine.withDeviceIndex(4).login(),
|
|
@@ -214,14 +225,16 @@ async function bakeWorkspace(options, logger) {
|
|
|
214
225
|
const [
|
|
215
226
|
existingUsers,
|
|
216
227
|
existingGroups,
|
|
228
|
+
existingWhitelists,
|
|
217
229
|
existingPolicies,
|
|
218
230
|
existingAccounts,
|
|
219
231
|
tradelinkNetworkBlueprint
|
|
220
232
|
] = await Promise.all([
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
233
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.users.list.query, { status: "ACTIVE" }),
|
|
234
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.groups.list.query, { status: "ACTIVE" }),
|
|
235
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.whitelists.list.query, { status: "ACTIVE" }),
|
|
236
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.policies.list.query, { isPrivate: false }),
|
|
237
|
+
_chunkI6B5U4JRcjs.fetchAll.call(void 0, admin1.client.accounts.list.query, { status: "ACTIVE" }),
|
|
225
238
|
admin1.client.tradelink.getNetworkBlueprint.query()
|
|
226
239
|
]);
|
|
227
240
|
const tradelinkOrgExchangesByName = _lodash2.default.keyBy(_optionalChain([tradelinkNetworkBlueprint, 'optionalAccess', _3 => _3.exchanges]), "name");
|
|
@@ -275,9 +288,6 @@ async function bakeWorkspace(options, logger) {
|
|
|
275
288
|
}
|
|
276
289
|
}
|
|
277
290
|
async function createWhitelists(whitelists) {
|
|
278
|
-
const existingWhitelists = await _chunkWVCYFF2Zcjs.fetchAll.call(void 0, admin1.client.whitelists.list.query, {
|
|
279
|
-
status: "ACTIVE"
|
|
280
|
-
});
|
|
281
291
|
for (const whitelist of whitelists) {
|
|
282
292
|
await createWhitelist(whitelist);
|
|
283
293
|
}
|
|
@@ -291,8 +301,10 @@ async function bakeWorkspace(options, logger) {
|
|
|
291
301
|
type: "CREATE_WHITELIST",
|
|
292
302
|
data: whitelist
|
|
293
303
|
};
|
|
294
|
-
await createAndApproveRequest(input, [admin1, admin2], logger);
|
|
304
|
+
const req = await createAndApproveRequest(input, [admin1, admin2], logger);
|
|
295
305
|
logSubStep(`Whitelist "${whitelist.name}" has been created`);
|
|
306
|
+
const createdWhitelist = await admin1.client.whitelists.findById.query({ id: req.targetId });
|
|
307
|
+
existingWhitelists.push(createdWhitelist);
|
|
296
308
|
}
|
|
297
309
|
}
|
|
298
310
|
function govRuleFromManifest(rule) {
|
|
@@ -309,17 +321,17 @@ async function bakeWorkspace(options, logger) {
|
|
|
309
321
|
quorum: step.quorum,
|
|
310
322
|
userIds: step.members.map(userIdFromDeviceIndexOrName)
|
|
311
323
|
};
|
|
312
|
-
})
|
|
324
|
+
}),
|
|
325
|
+
threshold: rule.threshold,
|
|
326
|
+
whitelistIds: _optionalChain([rule, 'access', _5 => _5.whitelistNames, 'optionalAccess', _6 => _6.map, 'call', _7 => _7(whitelistIdFromName)])
|
|
313
327
|
};
|
|
314
328
|
}
|
|
315
329
|
async function createAccount(account) {
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
logStep(`Creating account "${account.name}"`);
|
|
322
|
-
const input = {
|
|
330
|
+
let req = null;
|
|
331
|
+
const existing = existingAccounts.find(
|
|
332
|
+
(a) => a.currency === account.currency && a.index === account.index && (_nullishCoalesce(a.contractAddress, () => ( null))) === (_nullishCoalesce(account.contractAddress, () => ( null)))
|
|
333
|
+
);
|
|
334
|
+
const createInput = {
|
|
323
335
|
type: "CREATE_ACCOUNT",
|
|
324
336
|
data: {
|
|
325
337
|
// general fields
|
|
@@ -342,24 +354,59 @@ async function bakeWorkspace(options, logger) {
|
|
|
342
354
|
}
|
|
343
355
|
}
|
|
344
356
|
};
|
|
345
|
-
|
|
346
|
-
|
|
357
|
+
if (existing) {
|
|
358
|
+
const editInput = {
|
|
359
|
+
...createInput,
|
|
360
|
+
type: "EDIT_ACCOUNT",
|
|
361
|
+
targetId: existing.id
|
|
362
|
+
};
|
|
363
|
+
const previousAccountRequests = await admin1.client.requests.list.query({
|
|
364
|
+
type: ["CREATE_ACCOUNT", "EDIT_ACCOUNT"],
|
|
365
|
+
targetId: existing.id,
|
|
366
|
+
state: "EXECUTED",
|
|
367
|
+
sortBy: "createdAt",
|
|
368
|
+
sortOrder: "desc"
|
|
369
|
+
});
|
|
370
|
+
if (_optionalChain([previousAccountRequests, 'optionalAccess', _8 => _8.results]) && previousAccountRequests.results.length > 0) {
|
|
371
|
+
const stateRequest = _optionalChain([previousAccountRequests, 'access', _9 => _9.results, 'optionalAccess', _10 => _10[0]]);
|
|
372
|
+
_invariant2.default.call(void 0,
|
|
373
|
+
stateRequest && (stateRequest.type === "EDIT_ACCOUNT" || stateRequest.type === "CREATE_ACCOUNT"),
|
|
374
|
+
"State request should be an edit account request"
|
|
375
|
+
);
|
|
376
|
+
if (_lodash2.default.isEqual(
|
|
377
|
+
stripUndefinedDeep(createInput.data.governance),
|
|
378
|
+
stripUndefinedDeep(stateRequest.data.governance)
|
|
379
|
+
) && createInput.data.name === stateRequest.data.name) {
|
|
380
|
+
logger.info(`[SKIPPED] Account "${account.name}" has not changed`);
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
req = await createAndApproveRequest(editInput, [admin1, admin2], logger);
|
|
384
|
+
logger.info(`[EDITED] Account "${account.name}" has been edited`);
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
} else {
|
|
388
|
+
logStep(`Creating account "${account.name}"`);
|
|
389
|
+
req = await createAndApproveRequest(createInput, [admin1, admin2], logger);
|
|
390
|
+
const createdAccount = await admin1.client.accounts.findById.query({ id: req.targetId });
|
|
391
|
+
existingAccounts.push(createdAccount);
|
|
392
|
+
}
|
|
393
|
+
if (account.governance.type === "TRADELINK" && req) {
|
|
347
394
|
logStep(`Activating tradelink account "${account.name}"`);
|
|
348
395
|
const assetManagerId = assetManagerIdFromName(account.governance.assetManager);
|
|
349
|
-
const assetManager = _optionalChain([existingTradelinkNetwork, 'optionalAccess',
|
|
396
|
+
const assetManager = _optionalChain([existingTradelinkNetwork, 'optionalAccess', _11 => _11.assetManagers, 'access', _12 => _12.find, 'call', _13 => _13(
|
|
350
397
|
(assetManager2) => assetManager2.id === assetManagerId
|
|
351
398
|
)]);
|
|
352
399
|
_invariant2.default.call(void 0, assetManager, `Asset manager for account exists`);
|
|
353
400
|
const loggedAssetManagerOperators = await Promise.all(
|
|
354
401
|
assetManager.groups.flatMap(
|
|
355
402
|
({ quorum, userIds }) => userIds.slice(0, quorum).map((userId) => {
|
|
356
|
-
const deviceIndex = _optionalChain([usersWithDeviceIndex, 'access',
|
|
403
|
+
const deviceIndex = _optionalChain([usersWithDeviceIndex, 'access', _14 => _14.find, 'call', _15 => _15((o) => o.user.id === userId), 'optionalAccess', _16 => _16.deviceIndex]);
|
|
357
404
|
return workspaceEngine.withDeviceIndex(deviceIndex).login();
|
|
358
405
|
})
|
|
359
406
|
)
|
|
360
407
|
);
|
|
361
408
|
await createAndApproveRequest(
|
|
362
|
-
{ type: "
|
|
409
|
+
{ type: "TRADELINK_ACTIVATE_ACCOUNT", targetId: req.targetId, data: null },
|
|
363
410
|
loggedAssetManagerOperators,
|
|
364
411
|
logger
|
|
365
412
|
);
|
|
@@ -495,7 +542,7 @@ async function bakeWorkspace(options, logger) {
|
|
|
495
542
|
logSubStep("Creating request...");
|
|
496
543
|
const request = await admin1.client.requests.create.mutate({
|
|
497
544
|
request: {
|
|
498
|
-
type: "
|
|
545
|
+
type: "TRADELINK_CREATE_CUSTODIAN",
|
|
499
546
|
data
|
|
500
547
|
}
|
|
501
548
|
});
|
|
@@ -538,7 +585,7 @@ async function bakeWorkspace(options, logger) {
|
|
|
538
585
|
logSubStep("Creating request...");
|
|
539
586
|
const request = await admin1.client.requests.create.mutate({
|
|
540
587
|
request: {
|
|
541
|
-
type: "
|
|
588
|
+
type: "TRADELINK_CREATE_EXCHANGE",
|
|
542
589
|
data: {
|
|
543
590
|
tradelinkId: exchangeId,
|
|
544
591
|
groups: exchange.groups.map(tradelinkReviewStepFromManifest),
|
|
@@ -578,7 +625,7 @@ async function bakeWorkspace(options, logger) {
|
|
|
578
625
|
logSubStep("Creating request...");
|
|
579
626
|
const request = await admin1.client.requests.create.mutate({
|
|
580
627
|
request: {
|
|
581
|
-
type: "
|
|
628
|
+
type: "TRADELINK_CREATE_ASSET_MANAGER",
|
|
582
629
|
data: {
|
|
583
630
|
tradelinkId: assetManagerId,
|
|
584
631
|
groups: assetManager.groups.map(tradelinkReviewStepFromManifest),
|
|
@@ -632,20 +679,25 @@ async function bakeWorkspace(options, logger) {
|
|
|
632
679
|
_invariant2.default.call(void 0, group, `Group ${groupName} not found`);
|
|
633
680
|
return group.id;
|
|
634
681
|
}
|
|
682
|
+
function whitelistIdFromName(whitelistName) {
|
|
683
|
+
const whitelist = existingWhitelists.find((w) => w.name === whitelistName);
|
|
684
|
+
_invariant2.default.call(void 0, whitelist, `Whitelist ${whitelistName} not found`);
|
|
685
|
+
return whitelist.id;
|
|
686
|
+
}
|
|
635
687
|
function assetManagerIdFromName(assetManagerName) {
|
|
636
688
|
const orgAssetManager = tradelinkOrgAssetManagersByName[assetManagerName];
|
|
637
689
|
_invariant2.default.call(void 0,
|
|
638
690
|
orgAssetManager,
|
|
639
691
|
`Can't find Tradelink organization asset manager ${assetManagerName}`
|
|
640
692
|
);
|
|
641
|
-
const assetManager = _optionalChain([existingTradelinkNetwork, 'optionalAccess',
|
|
693
|
+
const assetManager = _optionalChain([existingTradelinkNetwork, 'optionalAccess', _17 => _17.assetManagers, 'access', _18 => _18.find, 'call', _19 => _19(
|
|
642
694
|
(assetManager2) => assetManager2.tradelinkId === orgAssetManager.tradelinkId
|
|
643
695
|
)]);
|
|
644
696
|
_invariant2.default.call(void 0, assetManager, `Can't find Tradelink assetManager ${assetManagerName}`);
|
|
645
697
|
return assetManager.id;
|
|
646
698
|
}
|
|
647
699
|
function exchangeIdFromName(exchangeName) {
|
|
648
|
-
const exchange = _optionalChain([existingTradelinkNetwork, 'optionalAccess',
|
|
700
|
+
const exchange = _optionalChain([existingTradelinkNetwork, 'optionalAccess', _20 => _20.exchanges, 'access', _21 => _21.find, 'call', _22 => _22((exchange2) => {
|
|
649
701
|
const orgExchange = tradelinkOrgExchangesByName[exchangeName];
|
|
650
702
|
_invariant2.default.call(void 0, orgExchange, `Can't find Tradelink organization exchange ${exchange2.tradelinkId}`);
|
|
651
703
|
return orgExchange.name === exchangeName;
|
|
@@ -666,32 +718,32 @@ async function bakeWorkspace(options, logger) {
|
|
|
666
718
|
|
|
667
719
|
// src/bake/types.ts
|
|
668
720
|
var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);
|
|
669
|
-
var zManifestUser = _zod2.default.number().
|
|
670
|
-
var zManifestUserName = _zod2.default.string().
|
|
721
|
+
var zManifestUser = _zod2.default.number().meta({ description: "User device index" });
|
|
722
|
+
var zManifestUserName = _zod2.default.string().meta({ description: "User name" });
|
|
671
723
|
var zManifestApiUser = _zod2.default.object({
|
|
672
|
-
name: _zod2.default.string().
|
|
673
|
-
role: _zod2.default.enum(["ADMIN", "OPERATOR"]).
|
|
674
|
-
pubKey: _zod2.default.string().
|
|
675
|
-
"API user public key. If not provided, one will be generated using the name as entropy"
|
|
676
|
-
).optional(),
|
|
677
|
-
viewAll: _zod2.default.boolean().
|
|
724
|
+
name: _zod2.default.string().meta({ description: "API user name" }),
|
|
725
|
+
role: _zod2.default.enum(["ADMIN", "OPERATOR"]).meta({ description: "API user role" }).default("OPERATOR"),
|
|
726
|
+
pubKey: _zod2.default.string().meta({
|
|
727
|
+
description: "API user public key. If not provided, one will be generated using the name as entropy"
|
|
728
|
+
}).optional(),
|
|
729
|
+
viewAll: _zod2.default.boolean().meta({ description: "Whether the API user can view all accounts" })
|
|
678
730
|
});
|
|
679
731
|
var zManifestGroup = _zod2.default.object({
|
|
680
|
-
name: _zod2.default.string().
|
|
681
|
-
members: _zod2.default.array(_zod2.default.union([zManifestUser, zManifestUserName])).
|
|
682
|
-
}).strict().
|
|
732
|
+
name: _zod2.default.string().meta({ description: "Group name" }),
|
|
733
|
+
members: _zod2.default.array(_zod2.default.union([zManifestUser, zManifestUserName])).meta({ description: "Group members" })
|
|
734
|
+
}).strict().meta({ description: "Operators group" });
|
|
683
735
|
var zManifestWhitelistAddress = _zod2.default.object({
|
|
684
|
-
name: _zod2.default.string().
|
|
685
|
-
currency: _zod2.default.string().
|
|
686
|
-
address: _zod2.default.string().
|
|
687
|
-
destinationTags: _zod2.default.array(_zod2.default.string()).optional().
|
|
736
|
+
name: _zod2.default.string().meta({ description: "Whitelist address name" }),
|
|
737
|
+
currency: _zod2.default.string().meta({ description: "Whitelist address currency" }),
|
|
738
|
+
address: _zod2.default.string().meta({ description: "Whitelist address" }),
|
|
739
|
+
destinationTags: _zod2.default.array(_zod2.default.string()).optional().meta({ description: "List of destination tags (applicable for Ripple currency)" })
|
|
688
740
|
}).strict();
|
|
689
741
|
var zManifestWhitelist = _zod2.default.object({
|
|
690
|
-
name: _zod2.default.string().
|
|
691
|
-
description: _zod2.default.string().optional().default("").
|
|
692
|
-
type: _zod2.default.enum(["TRANSACTION", "SMART_CONTRACT"]).optional().default("TRANSACTION").
|
|
693
|
-
addresses: _zod2.default.array(zManifestWhitelistAddress).
|
|
694
|
-
}).strict().
|
|
742
|
+
name: _zod2.default.string().meta({ description: "Whitelist name" }),
|
|
743
|
+
description: _zod2.default.string().optional().default("").meta({ description: "Whitelist description" }),
|
|
744
|
+
type: _zod2.default.enum(["TRANSACTION", "SMART_CONTRACT"]).optional().default("TRANSACTION").meta({ description: "Whitelist type" }),
|
|
745
|
+
addresses: _zod2.default.array(zManifestWhitelistAddress).meta({ description: "Whitelist addresses" })
|
|
746
|
+
}).strict().meta({ description: "Whitelist" });
|
|
695
747
|
var zManifestGovernanceStepWithUsers = _zod2.default.object({
|
|
696
748
|
quorum: _zod2.default.number(),
|
|
697
749
|
members: _zod2.default.array(_zod2.default.union([zManifestUser, zManifestUserName]))
|
|
@@ -708,11 +760,16 @@ var zManifestGovernanceRule = _zod2.default.object({
|
|
|
708
760
|
// TODO see if there is a way to import this from `api` package
|
|
709
761
|
// (the challenge there is that enums are not transpiled)
|
|
710
762
|
type: _zod2.default.enum(["SEND", "STAKE", "DEPLOY_CONTRACT", "EXECUTE_CONTRACT", "SIGN_MESSAGE"]),
|
|
711
|
-
steps: _zod2.default.array(zManifestGovernanceStep).min(1)
|
|
763
|
+
steps: _zod2.default.array(zManifestGovernanceStep).min(1),
|
|
764
|
+
threshold: _zod2.default.object({
|
|
765
|
+
min: _zod2.default.string(),
|
|
766
|
+
max: _zod2.default.string()
|
|
767
|
+
}).optional(),
|
|
768
|
+
whitelistNames: _zod2.default.array(_zod2.default.string()).optional()
|
|
712
769
|
}).strict();
|
|
713
770
|
var zManifestPolicy = _zod2.default.object({
|
|
714
771
|
name: _zod2.default.string(),
|
|
715
|
-
currency: _zod2.default.string(),
|
|
772
|
+
currency: _zod2.default.string().nullable(),
|
|
716
773
|
rules: _zod2.default.array(zManifestGovernanceRule)
|
|
717
774
|
}).strict();
|
|
718
775
|
var zManifestClassicAccountGovernance = _zod2.default.object({
|
|
@@ -720,13 +777,13 @@ var zManifestClassicAccountGovernance = _zod2.default.object({
|
|
|
720
777
|
rules: _zod2.default.array(zManifestGovernanceRule)
|
|
721
778
|
}).strict();
|
|
722
779
|
var zManifestTradelinkExchangeConfig = _zod2.default.object({
|
|
723
|
-
name: _zod2.default.string().
|
|
724
|
-
repledgeAuthorized: _zod2.default.boolean().optional().
|
|
725
|
-
needsAssetManagerApprovalForSettlements: _zod2.default.boolean().optional().
|
|
780
|
+
name: _zod2.default.string().meta({ description: "Exchange name" }),
|
|
781
|
+
repledgeAuthorized: _zod2.default.boolean().optional().meta({ description: "Whether repledge is authorized" }),
|
|
782
|
+
needsAssetManagerApprovalForSettlements: _zod2.default.boolean().optional().meta({ description: "Whether asset manager pre approval is needed" })
|
|
726
783
|
}).strict();
|
|
727
784
|
var zManifestTradelinkAccountGovernance = _zod2.default.object({
|
|
728
785
|
type: _zod2.default.literal("TRADELINK"),
|
|
729
|
-
assetManager: _zod2.default.string().
|
|
786
|
+
assetManager: _zod2.default.string().meta({ description: "Asset manager name" }),
|
|
730
787
|
exchanges: _zod2.default.array(zManifestTradelinkExchangeConfig)
|
|
731
788
|
}).strict();
|
|
732
789
|
var zManifestAccountGovernance = _zod2.default.discriminatedUnion("type", [
|
|
@@ -736,7 +793,7 @@ var zManifestAccountGovernance = _zod2.default.discriminatedUnion("type", [
|
|
|
736
793
|
var zManifestAccount = _zod2.default.object({
|
|
737
794
|
name: _zod2.default.string(),
|
|
738
795
|
currency: _zod2.default.string(),
|
|
739
|
-
index: _zod2.default.number().nonnegative()
|
|
796
|
+
index: _zod2.default.number().nonnegative(),
|
|
740
797
|
contractAddress: _zod2.default.string().optional(),
|
|
741
798
|
governance: zManifestAccountGovernance
|
|
742
799
|
}).strict();
|
|
@@ -748,14 +805,14 @@ var zManifestPledgeAdjustment = _zod2.default.object({
|
|
|
748
805
|
var zManifestTradelinkGroup = _zod2.default.object({
|
|
749
806
|
members: _zod2.default.array(zManifestUser),
|
|
750
807
|
quorum: _zod2.default.number()
|
|
751
|
-
}).strict().
|
|
808
|
+
}).strict().meta({ description: "Tradelink group" });
|
|
752
809
|
var zManifestTradelinkGroups = _zod2.default.array(zManifestTradelinkGroup);
|
|
753
810
|
var zManifestTradelinkWhitelistAddress = _zod2.default.object({
|
|
754
811
|
name: _zod2.default.string().min(1),
|
|
755
812
|
currency: _zod2.default.string().min(1),
|
|
756
813
|
address: _zod2.default.string().min(1)
|
|
757
|
-
}).strict().
|
|
758
|
-
var zManifestTradelinkWhitelist = _zod2.default.array(zManifestTradelinkWhitelistAddress).
|
|
814
|
+
}).strict().meta({ description: "Tradelink whitelist address" });
|
|
815
|
+
var zManifestTradelinkWhitelist = _zod2.default.array(zManifestTradelinkWhitelistAddress).meta({ description: "Tradelink whitelist" });
|
|
759
816
|
var zManifestTradelinkEntity = _zod2.default.object({
|
|
760
817
|
name: _zod2.default.string(),
|
|
761
818
|
groups: zManifestTradelinkGroups,
|
|
@@ -776,7 +833,7 @@ var zManifestTradelinkNetwork = _zod2.default.object({
|
|
|
776
833
|
custodian: zManifestTradelinkCustodian.optional(),
|
|
777
834
|
exchanges: _zod2.default.array(zManifestTradelinkEntity).optional(),
|
|
778
835
|
assetManagers: _zod2.default.array(zManifestTradelinkEntity).optional()
|
|
779
|
-
}).strict().
|
|
836
|
+
}).strict().meta({ description: "Tradelink network configuration" });
|
|
780
837
|
var zManifestWorkspace = _zod2.default.object({
|
|
781
838
|
tradelink: zManifestTradelinkNetwork.optional(),
|
|
782
839
|
users: _zod2.default.object({
|
|
@@ -789,17 +846,17 @@ var zManifestWorkspace = _zod2.default.object({
|
|
|
789
846
|
policies: _zod2.default.array(zManifestPolicy).optional(),
|
|
790
847
|
accounts: _zod2.default.array(zManifestAccount).optional(),
|
|
791
848
|
pledges: _zod2.default.array(zManifestPledgeAdjustment).optional()
|
|
792
|
-
}).strict().
|
|
849
|
+
}).strict().meta({ description: "Workspace configuration" });
|
|
793
850
|
var zManifestTradelinkOrgEntity = _zod2.default.object({
|
|
794
851
|
name: _zod2.default.string(),
|
|
795
852
|
code: _zod2.default.string(),
|
|
796
853
|
logo: _zod2.default.string()
|
|
797
|
-
}).strict().
|
|
854
|
+
}).strict().meta({ description: "Tradelink organization entity" });
|
|
798
855
|
var zManifestTradelinkOrg = _zod2.default.object({
|
|
799
856
|
exchanges: _zod2.default.array(zManifestTradelinkOrgEntity).optional(),
|
|
800
857
|
assetManagers: _zod2.default.array(zManifestTradelinkOrgEntity).optional(),
|
|
801
858
|
custodians: _zod2.default.array(zManifestTradelinkOrgEntity).optional()
|
|
802
|
-
}).strict().
|
|
859
|
+
}).strict().meta({ description: "Tradelink organization configuration" });
|
|
803
860
|
var zManifest = _zod2.default.object({
|
|
804
861
|
manifestVersion: _zod2.default.literal(2),
|
|
805
862
|
tradelink: zManifestTradelinkOrg.optional(),
|
|
@@ -821,7 +878,7 @@ async function bakeManifest(options, logger) {
|
|
|
821
878
|
engine,
|
|
822
879
|
tradelink,
|
|
823
880
|
rootAuthToken,
|
|
824
|
-
..._optionalChain([workspace, 'optionalAccess',
|
|
881
|
+
..._optionalChain([workspace, 'optionalAccess', _23 => _23.tradelink, 'optionalAccess', _24 => _24.networkBlueprint]) && workspaceName ? { networkBlueprint: { blueprint: workspace.tradelink.networkBlueprint, workspaceName } } : {}
|
|
825
882
|
},
|
|
826
883
|
logger
|
|
827
884
|
);
|