@docknetwork/wallet-sdk-core 0.4.22 → 1.5.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/lib/biometric-provider.d.ts.map +1 -1
- package/lib/biometric-provider.js +8 -0
- package/lib/biometric-provider.js.map +1 -1
- package/lib/cloud-wallet.d.ts +9 -5
- package/lib/cloud-wallet.d.ts.map +1 -1
- package/lib/cloud-wallet.js +119 -51
- package/lib/cloud-wallet.js.map +1 -1
- package/lib/credential-provider.d.ts.map +1 -1
- package/lib/credential-provider.js +2 -2
- package/lib/credential-provider.js.map +1 -1
- package/lib/credentials/oidvc.d.ts +1 -1
- package/lib/credentials/oidvc.d.ts.map +1 -1
- package/lib/credentials/oidvc.js +3 -0
- package/lib/credentials/oidvc.js.map +1 -1
- package/lib/did-provider.d.ts +0 -9
- package/lib/did-provider.d.ts.map +1 -1
- package/lib/did-provider.js +1 -26
- package/lib/did-provider.js.map +1 -1
- package/lib/ecosystem-tools.d.ts +8 -6
- package/lib/ecosystem-tools.d.ts.map +1 -1
- package/lib/ecosystem-tools.js +28 -13
- package/lib/ecosystem-tools.js.map +1 -1
- package/lib/message-provider.d.ts.map +1 -1
- package/lib/message-provider.js +3 -2
- package/lib/message-provider.js.map +1 -1
- package/lib/types.d.ts +2 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/wallet-wasm.d.ts +2 -2
- package/lib/wallet-wasm.d.ts.map +1 -1
- package/lib/wallet-wasm.js +78 -29
- package/lib/wallet-wasm.js.map +1 -1
- package/package.json +4 -4
- package/src/biometric-provider.ts +9 -1
- package/src/cloud-wallet.ts +142 -51
- package/src/credential-provider.ts +3 -2
- package/src/credentials/oidvc.ts +5 -1
- package/src/did-provider.test.ts +0 -60
- package/src/did-provider.ts +0 -33
- package/src/ecosystem-tools.ts +36 -13
- package/src/message-provider.ts +9 -2
- package/src/types.ts +1 -0
- package/src/wallet-wasm.ts +91 -32
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecosystem-tools.js","sourceRoot":"","sources":["../src/ecosystem-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ecosystem-tools.js","sourceRoot":"","sources":["../src/ecosystem-tools.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,kDAA0B;AAE1B,qDAAqD;AACrD,SAAS,SAAS,CAAC,SAAS;IAC1B,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,gCAAgC,CAAC;AAC/F,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,EAClC,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,GAMV;IACC,IAAA,gBAAM,EAAC,CAAC,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAE7C,IAAI;QACF,4DAA4D;QAC5D,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,yBAAyB,EAAC;YAC/E,SAAS;YACT,WAAW;YACX,QAAQ;SACT,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,EAAE,CAAA;QAErB,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxB,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;KACnB;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAhCD,sCAgCC;AAEM,KAAK,UAAU,YAAY,CAAC,EAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAKlF;IACC,IAAA,gBAAM,EAAC,CAAC,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAC7C,IAAA,gBAAM,EAAC,CAAC,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;IAEzD,IAAI;QACF,2DAA2D;QAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,qBAAqB,eAAe,uBAAuB,kBAAkB,CAAC,QAAQ,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;QAC1K,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAjBD,oCAiBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-provider.d.ts","sourceRoot":"","sources":["../src/message-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAKhC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACxD,cAAc,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAcD,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,WAAW,EACX,YAAkC,GACnC,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,
|
|
1
|
+
{"version":3,"file":"message-provider.d.ts","sourceRoot":"","sources":["../src/message-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAKhC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,sBAAsB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;IACjD,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IACxD,cAAc,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAcD,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,WAAW,EACX,YAAkC,GACnC,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,OAmQA"}
|
package/lib/message-provider.js
CHANGED
|
@@ -101,7 +101,7 @@ function createMessageProvider({ wallet, didProvider, relayService = relay_servi
|
|
|
101
101
|
if (!encryptedMessages.length) {
|
|
102
102
|
return;
|
|
103
103
|
}
|
|
104
|
-
|
|
104
|
+
logger_1.logger.debug(`Fetched ${encryptedMessages.length} messages`);
|
|
105
105
|
for (const message of encryptedMessages) {
|
|
106
106
|
try {
|
|
107
107
|
if (!messageIdsPerDid[message.to]) {
|
|
@@ -116,12 +116,13 @@ function createMessageProvider({ wallet, didProvider, relayService = relay_servi
|
|
|
116
116
|
recentlyFetchedMessages.push(message._id);
|
|
117
117
|
}
|
|
118
118
|
catch (err) {
|
|
119
|
+
logger_1.logger.debug(`Failed to store message in wallet: ${JSON.stringify(message)}`);
|
|
119
120
|
// this message will be lost if it fails to be stored in the wallet
|
|
120
121
|
(0, helpers_1.captureException)(err);
|
|
121
122
|
}
|
|
122
123
|
}
|
|
123
124
|
for (const [did, messageIds] of Object.entries(messageIdsPerDid)) {
|
|
124
|
-
logger_1.logger.debug(`Acknowledging messages for ${did}`);
|
|
125
|
+
logger_1.logger.debug(`Acknowledging ${messageIds?.length} messages for ${did}`);
|
|
125
126
|
let startTime = new Date().getTime();
|
|
126
127
|
relayService
|
|
127
128
|
.ackMessages({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-provider.js","sourceRoot":"","sources":["../src/message-provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"message-provider.js","sourceRoot":"","sources":["../src/message-provider.ts"],"names":[],"mappings":";;;AAAA,0EAAqE;AAErE,uCAAgE;AAEhE,2FAA4G;AAE5G,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAc/B,KAAK,UAAU,cAAc,CAAC,WAAyB,EAAE,GAAY;IACnE,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;QACvD,IAAI,GAAG,EAAE;YACP,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;SACxD;QACD,OAAO,WAAW,CAAC;KACpB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KAClE;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,WAAW,EACX,YAAY,GAAG,4BAAmB,GAKnC;IACC,KAAK,UAAU,iBAAiB,CAAC,SAAiB;QAChD,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAExD,IAAI,OAAO,CAAC,IAAI,KAAK,6BAAmB,CAAC,cAAc,EAAE;gBACvD,MAAM,IAAI,KAAK,CACb,oBAAoB,SAAS,0BAA0B,CACxD,CAAC;aACH;YAED,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;SACxC;QAAC,OAAO,KAAK,EAAE;YACd,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACnE;IACH,CAAC;IAED,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,KAAK,UAAU,sBAAsB,CAAC,KAAK,GAAG,CAAC;QAC7C,IAAI,cAAc,EAAE;YAClB,OAAO;SACR;QAED,cAAc,GAAG,IAAI,CAAC;QACtB,IAAI;YACF,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAC9C,6BAAmB,CAAC,cAAc,CACnC,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,OAAO;aACR;YAED,eAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAG5C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,KAAK,IAAI,KAAK,EAAE;oBAClB,OAAO;iBACR;gBACD,IAAI;oBACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;wBAC7B,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBACxC,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAC7D,CAAC;qBACH;oBACD,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,qBAAqB,CAAC;wBAChE,WAAW;wBACX,OAAO,EAAE,OAAO,CAAC,gBAAgB;qBAClC,CAAC,CAAC;oBACH,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,2BAA2B,EAAE;wBACpD,gBAAgB;wBAChB,SAAS,EAAE,OAAO,CAAC,EAAE;qBACtB,CAAC,CAAC;oBACH,MAAM,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACpC,KAAK,EAAE,CAAC;iBACT;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,oCAAoC,CAAC,EAAE;wBAC/D,wFAAwF;wBACxF,yDAAyD;wBACzD,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;qBACzC;oBACD,IAAA,0BAAgB,EAAC,GAAG,CAAC,CAAC;iBACvB;aACF;YACD,eAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;SACpE;QAAC,OAAO,KAAK,EAAE;YACd,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACzE;gBAAS;YACR,cAAc,GAAG,KAAK,CAAC;SACxB;IACH,CAAC;IAED,IAAI,uBAAuB,GAAG,EAAE,CAAC;IAEjC,KAAK,UAAU,aAAa;QAC1B,IAAI;YACF,eAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,iBAAiB,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC;gBACrD,WAAW;gBACX,KAAK,EAAE,mBAAmB;gBAC1B,qBAAqB,EAAE,IAAI;aAC5B,CAAC,CAAC;YACH,MAAM,gBAAgB,GAAG,EAAE,CAAC;YAE5B,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAC1C,OAAO,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAC1D,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAC7B,OAAO;aACR;YAED,eAAM,CAAC,KAAK,CAAC,WAAW,iBAAiB,CAAC,MAAM,WAAW,CAAC,CAAC;YAE7D,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE;gBACvC,IAAI;oBACF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACjC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;qBACnC;oBAED,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAE/C,MAAM,MAAM,CAAC,WAAW,CAAC;wBACvB,EAAE,EAAE,OAAO,CAAC,GAAG;wBACf,IAAI,EAAE,6BAAmB,CAAC,cAAc;wBACxC,gBAAgB,EAAE,OAAO;qBAC1B,CAAC,CAAC;oBAEH,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBAC3C;gBAAC,OAAO,GAAG,EAAE;oBACZ,eAAM,CAAC,KAAK,CACV,sCAAsC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAChE,CAAC;oBACF,mEAAmE;oBACnE,IAAA,0BAAgB,EAAC,GAAG,CAAC,CAAC;iBACvB;aACF;YAED,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;gBAChE,eAAM,CAAC,KAAK,CACV,iBACG,UAAuB,EAAE,MAC5B,iBAAiB,GAAG,EAAE,CACvB,CAAC;gBACF,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACrC,YAAY;qBACT,WAAW,CAAC;oBACX,GAAG;oBACH,UAAU;iBACX,CAAC;qBACD,IAAI,CAAC,GAAG,EAAE;oBACT,eAAM,CAAC,WAAW,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;gBACzD,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;aACN;YAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,MAAM,CAAC,YAAY,CAAC,IAAI,CACtB,2BAA2B,EAC3B,iBAAiB,CAClB,CAAC;gBAEF,eAAM,CAAC,KAAK,CAAC,YAAY,iBAAiB,CAAC,MAAM,WAAW,CAAC,CAAC;gBAC9D,eAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;aAChE;YAED,OAAO,iBAAiB,CAAC;SAC1B;QAAC,OAAO,KAAK,EAAE;YACd,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SAC/D;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,OAAO;QACjC,MAAM,QAAQ,GAAG,KAAK,EAAC,OAAO,EAAC,EAAE;YAC/B,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,GAAG,EAAE,CACV,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAE9B,MAAM,sBAAsB,GAAG,IAAI,CAAC;IAEpC,KAAK,UAAU,0BAA0B;QACvC,IAAI;YACF,MAAM,sBAAsB,EAAE,CAAC;SAChC;gBAAS;YACR,UAAU,CAAC,0BAA0B,EAAE,sBAAsB,CAAC,CAAC;SAChE;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,EAChB,GAAG,EACH,YAAY,EACZ,OAAO;QACP,6BAA6B;QAC7B,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,IAAI,GACL;YACC,wEAAwE;YACxE,IAAI,IAAI,EAAE;gBACR,GAAG,GAAG,IAAI,CAAC;aACZ;YAED,IAAI,EAAE,EAAE;gBACN,YAAY,GAAG,EAAE,CAAC;aACnB;YAED,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACpB,OAAO,GAAG,IAAI,CAAC;aAChB;YAED,IAAI;gBACF,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC1D,IAAI,CAAC,UAAU,EAAE;oBACf,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,uBAAuB,CAAC,CAAC;iBAChD;gBACD,MAAM,YAAY,CAAC,WAAW,CAAC;oBAC7B,UAAU;oBACV,OAAO;oBACP,YAAY;oBACZ,IAAI;iBACL,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;aAC7D;QACH,CAAC;QACD,cAAc;YACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBAClC,IAAI,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;oBACtD,cAAc,EAAE,CAAC;oBACjB,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,cAAc,CAAC,OAAO,GAAG,IAAI;YAC3B,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAClC,kBAAkB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC1C,MAAM,aAAa,EAAE,CAAC;gBACtB,MAAM,sBAAsB,EAAE,CAAC;YACjC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEZ,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACjD,CAAC;QACD,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,OAAO,OAAO,CAAC,GAAG,CAChB,CACE,MAAM,MAAM,CAAC,kBAAkB,CAAC,6BAAmB,CAAC,cAAc,CAAC,CACpE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACf,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC/B,OAAO,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QACD,aAAa;QACb,kBAAkB;QAClB,sBAAsB;QACtB,0BAA0B;QAC1B,iBAAiB;KACX,CAAC;AACX,CAAC;AA3QD,sDA2QC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import { DataStore, DocumentResolverResult, WalletDocument } from '@docknetwork/wallet-sdk-data-store/lib/types';
|
|
3
4
|
import { Accounts } from '@docknetwork/wallet-sdk-wasm/lib/modules/accounts';
|
|
4
5
|
import { EventEmitter } from 'events';
|
|
@@ -58,6 +59,7 @@ export type IWallet = {
|
|
|
58
59
|
getNetworkId: () => string;
|
|
59
60
|
resolveDocumentNetwork: (document: any) => Promise<DocumentResolverResult>;
|
|
60
61
|
dataStore: DataStore;
|
|
62
|
+
networkCheckInterval?: NodeJS.Timeout;
|
|
61
63
|
} & IV1Wallet;
|
|
62
64
|
export type CrateWalletWithDataStore = {};
|
|
63
65
|
export type CreateWalletProps = {
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/wallet-wasm.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { IWallet } from './types';
|
|
|
4
4
|
* Compare connected substrate connection with the current walle network
|
|
5
5
|
* Disconnect and Establish a new connection if the network is different
|
|
6
6
|
*/
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
7
|
+
export declare function handleBlockchainNetworkChange(wallet: IWallet): Promise<void>;
|
|
8
|
+
export declare function setBlockchainNetwork(wallet: IWallet): Promise<void>;
|
|
9
9
|
export declare function initWalletWasm(wallet: IWallet): Promise<void>;
|
|
10
10
|
//# sourceMappingURL=wallet-wasm.d.ts.map
|
package/lib/wallet-wasm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-wasm.d.ts","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-wasm.d.ts","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,OAAO,iBAkEzD;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,OAAO,iBA6BnD"}
|
package/lib/wallet-wasm.js
CHANGED
|
@@ -1,60 +1,109 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initWalletWasm = exports.
|
|
3
|
+
exports.initWalletWasm = exports.setBlockchainNetwork = exports.handleBlockchainNetworkChange = void 0;
|
|
4
|
+
const blockchain_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/blockchain");
|
|
4
5
|
const keyring_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/keyring");
|
|
5
6
|
const util_crypto_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/util-crypto");
|
|
6
|
-
const dock_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/dock");
|
|
7
7
|
const wallet_1 = require("@docknetwork/wallet-sdk-wasm/lib/modules/wallet");
|
|
8
8
|
const helpers_1 = require("./helpers");
|
|
9
|
-
function
|
|
10
|
-
return !!network.configs.substrateUrl;
|
|
9
|
+
function isBlockchainNetwork(network) {
|
|
10
|
+
return !!(network.configs.substrateUrl || network.configs.cheqdApiUrl);
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Update existing substrate network connection
|
|
14
14
|
* Compare connected substrate connection with the current walle network
|
|
15
15
|
* Disconnect and Establish a new connection if the network is different
|
|
16
16
|
*/
|
|
17
|
-
async function
|
|
18
|
-
const
|
|
19
|
-
const
|
|
17
|
+
async function handleBlockchainNetworkChange(wallet) {
|
|
18
|
+
const currentAddress = await blockchain_1.blockchainService.getAddress();
|
|
19
|
+
const networkId = wallet.dataStore.networks.find(network => network.configs.substrateUrl === currentAddress || network.configs.cheqdApiUrl === currentAddress)?.id;
|
|
20
20
|
const currentNetworkId = wallet.dataStore.network?.id;
|
|
21
|
-
if (
|
|
21
|
+
if (networkId === currentNetworkId) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
await
|
|
25
|
-
await
|
|
24
|
+
await blockchain_1.blockchainService.disconnect();
|
|
25
|
+
await setBlockchainNetwork(wallet);
|
|
26
26
|
}
|
|
27
|
-
exports.
|
|
28
|
-
async function
|
|
27
|
+
exports.handleBlockchainNetworkChange = handleBlockchainNetworkChange;
|
|
28
|
+
async function setBlockchainNetwork(wallet) {
|
|
29
29
|
const network = wallet.dataStore.network;
|
|
30
30
|
const networkConfigs = network.configs;
|
|
31
|
+
let cheqdMnemonicDoc = await wallet.getDocumentById('cheqd-mnemonic');
|
|
32
|
+
if (!cheqdMnemonicDoc) {
|
|
33
|
+
cheqdMnemonicDoc = {
|
|
34
|
+
id: 'cheqd-mnemonic',
|
|
35
|
+
type: 'Mnemonic',
|
|
36
|
+
value: await util_crypto_1.utilCryptoService.mnemonicGenerate(12),
|
|
37
|
+
};
|
|
38
|
+
await wallet.addDocument(cheqdMnemonicDoc);
|
|
39
|
+
}
|
|
31
40
|
await keyring_1.keyringService.initialize({
|
|
32
41
|
ss58Format: networkConfigs.addressPrefix,
|
|
33
42
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
let connectionInProgress = false;
|
|
44
|
+
const initializeBlockchain = () => {
|
|
45
|
+
clearInterval(wallet.networkCheckInterval);
|
|
46
|
+
if (connectionInProgress) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
connectionInProgress = true;
|
|
50
|
+
blockchain_1.blockchainService
|
|
51
|
+
.init({
|
|
52
|
+
substrateUrl: networkConfigs.substrateUrl,
|
|
53
|
+
cheqdApiUrl: networkConfigs.cheqdApiUrl,
|
|
54
|
+
networkId: network.id,
|
|
55
|
+
cheqdMnemonic: cheqdMnemonicDoc.value,
|
|
56
|
+
})
|
|
57
|
+
.then(() => {
|
|
58
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkConnected);
|
|
59
|
+
})
|
|
60
|
+
.catch(err => {
|
|
61
|
+
const errorMessage = new Error('Unable to connect to blockchain');
|
|
62
|
+
(0, helpers_1.captureException)(errorMessage);
|
|
63
|
+
(0, helpers_1.captureException)(err);
|
|
64
|
+
console.error(err);
|
|
65
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkError, err);
|
|
66
|
+
})
|
|
67
|
+
.finally(() => {
|
|
68
|
+
connectionInProgress = false;
|
|
69
|
+
wallet.networkCheckInterval = setInterval(async () => {
|
|
70
|
+
try {
|
|
71
|
+
if (!await blockchain_1.blockchainService.isApiConnected()) {
|
|
72
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkError, new Error('Network not connected'));
|
|
73
|
+
initializeBlockchain();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
console.error('Error during connectivity check:', err);
|
|
78
|
+
}
|
|
79
|
+
}, 10000);
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
initializeBlockchain();
|
|
47
83
|
}
|
|
48
|
-
exports.
|
|
84
|
+
exports.setBlockchainNetwork = setBlockchainNetwork;
|
|
49
85
|
async function initWalletWasm(wallet) {
|
|
50
86
|
await util_crypto_1.utilCryptoService.cryptoWaitReady();
|
|
51
87
|
const network = wallet.dataStore.network;
|
|
52
|
-
if (
|
|
53
|
-
await
|
|
88
|
+
if (isBlockchainNetwork(network)) {
|
|
89
|
+
await setBlockchainNetwork(wallet);
|
|
54
90
|
wallet.eventManager.on(wallet_1.WalletEvents.networkUpdated, async () => {
|
|
55
|
-
|
|
91
|
+
handleBlockchainNetworkChange(wallet).catch(err => console.error(err));
|
|
56
92
|
});
|
|
57
93
|
}
|
|
94
|
+
wallet.ensureNetwork = async () => {
|
|
95
|
+
try {
|
|
96
|
+
const isConnected = await blockchain_1.blockchainService.isApiConnected();
|
|
97
|
+
if (!isConnected) {
|
|
98
|
+
await setBlockchainNetwork(wallet);
|
|
99
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkConnected);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
console.error('Error checking network connection:', err);
|
|
104
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkError, err);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
58
107
|
wallet.setStatus('ready');
|
|
59
108
|
wallet.eventManager.emit(wallet_1.WalletEvents.ready);
|
|
60
109
|
}
|
package/lib/wallet-wasm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-wasm.js","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"wallet-wasm.js","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docknetwork/wallet-sdk-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"license": "https://github.com/docknetwork/react-native-sdk/LICENSE",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
"typeorm": "^0.3.15",
|
|
17
17
|
"reflect-metadata": "^0.1.13",
|
|
18
18
|
"sqlite3": "^5.0.2",
|
|
19
|
-
"@docknetwork/wallet-sdk-data-store": "^
|
|
19
|
+
"@docknetwork/wallet-sdk-data-store": "^1.5.0"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@docknetwork/wallet-sdk-wasm": "^
|
|
22
|
+
"@docknetwork/wallet-sdk-wasm": "^1.5.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@docknetwork/wallet-sdk-data-store": "^
|
|
25
|
+
"@docknetwork/wallet-sdk-data-store": "^1.5.0",
|
|
26
26
|
"jest": "29.1.0",
|
|
27
27
|
"ts-jest": "29.1.0",
|
|
28
28
|
"ts-node": "^10.9.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {WalletDocument} from '@docknetwork/wallet-sdk-wasm/src/types';
|
|
2
2
|
import {IWallet} from './types';
|
|
3
|
-
import {createCredentialProvider} from './credential-provider';
|
|
3
|
+
import {createCredentialProvider, CredentialStatus} from './credential-provider';
|
|
4
4
|
import assert from 'assert';
|
|
5
5
|
|
|
6
6
|
export type BiometricsPluginIssuerConfig = {
|
|
@@ -74,6 +74,14 @@ export function createBiometricBindingProvider({
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
await wallet.addDocument(matchConfirmationCredential);
|
|
77
|
+
// make the biometric credential valid by default
|
|
78
|
+
await wallet.addDocument({
|
|
79
|
+
id: `${matchConfirmationCredential.id}#status`,
|
|
80
|
+
status: CredentialStatus.Verified,
|
|
81
|
+
type: 'CredentialStatus',
|
|
82
|
+
createdAt: new Date().toISOString(),
|
|
83
|
+
updatedAt: new Date().toISOString(),
|
|
84
|
+
})
|
|
77
85
|
}
|
|
78
86
|
|
|
79
87
|
return matchConfirmationCredential;
|
package/src/cloud-wallet.ts
CHANGED
|
@@ -4,24 +4,58 @@ import {
|
|
|
4
4
|
} from '@docknetwork/wallet-sdk-data-store/src/types';
|
|
5
5
|
import {logger} from '@docknetwork/wallet-sdk-data-store/src/logger';
|
|
6
6
|
import {edvService} from '@docknetwork/wallet-sdk-wasm/src/services/edv';
|
|
7
|
+
import base64url from 'base64url-universal';
|
|
8
|
+
|
|
9
|
+
import {utilCryptoService} from '@docknetwork/wallet-sdk-wasm/src/services/util-crypto';
|
|
7
10
|
|
|
8
11
|
export const SYNC_MARKER_TYPE = 'SyncMarkerDocument';
|
|
9
12
|
|
|
13
|
+
interface QueuedOperation {
|
|
14
|
+
operation: () => Promise<any>;
|
|
15
|
+
resolve: (value: any) => void;
|
|
16
|
+
reject: (error: any) => void;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface DocumentQueue {
|
|
20
|
+
operations: QueuedOperation[];
|
|
21
|
+
isProcessing: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export async function generateCloudWalletMasterKey(): Promise<{ mnemonic: string; masterKey: string }> {
|
|
25
|
+
const mnemonic = await utilCryptoService.mnemonicGenerate(12);
|
|
26
|
+
|
|
27
|
+
const seedBytes = await utilCryptoService.mnemonicToMiniSecret(mnemonic);
|
|
28
|
+
const masterKey = base64url.encode(Buffer.from(seedBytes));
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
mnemonic,
|
|
32
|
+
masterKey,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export async function recoverCloudWalletMasterKey(mnemonic: string): Promise<string> {
|
|
37
|
+
const seedBytes = await utilCryptoService.mnemonicToMiniSecret(mnemonic);
|
|
38
|
+
const masterKey = base64url.encode(Buffer.from(seedBytes));
|
|
39
|
+
|
|
40
|
+
return masterKey;
|
|
41
|
+
}
|
|
42
|
+
|
|
10
43
|
export async function initializeCloudWallet({
|
|
11
44
|
dataStore,
|
|
12
45
|
edvUrl,
|
|
13
|
-
agreementKey,
|
|
14
|
-
verificationKey,
|
|
15
|
-
hmacKey,
|
|
16
46
|
authKey,
|
|
47
|
+
masterKey,
|
|
17
48
|
}: {
|
|
18
49
|
dataStore?: DataStore;
|
|
19
50
|
edvUrl: string;
|
|
20
|
-
agreementKey: any;
|
|
21
|
-
verificationKey: any;
|
|
22
|
-
hmacKey: any;
|
|
23
51
|
authKey: string;
|
|
52
|
+
masterKey: any;
|
|
24
53
|
}) {
|
|
54
|
+
const {
|
|
55
|
+
hmacKey,
|
|
56
|
+
agreementKey,
|
|
57
|
+
verificationKey,
|
|
58
|
+
} = await edvService.deriveKeys(masterKey);
|
|
25
59
|
|
|
26
60
|
await edvService.initialize({
|
|
27
61
|
hmacKey,
|
|
@@ -31,15 +65,73 @@ export async function initializeCloudWallet({
|
|
|
31
65
|
authKey
|
|
32
66
|
});
|
|
33
67
|
|
|
34
|
-
|
|
35
|
-
|
|
68
|
+
const documentQueues = new Map<string, DocumentQueue>();
|
|
69
|
+
const activeOperations = new Set<Promise<any>>();
|
|
70
|
+
|
|
71
|
+
async function processQueue(docId: string) {
|
|
72
|
+
const queue = documentQueues.get(docId);
|
|
73
|
+
if (!queue || queue.isProcessing) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
queue.isProcessing = true;
|
|
78
|
+
|
|
79
|
+
while (queue.operations.length > 0) {
|
|
80
|
+
const item = queue.operations.shift();
|
|
81
|
+
if (!item) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
let operationPromise: Promise<any>;
|
|
86
|
+
try {
|
|
87
|
+
operationPromise = item.operation();
|
|
88
|
+
activeOperations.add(operationPromise);
|
|
36
89
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
90
|
+
const result = await operationPromise;
|
|
91
|
+
item.resolve(result);
|
|
92
|
+
} catch (error) {
|
|
93
|
+
item.reject(error);
|
|
94
|
+
logger.error(`Operation failed for document ${docId}: ${error.message}`);
|
|
95
|
+
} finally {
|
|
96
|
+
activeOperations.delete(operationPromise);
|
|
97
|
+
}
|
|
40
98
|
}
|
|
41
|
-
|
|
42
|
-
|
|
99
|
+
|
|
100
|
+
queue.isProcessing = false;
|
|
101
|
+
documentQueues.delete(docId);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async function enqueueOperation(docId: string, operation: () => Promise<any>): Promise<any> {
|
|
105
|
+
return new Promise((resolve, reject) => {
|
|
106
|
+
let queue = documentQueues.get(docId);
|
|
107
|
+
if (!queue) {
|
|
108
|
+
queue = { operations: [], isProcessing: false };
|
|
109
|
+
documentQueues.set(docId, queue);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
queue.operations.push({ operation, resolve, reject });
|
|
113
|
+
|
|
114
|
+
// Ensure processQueue runs (even if it was already running)
|
|
115
|
+
if (!queue.isProcessing) {
|
|
116
|
+
setTimeout(() => processQueue(docId), 0);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function waitForEdvIdle(): Promise<void> {
|
|
122
|
+
return new Promise((resolve) => {
|
|
123
|
+
const checkIdle = () => {
|
|
124
|
+
const hasActiveOperations = activeOperations.size > 0;
|
|
125
|
+
const hasQueuedOperations = Array.from(documentQueues.values()).some(queue => queue.operations.length > 0);
|
|
126
|
+
|
|
127
|
+
if (!hasActiveOperations && !hasQueuedOperations) {
|
|
128
|
+
resolve();
|
|
129
|
+
} else {
|
|
130
|
+
setTimeout(checkIdle, 100); // Re-check until everything is idle
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
checkIdle();
|
|
43
135
|
});
|
|
44
136
|
}
|
|
45
137
|
|
|
@@ -73,59 +165,57 @@ export async function initializeCloudWallet({
|
|
|
73
165
|
}
|
|
74
166
|
|
|
75
167
|
async function addDocumentHandler(content) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
} finally {
|
|
88
|
-
pendingOperations--;
|
|
89
|
-
if (pendingOperations === 0) {
|
|
90
|
-
pendingOperationsResolvers.forEach(resolve => resolve());
|
|
91
|
-
pendingOperationsResolvers = [];
|
|
168
|
+
return enqueueOperation(content.id, async () => {
|
|
169
|
+
try {
|
|
170
|
+
logger.debug(`Adding document to EDV: ${content.id}`);
|
|
171
|
+
await edvService.insert({
|
|
172
|
+
document: {
|
|
173
|
+
content: content,
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
logger.debug(`Document added to EDV: ${content.id}`);
|
|
177
|
+
} catch(error) {
|
|
178
|
+
logger.error(`Unable to add document ${content.id}: ${error.message}`);
|
|
92
179
|
}
|
|
93
|
-
}
|
|
180
|
+
});
|
|
94
181
|
}
|
|
95
182
|
|
|
96
183
|
async function removeDocumentHandler(documentId) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
pendingOperationsResolvers = [];
|
|
184
|
+
return enqueueOperation(documentId, async () => {
|
|
185
|
+
try {
|
|
186
|
+
logger.debug(`Removing document from EDV: ${documentId}`);
|
|
187
|
+
const edvDocument = await findDocumentByContentId(documentId);
|
|
188
|
+
await edvService.delete({document: edvDocument});
|
|
189
|
+
// TODO: Remove this once we figure out why the data store is empty after deleting a document
|
|
190
|
+
await pullDocuments();
|
|
191
|
+
logger.debug(`Document removed from EDV: ${documentId}`);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
logger.error(`Unable to remove document ${documentId}: ${error.message}`);
|
|
108
194
|
}
|
|
109
|
-
}
|
|
195
|
+
});
|
|
110
196
|
}
|
|
111
197
|
|
|
112
198
|
async function updateDocumentHandler(documentContent) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (pendingOperations === 0) {
|
|
119
|
-
pendingOperationsResolvers.forEach(resolve => resolve());
|
|
120
|
-
pendingOperationsResolvers = [];
|
|
199
|
+
return enqueueOperation(documentContent.id, async () => {
|
|
200
|
+
try {
|
|
201
|
+
await updateDocumentByContentId(documentContent);
|
|
202
|
+
} catch (error) {
|
|
203
|
+
logger.error(`Unable to update document ${documentContent.id}: ${error.message}`);
|
|
121
204
|
}
|
|
122
|
-
}
|
|
205
|
+
});
|
|
123
206
|
}
|
|
124
207
|
|
|
125
208
|
dataStore.events.on(DataStoreEvents.DocumentCreated, addDocumentHandler);
|
|
126
209
|
dataStore.events.on(DataStoreEvents.DocumentDeleted, removeDocumentHandler);
|
|
127
210
|
dataStore.events.on(DataStoreEvents.DocumentUpdated, updateDocumentHandler);
|
|
128
211
|
|
|
212
|
+
|
|
213
|
+
function unsubscribeEventListeners() {
|
|
214
|
+
dataStore.events.off(DataStoreEvents.DocumentCreated, addDocumentHandler);
|
|
215
|
+
dataStore.events.off(DataStoreEvents.DocumentDeleted, removeDocumentHandler);
|
|
216
|
+
dataStore.events.off(DataStoreEvents.DocumentUpdated, updateDocumentHandler);
|
|
217
|
+
}
|
|
218
|
+
|
|
129
219
|
async function getSyncMarkerDiff() {
|
|
130
220
|
const edvSyncMaker = await findDocumentByContentId(SYNC_MARKER_TYPE);
|
|
131
221
|
const localSyncMarker = await dataStore.documents.getDocumentById(
|
|
@@ -181,5 +271,6 @@ export async function initializeCloudWallet({
|
|
|
181
271
|
updateDocumentByContentId,
|
|
182
272
|
waitForEdvIdle,
|
|
183
273
|
pullDocuments,
|
|
274
|
+
unsubscribeEventListeners,
|
|
184
275
|
};
|
|
185
276
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {credentialServiceRPC} from '@docknetwork/wallet-sdk-wasm/src/services/credential';
|
|
2
2
|
import {IWallet} from './types';
|
|
3
3
|
import assert from 'assert';
|
|
4
|
-
import {
|
|
4
|
+
import {blockchainService} from '@docknetwork/wallet-sdk-wasm/src/services/blockchain';
|
|
5
5
|
import {acquireOpenIDCredentialFromURI} from './credentials/oidvc';
|
|
6
6
|
import {IDIDProvider} from './did-provider';
|
|
7
7
|
|
|
8
8
|
export type Credential = any;
|
|
9
9
|
|
|
10
|
+
|
|
10
11
|
export interface ICredentialProvider {
|
|
11
12
|
getCredentials(type?: string): Credential[];
|
|
12
13
|
getById(id: string): Credential;
|
|
@@ -259,7 +260,7 @@ async function syncCredentialStatus({
|
|
|
259
260
|
}
|
|
260
261
|
|
|
261
262
|
if (!isApiConnected) {
|
|
262
|
-
await
|
|
263
|
+
await blockchainService.ensureBlockchainReady();
|
|
263
264
|
isApiConnected = true;
|
|
264
265
|
}
|
|
265
266
|
|
package/src/credentials/oidvc.ts
CHANGED
|
@@ -15,7 +15,7 @@ export async function acquireOpenIDCredentialFromURI({
|
|
|
15
15
|
didProvider: IDIDProvider;
|
|
16
16
|
uri: string;
|
|
17
17
|
getAuthCode?: (authorizationURL: string) => Promise<string>;
|
|
18
|
-
}) {
|
|
18
|
+
}): Promise<any> {
|
|
19
19
|
const [holderKeyDocument] = await didProvider.getDIDKeyPairs();
|
|
20
20
|
|
|
21
21
|
let response = await credentialServiceRPC.acquireOIDCredential({
|
|
@@ -23,6 +23,10 @@ export async function acquireOpenIDCredentialFromURI({
|
|
|
23
23
|
holderKeyDocument,
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
+
if (!response) {
|
|
27
|
+
throw new Error('Unable to acquire credential. Please check your credential offer and try again.');
|
|
28
|
+
}
|
|
29
|
+
|
|
26
30
|
if (response.authorizationURL) {
|
|
27
31
|
const authorizationCode = await getAuthCode(response.authorizationURL);
|
|
28
32
|
response = await credentialServiceRPC.acquireOIDCredential({
|