ecash-lib 1.2.2-rc13 → 1.2.2-rc14

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/dist/ecc.d.ts CHANGED
@@ -14,8 +14,14 @@ export declare class EccDummy implements Ecc {
14
14
  schnorrSign(_seckey: Uint8Array, _msg: Uint8Array): Uint8Array;
15
15
  }
16
16
  /** Ecc implementation using WebAssembly */
17
- export declare let Ecc: {
18
- new (): Ecc;
17
+ /** Ecc implementation using WebAssembly */
18
+ /** Ecc implementation using WebAssembly */
19
+ export declare const Ecc: {
20
+ new (): {
21
+ derivePubkey(_seckey: Uint8Array): Uint8Array;
22
+ ecdsaSign(_seckey: Uint8Array, _msg: Uint8Array): Uint8Array;
23
+ schnorrSign(_seckey: Uint8Array, _msg: Uint8Array): Uint8Array;
24
+ };
19
25
  };
20
26
  export declare function __setEcc(ecc: {
21
27
  new (): Ecc;
package/dist/ecc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ecc.d.ts","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":"AAIA,6DAA6D;AAC7D,MAAM,WAAW,GAAG;IAChB,2CAA2C;IAC3C,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAE7C,8DAA8D;IAC9D,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC;IAE3D,+DAA+D;IAC/D,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC;CAChE;AAED,yEAAyE;AACzE,qBAAa,QAAS,YAAW,GAAG;IAChC,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAI7C,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAI5D,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;CAGjE;AAED,2CAA2C;AAC3C,eAAO,IAAI,GAAG,EAAE;IAAE,QAAQ,GAAG,CAAA;CAAE,CAAC;AAEhC,wBAAgB,QAAQ,CAAC,GAAG,EAAE;IAAE,QAAQ,GAAG,CAAA;CAAE,QAe5C"}
1
+ {"version":3,"file":"ecc.d.ts","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":"AAIA,6DAA6D;AAC7D,MAAM,WAAW,GAAG;IAChB,2CAA2C;IAC3C,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAE7C,8DAA8D;IAC9D,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC;IAE3D,+DAA+D;IAC/D,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC;CAChE;AAED,yEAAyE;AACzE,qBAAa,QAAS,YAAW,GAAG;IAChC,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU;IAI7C,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAI5D,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;CAGjE;AAuBD,2CAA2C;AA6C3C,2CAA2C;AAC3C,2CAA2C;AAG3C,eAAO,MAAM,GAAG;;8BAEc,UAAU,GAAG,UAAU;2BAI1B,UAAU,QAAQ,UAAU,GAAG,UAAU;6BAIvC,UAAU,QAAQ,UAAU,GAAG,UAAU;;CAcrE,CAAC;AAEF,wBAAgB,QAAQ,CAAC,GAAG,EAAE;IAAE,QAAQ,GAAG,CAAA;CAAE,QAsB5C"}
package/dist/ecc.js CHANGED
@@ -17,19 +17,100 @@ class EccDummy {
17
17
  }
18
18
  }
19
19
  exports.EccDummy = EccDummy;
20
+ /** Uninitialized Ecc for fallback */
21
+ class EccUninitialized {
22
+ constructor() {
23
+ if (!exports.Ecc.prototype.derivePubkey) {
24
+ throw new Error('Ecc not initialized. Call initWasm first.');
25
+ }
26
+ }
27
+ derivePubkey(_seckey) {
28
+ throw new Error('Ecc not initialized. Call initWasm first.');
29
+ }
30
+ ecdsaSign(_seckey, _msg) {
31
+ throw new Error('Ecc not initialized. Call initWasm first.');
32
+ }
33
+ schnorrSign(_seckey, _msg) {
34
+ throw new Error('Ecc not initialized. Call initWasm first.');
35
+ }
36
+ }
37
+ /** Ecc implementation using WebAssembly */
38
+ //export let Ecc: { new (): Ecc };
39
+ // note this doesn't work bc we can't build ecash-lib without it throwing an undefined error
40
+ // otherwise it would probably work
41
+ //export const Ecc = (globalThis as unknown as GlobalThis).ecashlib.Ecc;
42
+ // This won't work because it gets assigned when it runs
43
+ // TODO next step is to re-explore grok's getter setter solution
44
+ /* Uncomment these to get back to the failure you understand
45
+ export let Ecc = (() => {
46
+ return 'ecashlib' in globalThis &&
47
+ 'Ecc' in (globalThis as unknown as GlobalThis).ecashlib
48
+ ? (globalThis as unknown as GlobalThis).ecashlib.Ecc
49
+ : EccUninitialized;
50
+ })();
51
+
52
+ export function __setEcc(ecc: { new (): Ecc }) {
53
+ console.log(
54
+ `ecashlib in globalThis BEFORE injection`,
55
+ 'ecashlib' in globalThis,
56
+ );
57
+ Object.assign(globalThis, {
58
+ ecashlib: {
59
+ ...((globalThis as Record<string, any>).ecashlib || {}),
60
+ Ecc: ecc,
61
+ },
62
+ } as Partial<typeof globalThis>);
63
+ console.log(
64
+ `ecashlib in globalThis AFTER injection`,
65
+ 'ecashlib' in globalThis,
66
+ );
67
+
68
+ // Update Ecc now that we know it is available in globalThis
69
+ console.log(`Updating Ecc in __setEcc`);
70
+ console.log(`Ecc before update`, Ecc);
71
+ // Re-assign
72
+ // But if we call initWasm() in parent lib, it does not reassign in the child lib
73
+ // So we need to "get it right" without any re-assigning
74
+ Ecc = (globalThis as unknown as GlobalThis).ecashlib.Ecc;
75
+ console.log(`Ecc after update`, Ecc);
76
+ }
77
+ */
78
+ /** Ecc implementation using WebAssembly */
79
+ /** Ecc implementation using WebAssembly */
80
+ // Define Ecc as a getter function
81
+ exports.Ecc = new Proxy(class {
82
+ derivePubkey(_seckey) {
83
+ return new Uint8Array(33);
84
+ }
85
+ ecdsaSign(_seckey, _msg) {
86
+ return new Uint8Array(73);
87
+ }
88
+ schnorrSign(_seckey, _msg) {
89
+ return new Uint8Array(64);
90
+ }
91
+ }, {
92
+ construct: () => {
93
+ const currentEcc = 'ecashlib' in globalThis &&
94
+ 'Ecc' in globalThis.ecashlib
95
+ ? globalThis.ecashlib.Ecc
96
+ : EccUninitialized;
97
+ return new currentEcc();
98
+ },
99
+ });
20
100
  function __setEcc(ecc) {
21
- console.log(`globalThis before injection`, globalThis);
101
+ console.log(`Ecc before update`, exports.Ecc);
102
+ console.log(`ecashlib in globalThis BEFORE injection`, 'ecashlib' in globalThis);
22
103
  Object.assign(globalThis, {
23
104
  ecashlib: {
24
105
  ...(globalThis.ecashlib || {}),
25
106
  Ecc: ecc,
26
107
  },
27
108
  });
28
- console.log(`globalThis after injection`, globalThis);
109
+ console.log(`ecashlib in globalThis AFTER injection`, 'ecashlib' in globalThis);
29
110
  // Update Ecc now that we know it is available in globalThis
30
- console.log(`updating Ecc`);
31
- console.log(`Ecc before update`, exports.Ecc);
32
- exports.Ecc = globalThis.ecashlib.Ecc;
111
+ //console.log(`Updating Ecc in __setEcc`);
112
+ //console.log(`Ecc before update`, Ecc);
113
+ //Ecc = ecc; // This will use the setter defined above
33
114
  console.log(`Ecc after update`, exports.Ecc);
34
115
  }
35
116
  exports.__setEcc = __setEcc;
package/dist/ecc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ecc.js","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AActE,yEAAyE;AACzE,MAAa,QAAQ;IACjB,YAAY,CAAC,OAAmB;QAC5B,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,OAAmB,EAAE,IAAgB;QAC3C,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAmB,EAAE,IAAgB;QAC7C,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAZD,4BAYC;AAKD,SAAgB,QAAQ,CAAC,GAAoB;IACzC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;QACtB,QAAQ,EAAE;YACN,GAAG,CAAE,UAAkC,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvD,GAAG,EAAE,GAAG;SACX;KAC0B,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;IAEtD,4DAA4D;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAG,CAAC,CAAC;IACtC,WAAG,GAAI,UAAoC,CAAC,QAAQ,CAAC,GAAG,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAG,CAAC,CAAC;AACzC,CAAC;AAfD,4BAeC"}
1
+ {"version":3,"file":"ecc.js","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AActE,yEAAyE;AACzE,MAAa,QAAQ;IACjB,YAAY,CAAC,OAAmB;QAC5B,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,OAAmB,EAAE,IAAgB;QAC3C,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAmB,EAAE,IAAgB;QAC7C,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAZD,4BAYC;AAED,qCAAqC;AACrC,MAAM,gBAAgB;IAClB;QACI,IAAI,CAAC,WAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED,YAAY,CAAC,OAAmB;QAC5B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,OAAmB,EAAE,IAAgB;QAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,OAAmB,EAAE,IAAgB;QAC7C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;CACJ;AAED,2CAA2C;AAC3C,kCAAkC;AAElC,4FAA4F;AAC5F,mCAAmC;AACnC,wEAAwE;AAExE,wDAAwD;AACxD,gEAAgE;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCE;AAEF,2CAA2C;AAC3C,2CAA2C;AAE3C,kCAAkC;AACrB,QAAA,GAAG,GAAG,IAAI,KAAK,CACxB;IACI,YAAY,CAAC,OAAmB;QAC5B,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,OAAmB,EAAE,IAAgB;QAC3C,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAmB,EAAE,IAAgB;QAC7C,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ,EACD;IACI,SAAS,EAAE,GAAG,EAAE;QACZ,MAAM,UAAU,GACZ,UAAU,IAAI,UAAU;YACxB,KAAK,IAAK,UAAoC,CAAC,QAAQ;YACnD,CAAC,CAAE,UAAoC,CAAC,QAAQ,CAAC,GAAG;YACpD,CAAC,CAAC,gBAAgB,CAAC;QAC3B,OAAO,IAAI,UAAU,EAAE,CAAC;IAC5B,CAAC;CACJ,CACJ,CAAC;AAEF,SAAgB,QAAQ,CAAC,GAAoB;IACzC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAG,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CACP,yCAAyC,EACzC,UAAU,IAAI,UAAU,CAC3B,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;QACtB,QAAQ,EAAE;YACN,GAAG,CAAE,UAAkC,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvD,GAAG,EAAE,GAAG;SACX;KAC0B,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CACP,wCAAwC,EACxC,UAAU,IAAI,UAAU,CAC3B,CAAC;IAEF,4DAA4D;IAC5D,0CAA0C;IAC1C,wCAAwC;IACxC,sDAAsD;IACtD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAG,CAAC,CAAC;AACzC,CAAC;AAtBD,4BAsBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ecash-lib",
3
- "version": "1.2.2-rc13",
3
+ "version": "1.2.2-rc14",
4
4
  "description": "Library for eCash transaction building",
5
5
  "main": "./dist/indexNodeJs.js",
6
6
  "browser": "./dist/indexBrowser.js",