@learncard/core 1.3.1 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,6 +20,15 @@ export function generateEd25519Key(): string;
20
20
  */
21
21
  export function generateEd25519KeyFromBytes(bytes: Uint8Array): string;
22
22
  /**
23
+ * @returns {string}
24
+ */
25
+ export function generateSecp256k1Key(): string;
26
+ /**
27
+ * @param {Uint8Array} bytes
28
+ * @returns {string}
29
+ */
30
+ export function generateSecp256k1KeyFromBytes(bytes: Uint8Array): string;
31
+ /**
23
32
  * @param {string} method_pattern
24
33
  * @param {string} jwk
25
34
  * @returns {string}
@@ -168,6 +177,8 @@ export interface InitOutput {
168
177
  readonly resolveDID: (a: number, b: number, c: number, d: number) => number;
169
178
  readonly generateEd25519Key: (a: number) => void;
170
179
  readonly generateEd25519KeyFromBytes: (a: number, b: number, c: number) => void;
180
+ readonly generateSecp256k1Key: (a: number) => void;
181
+ readonly generateSecp256k1KeyFromBytes: (a: number, b: number, c: number) => void;
171
182
  readonly keyToDID: (a: number, b: number, c: number, d: number, e: number) => void;
172
183
  readonly keyToVerificationMethod: (a: number, b: number, c: number, d: number) => number;
173
184
  readonly issueCredential: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
@@ -301,6 +301,59 @@ export function generateEd25519KeyFromBytes(bytes) {
301
301
  }
302
302
  }
303
303
 
304
+ /**
305
+ * @returns {string}
306
+ */
307
+ export function generateSecp256k1Key() {
308
+ try {
309
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
310
+ wasm.generateSecp256k1Key(retptr);
311
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
312
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
313
+ var r2 = getInt32Memory0()[retptr / 4 + 2];
314
+ var r3 = getInt32Memory0()[retptr / 4 + 3];
315
+ var ptr0 = r0;
316
+ var len0 = r1;
317
+ if (r3) {
318
+ ptr0 = 0;
319
+ len0 = 0;
320
+ throw takeObject(r2);
321
+ }
322
+ return getStringFromWasm0(ptr0, len0);
323
+ } finally {
324
+ wasm.__wbindgen_add_to_stack_pointer(16);
325
+ wasm.__wbindgen_free(ptr0, len0);
326
+ }
327
+ }
328
+
329
+ /**
330
+ * @param {Uint8Array} bytes
331
+ * @returns {string}
332
+ */
333
+ export function generateSecp256k1KeyFromBytes(bytes) {
334
+ try {
335
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
336
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
337
+ const len0 = WASM_VECTOR_LEN;
338
+ wasm.generateSecp256k1KeyFromBytes(retptr, ptr0, len0);
339
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
340
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
341
+ var r2 = getInt32Memory0()[retptr / 4 + 2];
342
+ var r3 = getInt32Memory0()[retptr / 4 + 3];
343
+ var ptr1 = r0;
344
+ var len1 = r1;
345
+ if (r3) {
346
+ ptr1 = 0;
347
+ len1 = 0;
348
+ throw takeObject(r2);
349
+ }
350
+ return getStringFromWasm0(ptr1, len1);
351
+ } finally {
352
+ wasm.__wbindgen_add_to_stack_pointer(16);
353
+ wasm.__wbindgen_free(ptr1, len1);
354
+ }
355
+ }
356
+
304
357
  /**
305
358
  * @param {string} method_pattern
306
359
  * @param {string} jwk
@@ -707,7 +760,7 @@ function handleError(f, args) {
707
760
  function getArrayU8FromWasm0(ptr, len) {
708
761
  return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
709
762
  }
710
- function __wbg_adapter_108(arg0, arg1, arg2, arg3) {
763
+ function __wbg_adapter_110(arg0, arg1, arg2, arg3) {
711
764
  wasm.wasm_bindgen__convert__closures__invoke2_mut__h3ecfeb7a01c1be81(
712
765
  arg0,
713
766
  arg1,
@@ -940,7 +993,7 @@ async function init(input) {
940
993
  const a = state0.a;
941
994
  state0.a = 0;
942
995
  try {
943
- return __wbg_adapter_108(a, state0.b, arg0, arg1);
996
+ return __wbg_adapter_110(a, state0.b, arg0, arg1);
944
997
  } finally {
945
998
  state0.a = a;
946
999
  }
@@ -1046,8 +1099,8 @@ async function init(input) {
1046
1099
  const ret = wasm.memory;
1047
1100
  return addHeapObject(ret);
1048
1101
  };
1049
- imports.wbg.__wbindgen_closure_wrapper10902 = function (arg0, arg1, arg2) {
1050
- const ret = makeMutClosure(arg0, arg1, 3717, __wbg_adapter_24);
1102
+ imports.wbg.__wbindgen_closure_wrapper10913 = function (arg0, arg1, arg2) {
1103
+ const ret = makeMutClosure(arg0, arg1, 3725, __wbg_adapter_24);
1051
1104
  return addHeapObject(ret);
1052
1105
  };
1053
1106
 
Binary file
@@ -5,6 +5,8 @@ export function getVersion(a: number): void;
5
5
  export function resolveDID(a: number, b: number, c: number, d: number): number;
6
6
  export function generateEd25519Key(a: number): void;
7
7
  export function generateEd25519KeyFromBytes(a: number, b: number, c: number): void;
8
+ export function generateSecp256k1Key(a: number): void;
9
+ export function generateSecp256k1KeyFromBytes(a: number, b: number, c: number): void;
8
10
  export function keyToDID(a: number, b: number, c: number, d: number, e: number): void;
9
11
  export function keyToVerificationMethod(a: number, b: number, c: number, d: number): number;
10
12
  export function issueCredential(a: number, b: number, c: number, d: number, e: number, f: number): number;
@@ -20,6 +20,15 @@ export function generateEd25519Key(): string;
20
20
  */
