@ledgerhq/revault-sdk 0.26.1 → 0.26.3

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 CHANGED
@@ -102,7 +102,12 @@ async function createAndApproveRequest(input, approvers, logger) {
102
102
  const creator = approvers[0];
103
103
  (0, invariant.default)(creator, "Need at least 1 user to create a request");
104
104
  logSubStep(`Creating request of type ${input.type}...`);
105
- return approveRequest(await creator.client.requests.create.mutate({ request: input }), approvers, logger);
105
+ let request = await creator.client.requests.create.mutate({
106
+ request: input,
107
+ waitForChallenges: false
108
+ });
109
+ request = await waitForRequestInflightDone(creator.client, request, logger);
110
+ return approveRequest(request, approvers, logger);
106
111
  }
107
112
  function stripUndefinedDeep(obj) {
108
113
  if (Array.isArray(obj)) return obj.map(stripUndefinedDeep);
@@ -493,10 +498,14 @@ async function bakeWorkspace(options, logger) {
493
498
  logSubStep("Completing registration...");
494
499
  registration = await userEngine.register(registration);
495
500
  logSubStep("Creating request...");
496
- let req = await admin1.client.requests.create.mutate({ request: {
497
- type: "CREATE_PSD_USER",
498
- data: { registrationId: registration.id }
499
- } });
501
+ let req = await admin1.client.requests.create.mutate({
502
+ request: {
503
+ type: "CREATE_PSD_USER",
504
+ data: { registrationId: registration.id }
505
+ },
506
+ waitForChallenges: false
507
+ });
508
+ req = await waitForRequestInflightDone(admin1.client, req, logger);
500
509
  req = await approveRequest(req, [admin1, admin2], logger);
501
510
  logSubStep(`${name} has been created`);
502
511
  const createdUser = await admin1.client.users.findById.query({ id: req.targetId });
@@ -514,15 +523,19 @@ async function bakeWorkspace(options, logger) {
514
523
  }
515
524
  logStep(`Creating API user "${apiUser.name}"...`);
516
525
  logSubStep("Creating request...");
517
- let req = await admin1.client.requests.create.mutate({ request: {
518
- type: "CREATE_API_USER",
519
- data: {
520
- name: apiUser.name,
521
- role: apiUser.role,
522
- pubKey,
523
- viewAll: apiUser.viewAll
524
- }
525
- } });
526
+ let req = await admin1.client.requests.create.mutate({
527
+ request: {
528
+ type: "CREATE_API_USER",
529
+ data: {
530
+ name: apiUser.name,
531
+ role: apiUser.role,
532
+ pubKey,
533
+ viewAll: apiUser.viewAll
534
+ }
535
+ },
536
+ waitForChallenges: false
537
+ });
538
+ req = await waitForRequestInflightDone(admin1.client, req, logger);
526
539
  req = await approveRequest(req, [admin1, admin2], logger);
527
540
  logSubStep(`API user "${apiUser.name}" has been created`);
528
541
  logSubStep("Generating credentials...");
@@ -560,10 +573,14 @@ async function bakeWorkspace(options, logger) {
560
573
  }
561
574
  logStep(`Creating group ${group.name}...`);
562
575
  logSubStep("Creating request...");
563
- let request = await admin1.client.requests.create.mutate({ request: {
564
- type: "CREATE_GROUP",
565
- data: groupData
566
- } });
576
+ let request = await admin1.client.requests.create.mutate({
577
+ request: {
578
+ type: "CREATE_GROUP",
579
+ data: groupData
580
+ },
581
+ waitForChallenges: false
582
+ });
583
+ request = await waitForRequestInflightDone(admin1.client, request, logger);
567
584
  request = await approveRequest(request, [admin1, admin2], logger);
568
585
  logSubStep(`${group.name} has been created`);
569
586
  const createdGroup = await admin1.client.groups.findById.query({ id: request.targetId });
@@ -598,13 +615,17 @@ async function bakeWorkspace(options, logger) {
598
615
  }
599
616
  logStep(`Creating policy ${policy.name}...`);
600
617
  logSubStep("Creating request...");
601
- let request = await admin1.client.requests.create.mutate({ request: {
602
- type: "CREATE_POLICY",
603
- data: {
604
- ...policyEditData,
605
- currency: policy.currency
606
- }
607
- } });
618
+ let request = await admin1.client.requests.create.mutate({
619
+ request: {
620
+ type: "CREATE_POLICY",
621
+ data: {
622
+ ...policyEditData,
623
+ currency: policy.currency
624
+ }
625
+ },
626
+ waitForChallenges: false
627
+ });
628
+ request = await waitForRequestInflightDone(admin1.client, request, logger);
608
629
  request = await approveRequest(request, [admin1, admin2], logger);
609
630
  logSubStep(`${policy.name} has been created`);
610
631
  const createdPolicy = await admin1.client.policies.findById.query({ id: request.targetId });
@@ -677,10 +698,15 @@ async function bakeWorkspace(options, logger) {
677
698
  arbitration: arbitration.map(tradelinkReviewStepFromManifest)
678
699
  };
679
700
  logSubStep("Creating request...");
680
- await approveRequest(await admin1.client.requests.create.mutate({ request: {
681
- type: "TRADELINK_CREATE_CUSTODIAN",
682
- data
683
- } }), [admin1, admin2], logger);
701
+ let request = await admin1.client.requests.create.mutate({
702
+ request: {
703
+ type: "TRADELINK_CREATE_CUSTODIAN",
704
+ data
705
+ },
706
+ waitForChallenges: false
707
+ });
708
+ request = await waitForRequestInflightDone(admin1.client, request, logger);
709
+ await approveRequest(request, [admin1, admin2], logger);
684
710
  logSubStep("Tradelink custodian config has been created");
685
711
  existingTradelinkNetwork = await admin1.client.tradelink.getNetwork.query();
686
712
  } else logger.info("[SKIPPED] Custodian config already exists");
@@ -706,17 +732,23 @@ async function bakeWorkspace(options, logger) {
706
732
  continue;
707
733
  }
708
734
  logSubStep("Creating request...");
709
- await approveRequest(await admin1.client.requests.create.mutate({ request: {
710
- type: "TRADELINK_CREATE_EXCHANGE",
711
- data: {
712
- tradelinkId: exchangeId,
713
- groups: exchange.groups.map(tradelinkReviewStepFromManifest),
714
- whitelist: exchange.whitelist
715
- }
716
- } }), [
735
+ let request = await admin1.client.requests.create.mutate({
736
+ request: {
737
+ type: "TRADELINK_CREATE_EXCHANGE",
738
+ data: {
739
+ tradelinkId: exchangeId,
740
+ groups: exchange.groups.map(tradelinkReviewStepFromManifest),
741
+ whitelist: exchange.whitelist
742
+ }
743
+ },
744
+ waitForChallenges: false
745
+ });
746
+ request = await waitForRequestInflightDone(admin1.client, request, logger);
747
+ const loggedExchangeOperators = await Promise.all(exchange.groups.flatMap(({ quorum, members }) => members.slice(0, quorum).map((deviceIndex) => workspaceEngine.withDeviceIndex(deviceIndex).login())));
748
+ await approveRequest(request, [
717
749
  admin1,
718
750
  admin2,
719
- ...await Promise.all(exchange.groups.flatMap(({ quorum, members }) => members.slice(0, quorum).map((deviceIndex) => workspaceEngine.withDeviceIndex(deviceIndex).login())))
751
+ ...loggedExchangeOperators
720
752
  ], logger);
721
753
  existingTradelinkNetwork = await admin1.client.tradelink.getNetwork.query();
722
754
  (0, invariant.default)(existingTradelinkNetwork !== null, "Tradelink network exists");
@@ -735,17 +767,23 @@ async function bakeWorkspace(options, logger) {
735
767
  continue;
736
768
  }
737
769
  logSubStep("Creating request...");
738
- await approveRequest(await admin1.client.requests.create.mutate({ request: {
739
- type: "TRADELINK_CREATE_ASSET_MANAGER",
740
- data: {
741
- tradelinkId: assetManagerId,
742
- groups: assetManager.groups.map(tradelinkReviewStepFromManifest),
743
- whitelist: assetManager.whitelist
744
- }
745
- } }), [
770
+ let request = await admin1.client.requests.create.mutate({
771
+ request: {
772
+ type: "TRADELINK_CREATE_ASSET_MANAGER",
773
+ data: {
774
+ tradelinkId: assetManagerId,
775
+ groups: assetManager.groups.map(tradelinkReviewStepFromManifest),
776
+ whitelist: assetManager.whitelist
777
+ }
778
+ },
779
+ waitForChallenges: false
780
+ });
781
+ request = await waitForRequestInflightDone(admin1.client, request, logger);
782
+ const loggedAssetManagerOperators = await Promise.all(assetManager.groups.flatMap(({ quorum, members }) => members.slice(0, quorum).map((deviceIndex) => workspaceEngine.withDeviceIndex(deviceIndex).login())));
783
+ await approveRequest(request, [
746
784
  admin1,
747
785
  admin2,
748
- ...await Promise.all(assetManager.groups.flatMap(({ quorum, members }) => members.slice(0, quorum).map((deviceIndex) => workspaceEngine.withDeviceIndex(deviceIndex).login())))
786
+ ...loggedAssetManagerOperators
749
787
  ], logger);
750
788
  existingTradelinkNetwork = await admin1.client.tradelink.getNetwork.query();
751
789
  (0, invariant.default)(existingTradelinkNetwork !== null, "Tradelink network exists");
@@ -991,7 +1029,7 @@ async function recipeWorkspace(options, logger) {
991
1029
  "EXECUTE_CONTRACT",
992
1030
  "SIGN_MESSAGE",
993
1031
  "RECEIVE"
994
- ].includes(value), "Unexpected governance rule type: " + value);
1032
+ ].includes(value), `Unexpected governance rule type: ${value}`);
995
1033
  return value;
996
1034
  }
997
1035
  function govRuleToManifest(rule) {
@@ -1267,5 +1305,6 @@ exports.bakeManifest = bakeManifest;
1267
1305
  exports.bakePledgeAdjustment = bakePledgeAdjustment;
1268
1306
  exports.createAndApproveRequest = createAndApproveRequest;
1269
1307
  exports.recipeManifest = recipeManifest;
1308
+ exports.waitForRequestInflightDone = waitForRequestInflightDone;
1270
1309
  exports.zManifest = zManifest;
1271
1310
  exports.zManifestPolicy = zManifestPolicy;