@ledgerhq/vault-common 2.7.3 → 2.8.0
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/.turbo/turbo-build.log +19 -19
- package/CHANGELOG.md +12 -0
- package/lib/{chunk-VKKF4FUU.js → chunk-42W3DGXB.js} +3 -3
- package/lib/{chunk-VKKF4FUU.js.map → chunk-42W3DGXB.js.map} +1 -1
- package/lib/{chunk-Y5S46OBE.js → chunk-A6UNM54V.js} +13 -13
- package/lib/{chunk-Y5S46OBE.js.map → chunk-A6UNM54V.js.map} +1 -1
- package/lib/{chunk-4XY6A2YS.js → chunk-GBWFFILF.js} +39 -5
- package/lib/chunk-GBWFFILF.js.map +1 -0
- package/lib/{chunk-GUCXQ7R6.js → chunk-LBTWTQGW.js} +3 -3
- package/lib/{chunk-GUCXQ7R6.js.map → chunk-LBTWTQGW.js.map} +1 -1
- package/lib/{chunk-PDP57LSK.js → chunk-LUGUDCF7.js} +1 -1
- package/lib/chunk-LUGUDCF7.js.map +1 -0
- package/lib/{chunk-C7MZATA3.js → chunk-Z3OMUBXE.js} +21 -21
- package/lib/{chunk-C7MZATA3.js.map → chunk-Z3OMUBXE.js.map} +1 -1
- package/lib/createHSMBridge.d.ts +1 -1
- package/lib/createHSMBridge.js +4 -4
- package/lib/{index-BIQCk3eV.d.ts → index--kkMSHZ6.d.ts} +1 -0
- package/lib/index.d.ts +2 -2
- package/lib/index.js +65 -65
- package/lib/recipeManifest.d.ts +1 -1
- package/lib/recipeManifest.js +3 -3
- package/lib/reviewAPIRequest.d.ts +1 -1
- package/lib/reviewAPIRequest.js +4 -4
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +2 -2
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +2 -2
- package/package.json +1 -1
- package/lib/chunk-4XY6A2YS.js.map +0 -1
- package/lib/chunk-PDP57LSK.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-C7MZATA3.js","../src/recipeManifest.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACPA,4FAAsB;AACtB,mFAAkB;AAClB,uFAAmB;AAqDnB,IAAM,yBAAA,EAA2B,CAAA;AACjC,IAAM,qBAAA,EAAuB,CAAA;AAC7B,IAAM,iBAAA,EAAmB,CAAA;AAElB,IAAM,eAAA,EAAiB,CAAC,KAAA,EAAA,GAA0B;AACvD,EAAA,MAAM,EAAA,EAAI,yBAAA,EAA2B,KAAA;AACrC,EAAA,GAAA,CAAI,EAAA,EAAI,yBAAA,EAA2B,gBAAA,EAAkB;AACnD,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAA,EAAI,gBAAA;AACb,CAAA;AA6CA,MAAA,SAAO,cAAA,CACL,IAAA,EACA,QAAA,EAAiC,CAAC,CAAA,EACH;AAC/B,EAAA,MAAM,aAAA,EAAe,MAAM,IAAA,CAAK,yBAAA,CAA0B,CAAA;AAC1D,EAAA,MAAM,MAAA,EAAQ,MAAM,IAAA,CAAK,KAAA,CAAM,YAAA,CAAa,CAAC,CAAA,CAAG,CAAC,CAAC,CAAA;AAClD,EAAA,MAAM;AAAA,IACJ,YAAA;AAAA,IACA,6BAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,kBAAA;AAAA,IACA,uBAAA;AAAA,IACA,oBAAA;AAAA,IACA,mBAAA;AAAA,IACA,kBAAA;AAAA,IACA,4BAAA;AAAA,IACA,+BAAA;AAAA,IACA,2BAAA;AAAA,IACA,8BAAA;AAAA,IACA,kCAAA;AAAA,IACA,+BAAA;AAAA,IACA,gBAAA;AAAA,IACA,yBAAA;AAAA,IACA;AAAA,EACF,EAAA,EAAI,MAAM,OAAA,CAAQ,GAAA,CAAI;AAAA,IACpB,KAAA,CAAM,OAAA,CAAsB,KAAA,EAAO,eAAe,CAAA;AAAA,IAClD,KAAA,CACG,OAAA;AAAA,MACC,KAAA;AAAA,MACA,CAAA,yHAAA;AAAA,IACF,CAAA,CAEC,KAAA;AAAA;AAAA,MAC4B,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACF,KAAA,CAAM,OAAA;AAAA,MACJ,KAAA;AAAA,MACA;AAAA,IACF,CAAA;AAAA,IACA,KAAA,CAAM,OAAA,CAA+B,KAAA,EAAO,qBAAqB,CAAA;AAAA,IACjE,KAAA,CAAM,OAAA;AAAA,MACJ,KAAA;AAAA,MACA;AAAA,IACF,CAAA;AAAA,IACA,KAAA,CAAM,OAAA,CAAqC,KAAA,EAAO,uBAAuB,CAAA;AAAA,IACzE,KAAA,CAAM,OAAA,CAAmC,KAAA,EAAO,yBAAyB,CAAA;AAAA,IACzE,KAAA,CACG,OAAA,CAAkC,KAAA,EAAO,wBAAwB,CAAA,CAEjE,KAAA;AAAA;AAAA,MAC4B,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACF,KAAA,CACG,OAAA,CAAgC,KAAA,EAAO,uBAAuB,CAAA,CAE9D,KAAA;AAAA;AAAA,MAC4B,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACF,KAAA,CACG,OAAA,CAAsD,KAAA,EAAO,uBAAuB,CAAA,CACpF,KAAA;AAAA;AAAA,MAC4B,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACF,KAAA,CAAM,OAAA,CAAmC,KAAA,EAAO,2BAA2B,CAAA,CAAE,KAAA;AAAA;AAAA,MAChD,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IAEA,KAAA,CAAM,OAAA,CAAqD,KAAA,EAAO,sBAAsB,CAAA,CAAE,KAAA;AAAA;AAAA,MAC7D,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACA,KAAA,CAAM,OAAA,CAA2C,KAAA,EAAO,0BAA0B,CAAA,CAAE,KAAA;AAAA;AAAA,MACvD,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACA,KAAA,CACG,OAAA,CAA+C,KAAA,EAAO,+BAA+B,CAAA,CACrF,KAAA;AAAA;AAAA,MAC4B,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACF,KAAA,CACG,OAAA,CAA0D,KAAA,EAAO,2BAA2B,CAAA,CAC5F,KAAA;AAAA;AAAA,MAC4B,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,WAAA,EAAa,KAAA,EAAO,KAAA,EAAO,EAAE;AAAA,MAC3C,CAAA;AAAA,IACF,CAAA;AAAA,IACF,KAAA,CAAM,OAAA,CAA8B,KAAA,EAAO,oBAAoB,CAAA,CAAE,KAAA;AAAA;AAAA,MACpC,CAAA,EAAA,GAAA,CAAO;AAAA,QAChC,EAAA,EAAI,EAAA;AAAA,QACJ,cAAA,EAAgB,CAAC,CAAA;AAAA,QACjB,SAAA,EAAW;AAAA,UACT,iBAAA,EAAmB,CAAA;AAAA,UACnB,IAAA,EAAM,EAAA;AAAA,UACN,EAAA,EAAI,EAAA;AAAA,UACJ,QAAA,EAAU,EAAA;AAAA,UACV,IAAA,EAAM,EAAA;AAAA,UACN,YAAA,EAAc;AAAA,QAChB,CAAA;AAAA,QACA,SAAA,EAAW,CAAC;AAAA,MACd,CAAA;AAAA,IACF,CAAA;AAAA,IACA,KAAA,CACG,OAAA,CAAuC,KAAA,EAAO,uBAAuB,CAAA,CACrE,KAAA;AAAA;AAAA,MAC4B,CAAA,EAAA,GAAA,CAAsC,EAAE,MAAA,EAAQ,YAAY,CAAA;AAAA,IACzF,CAAA;AAAA,IACF,KAAA,CAAM,OAAA,CAAuC,KAAA,EAAO,kBAAkB,CAAA,CAAE,KAAA;AAAA;AAAA,MAC3C,CAAA,EAAA,GAAA,CAAsC;AAAA,QAC/D,KAAA,EAAO,CAAC,CAAA;AAAA,QACR,QAAA,EAAU,EAAE,KAAA,EAAO,CAAA,EAAG,WAAA,EAAa,MAAM;AAAA,MAC3C,CAAA;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,oBAAA,EAAyC,+CAAA,6BAA8C,CAAA;AAC7F,EAAA,MAAM,MAAA,EAAoB,8BAAA,+CAAO,eAAgC,CAAA,EAAG,IAAI,CAAA;AACxE,EAAA,MAAM,OAAA,EAAsB,+CAAA,gBAAiC,CAAA;AAC7D,EAAA,MAAM,WAAA,EAA8B,+CAAA,oBAAqC,CAAA;AACzE,EAAA,MAAM,SAAA,EAA0B,8BAAA,+CAAO,kBAAmC,CAAA,EAAG,OAAO,CAAA;AACpF,EAAA,MAAM,cAAA,EAAmC,+CAAA,uBAAwC,CAAA;AACjF,EAAA,MAAM,UAAA,EAA4B,+CAAA,mBAAoC,CAAA;AACtE,EAAA,MAAM,SAAA,EAAyB,+CAAA,kBAAmC,CAAA;AAClE,EAAA,MAAM,oBAAA,EAA0D,+CAAA;AAAA,IAC9D;AAAA,EACF,CAAA;AACA,EAAA,MAAM,uBAAA,EAA0C,+CAAA,+BAAgD,CAAA;AAChG,EAAA,MAAM,mBAAA,EAAwD,+CAAA;AAAA,IAC5D;AAAA,EACF,CAAA;AACA,EAAA,MAAM,sBAAA,EAAiD,+CAAA;AAAA,IACrD;AAAA,EACF,CAAA;AACA,EAAA,MAAM,0BAAA,EAAyD,+CAAA;AAAA,IAC7D;AAAA,EACF,CAAA;AACA,EAAA,MAAM,uBAAA,EAAiE,+CAAA;AAAA,IACrE;AAAA,EACF,CAAA;AACA,EAAA,MAAM,kBAAA,EAAoB,+CAAA,2BAA4C,CAAA;AACtE,EAAA,MAAM,kBAAA,mBAAoB,iBAAA,CAAkB,IAAA,CAAK,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,WAAA,IAAe,MAAM,CAAA,UAAK,MAAA;AACpF,EAAA,MAAM,uBAAA,EAAyB,iBAAA,CAAkB,MAAA,CAAO,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,WAAA,IAAe,MAAM,CAAA;AAEtF,EAAA,MAAM,aAAA,EAAe,6BAAA,MAAM,EAAQ,CAAC,KAAA,EAAA,GAAU,KAAA,CAAM,IAAI,CAAA;AACxD,EAAA,MAAM,iBAAA,EAAmB,6BAAA,UAAM,EAAY,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AACxD,EAAA,MAAM,eAAA,EAAiB,6BAAA,QAAM,EAAU,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AACpD,EAAA,MAAM,oBAAA,EAAsB,6BAAA,aAAM,EAAe,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AAC9D,EAAA,MAAM,gBAAA,EAAkB,6BAAA,SAAM,EAAW,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AACtD,EAAA,MAAM,eAAA,EAAiB,6BAAA,QAAM,EAAU,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AACpD,EAAA,MAAM,0BAAA,EAA4B,6BAAA,mBAAM,EAAqB,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AAC1E,EAAA,MAAM,6BAAA,EAA+B,6BAAA;AAAA,IACnC,sBAAA;AAAA,IACA,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,OAAA,CAAQ,SAAA,CAAU;AAAA,EAC7B,CAAA;AACA,EAAA,MAAM,yBAAA,EAA2B,6BAAA,kBAAM,EAAoB,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AACxE,EAAA,MAAM,4BAAA,EAA8B,6BAAA,qBAAM,EAAuB,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,QAAA,CAAS,IAAI,CAAA;AACvF,EAAA,MAAM,gCAAA,EAAkC,6BAAA,yBAAM,EAA2B,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,QAAA,CAAS,IAAI,CAAA;AAC/F,EAAA,MAAM,6BAAA,EAA+B,6BAAA,sBAAM,EAAwB,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,IAAI,CAAA;AAOhF,EAAA,MAAM;AAAA,IACJ,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,EACF,EAAA,EAKI,KAAA,CAAM,MAAA;AAAA,IACR,CAAC,GAAA,EAAK,IAAA,EAAM,KAAA,EAAA,GAAA;AAAA;AAAA,MAEV,IAAA,CAAK,YAAA,IAAgB,MAAA,EACjB;AAAA,QACE,GAAG,GAAA;AAAA,QACH,UAAA,EAAY,CAAC,GAAG,GAAA,CAAI,UAAA,EAAY,EAAE,WAAA,EAAa,IAAA,CAAK,QAAA,EAAU,IAAA,EAAM,KAAK,CAAC;AAAA,MAC5E,EAAA,EACA,IAAA,CAAK,KAAA,IAAS,QAAA,EACd;AAAA,QACE,GAAG,GAAA;AAAA,QACH,MAAA,EAAQ;AAAA,UACN,GAAG,GAAA,CAAI,MAAA;AAAA,UACP;AAAA,YACE,WAAA,EAAa,cAAA,CAAe,MAAA,EAAQ,kBAAA,CAAmB,KAAA,EAAO,KAAK,CAAC,CAAA;AAAA,YACpE,IAAA,EAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF,EAAA,EACA,IAAA,CAAK,YAAA,IAAgB,WAAA,EACrB;AAAA,QACE,GAAG,GAAA;AAAA,QACH,QAAA,EAAU,CAAC,GAAG,GAAA,CAAI,QAAA,EAAU,EAAE,WAAA,EAAa,IAAA,CAAK,QAAA,EAAU,IAAA,EAAM,KAAK,CAAC;AAAA,MACxE,EAAA,EACA;AAAA,QACE,GAAG,GAAA;AAAA,QACH,SAAA,EAAW;AAAA,UACT,GAAG,GAAA,CAAI,SAAA;AAAA,UACP;AAAA,YACE,WAAA,EAAa,cAAA,CAAe,MAAA,EAAQ,kBAAA,CAAmB,KAAA,EAAO,KAAK,CAAC,CAAA;AAAA,YACpE,IAAA,EAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IAAA,CAAA;AAAA,IACN,EAAE,MAAA,EAAQ,CAAC,CAAA,EAAG,SAAA,EAAW,CAAC,CAAA,EAAG,QAAA,EAAU,CAAC,CAAA,EAAG,UAAA,EAAY,CAAC,EAAE;AAAA,EAC5D,CAAA;AAEA,EAAA,MAAM,qBAAA,EAA+C,SAAA,CAAU,MAAA,CAAO,CAAC,GAAA,EAAK,IAAA,EAAA,GAAS;AACnF,IAAA,OAAO,EAAE,GAAG,GAAA,EAAK,CAAC,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA,EAAG,IAAA,CAAK,YAAY,CAAA;AAAA,EACpD,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,MAAM,gBAAA,EAAkB,CAAC,GAAG,OAAA,EAAS,GAAG,SAAS,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,IAAA,EAAA,GAAS;AAEvE,IAAA,GAAA,CACE,iDAAA,IAAmB,CAAK,IAAA,CAAK,KAAA,IAAS,QAAA,EAAU,QAAA,EAAU,UAAA,EAAY,IAAA,CAAK,WAAW,EAAA,IACtF,IAAA,CAAK,IAAA,CAAK,QAAA,EACV;AACA,MAAA,OAAO,GAAA;AAAA,IACT;AACA,IAAA,OAAO,EAAE,GAAG,GAAA,EAAK,CAAC,IAAA,CAAK,WAAW,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,SAAS,CAAA;AAAA,EAC1D,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,MAAM,OAAA,EAAS,OAAA,CAGZ,MAAA,CAAO,CAAC,CAAA,EAAG,CAAA,EAAA,GAAM,EAAA,EAAI,qBAAA,EAAuB,CAAC,CAAA;AAEhD,EAAA,MAAM,cAAA,EAAgB;AAAA,IACpB,SAAA,EAAW,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,WAAW,CAAA;AAAA,IAC7C,MAAA,EAAQ,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,WAAW,CAAA;AAAA,IACvC,GAAA,EAAK,QAAA,CAAS,GAAA;AAAA,MAAI,CAAC,CAAA,EAAA,GACjB,CAAA,CAAE,IAAA,CAAK,kBAAA,EACH;AAAA,QACE,IAAA,EAAM,CAAA,CAAE,IAAA,CAAK,QAAA;AAAA,QACb,OAAA,EAAS;AAAA,MACX,EAAA,EACA,CAAA,CAAE,IAAA,CAAK;AAAA,IACb,CAAA;AAAA,IACA,KAAA,EAAO,UAAA,CAAW,GAAA,CAAI,CAAC,CAAA,EAAA,GAAA,CAAO;AAAA,MAC5B,IAAA,EAAM,CAAA,CAAE,IAAA,CAAK,IAAA;AAAA,MACb,IAAA,EAAM,CAAA,CAAE,IAAA,CAAK,QAAA;AAAA,MACb,GAAI,CAAA,CAAE,IAAA,CAAK,QAAA,EAAU,EAAE,SAAA,EAAW,CAAA,CAAE,IAAA,CAAK,QAAQ,EAAA,EAAI,CAAC,CAAA;AAAA,MACtD,GAAI,CAAA,CAAE,IAAA,CAAK,kBAAA,EAAoB,EAAE,OAAA,EAAS,KAAK,EAAA,EAAI,CAAC;AAAA,IACtD,CAAA,CAAE;AAAA,EACJ,CAAA;AAIA,EAAA,MAAM,OAAA,EAAS,kBAAA,EAAoB,iBAAA,CAAkB,KAAA,CAAM,CAAC,CAAA,CAAG,OAAA,EAAS,YAAA,CAAa,MAAA;AAErF,EAAA,MAAM,uBAAA,EAAkD,sBAAA,CACrD,GAAA,CAAI,CAAC,IAAA,EAAA,GAAA,CAAU;AAAA,IACd,UAAA,EAAY,IAAA,CAAK,UAAA;AAAA,IACjB,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAC,QAAA,EAAA,GAAA,CAAc;AAAA,MACnC,MAAA,EAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,KAAA,EAAO,QAAA,CAAS,KAAA,CAAM,GAAA,CAAI,CAAC,MAAA,EAAA,GAAW;AACpC,QAAA,MAAM,KAAA,EAAO,KAAA,CAAM,IAAA,CAAK,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,QAAA,IAAY,MAAM,CAAA;AACnD,QAAA,iCAAA;AAAA,UACE,IAAA;AAAA,UACA,CAAA,6BAAA,EAAgC,MAAM,CAAA,8BAAA,EAAiC,IAAA,CAAK,UAAU,CAAA;AAAA,QAAA;AAExF,QAAA;AAAY,MAAA;AACb,IAAA;AACD,EAAA;AAIF,IAAA;AAA2B,EAAA;AAG/B,EAAA;AAA+B,IAAA;AACM,IAAA;AACnC,IAAA;AACO,IAAA;AACS,IAAA;AAGD,MAAA;AACH,MAAA;AACO,MAAA;AACkE,IAAA;AACjF,IAAA;AAGW,MAAA;AACH,MAAA;AACO,MAAA;AACP,MAAA;AACe,QAAA;AACa,UAAA;AACxB,UAAA;AACG,UAAA;AACC,UAAA;AACQ,QAAA;AACtB,MAAA;AACF,IAAA;AACA,IAAA;AAIW,MAAA;AACH,MAAA;AACI,MAAA;AACuD,MAAA;AACF,MAAA;AAC1B,MAAA;AACiB,MAAA;AAEpD,QAAA;AAEI,UAAA;AAEA,UAAA;AACE,YAAA;AAA+D,UAAA;AAEjE,UAAA;AACE,YAAA;AAAO,UAAA;AAET,UAAA;AAAqB,QAAA;AACpB,MAAA;AAEJ,MAAA;AACmE,MAAA;AAEtE,QAAA;AAEA,QAAA;AACE,UAAA;AAAoB,QAAA;AAGtB,QAAA;AACA,QAAA;AAAiC,MAAA;AAChC,IAAA;AACH,IAAA;AAGW,MAAA;AACH,MAAA;AAC8B,IAAA;AACtC,IAAA;AAGD,MAAA;AAC2B,QAAA;AAChB,QAAA;AACI,QAAA;AACG,UAAA;AACL,UAAA;AACG,QAAA;AACb,MAAA;AACF,IAAA;AACF,IAAA;AAEA,MAAA;AAAO,QAAA;AACG,QAAA;AACqC,QAAA;AAC2B,QAAA;AAC9D,MAAA;AACZ,IAAA;AACD,EAAA;AAIH,EAAA;AAEA,EAAA;AAAO,IAAA;AACL,IAAA;AACS,MAAA;AACP,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACuD,MAAA;AACrB,MAAA;AAClC,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACF,EAAA;AAEJ;AAIA;AACE,EAAA;AACA,EAAA;AACA,EAAA;AACE,IAAA;AAEA,IAAA;AACA,IAAA;AAEA,IAAA;AAEE,MAAA;AACE,QAAA;AAAA,MAAA;AAGA,QAAA;AACA,QAAA;AACE,UAAA;AAAO,QAAA;AACT,MAAA;AAGA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACE,UAAA;AAAO,QAAA;AACT,MAAA;AAEA,QAAA;AAAO,MAAA;AACT,IAAA;AAEF,IAAA;AACA,IAAA;AAEE,MAAA;AAAW,IAAA;AACb,EAAA;AAEF,EAAA;AACF;AAEA;AAKE,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACE,IAAA;AACE,MAAA;AACE,QAAA;AACA,QAAA;AAAoD,UAAA;AAC5C,UAAA;AAC0E,UAAA;AACA,QAAA;AAElF,QAAA;AAAO,MAAA;AAET,MAAA;AACE,QAAA;AAAoD,UAAA;AAC5C,UAAA;AACiC,QAAA;AAEzC,QAAA;AAAO,MAAA;AAET,MAAA;AACE,QAAA;AAAoD,UAAA;AAC5C,UAAA;AACuB,YAAA;AACjB,YAAA;AAEN,cAAA;AAEI,gBAAA;AAEA,gBAAA;AACA,gBAAA;AAAO,cAAA;AACR,YAAA;AAEmB,UAAA;AAC1B,QAAA;AAEJ,QAAA;AAAO,MAAA;AAET,MAAA;AACE,QAAA;AAAwC,UAAA;AAChC,UAAA;AACgB,QAAA;AAExB,QAAA;AAAO,MAAA;AAET,MAAA;AACE,QAAA;AAA0B,UAAA;AAEtB,YAAA;AAAkC,UAAA;AAElC,YAAA;AAAkC,UAAA;AAElC,YAAA;AAAgC,UAAA;AAEhC,YAAA;AAAiC,UAAA;AAEjC,YAAA;AAA6B,UAAA;AAE7B,YAAA;AAA0C,UAAA;AAE1C,YAAA;AAAO,cAAA;AACC,cAAA;AACqB,YAAA;AAC7B,UAAA;AAGA,YAAA;AAAO,UAAA;AAEP,YAAA;AAAuB,UAAA;AAEvB,YAAA;AAAiC,UAAA;AAEjC,YAAA;AAAiC,QAAA;AACrC,MAAA;AAGF,MAAA;AAAgD,IAAA;AAElD,IAAA;AAA2B,EAAA;AAI7B,EAAA;AAEA,EAAA;AACF;AAOA;AACE,EAAA;AAAiC,IAAA;AACmD,EAAA;AAEpF,EAAA;AACA,EAAA;AACE,IAAA;AACA,IAAA;AACA,IAAA;AAA2E,EAAA;AAE/E;AAEA;AACE,EAAA;AACF;ADxLA;AACA;AACA;AACA;AACA","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-C7MZATA3.js","sourcesContent":[null,"import invariant from \"invariant\";\nimport keyBy from \"lodash/keyBy\";\nimport sortBy from \"lodash/sortBy\";\n\nimport { getCryptoCurrencyById } from \"./currencies\";\nimport {\n GateGovernanceRulesSet,\n GateTradelink,\n GateTradelinkAssetManager,\n GateTradelinkEntity,\n GateTradelinkExchange,\n GateTradelinkNetwork,\n GateTradelinkOnboardingStatus,\n GateWorkspacePermission,\n GateWorkspaceRule,\n ManifestAccountRuleCreateSplTokenAccount,\n ManifestAccountRuleTransferSplToken,\n ManifestWorkspaceRule,\n} from \"./types\";\nimport {\n Connection,\n DevicesPool,\n GateAccount,\n GateExchange,\n GateGroup,\n GatePolicy,\n GateUser,\n GateUserRequest,\n GateVaultEntity,\n GateWhitelist,\n Manifest,\n ManifestAccountConfig,\n ManifestAccountRule,\n ManifestAccountRuleCardanoStaking,\n ManifestAccountRuleDeployContract,\n ManifestAccountRuleMessageSigning,\n ManifestAccountRuleMultiAuth,\n ManifestAccountRulePolkadotStaking,\n ManifestAccountRuleRawSigning,\n ManifestAccountRuleSCI,\n ManifestAccountRuleSolanaStaking,\n ManifestAccountRuleStake,\n ManifestAccountRuleTezosDelegation,\n ManifestAccountRuleThreshold,\n ManifestAccountRuleWhitelist,\n ManifestExchange,\n ManifestPolicy,\n ManifestWhitelistAddress,\n Organization,\n UserWithDevice,\n UserWithoutDevice,\n} from \"./types\";\nimport { getDefaultUsername } from \"./utils\";\nimport { deserializeUnitValue, unwrapConnection } from \"./utils\";\n\nconst ADMIN_START_DEVICE_INDEX = 4;\nconst DEFAULT_ADMINS_COUNT = 3;\nconst NB_SHARED_OWNERS = 3;\n\nexport const getDeviceIndex = (index: number): number => {\n const n = ADMIN_START_DEVICE_INDEX + index;\n if (n < ADMIN_START_DEVICE_INDEX + NB_SHARED_OWNERS) {\n return n;\n }\n return n + NB_SHARED_OWNERS;\n};\n\nexport type GateGroupsByName = Record<string, GateGroup>;\nexport type GateWhitelistsByName = Record<string, GateWhitelist>;\nexport type GateAccountsByName = Record<string, GateAccount>;\nexport type GateVaultEntitiesByName = Record<string, GateVaultEntity>;\nexport type GateExchangesByName = Record<string, GateExchange>;\nexport type GatePoliciesByName = Record<string, GatePolicy>;\nexport type GateTradelinkCustodianByName = Record<string, GateTradelinkEntity<\"CUSTODIAN\">>;\nexport type GateTradelinkHSMCustodianByName = Record<string, GateTradelink>;\nexport type GateTradelinkExchangeByName = Record<string, GateTradelinkEntity<\"EXCHANGE\">>;\nexport type GateTradelinkHSMExchangeByName = Record<string, GateTradelinkExchange>;\nexport type GateTradelinkHSMAssetManagerByName = Record<string, GateTradelinkAssetManager>;\nexport type GateTradelinkAssetManagerByName = Record<string, GateTradelinkEntity<\"ASSET_MANAGER\">>;\n\nexport type RecipeRawData = {\n pendingUserRequests: GateUserRequest[];\n groupsByName: GateGroupsByName;\n whitelistsByName: GateWhitelistsByName;\n accountsByName: GateAccountsByName;\n vaultEntitiesByName: GateVaultEntitiesByName;\n exchangesByName: GateExchangesByName;\n policiesByName: GatePoliciesByName;\n usersWithDevice: UserWithDevice[];\n usersWithoutDevice: UserWithoutDevice[];\n tradelinkCustodiansByName: GateTradelinkCustodianByName;\n tradelinkHSMCustodiansByName: GateTradelinkHSMCustodianByName;\n tradelinkExchangesByName: GateTradelinkExchangeByName;\n tradelinkHSMExchangesByName: GateTradelinkHSMExchangeByName;\n tradelinkHSMAssetManagersByName: GateTradelinkHSMAssetManagerByName;\n tradelinkAssetManagersByName: GateTradelinkAssetManagerByName;\n tradelinkNetwork: GateTradelinkNetwork;\n tradelinkOnboardingStatus: GateTradelinkOnboardingStatus;\n};\n\nexport type RecipeManifestResult = {\n manifest: Manifest;\n rawData: RecipeRawData;\n};\n\nexport type RecipeManifestOptions = {\n saveAccountsIndexes?: boolean;\n saveAccountsTypes?: boolean;\n};\n\nexport default async function recipeManifest(\n pool: DevicesPool,\n options: RecipeManifestOptions = {},\n): Promise<RecipeManifestResult> {\n const adminDevices = await pool.getOnboardingAdminDevices();\n const admin = await pool.login(adminDevices[0]![1]);\n const [\n organization,\n pendingUserRequestsConnection,\n usersConnection,\n groupsConnection,\n accountsConnection,\n vaultEntitiesConnection,\n whitelistsConnection,\n exchangesConnection,\n policiesConnection,\n tradelinkCustodianConnection,\n tradelinkHSMCustodianConnection,\n tradelinkExchangeConnection,\n tradelinkHSMExchangeConnection,\n tradelinkHSMAssetManagerConnection,\n tradelinkAssetManagerConnection,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n allWorkspaceRulesConnection,\n ] = await Promise.all([\n admin.network<Organization>(\"GET\", \"/organization\"),\n admin\n .network<Connection<GateUserRequest>>(\n \"GET\",\n `/requests?type=CREATE_ADMIN&type=CREATE_OPERATOR&type=CREATE_API_USER&status=PENDING_REGISTRATION&status=PENDING_APPROVAL`,\n )\n // for some reason this particular one can fail when targeting prod (not sure why)\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateUser>>(\n \"GET\",\n \"/people?status=ACTIVE&status=ACCESS_SUSPENDED&role=ADMIN&role=OPERATOR&pageSize=-1\",\n ),\n admin.network<Connection<GateGroup>>(\"GET\", \"/groups?pageSize=-1\"),\n admin.network<Connection<GateAccount>>(\n \"GET\",\n \"/accounts?status=ACTIVE&status=APPROVED&status=PENDING&status=VIEW_ONLY&pageSize=-1\",\n ),\n admin.network<Connection<GateVaultEntity>>(\"GET\", \"/entities?pageSize=-1\"),\n admin.network<Connection<GateWhitelist>>(\"GET\", \"/whitelists?pageSize=-1\"),\n admin\n .network<Connection<GateExchange>>(\"GET\", \"/exchanges?pageSize=-1\")\n // handle case where /exchanges is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GatePolicy>>(\"GET\", \"/policies?pageSize=-1\")\n // handle case where /policies is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"CUSTODIAN\">>>(\"GET\", \"/tradelink/custodians\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelink>>(\"GET\", \"/tradelink/hsm-custodians\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n\n admin.network<Connection<GateTradelinkEntity<\"EXCHANGE\">>>(\"GET\", \"/tradelink/exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelinkExchange>>(\"GET\", \"/tradelink/hsm-exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkAssetManager>>(\"GET\", \"/tradelink/hsm-asset-managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"ASSET_MANAGER\">>>(\"GET\", \"/tradelink/asset_managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<GateTradelinkNetwork>(\"GET\", \"/tradelink/network\").catch(\n /* istanbul ignore next */ () => ({\n id: \"\",\n asset_managers: [],\n custodian: {\n approver_group_id: 0,\n code: \"\",\n id: \"\",\n logo_url: \"\",\n name: \"\",\n whitelist_id: 0,\n },\n exchanges: [],\n }),\n ),\n admin\n .network<GateTradelinkOnboardingStatus>(\"GET\", \"/tradelink/onboarding\")\n .catch(\n /* istanbul ignore next */ (): GateTradelinkOnboardingStatus => ({ status: \"NOT_READY\" }),\n ),\n admin.network<Connection<GateWorkspaceRule>>(\"GET\", \"/workspace-rules\").catch(\n /* istanbul ignore next */ (): Connection<GateWorkspaceRule> => ({\n edges: [],\n pageInfo: { count: 0, hasNextPage: false },\n }),\n ),\n ]);\n\n const pendingUserRequests: GateUserRequest[] = unwrapConnection(pendingUserRequestsConnection);\n const users: GateUser[] = sortBy(unwrapConnection(usersConnection), \"id\");\n const groups: GateGroup[] = unwrapConnection(groupsConnection);\n const whitelists: GateWhitelist[] = unwrapConnection(whitelistsConnection);\n const accounts: GateAccount[] = sortBy(unwrapConnection(accountsConnection), \"index\");\n const vaultEntities: GateVaultEntity[] = unwrapConnection(vaultEntitiesConnection);\n const exchanges: GateExchange[] = unwrapConnection(exchangesConnection);\n const policies: GatePolicy[] = unwrapConnection(policiesConnection);\n const tradelinkCustodians: GateTradelinkEntity<\"CUSTODIAN\">[] = unwrapConnection(\n tradelinkCustodianConnection,\n );\n const tradelinkHSMCustodians: GateTradelink[] = unwrapConnection(tradelinkHSMCustodianConnection);\n const tradelinkExchanges: GateTradelinkEntity<\"EXCHANGE\">[] = unwrapConnection(\n tradelinkExchangeConnection,\n );\n const tradelinkHSMExchanges: GateTradelinkExchange[] = unwrapConnection(\n tradelinkHSMExchangeConnection,\n );\n const tradelinkHSMAssetManagers: GateTradelinkAssetManager[] = unwrapConnection(\n tradelinkHSMAssetManagerConnection,\n );\n const tradelinkAssetManagers: GateTradelinkEntity<\"ASSET_MANAGER\">[] = unwrapConnection(\n tradelinkAssetManagerConnection,\n );\n const allWorkspaceRules = unwrapConnection(allWorkspaceRulesConnection);\n const rootWorkspaceRule = allWorkspaceRules.find((r) => r.permission === \"ROOT\") ?? null;\n const apiAdminWorkspaceRules = allWorkspaceRules.filter((r) => r.permission !== \"ROOT\");\n\n const groupsByName = keyBy(groups, (group) => group.name);\n const whitelistsByName = keyBy(whitelists, (w) => w.name);\n const accountsByName = keyBy(accounts, (a) => a.name);\n const vaultEntitiesByName = keyBy(vaultEntities, (e) => e.name);\n const exchangesByName = keyBy(exchanges, (e) => e.name);\n const policiesByName = keyBy(policies, (e) => e.name);\n const tradelinkCustodiansByName = keyBy(tradelinkCustodians, (e) => e.name);\n const tradelinkHSMCustodiansByName = keyBy(\n tradelinkHSMCustodians,\n (e) => e.network.custodian.name,\n );\n const tradelinkExchangesByName = keyBy(tradelinkExchanges, (e) => e.name);\n const tradelinkHSMExchangesByName = keyBy(tradelinkHSMExchanges, (e) => e.hsm_data.name);\n const tradelinkHSMAssetManagersByName = keyBy(tradelinkHSMAssetManagers, (e) => e.hsm_data.name);\n const tradelinkAssetManagersByName = keyBy(tradelinkAssetManagers, (e) => e.name);\n\n // gate is sending all active users by order of creation\n // we rely on index in the reduce() to get the device index assuming we take them in order\n //\n // FIXME there is something weird with the typing of this reduce :(\n // @ts-ignore\n const {\n admins: _admins,\n operators,\n apiUsers,\n apiV2Users,\n }: {\n admins: Array<{ deviceIndex: number; user: GateUser }>;\n operators: Array<{ deviceIndex: number; user: GateUser }>;\n apiUsers: Array<{ deviceIndex: number; user: GateUser }>;\n apiV2Users: Array<{ username: string; user: GateUser }>;\n } = users.reduce(\n (acc, curr, index) =>\n // @ts-ignore\n curr.device_type === \"API\"\n ? {\n ...acc,\n apiV2Users: [...acc.apiV2Users, { deviceIndex: curr.username, user: curr }],\n }\n : curr.role === \"ADMIN\"\n ? {\n ...acc,\n admins: [\n ...acc.admins,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n }\n : curr.device_type === \"SOFT_PSD\"\n ? {\n ...acc,\n apiUsers: [...acc.apiUsers, { deviceIndex: curr.username, user: curr }],\n }\n : {\n ...acc,\n operators: [\n ...acc.operators,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n },\n { admins: [], operators: [], apiUsers: [], apiV2Users: [] },\n );\n\n const operatorsDevicesByID: Record<string, number> = operators.reduce((acc, curr) => {\n return { ...acc, [curr.user.id]: curr.deviceIndex };\n }, {});\n\n const customUsernames = [..._admins, ...operators].reduce((acc, curr) => {\n // don't assign custom username if user has default name\n if (\n getDefaultUsername(curr.user.role === \"ADMIN\" ? \"admin\" : \"operator\", curr.deviceIndex) ===\n curr.user.username\n ) {\n return acc;\n }\n return { ...acc, [curr.deviceIndex]: curr.user.username };\n }, {});\n\n const admins = _admins\n // remove admins 4, 5, 6, they are implicitly created during onboarding\n // we still want to fetch them first to eventually collect custom usernames\n .filter((_, i) => i > DEFAULT_ADMINS_COUNT - 1);\n\n const usersManifest = {\n operators: operators.map((o) => o.deviceIndex),\n admins: admins.map((a) => a.deviceIndex),\n api: apiUsers.map((a) =>\n a.user.view_all_override\n ? {\n name: a.user.username,\n viewAll: true,\n }\n : a.user.username,\n ),\n apiV2: apiV2Users.map((a) => ({\n role: a.user.role,\n name: a.user.username,\n ...(a.user.pub_key ? { publicKey: a.user.pub_key } : {}),\n ...(a.user.view_all_override ? { viewAll: true } : {}),\n })),\n };\n\n // we assume that if ROOT workspace rule exist, we take the workspace quorum from there,\n // else, we take it from the legacy \"organization\" object\n const quorum = rootWorkspaceRule ? rootWorkspaceRule.steps[0]!.quorum : organization.quorum;\n\n const manifestWorkspaceRules: ManifestWorkspaceRule[] = apiAdminWorkspaceRules\n .map((rule) => ({\n permission: rule.permission as Exclude<GateWorkspacePermission, \"ROOT\">,\n steps: rule.steps.map((gateStep) => ({\n quorum: gateStep.quorum,\n users: gateStep.users.map((pubKey) => {\n const user = users.find((u) => u.pub_key === pubKey);\n invariant(\n user,\n `Can't find user with pub key ${pubKey} referenced in workspace rule ${rule.permission}`,\n );\n return user.username;\n }),\n })),\n }))\n .filter((rule) => {\n // only output the rules that have users defined\n return rule.steps.length > 0;\n });\n\n const fullManifest: Manifest = {\n quorum: quorum === 2 ? undefined : quorum,\n customUsernames,\n users: usersManifest,\n workspaceRules: manifestWorkspaceRules,\n groups: groups\n .filter((g) => g.status === \"ACTIVE\")\n .map((g) => ({\n name: g.name,\n description: g.description,\n users: g.members.map((m) => (m.is_api ? m.username : operatorsDevicesByID[m.id]!)),\n })),\n whitelists: whitelists\n .filter((w) => w.status === \"ACTIVE\")\n .map((w) => ({\n name: w.name,\n description: w.description,\n type: w.whitelist_type,\n addresses: w.addresses.map(\n (a): ManifestWhitelistAddress => ({\n name: a.name,\n address: a.address,\n currency: a.currency,\n destination_tags: a.destination_tags,\n }),\n ),\n })),\n accounts: accounts\n // we want to get rid of VIEW_ONLY account see #76\n .filter((a) => a.status === \"ACTIVE\")\n .map((a) => ({\n name: a.name,\n currency: a.currency,\n ...(options.saveAccountsTypes ? { accountType: a.account_type } : {}),\n derivationMode: a.derivation_mode === \"STANDARD\" ? undefined : a.derivation_mode,\n contractAddress: a.contract_address || undefined,\n ...(options.saveAccountsIndexes ? { index: a.index } : {}),\n ...(a.parent\n ? {\n parentAccount: (() => {\n const parentAccount = accounts.find((acc) => acc.id === a.parent);\n /* istanbul ignore if */\n if (!parentAccount) {\n throw new Error(`Can't find parent account with id ${a.parent}`);\n }\n if (parentAccount.status !== \"ACTIVE\") {\n return undefined;\n }\n return parentAccount.name;\n })(),\n }\n : {}),\n rules: extractRules(a.governance_rules, a.currency, operatorsDevicesByID),\n ...(() => {\n const config: ManifestAccountConfig = {};\n\n if (a.nfts_gallery_enabled) {\n config.nftGallery = true;\n }\n\n const hasConfig = Object.keys(config).length > 0;\n return hasConfig ? { config } : {};\n })(),\n })),\n entities: vaultEntities\n .filter((e) => e.status === \"ACTIVE\")\n .map((e) => ({\n name: e.name,\n accounts: e.accounts.map((a) => a.name),\n })),\n exchanges: exchanges\n .filter((e) => e.status === \"ACTIVE\")\n .map(\n (e): ManifestExchange => ({\n name: e.name,\n platform: e.platform,\n configuration: {\n apiKey: \"<not-retrievable>\",\n apiSecret: \"<not-retrievable>\",\n },\n }),\n ),\n policies: policies.map((p): ManifestPolicy => {\n return {\n name: p.name,\n ...(p.currency ? { currency: p.currency } : {}),\n rules: extractRules(p.governance_rules, p.currency, operatorsDevicesByID),\n status: p.status,\n };\n }),\n };\n\n // clean out un-necessary keys\n const manifest = pickNonEmpty(fullManifest);\n\n return {\n manifest,\n rawData: {\n pendingUserRequests,\n groupsByName,\n whitelistsByName,\n accountsByName,\n vaultEntitiesByName,\n usersWithDevice: [..._admins, ...operators, ...apiUsers],\n usersWithoutDevice: [...apiV2Users],\n exchangesByName,\n policiesByName,\n tradelinkCustodiansByName,\n tradelinkHSMCustodiansByName,\n tradelinkExchangesByName,\n tradelinkHSMExchangesByName,\n tradelinkHSMAssetManagersByName,\n tradelinkAssetManagersByName,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n },\n };\n}\n\n// recursively create a minimal object (removing empty arrays etc.)\n// yeah.. lot of @ts-ignore in the function!\nfunction pickNonEmpty<T extends Record<string, any>>(obj: T) {\n const out = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n /* istanbul ignore if */\n if (!key) throw new Error(`Invalid key at index ${i}`);\n const val = obj[key];\n // @ts-ignore\n const getSanitized = (val: any) => {\n /* istanbul ignore if */\n if (val === null) {\n return;\n } else if (Array.isArray(val)) {\n // @ts-ignore\n const withoutEmpty = val.map(getSanitized).filter((v) => v !== undefined);\n if (withoutEmpty.length > 0) {\n return withoutEmpty;\n }\n } else if (typeof val === \"object\") {\n // @ts-ignore\n const subObj: Record<string, unknown> = val;\n const nonEmptyVal = pickNonEmpty(subObj);\n const nbKeys = Object.keys(nonEmptyVal).length;\n if (nbKeys > 0) {\n return nonEmptyVal;\n }\n } else if (val !== undefined) {\n return val;\n }\n };\n const sanitized = getSanitized(val);\n if (sanitized !== undefined) {\n // @ts-ignore\n out[key] = sanitized;\n }\n }\n return out;\n}\n\nfunction extractRules(\n gateGovRules: GateGovernanceRulesSet[] | null,\n _currency: string | null,\n operatorsDevicesByID: Record<string, number>,\n): ManifestAccountRule[][] {\n const currency = _currency ? getCryptoCurrencyById(_currency) : null;\n const unit = currency ? currency.units[0]! : null;\n const governance_rules = gateGovRules || [];\n let rulesSets = governance_rules.map((r) => {\n const rules = r.rules.map((rule) => {\n if (rule.type === \"THRESHOLD\") {\n invariant(unit, \"Unit must be defined for THRESHOLD rule\");\n const thresholdRule: ManifestAccountRuleThreshold = {\n type: \"THRESHOLD\",\n ...(rule.data[0].min ? { min: deserializeUnitValue(unit, rule.data[0].min) } : {}),\n ...(rule.data[0].max ? { max: deserializeUnitValue(unit, rule.data[0].max) } : {}),\n };\n return thresholdRule;\n }\n if (rule.type === \"WHITELIST\") {\n const whitelistRule: ManifestAccountRuleWhitelist = {\n type: \"WHITELIST\",\n whitelists: rule.data.map((d) => d.name),\n };\n return whitelistRule;\n }\n if (rule.type === \"MULTI_AUTHORIZATIONS\") {\n const multiAuthRule: ManifestAccountRuleMultiAuth = {\n type: \"MULTI_AUTHORIZATIONS\",\n steps: rule.data.map((s) => ({\n quorum: s.quorum,\n ...(s.group.is_internal\n ? {\n users: s.group.members.map((m) => {\n const u = m.is_api ? m.username : operatorsDevicesByID[m.id];\n /* istanbul ignore if */\n if (!u) throw new Error(`Invalid user ${m}`);\n return u;\n }),\n }\n : { group: s.group.name }),\n })),\n };\n return multiAuthRule;\n }\n if (rule.type === \"SMART_CONTRACT_INTERACTION\") {\n const sciRule: ManifestAccountRuleSCI = {\n type: \"SMART_CONTRACT_INTERACTION\",\n enabled: rule.data[0].enabled,\n };\n return sciRule;\n }\n if (rule.type === \"TRANSACTION_FILTER\") {\n switch (rule.data.preset) {\n case \"TEZOS_DELEGATION\":\n return { type: \"TEZOS_DELEGATION\" } as ManifestAccountRuleTezosDelegation;\n case \"POLKADOT_STAKING\":\n return { type: \"POLKADOT_STAKING\" } as ManifestAccountRulePolkadotStaking;\n case \"SOLANA_STAKING\":\n return { type: \"SOLANA_STAKING\" } as ManifestAccountRuleSolanaStaking;\n case \"CARDANO_STAKING\":\n return { type: \"CARDANO_STAKING\" } as ManifestAccountRuleCardanoStaking;\n case \"RAW_SIGNING\":\n return { type: \"RAW_SIGNING\" } as ManifestAccountRuleRawSigning;\n case \"CREATE_SPL_TOKEN_ACCOUNT\":\n return { type: \"CREATE_SPL_TOKEN_ACCOUNT\" } as ManifestAccountRuleCreateSplTokenAccount;\n case \"TRANSFER_SPL_TOKEN\":\n return {\n type: \"TRANSFER_SPL_TOKEN\",\n contractAddress: rule.data.contract_address,\n } as ManifestAccountRuleTransferSplToken;\n case \"SEND\":\n // VG-18271 don't recipe \"SEND\" rule as it's the default\n return null;\n case \"STAKE\":\n return { type: \"STAKE\" } as ManifestAccountRuleStake;\n case \"MESSAGE_SIGNING\":\n return { type: \"MESSAGE_SIGNING\" } as ManifestAccountRuleMessageSigning;\n case \"DEPLOY_CONTRACT\":\n return { type: \"DEPLOY_CONTRACT\" } as ManifestAccountRuleDeployContract;\n }\n }\n // @ts-ignore\n throw new Error(`Unknown rule type ${rule.type}`);\n });\n return rules.filter(Boolean) as ManifestAccountRule[];\n });\n\n // see VG-22141\n rulesSets = enforceSCIRuleIfNecessary(rulesSets);\n\n return rulesSets;\n}\n\n// Enforce that if a RulesSet have a SCI-enabled rule, all the other RulesSet should have\n// a SCI-disabled rule\n//\n// see VG-22141\n//\nfunction enforceSCIRuleIfNecessary(rulesSets: ManifestAccountRule[][]): ManifestAccountRule[][] {\n const hasSCIRulesSet = rulesSets.find((rulesSet) =>\n rulesSet.find((rule) => rule.type === \"SMART_CONTRACT_INTERACTION\" && rule.enabled),\n );\n if (!hasSCIRulesSet) return rulesSets;\n return rulesSets.map((rulesSet) => {\n const sciRule = rulesSet.find((r) => r.type === \"SMART_CONTRACT_INTERACTION\");\n if (sciRule) return rulesSet;\n return [...rulesSet, { type: \"SMART_CONTRACT_INTERACTION\", enabled: false }];\n });\n}\n\nfunction countAPIUsersUntil(index: number, users: GateUser[]) {\n return users.slice(0, index).filter((u) => u.is_api).length;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-Z3OMUBXE.js","../src/recipeManifest.ts"],"names":[],"mappings":"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","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-Z3OMUBXE.js","sourcesContent":[null,"import invariant from \"invariant\";\nimport keyBy from \"lodash/keyBy\";\nimport sortBy from \"lodash/sortBy\";\n\nimport { getCryptoCurrencyById } from \"./currencies\";\nimport {\n GateGovernanceRulesSet,\n GateTradelink,\n GateTradelinkAssetManager,\n GateTradelinkEntity,\n GateTradelinkExchange,\n GateTradelinkNetwork,\n GateTradelinkOnboardingStatus,\n GateWorkspacePermission,\n GateWorkspaceRule,\n ManifestAccountRuleCreateSplTokenAccount,\n ManifestAccountRuleTransferSplToken,\n ManifestWorkspaceRule,\n} from \"./types\";\nimport {\n Connection,\n DevicesPool,\n GateAccount,\n GateExchange,\n GateGroup,\n GatePolicy,\n GateUser,\n GateUserRequest,\n GateVaultEntity,\n GateWhitelist,\n Manifest,\n ManifestAccountConfig,\n ManifestAccountRule,\n ManifestAccountRuleCardanoStaking,\n ManifestAccountRuleDeployContract,\n ManifestAccountRuleMessageSigning,\n ManifestAccountRuleMultiAuth,\n ManifestAccountRulePolkadotStaking,\n ManifestAccountRuleRawSigning,\n ManifestAccountRuleSCI,\n ManifestAccountRuleSolanaStaking,\n ManifestAccountRuleStake,\n ManifestAccountRuleTezosDelegation,\n ManifestAccountRuleThreshold,\n ManifestAccountRuleWhitelist,\n ManifestExchange,\n ManifestPolicy,\n ManifestWhitelistAddress,\n Organization,\n UserWithDevice,\n UserWithoutDevice,\n} from \"./types\";\nimport { getDefaultUsername } from \"./utils\";\nimport { deserializeUnitValue, unwrapConnection } from \"./utils\";\n\nconst ADMIN_START_DEVICE_INDEX = 4;\nconst DEFAULT_ADMINS_COUNT = 3;\nconst NB_SHARED_OWNERS = 3;\n\nexport const getDeviceIndex = (index: number): number => {\n const n = ADMIN_START_DEVICE_INDEX + index;\n if (n < ADMIN_START_DEVICE_INDEX + NB_SHARED_OWNERS) {\n return n;\n }\n return n + NB_SHARED_OWNERS;\n};\n\nexport type GateGroupsByName = Record<string, GateGroup>;\nexport type GateWhitelistsByName = Record<string, GateWhitelist>;\nexport type GateAccountsByName = Record<string, GateAccount>;\nexport type GateVaultEntitiesByName = Record<string, GateVaultEntity>;\nexport type GateExchangesByName = Record<string, GateExchange>;\nexport type GatePoliciesByName = Record<string, GatePolicy>;\nexport type GateTradelinkCustodianByName = Record<string, GateTradelinkEntity<\"CUSTODIAN\">>;\nexport type GateTradelinkHSMCustodianByName = Record<string, GateTradelink>;\nexport type GateTradelinkExchangeByName = Record<string, GateTradelinkEntity<\"EXCHANGE\">>;\nexport type GateTradelinkHSMExchangeByName = Record<string, GateTradelinkExchange>;\nexport type GateTradelinkHSMAssetManagerByName = Record<string, GateTradelinkAssetManager>;\nexport type GateTradelinkAssetManagerByName = Record<string, GateTradelinkEntity<\"ASSET_MANAGER\">>;\n\nexport type RecipeRawData = {\n pendingUserRequests: GateUserRequest[];\n groupsByName: GateGroupsByName;\n whitelistsByName: GateWhitelistsByName;\n accountsByName: GateAccountsByName;\n vaultEntitiesByName: GateVaultEntitiesByName;\n exchangesByName: GateExchangesByName;\n policiesByName: GatePoliciesByName;\n usersWithDevice: UserWithDevice[];\n usersWithoutDevice: UserWithoutDevice[];\n tradelinkCustodiansByName: GateTradelinkCustodianByName;\n tradelinkHSMCustodiansByName: GateTradelinkHSMCustodianByName;\n tradelinkExchangesByName: GateTradelinkExchangeByName;\n tradelinkHSMExchangesByName: GateTradelinkHSMExchangeByName;\n tradelinkHSMAssetManagersByName: GateTradelinkHSMAssetManagerByName;\n tradelinkAssetManagersByName: GateTradelinkAssetManagerByName;\n tradelinkNetwork: GateTradelinkNetwork;\n tradelinkOnboardingStatus: GateTradelinkOnboardingStatus;\n};\n\nexport type RecipeManifestResult = {\n manifest: Manifest;\n rawData: RecipeRawData;\n};\n\nexport type RecipeManifestOptions = {\n saveAccountsIndexes?: boolean;\n saveAccountsTypes?: boolean;\n};\n\nexport default async function recipeManifest(\n pool: DevicesPool,\n options: RecipeManifestOptions = {},\n): Promise<RecipeManifestResult> {\n const adminDevices = await pool.getOnboardingAdminDevices();\n const admin = await pool.login(adminDevices[0]![1]);\n const [\n organization,\n pendingUserRequestsConnection,\n usersConnection,\n groupsConnection,\n accountsConnection,\n vaultEntitiesConnection,\n whitelistsConnection,\n exchangesConnection,\n policiesConnection,\n tradelinkCustodianConnection,\n tradelinkHSMCustodianConnection,\n tradelinkExchangeConnection,\n tradelinkHSMExchangeConnection,\n tradelinkHSMAssetManagerConnection,\n tradelinkAssetManagerConnection,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n allWorkspaceRulesConnection,\n ] = await Promise.all([\n admin.network<Organization>(\"GET\", \"/organization\"),\n admin\n .network<Connection<GateUserRequest>>(\n \"GET\",\n `/requests?type=CREATE_ADMIN&type=CREATE_OPERATOR&type=CREATE_API_USER&status=PENDING_REGISTRATION&status=PENDING_APPROVAL`,\n )\n // for some reason this particular one can fail when targeting prod (not sure why)\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateUser>>(\n \"GET\",\n \"/people?status=ACTIVE&status=ACCESS_SUSPENDED&role=ADMIN&role=OPERATOR&pageSize=-1\",\n ),\n admin.network<Connection<GateGroup>>(\"GET\", \"/groups?pageSize=-1\"),\n admin.network<Connection<GateAccount>>(\n \"GET\",\n \"/accounts?status=ACTIVE&status=APPROVED&status=PENDING&status=VIEW_ONLY&pageSize=-1\",\n ),\n admin.network<Connection<GateVaultEntity>>(\"GET\", \"/entities?pageSize=-1\"),\n admin.network<Connection<GateWhitelist>>(\"GET\", \"/whitelists?pageSize=-1\"),\n admin\n .network<Connection<GateExchange>>(\"GET\", \"/exchanges?pageSize=-1\")\n // handle case where /exchanges is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GatePolicy>>(\"GET\", \"/policies?pageSize=-1\")\n // handle case where /policies is not supported by Gate\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"CUSTODIAN\">>>(\"GET\", \"/tradelink/custodians\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelink>>(\"GET\", \"/tradelink/hsm-custodians\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n\n admin.network<Connection<GateTradelinkEntity<\"EXCHANGE\">>>(\"GET\", \"/tradelink/exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<Connection<GateTradelinkExchange>>(\"GET\", \"/tradelink/hsm-exchanges\").catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkAssetManager>>(\"GET\", \"/tradelink/hsm-asset-managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin\n .network<Connection<GateTradelinkEntity<\"ASSET_MANAGER\">>>(\"GET\", \"/tradelink/asset_managers\")\n .catch(\n /* istanbul ignore next */ () => ({\n edges: [],\n pageInfo: { hasNextPage: false, count: 0 },\n }),\n ),\n admin.network<GateTradelinkNetwork>(\"GET\", \"/tradelink/network\").catch(\n /* istanbul ignore next */ () => ({\n id: \"\",\n asset_managers: [],\n custodian: {\n approver_group_id: 0,\n code: \"\",\n id: \"\",\n logo_url: \"\",\n name: \"\",\n whitelist_id: 0,\n },\n exchanges: [],\n }),\n ),\n admin\n .network<GateTradelinkOnboardingStatus>(\"GET\", \"/tradelink/onboarding\")\n .catch(\n /* istanbul ignore next */ (): GateTradelinkOnboardingStatus => ({ status: \"NOT_READY\" }),\n ),\n admin.network<Connection<GateWorkspaceRule>>(\"GET\", \"/workspace-rules\").catch(\n /* istanbul ignore next */ (): Connection<GateWorkspaceRule> => ({\n edges: [],\n pageInfo: { count: 0, hasNextPage: false },\n }),\n ),\n ]);\n\n const pendingUserRequests: GateUserRequest[] = unwrapConnection(pendingUserRequestsConnection);\n const users: GateUser[] = sortBy(unwrapConnection(usersConnection), \"id\");\n const groups: GateGroup[] = unwrapConnection(groupsConnection);\n const whitelists: GateWhitelist[] = unwrapConnection(whitelistsConnection);\n const accounts: GateAccount[] = sortBy(unwrapConnection(accountsConnection), \"index\");\n const vaultEntities: GateVaultEntity[] = unwrapConnection(vaultEntitiesConnection);\n const exchanges: GateExchange[] = unwrapConnection(exchangesConnection);\n const policies: GatePolicy[] = unwrapConnection(policiesConnection);\n const tradelinkCustodians: GateTradelinkEntity<\"CUSTODIAN\">[] = unwrapConnection(\n tradelinkCustodianConnection,\n );\n const tradelinkHSMCustodians: GateTradelink[] = unwrapConnection(tradelinkHSMCustodianConnection);\n const tradelinkExchanges: GateTradelinkEntity<\"EXCHANGE\">[] = unwrapConnection(\n tradelinkExchangeConnection,\n );\n const tradelinkHSMExchanges: GateTradelinkExchange[] = unwrapConnection(\n tradelinkHSMExchangeConnection,\n );\n const tradelinkHSMAssetManagers: GateTradelinkAssetManager[] = unwrapConnection(\n tradelinkHSMAssetManagerConnection,\n );\n const tradelinkAssetManagers: GateTradelinkEntity<\"ASSET_MANAGER\">[] = unwrapConnection(\n tradelinkAssetManagerConnection,\n );\n const allWorkspaceRules = unwrapConnection(allWorkspaceRulesConnection);\n const rootWorkspaceRule = allWorkspaceRules.find((r) => r.permission === \"ROOT\") ?? null;\n const apiAdminWorkspaceRules = allWorkspaceRules.filter((r) => r.permission !== \"ROOT\");\n\n const groupsByName = keyBy(groups, (group) => group.name);\n const whitelistsByName = keyBy(whitelists, (w) => w.name);\n const accountsByName = keyBy(accounts, (a) => a.name);\n const vaultEntitiesByName = keyBy(vaultEntities, (e) => e.name);\n const exchangesByName = keyBy(exchanges, (e) => e.name);\n const policiesByName = keyBy(policies, (e) => e.name);\n const tradelinkCustodiansByName = keyBy(tradelinkCustodians, (e) => e.name);\n const tradelinkHSMCustodiansByName = keyBy(\n tradelinkHSMCustodians,\n (e) => e.network.custodian.name,\n );\n const tradelinkExchangesByName = keyBy(tradelinkExchanges, (e) => e.name);\n const tradelinkHSMExchangesByName = keyBy(tradelinkHSMExchanges, (e) => e.hsm_data.name);\n const tradelinkHSMAssetManagersByName = keyBy(tradelinkHSMAssetManagers, (e) => e.hsm_data.name);\n const tradelinkAssetManagersByName = keyBy(tradelinkAssetManagers, (e) => e.name);\n\n // gate is sending all active users by order of creation\n // we rely on index in the reduce() to get the device index assuming we take them in order\n //\n // FIXME there is something weird with the typing of this reduce :(\n // @ts-ignore\n const {\n admins: _admins,\n operators,\n apiUsers,\n apiV2Users,\n }: {\n admins: Array<{ deviceIndex: number; user: GateUser }>;\n operators: Array<{ deviceIndex: number; user: GateUser }>;\n apiUsers: Array<{ deviceIndex: number; user: GateUser }>;\n apiV2Users: Array<{ username: string; user: GateUser }>;\n } = users.reduce(\n (acc, curr, index) =>\n // @ts-ignore\n curr.device_type === \"API\"\n ? {\n ...acc,\n apiV2Users: [...acc.apiV2Users, { deviceIndex: curr.username, user: curr }],\n }\n : curr.role === \"ADMIN\"\n ? {\n ...acc,\n admins: [\n ...acc.admins,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n }\n : curr.device_type === \"SOFT_PSD\"\n ? {\n ...acc,\n apiUsers: [...acc.apiUsers, { deviceIndex: curr.username, user: curr }],\n }\n : {\n ...acc,\n operators: [\n ...acc.operators,\n {\n deviceIndex: getDeviceIndex(index - countAPIUsersUntil(index, users)),\n user: curr,\n },\n ],\n },\n { admins: [], operators: [], apiUsers: [], apiV2Users: [] },\n );\n\n const operatorsDevicesByID: Record<string, number> = operators.reduce((acc, curr) => {\n return { ...acc, [curr.user.id]: curr.deviceIndex };\n }, {});\n\n const customUsernames = [..._admins, ...operators].reduce((acc, curr) => {\n // don't assign custom username if user has default name\n if (\n getDefaultUsername(curr.user.role === \"ADMIN\" ? \"admin\" : \"operator\", curr.deviceIndex) ===\n curr.user.username\n ) {\n return acc;\n }\n return { ...acc, [curr.deviceIndex]: curr.user.username };\n }, {});\n\n const admins = _admins\n // remove admins 4, 5, 6, they are implicitly created during onboarding\n // we still want to fetch them first to eventually collect custom usernames\n .filter((_, i) => i > DEFAULT_ADMINS_COUNT - 1);\n\n const usersManifest = {\n operators: operators.map((o) => o.deviceIndex),\n admins: admins.map((a) => a.deviceIndex),\n api: apiUsers.map((a) =>\n a.user.view_all_override\n ? {\n name: a.user.username,\n viewAll: true,\n }\n : a.user.username,\n ),\n apiV2: apiV2Users.map((a) => ({\n role: a.user.role,\n name: a.user.username,\n ...(a.user.pub_key ? { publicKey: a.user.pub_key } : {}),\n ...(a.user.view_all_override ? { viewAll: true } : {}),\n })),\n };\n\n // we assume that if ROOT workspace rule exist, we take the workspace quorum from there,\n // else, we take it from the legacy \"organization\" object\n const quorum = rootWorkspaceRule ? rootWorkspaceRule.steps[0]!.quorum : organization.quorum;\n\n const manifestWorkspaceRules: ManifestWorkspaceRule[] = apiAdminWorkspaceRules\n .map((rule) => ({\n permission: rule.permission as Exclude<GateWorkspacePermission, \"ROOT\">,\n steps: rule.steps.map((gateStep) => ({\n quorum: gateStep.quorum,\n users: gateStep.users.map((pubKey) => {\n const user = users.find((u) => u.pub_key === pubKey);\n invariant(\n user,\n `Can't find user with pub key ${pubKey} referenced in workspace rule ${rule.permission}`,\n );\n return user.username;\n }),\n })),\n }))\n .filter((rule) => {\n // only output the rules that have users defined\n return rule.steps.length > 0;\n });\n\n const fullManifest: Manifest = {\n quorum: quorum === 2 ? undefined : quorum,\n customUsernames,\n users: usersManifest,\n workspaceRules: manifestWorkspaceRules,\n groups: groups\n .filter((g) => g.status === \"ACTIVE\")\n .map((g) => ({\n name: g.name,\n description: g.description,\n users: g.members.map((m) => (m.is_api ? m.username : operatorsDevicesByID[m.id]!)),\n })),\n whitelists: whitelists\n .filter((w) => w.status === \"ACTIVE\")\n .map((w) => ({\n name: w.name,\n description: w.description,\n type: w.whitelist_type,\n addresses: w.addresses.map(\n (a): ManifestWhitelistAddress => ({\n name: a.name,\n address: a.address,\n currency: a.currency,\n destination_tags: a.destination_tags,\n }),\n ),\n })),\n accounts: accounts\n // we want to get rid of VIEW_ONLY account see #76\n .filter((a) => a.status === \"ACTIVE\")\n .map((a) => ({\n name: a.name,\n currency: a.currency,\n ...(options.saveAccountsTypes ? { accountType: a.account_type } : {}),\n derivationMode: a.derivation_mode === \"STANDARD\" ? undefined : a.derivation_mode,\n contractAddress: a.contract_address || undefined,\n ...(options.saveAccountsIndexes ? { index: a.index } : {}),\n ...(a.parent\n ? {\n parentAccount: (() => {\n const parentAccount = accounts.find((acc) => acc.id === a.parent);\n /* istanbul ignore if */\n if (!parentAccount) {\n throw new Error(`Can't find parent account with id ${a.parent}`);\n }\n if (parentAccount.status !== \"ACTIVE\") {\n return undefined;\n }\n return parentAccount.name;\n })(),\n }\n : {}),\n rules: extractRules(a.governance_rules, a.currency, operatorsDevicesByID),\n ...(() => {\n const config: ManifestAccountConfig = {};\n\n if (a.nfts_gallery_enabled) {\n config.nftGallery = true;\n }\n\n const hasConfig = Object.keys(config).length > 0;\n return hasConfig ? { config } : {};\n })(),\n })),\n entities: vaultEntities\n .filter((e) => e.status === \"ACTIVE\")\n .map((e) => ({\n name: e.name,\n accounts: e.accounts.map((a) => a.name),\n })),\n exchanges: exchanges\n .filter((e) => e.status === \"ACTIVE\")\n .map(\n (e): ManifestExchange => ({\n name: e.name,\n platform: e.platform,\n configuration: {\n apiKey: \"<not-retrievable>\",\n apiSecret: \"<not-retrievable>\",\n },\n }),\n ),\n policies: policies.map((p): ManifestPolicy => {\n return {\n name: p.name,\n ...(p.currency ? { currency: p.currency } : {}),\n rules: extractRules(p.governance_rules, p.currency, operatorsDevicesByID),\n status: p.status,\n };\n }),\n };\n\n // clean out un-necessary keys\n const manifest = pickNonEmpty(fullManifest);\n\n return {\n manifest,\n rawData: {\n pendingUserRequests,\n groupsByName,\n whitelistsByName,\n accountsByName,\n vaultEntitiesByName,\n usersWithDevice: [..._admins, ...operators, ...apiUsers],\n usersWithoutDevice: [...apiV2Users],\n exchangesByName,\n policiesByName,\n tradelinkCustodiansByName,\n tradelinkHSMCustodiansByName,\n tradelinkExchangesByName,\n tradelinkHSMExchangesByName,\n tradelinkHSMAssetManagersByName,\n tradelinkAssetManagersByName,\n tradelinkNetwork,\n tradelinkOnboardingStatus,\n },\n };\n}\n\n// recursively create a minimal object (removing empty arrays etc.)\n// yeah.. lot of @ts-ignore in the function!\nfunction pickNonEmpty<T extends Record<string, any>>(obj: T) {\n const out = {};\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n /* istanbul ignore if */\n if (!key) throw new Error(`Invalid key at index ${i}`);\n const val = obj[key];\n // @ts-ignore\n const getSanitized = (val: any) => {\n /* istanbul ignore if */\n if (val === null) {\n return;\n } else if (Array.isArray(val)) {\n // @ts-ignore\n const withoutEmpty = val.map(getSanitized).filter((v) => v !== undefined);\n if (withoutEmpty.length > 0) {\n return withoutEmpty;\n }\n } else if (typeof val === \"object\") {\n // @ts-ignore\n const subObj: Record<string, unknown> = val;\n const nonEmptyVal = pickNonEmpty(subObj);\n const nbKeys = Object.keys(nonEmptyVal).length;\n if (nbKeys > 0) {\n return nonEmptyVal;\n }\n } else if (val !== undefined) {\n return val;\n }\n };\n const sanitized = getSanitized(val);\n if (sanitized !== undefined) {\n // @ts-ignore\n out[key] = sanitized;\n }\n }\n return out;\n}\n\nfunction extractRules(\n gateGovRules: GateGovernanceRulesSet[] | null,\n _currency: string | null,\n operatorsDevicesByID: Record<string, number>,\n): ManifestAccountRule[][] {\n const currency = _currency ? getCryptoCurrencyById(_currency) : null;\n const unit = currency ? currency.units[0]! : null;\n const governance_rules = gateGovRules || [];\n let rulesSets = governance_rules.map((r) => {\n const rules = r.rules.map((rule) => {\n if (rule.type === \"THRESHOLD\") {\n invariant(unit, \"Unit must be defined for THRESHOLD rule\");\n const thresholdRule: ManifestAccountRuleThreshold = {\n type: \"THRESHOLD\",\n ...(rule.data[0].min ? { min: deserializeUnitValue(unit, rule.data[0].min) } : {}),\n ...(rule.data[0].max ? { max: deserializeUnitValue(unit, rule.data[0].max) } : {}),\n };\n return thresholdRule;\n }\n if (rule.type === \"WHITELIST\") {\n const whitelistRule: ManifestAccountRuleWhitelist = {\n type: \"WHITELIST\",\n whitelists: rule.data.map((d) => d.name),\n };\n return whitelistRule;\n }\n if (rule.type === \"MULTI_AUTHORIZATIONS\") {\n const multiAuthRule: ManifestAccountRuleMultiAuth = {\n type: \"MULTI_AUTHORIZATIONS\",\n steps: rule.data.map((s) => ({\n quorum: s.quorum,\n ...(s.group.is_internal\n ? {\n users: s.group.members.map((m) => {\n const u = m.is_api ? m.username : operatorsDevicesByID[m.id];\n /* istanbul ignore if */\n if (!u) throw new Error(`Invalid user ${m}`);\n return u;\n }),\n }\n : { group: s.group.name }),\n })),\n };\n return multiAuthRule;\n }\n if (rule.type === \"SMART_CONTRACT_INTERACTION\") {\n const sciRule: ManifestAccountRuleSCI = {\n type: \"SMART_CONTRACT_INTERACTION\",\n enabled: rule.data[0].enabled,\n };\n return sciRule;\n }\n if (rule.type === \"TRANSACTION_FILTER\") {\n switch (rule.data.preset) {\n case \"TEZOS_DELEGATION\":\n return { type: \"TEZOS_DELEGATION\" } as ManifestAccountRuleTezosDelegation;\n case \"POLKADOT_STAKING\":\n return { type: \"POLKADOT_STAKING\" } as ManifestAccountRulePolkadotStaking;\n case \"SOLANA_STAKING\":\n return { type: \"SOLANA_STAKING\" } as ManifestAccountRuleSolanaStaking;\n case \"CARDANO_STAKING\":\n return { type: \"CARDANO_STAKING\" } as ManifestAccountRuleCardanoStaking;\n case \"RAW_SIGNING\":\n return { type: \"RAW_SIGNING\" } as ManifestAccountRuleRawSigning;\n case \"CREATE_SPL_TOKEN_ACCOUNT\":\n return { type: \"CREATE_SPL_TOKEN_ACCOUNT\" } as ManifestAccountRuleCreateSplTokenAccount;\n case \"TRANSFER_SPL_TOKEN\":\n return {\n type: \"TRANSFER_SPL_TOKEN\",\n contractAddress: rule.data.contract_address,\n } as ManifestAccountRuleTransferSplToken;\n case \"SEND\":\n // VG-18271 don't recipe \"SEND\" rule as it's the default\n return null;\n case \"STAKE\":\n return { type: \"STAKE\" } as ManifestAccountRuleStake;\n case \"MESSAGE_SIGNING\":\n return { type: \"MESSAGE_SIGNING\" } as ManifestAccountRuleMessageSigning;\n case \"DEPLOY_CONTRACT\":\n return { type: \"DEPLOY_CONTRACT\" } as ManifestAccountRuleDeployContract;\n }\n }\n // @ts-ignore\n throw new Error(`Unknown rule type ${rule.type}`);\n });\n return rules.filter(Boolean) as ManifestAccountRule[];\n });\n\n // see VG-22141\n rulesSets = enforceSCIRuleIfNecessary(rulesSets);\n\n return rulesSets;\n}\n\n// Enforce that if a RulesSet have a SCI-enabled rule, all the other RulesSet should have\n// a SCI-disabled rule\n//\n// see VG-22141\n//\nfunction enforceSCIRuleIfNecessary(rulesSets: ManifestAccountRule[][]): ManifestAccountRule[][] {\n const hasSCIRulesSet = rulesSets.find((rulesSet) =>\n rulesSet.find((rule) => rule.type === \"SMART_CONTRACT_INTERACTION\" && rule.enabled),\n );\n if (!hasSCIRulesSet) return rulesSets;\n return rulesSets.map((rulesSet) => {\n const sciRule = rulesSet.find((r) => r.type === \"SMART_CONTRACT_INTERACTION\");\n if (sciRule) return rulesSet;\n return [...rulesSet, { type: \"SMART_CONTRACT_INTERACTION\", enabled: false }];\n });\n}\n\nfunction countAPIUsersUntil(index: number, users: GateUser[]) {\n return users.slice(0, index).filter((u) => u.is_api).length;\n}\n"]}
|
package/lib/createHSMBridge.d.ts
CHANGED
package/lib/createHSMBridge.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
5
|
-
require('./chunk-
|
|
3
|
+
var _chunk42W3DGXBjs = require('./chunk-42W3DGXB.js');
|
|
4
|
+
require('./chunk-LBTWTQGW.js');
|
|
5
|
+
require('./chunk-GBWFFILF.js');
|
|
6
6
|
require('./chunk-PZ5AY32C.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.default =
|
|
9
|
+
exports.default = _chunk42W3DGXBjs.createHSMBridge_default;
|
|
10
10
|
//# sourceMappingURL=createHSMBridge.js.map
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as Network, A as APIBearerTokenResponse, M as Manifest, D as DevicesPool, B as BakeManifestOptions, R as RunnableOptions, P as PoolOptions, a as ManifestAccount, G as GateAccount, b as ManifestAPIV2User, c as APIRequestResponse, d as DeployOptions, e as DestroyOptions, f as PsdModel, g as APIDevice, h as Device, I as Interactions, U as UserContext, i as GateTokenCurrency, j as MVInstance, k as ManifestTransaction, l as ManifestGroup, m as GateWhitelist, n as UTXOsPickingStrategy, o as GateTransaction, p as UpgradeOptions, W as WipeOptions, q as Interaction, T as TransportType } from './index
|
|
2
|
-
export { cD as APIBitcoinLikeSend, cB as APICreateTransactionRequest, cF as APIEstimateFeesResponse, cE as APIEthereumLikeSend, cC as APIGenericSend, cA as APIGetChallengeResponse, af as AccountStatus, ae as AccountType, a9 as AdminDevice, cG as CardanoBalances, cH as CardanoStakeInfo, a_ as CardanoVoteDelegationDrep, C as CliOptions, O as Connection, K as ConnectionEdge, c8 as CurrencyOrToken, c4 as DaemonAddress, cp as DataTradelinkNetworkEntity, cu as DeploymentStep, ct as DeploymentStepID, bU as DeserializedManifest, z as DevicesPoolOptions, E as EntityType, bW as FeesLevel, a5 as GateAPIKey, bi as GateAPIKeyRequest, b8 as GateAPIV2UserAccessRequest, aF as GateAccountBitcoin, aM as GateAccountCardano, aw as GateAccountCommon, aH as GateAccountERC20, az as GateAccountEthereum, ax as GateAccountExchangeOptions, aO as GateAccountPolkadot, b1 as GateAccountRequest, aI as GateAccountRipple, aL as GateAccountSolana, aJ as GateAccountStellar, aG as GateAccountTRC20, aK as GateAccountTezos, ay as GateAccountTradelinkData, aN as GateAccountTron, b3 as GateActivateRequest, a$ as GateAddress, c0 as GateCoinCapabilities, c1 as GateCurrency, a3 as GateDeviceType, ab as GateDigestGroup, bg as GateDigestsRequest, Q as GateEditWorkspaceRuleRequest, X as GateEntity, aT as GateExchange, bc as GateExchangeRequest, ac as GateFees, ad as GateFeesEIP1559, _ as GateForcedUnpledge, b6 as GateForcedUnpledgeRequest, b0 as GateGenericRequest, an as GateGovernanceRule, ao as GateGovernanceRulesSet, aa as GateGroup, bf as GateGroupRequest, be as GateGroupRequestTypeDefs, av as GateLabel, a8 as GateMessage, ba as GateMessageRequest, bh as GateOrganizationRequest, Y as GatePledgeIncrement, b5 as GatePledgeIncrementRequest, aU as GatePolicy, bl as GatePolicyRequest, Z as GateRepledge, b4 as GateRepledgeRequest, S as GateRequest, V as GateRequestType, ai as GateRuleMultiAuth, ah as GateRuleMultiAuthStep, al as GateRuleSCI, aj as GateRuleThreshold, am as GateRuleTransactionFilter, ak as GateRuleWhitelist, a7 as GateSCIConfig, b9 as GateSCIConfigRequest, b2 as GateSPLTokenAccountRequest, a0 as GateTradelink, a2 as GateTradelinkAssetManager, aD as GateTradelinkAssetManagerRequest, aV as GateTradelinkEntity, a1 as GateTradelinkExchange, aC as GateTradelinkExchangeRequest, aW as GateTradelinkNetwork, aX as GateTradelinkOnboardingStatus, aB as GateTradelinkRequest, aA as GateTradelinkThirdParty, bd as GateTransactionRequest, aZ as GateTransactionType, a6 as GateTransfer, bj as GateTransferRequest, a4 as GateUser, b7 as GateUserRequest, aY as GateVaultEntity, bk as GateVaultEntityRequest, aP as GateVaultEntityStatus, bb as GateWhitelistRequest, aQ as GateWorkspacePermission, aS as GateWorkspaceRule, aR as GateWorkspaceRuleStep, cz as GetU2FPubKeyInteraction, H as HelmValue, J as HelmValues, cr as HsmCertificate, cy as InteractionResponses, L as LamOptions, b$ as LegacyERC20Token, cl as MBRBakeTradelinkEntityWithAddresses, cd as MRBakeAccountParams, cg as MRBakeExchangeParams, cc as MRBakeGroupParams, ch as MRBakePolicyParams, cn as MRBakeTradelinkEntityOnboardingParams, cm as MRBakeTradelinkEntityParams, co as MRBakeTradelinkNetworkParams, ci as MRBakeTradelinkOnboardingParams, ce as MRBakeVaultEntityParams, cf as MRBakeWhitelistParams, ca as MRCreateAPIUserParams, cb as MRCreateAPIV2UserParams, c9 as MRCreateUserParams, cj as MREditQuorumParams, ck as MREditWorkspaceRuleParams, cw as MVInstanceDeployment, cv as MVInstanceDeploymentFF, cx as MVPod, bL as ManifestAPIUser, bF as ManifestAccountConfig, bE as ManifestAccountRule, bv as ManifestAccountRuleCardanoStaking, bA as ManifestAccountRuleCreateSplTokenAccount, bt as ManifestAccountRuleDeployContract, bz as ManifestAccountRuleMessageSigning, bp as ManifestAccountRuleMultiAuth, bo as ManifestAccountRuleMultiAuthStep, bs as ManifestAccountRulePolkadotStaking, bw as ManifestAccountRuleRawSigning, bq as ManifestAccountRuleSCI, bx as ManifestAccountRuleSend, bu as ManifestAccountRuleSolanaStaking, by as ManifestAccountRuleStake, br as ManifestAccountRuleTezosDelegation, bD as ManifestAccountRuleThreshold, bB as ManifestAccountRuleTransferSplToken, bC as ManifestAccountRuleWhitelist, bG as ManifestAccountTradelinkData, bT as ManifestContractApproval, bM as ManifestExchange, bN as ManifestPolicy, cq as ManifestRunner, bQ as ManifestTradelink, bR as ManifestTradelinkEntity, bS as ManifestTradelinkEntityWithAddresses, bK as ManifestUser, bH as ManifestVaultEntity, bJ as ManifestWhitelist, bI as ManifestWhitelistAddress, bP as ManifestWorkspaceRule, bO as ManifestWorkspaceRuleStep, b_ as MockNetworkResponse, bX as OnboardingContext, bY as OnboardingStep, bm as Organization, w as RawAccount, y as RawEntity, v as RawGroup, u as RawUser, x as RawWhiteList, bZ as RecordLogger, aE as SPLToken, cs as SecureChannel, $ as TradelinkNetwork, ag as Unit, F as UserContextRunnable, bn as UserDevice, c6 as UserWithDevice, c7 as UserWithoutDevice, c5 as VaultEvent, c2 as WeirdGateERC20Token, at as WeirdGateGovernanceRule, au as WeirdGateGovernanceRulesSet, aq as WeirdGateRuleMultiAuth, ap as WeirdGateRuleMultiAuthStep, ar as WeirdGateRuleThreshold, as as WeirdGateRuleWhitelist, c3 as WeirdGateTokenCurrency, bV as feesLevels, s as performRequest, r as prepareRequest, t as recipeManifest } from './index
|
|
1
|
+
import { N as Network, A as APIBearerTokenResponse, M as Manifest, D as DevicesPool, B as BakeManifestOptions, R as RunnableOptions, P as PoolOptions, a as ManifestAccount, G as GateAccount, b as ManifestAPIV2User, c as APIRequestResponse, d as DeployOptions, e as DestroyOptions, f as PsdModel, g as APIDevice, h as Device, I as Interactions, U as UserContext, i as GateTokenCurrency, j as MVInstance, k as ManifestTransaction, l as ManifestGroup, m as GateWhitelist, n as UTXOsPickingStrategy, o as GateTransaction, p as UpgradeOptions, W as WipeOptions, q as Interaction, T as TransportType } from './index--kkMSHZ6.js';
|
|
2
|
+
export { cD as APIBitcoinLikeSend, cB as APICreateTransactionRequest, cF as APIEstimateFeesResponse, cE as APIEthereumLikeSend, cC as APIGenericSend, cA as APIGetChallengeResponse, af as AccountStatus, ae as AccountType, a9 as AdminDevice, cG as CardanoBalances, cH as CardanoStakeInfo, a_ as CardanoVoteDelegationDrep, C as CliOptions, O as Connection, K as ConnectionEdge, c8 as CurrencyOrToken, c4 as DaemonAddress, cp as DataTradelinkNetworkEntity, cu as DeploymentStep, ct as DeploymentStepID, bU as DeserializedManifest, z as DevicesPoolOptions, E as EntityType, bW as FeesLevel, a5 as GateAPIKey, bi as GateAPIKeyRequest, b8 as GateAPIV2UserAccessRequest, aF as GateAccountBitcoin, aM as GateAccountCardano, aw as GateAccountCommon, aH as GateAccountERC20, az as GateAccountEthereum, ax as GateAccountExchangeOptions, aO as GateAccountPolkadot, b1 as GateAccountRequest, aI as GateAccountRipple, aL as GateAccountSolana, aJ as GateAccountStellar, aG as GateAccountTRC20, aK as GateAccountTezos, ay as GateAccountTradelinkData, aN as GateAccountTron, b3 as GateActivateRequest, a$ as GateAddress, c0 as GateCoinCapabilities, c1 as GateCurrency, a3 as GateDeviceType, ab as GateDigestGroup, bg as GateDigestsRequest, Q as GateEditWorkspaceRuleRequest, X as GateEntity, aT as GateExchange, bc as GateExchangeRequest, ac as GateFees, ad as GateFeesEIP1559, _ as GateForcedUnpledge, b6 as GateForcedUnpledgeRequest, b0 as GateGenericRequest, an as GateGovernanceRule, ao as GateGovernanceRulesSet, aa as GateGroup, bf as GateGroupRequest, be as GateGroupRequestTypeDefs, av as GateLabel, a8 as GateMessage, ba as GateMessageRequest, bh as GateOrganizationRequest, Y as GatePledgeIncrement, b5 as GatePledgeIncrementRequest, aU as GatePolicy, bl as GatePolicyRequest, Z as GateRepledge, b4 as GateRepledgeRequest, S as GateRequest, V as GateRequestType, ai as GateRuleMultiAuth, ah as GateRuleMultiAuthStep, al as GateRuleSCI, aj as GateRuleThreshold, am as GateRuleTransactionFilter, ak as GateRuleWhitelist, a7 as GateSCIConfig, b9 as GateSCIConfigRequest, b2 as GateSPLTokenAccountRequest, a0 as GateTradelink, a2 as GateTradelinkAssetManager, aD as GateTradelinkAssetManagerRequest, aV as GateTradelinkEntity, a1 as GateTradelinkExchange, aC as GateTradelinkExchangeRequest, aW as GateTradelinkNetwork, aX as GateTradelinkOnboardingStatus, aB as GateTradelinkRequest, aA as GateTradelinkThirdParty, bd as GateTransactionRequest, aZ as GateTransactionType, a6 as GateTransfer, bj as GateTransferRequest, a4 as GateUser, b7 as GateUserRequest, aY as GateVaultEntity, bk as GateVaultEntityRequest, aP as GateVaultEntityStatus, bb as GateWhitelistRequest, aQ as GateWorkspacePermission, aS as GateWorkspaceRule, aR as GateWorkspaceRuleStep, cz as GetU2FPubKeyInteraction, H as HelmValue, J as HelmValues, cr as HsmCertificate, cy as InteractionResponses, L as LamOptions, b$ as LegacyERC20Token, cl as MBRBakeTradelinkEntityWithAddresses, cd as MRBakeAccountParams, cg as MRBakeExchangeParams, cc as MRBakeGroupParams, ch as MRBakePolicyParams, cn as MRBakeTradelinkEntityOnboardingParams, cm as MRBakeTradelinkEntityParams, co as MRBakeTradelinkNetworkParams, ci as MRBakeTradelinkOnboardingParams, ce as MRBakeVaultEntityParams, cf as MRBakeWhitelistParams, ca as MRCreateAPIUserParams, cb as MRCreateAPIV2UserParams, c9 as MRCreateUserParams, cj as MREditQuorumParams, ck as MREditWorkspaceRuleParams, cw as MVInstanceDeployment, cv as MVInstanceDeploymentFF, cx as MVPod, bL as ManifestAPIUser, bF as ManifestAccountConfig, bE as ManifestAccountRule, bv as ManifestAccountRuleCardanoStaking, bA as ManifestAccountRuleCreateSplTokenAccount, bt as ManifestAccountRuleDeployContract, bz as ManifestAccountRuleMessageSigning, bp as ManifestAccountRuleMultiAuth, bo as ManifestAccountRuleMultiAuthStep, bs as ManifestAccountRulePolkadotStaking, bw as ManifestAccountRuleRawSigning, bq as ManifestAccountRuleSCI, bx as ManifestAccountRuleSend, bu as ManifestAccountRuleSolanaStaking, by as ManifestAccountRuleStake, br as ManifestAccountRuleTezosDelegation, bD as ManifestAccountRuleThreshold, bB as ManifestAccountRuleTransferSplToken, bC as ManifestAccountRuleWhitelist, bG as ManifestAccountTradelinkData, bT as ManifestContractApproval, bM as ManifestExchange, bN as ManifestPolicy, cq as ManifestRunner, bQ as ManifestTradelink, bR as ManifestTradelinkEntity, bS as ManifestTradelinkEntityWithAddresses, bK as ManifestUser, bH as ManifestVaultEntity, bJ as ManifestWhitelist, bI as ManifestWhitelistAddress, bP as ManifestWorkspaceRule, bO as ManifestWorkspaceRuleStep, b_ as MockNetworkResponse, bX as OnboardingContext, bY as OnboardingStep, bm as Organization, w as RawAccount, y as RawEntity, v as RawGroup, u as RawUser, x as RawWhiteList, bZ as RecordLogger, aE as SPLToken, cs as SecureChannel, $ as TradelinkNetwork, ag as Unit, F as UserContextRunnable, bn as UserDevice, c6 as UserWithDevice, c7 as UserWithoutDevice, c5 as VaultEvent, c2 as WeirdGateERC20Token, at as WeirdGateGovernanceRule, au as WeirdGateGovernanceRulesSet, aq as WeirdGateRuleMultiAuth, ap as WeirdGateRuleMultiAuthStep, ar as WeirdGateRuleThreshold, as as WeirdGateRuleWhitelist, c3 as WeirdGateTokenCurrency, bV as feesLevels, s as performRequest, r as prepareRequest, t as recipeManifest } from './index--kkMSHZ6.js';
|
|
3
3
|
import { Agent } from 'https';
|
|
4
4
|
export { default as reviewAPIRequest } from './reviewAPIRequest.js';
|
|
5
5
|
export { ExtendedPubKey, LIGHT_EVM_CURRENCIES, deserializeUnitValue, extractSecureChannel, getAccountTypeByCurrency, getAccountUnit, getCurrencyOrToken, getCurrencyUnit, getDefaultUsername, getGateAccountUnit, getTokenUnit, getWorkspaceFromGate, queue, serializeUnitValue, unwrapConnection, wait, xpubToExtendedPubKey } from './utils.js';
|