21
21
  export function generateEd25519KeyFromBytes(bytes: Uint8Array): string;
22
22
  /**
23
+ * @returns {string}
24
+ */
25
+ export function generateSecp256k1Key(): string;
26
+ /**
27
+ * @param {Uint8Array} bytes
28
+ * @returns {string}
29
+ */
30
+ export function generateSecp256k1KeyFromBytes(bytes: Uint8Array): string;
31
+ /**
23
32
  * @param {string} method_pattern
24
33
  * @param {string} jwk
25
34
  * @returns {string}
@@ -168,6 +177,8 @@ export interface InitOutput {
168
177
  readonly resolveDID: (a: number, b: number, c: number, d: number) => number;
169
178
  readonly generateEd25519Key: (a: number) => void;
170
179
  readonly generateEd25519KeyFromBytes: (a: number, b: number, c: number) => void;
180
+ readonly generateSecp256k1Key: (a: number) => void;
181
+ readonly generateSecp256k1KeyFromBytes: (a: number, b: number, c: number) => void;
171
182
  readonly keyToDID: (a: number, b: number, c: number, d: number, e: number) => void;
172
183
  readonly keyToVerificationMethod: (a: number, b: number, c: number, d: number) => number;
173
184
  readonly issueCredential: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
@@ -301,6 +301,59 @@ export function generateEd25519KeyFromBytes(bytes) {
301
301
  }
302
302
  }
303
303
 
304
+ /**
305
+ * @returns {string}
306
+ */
307
+ export function generateSecp256k1Key() {
308
+ try {
309
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
310
+ wasm.generateSecp256k1Key(retptr);
311
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
312
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
313
+ var r2 = getInt32Memory0()[retptr / 4 + 2];
314
+ var r3 = getInt32Memory0()[retptr / 4 + 3];
315
+ var ptr0 = r0;
316
+ var len0 = r1;
317
+ if (r3) {
318
+ ptr0 = 0;
319
+ len0 = 0;
320
+ throw takeObject(r2);
321
+ }
322
+ return getStringFromWasm0(ptr0, len0);
323
+ } finally {
324
+ wasm.__wbindgen_add_to_stack_pointer(16);
325
+ wasm.__wbindgen_free(ptr0, len0);
326
+ }
327
+ }
328
+
329
+ /**
330
+ * @param {Uint8Array} bytes
331
+ * @returns {string}
332
+ */
333
+ export function generateSecp256k1KeyFromBytes(bytes) {
334
+ try {
335
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
336
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
337
+ const len0 = WASM_VECTOR_LEN;
338
+ wasm.generateSecp256k1KeyFromBytes(retptr, ptr0, len0);
339
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
340
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
341
+ var r2 = getInt32Memory0()[retptr / 4 + 2];
342
+ var r3 = getInt32Memory0()[retptr / 4 + 3];
343
+ var ptr1 = r0;
344
+ var len1 = r1;
345
+ if (r3) {
346
+ ptr1 = 0;
347
+ len1 = 0;
348
+ throw takeObject(r2);
349
+ }
350
+ return getStringFromWasm0(ptr1, len1);
351
+ } finally {
352
+ wasm.__wbindgen_add_to_stack_pointer(16);
353
+ wasm.__wbindgen_free(ptr1, len1);
354
+ }
355
+ }
356
+
304
357
  /**
305
358
  * @param {string} method_pattern
306
359
  * @param {string} jwk
@@ -707,7 +760,7 @@ function handleError(f, args) {
707
760
  function getArrayU8FromWasm0(ptr, len) {
708
761
  return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
709
762
  }
710
- function __wbg_adapter_108(arg0, arg1, arg2, arg3) {
763
+ function __wbg_adapter_110(arg0, arg1, arg2, arg3) {
711
764
  wasm.wasm_bindgen__convert__closures__invoke2_mut__h3ecfeb7a01c1be81(
712
765
  arg0,
713
766
  arg1,
@@ -940,7 +993,7 @@ async function init(input) {
940
993
  const a = state0.a;
941
994
  state0.a = 0;
942
995
  try {
943
- return __wbg_adapter_108(a, state0.b, arg0, arg1);
996
+ return __wbg_adapter_110(a, state0.b, arg0, arg1);
944
997
  } finally {
945
998
  state0.a = a;
946
999
  }
@@ -1046,8 +1099,8 @@ async function init(input) {
1046
1099
  const ret = wasm.memory;
1047
1100
  return addHeapObject(ret);
1048
1101
  };
1049
- imports.wbg.__wbindgen_closure_wrapper10902 = function (arg0, arg1, arg2) {
1050
- const ret = makeMutClosure(arg0, arg1, 3717, __wbg_adapter_24);
1102
+ imports.wbg.__wbindgen_closure_wrapper10913 = function (arg0, arg1, arg2) {
1103
+ const ret = makeMutClosure(arg0, arg1, 3725, __wbg_adapter_24);
1051
1104
  return addHeapObject(ret);
1052
1105
  };
1053
1106
 
Binary file
@@ -5,6 +5,8 @@ export function getVersion(a: number): void;
5
5
  export function resolveDID(a: number, b: number, c: number, d: number): number;
6
6
  export function generateEd25519Key(a: number): void;
7
7
  export function generateEd25519KeyFromBytes(a: number, b: number, c: number): void;
8
+ export function generateSecp256k1Key(a: number): void;
9
+ export function generateSecp256k1KeyFromBytes(a: number, b: number, c: number): void;
8
10
  export function keyToDID(a: number, b: number, c: number, d: number, e: number): void;
9
11
  export function keyToVerificationMethod(a: number, b: number, c: number, d: number): number;
10
12
  export function issueCredential(a: number, b: number, c: number, d: number, e: number, f: number): number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@learncard/core",
3
- "version": "1.3.1",
3
+ "version": "1.5.1",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/core.esm.js",
@@ -40,8 +40,10 @@
40
40
  "@glazed/did-datastore": "^0.3.2",
41
41
  "@glazed/tile-loader": "^0.2.1",
42
42
  "abort-controller": "^3.0.0",
43
+ "cross-fetch": "^3.1.5",
43
44
  "date-fns": "^2.28.0",
44
45
  "dids": "^3.2.0",
46
+ "ethers": "^5.6.9",
45
47
  "hex-lite": "^1.5.0",
46
48
  "isomorphic-fetch": "^3.0.0",
47
49
  "isomorphic-webcrypto": "^2.3.8",
package/dist/README.md DELETED
@@ -1,89 +0,0 @@
1
- [![](https://img.shields.io/npm/v/@spruceid/didkit-wasm?label=%40spruceid%2Fdidkit-wasm&logo=npm)](https://www.npmjs.com/package/@spruceid/didkit-wasm) [![](https://img.shields.io/npm/v/@spruceid/didkit-wasm-node?label=%40spruceid%2Fdidkit-wasm-node&logo=npm)](https://www.npmjs.com/package/@spruceid/didkit-wasm-node)
2
- <!-- Might want those badge in the main README. -->
3
-
4
- # DIDKit WASM
5
-
6
- ## Prerequisites to Build from Source
7
-
8
- NPM packages are available but if you would like to compile DIDKit yourself
9
- (e.g. to enable different cryptographic backends) you will need the WASM
10
- compiler toolchain as well as a specific build tool:
11
-
12
- ```bash
13
- $ rustup target add wasm32-unknown-unknown
14
- $ cargo install wasm-pack
15
- # OR
16
- # $ curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
17
- ```
18
-
19
- ## Installation and Usage
20
-
21
- ### Node
22
-
23
- WASM can be used in Node.js (any recent version):
24
- ```bash
25
- $ npm i @spruceid/didkit-wasm-node
26
- ```
27
-
28
- Or build it from source:
29
- ```bash
30
- $ wasm-pack build --target nodejs
31
- ```
32
-
33
- ### Web Frameworks (Bundled)
34
-
35
- WASM can be used with web frameworks and bundlers like Webpack:
36
- ```bash
37
- $ npm i @spruceid/didkit-wasm
38
- ```
39
-
40
- Or build it from source:
41
- ```bash
42
- $ wasm-pack build
43
- ```
44
-
45
- > If Webpack doesn't work with the default configuration, you can have a look at
46
- > our configuration for
47
- > [tzprofiles](https://github.com/spruceid/tzprofiles/blob/main/dapp/webpack.config.js).
48
-
49
- ### Vanilla Javascript
50
-
51
- WASM can be used with plain Javascript with newer browsers. As it cannot be used
52
- as a NPM package you have to build it manually:
53
- ```bash
54
- $ wasm-pack build --target web
55
- ```
56
-
57
- The manual tests in `test/` serve as an example on how to import DIDKit.
58
-
59
- ## Tests
60
-
61
- The `test/` directory contains manual tests to run in the browser. Instructions
62
- are in the README of the directory.
63
-
64
- ## Non-Default Compilation
65
-
66
- _**The current version of the `ring` crate does not provide all the symbols
67
- needed to run on the browser, see DEPS.md**_
68
-
69
- To compile all features plus `wasm32_c` on `ring`, a C compiler is needed, see
70
- [spruceid/ssi](https://github.com/spruceid/didkit/tree/wasm):
71
-
72
- On Ubuntu this one option is to install `clang` and `llvm`:
73
- ```bash
74
- sudo apt install clang-10 llvm-10
75
- ```
76
-
77
- Then to compile with all features:
78
- ```bash
79
- TARGET_CC=clang-10 TARGET_AR=llvm-ar-10 wasm-pack build --out-dir pkg
80
- ```
81
-
82
- To use a custom subset of features:
83
- ```bash
84
- wasm-pack build --out-dir pkg -- --no-default-features --features=issue # issue credential/presentation
85
- wasm-pack build --out-dir pkg -- --no-default-features --features=verify # verify credential/presentation
86
- wasm-pack build --out-dir pkg -- --no-default-features --features=credential # issue/verify credential
87
- wasm-pack build --out-dir pkg -- --no-default-features --features=presentation # issue/verify presentation
88
- ```
89
- *don't forget to add `TARGET_CC` and `TARGET_AR` if using `ring` with `wasm32_c`*
@@ -1,89 +0,0 @@
1
- [![](https://img.shields.io/npm/v/@spruceid/didkit-wasm?label=%40spruceid%2Fdidkit-wasm&logo=npm)](https://www.npmjs.com/package/@spruceid/didkit-wasm) [![](https://img.shields.io/npm/v/@spruceid/didkit-wasm-node?label=%40spruceid%2Fdidkit-wasm-node&logo=npm)](https://www.npmjs.com/package/@spruceid/didkit-wasm-node)
2
- <!-- Might want those badge in the main README. -->
3
-
4
- # DIDKit WASM
5
-
6
- ## Prerequisites to Build from Source
7
-
8
- NPM packages are available but if you would like to compile DIDKit yourself
9
- (e.g. to enable different cryptographic backends) you will need the WASM
10
- compiler toolchain as well as a specific build tool:
11
-
12
- ```bash
13
- $ rustup target add wasm32-unknown-unknown
14
- $ cargo install wasm-pack
15
- # OR
16
- # $ curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
17
- ```
18
-
19
- ## Installation and Usage
20
-
21
- ### Node
22
-
23
- WASM can be used in Node.js (any recent version):
24
- ```bash
25
- $ npm i @spruceid/didkit-wasm-node
26
- ```
27
-
28
- Or build it from source:
29
- ```bash
30
- $ wasm-pack build --target nodejs
31
- ```
32
-
33
- ### Web Frameworks (Bundled)
34
-
35
- WASM can be used with web frameworks and bundlers like Webpack:
36
- ```bash
37
- $ npm i @spruceid/didkit-wasm
38
- ```
39
-
40
- Or build it from source:
41
- ```bash
42
- $ wasm-pack build
43
- ```
44
-
45
- > If Webpack doesn't work with the default configuration, you can have a look at
46
- > our configuration for
47
- > [tzprofiles](https://github.com/spruceid/tzprofiles/blob/main/dapp/webpack.config.js).
48
-
49
- ### Vanilla Javascript
50
-
51
- WASM can be used with plain Javascript with newer browsers. As it cannot be used
52
- as a NPM package you have to build it manually:
53
- ```bash
54
- $ wasm-pack build --target web
55
- ```
56
-
57
- The manual tests in `test/` serve as an example on how to import DIDKit.
58
-
59
- ## Tests
60
-
61
- The `test/` directory contains manual tests to run in the browser. Instructions
62
- are in the README of the directory.
63
-
64
- ## Non-Default Compilation
65
-
66
- _**The current version of the `ring` crate does not provide all the symbols
67
- needed to run on the browser, see DEPS.md**_
68
-
69
- To compile all features plus `wasm32_c` on `ring`, a C compiler is needed, see
70
- [spruceid/ssi](https://github.com/spruceid/didkit/tree/wasm):
71
-
72
- On Ubuntu this one option is to install `clang` and `llvm`:
73
- ```bash
74
- sudo apt install clang-10 llvm-10
75
- ```
76
-
77
- Then to compile with all features:
78
- ```bash
79
- TARGET_CC=clang-10 TARGET_AR=llvm-ar-10 wasm-pack build --out-dir pkg
80
- ```
81
-
82
- To use a custom subset of features:
83
- ```bash
84
- wasm-pack build --out-dir pkg -- --no-default-features --features=issue # issue credential/presentation
85
- wasm-pack build --out-dir pkg -- --no-default-features --features=verify # verify credential/presentation
86
- wasm-pack build --out-dir pkg -- --no-default-features --features=credential # issue/verify credential
87
- wasm-pack build --out-dir pkg -- --no-default-features --features=presentation # issue/verify presentation
88
- ```
89
- *don't forget to add `TARGET_CC` and `TARGET_AR` if using `ring` with `wasm32_c`*
@@ -1,15 +0,0 @@
1
- {
2
- "name": "didkit-wasm",
3
- "collaborators": [
4
- "Spruce Systems, Inc."
5
- ],
6
- "version": "0.4.0",
7
- "files": [
8
- "didkit_wasm_bg.wasm",
9
- "didkit_wasm.js",
10
- "didkit_wasm.d.ts"
11
- ],
12
- "module": "didkit_wasm.js",
13
- "types": "didkit_wasm.d.ts",
14
- "sideEffects": false
15
- }
package/dist/package.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "name": "didkit-wasm",
3
- "collaborators": [
4
- "Spruce Systems, Inc."
5
- ],
6
- "version": "0.4.0",
7
- "files": [
8
- "didkit_wasm_bg.wasm",
9
- "didkit_wasm.js",
10
- "didkit_wasm.d.ts"
11
- ],
12
- "module": "didkit_wasm.js",
13
- "types": "didkit_wasm.d.ts",
14
- "sideEffects": false
15
- }