ecash-lib 1.5.2-rc → 2.0.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.
Files changed (94) hide show
  1. package/README.md +4 -40
  2. package/dist/address/legacyaddr.d.ts +1 -1
  3. package/dist/ecc.d.ts +3 -25
  4. package/dist/ecc.d.ts.map +1 -1
  5. package/dist/ecc.js +29 -57
  6. package/dist/ecc.js.map +1 -1
  7. package/dist/ffi/ecash_lib_wasm_bg_browser.d.ts +1 -0
  8. package/dist/ffi/ecash_lib_wasm_bg_browser.js +1571 -0
  9. package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  10. package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  11. package/dist/hash.d.ts +6 -16
  12. package/dist/hash.d.ts.map +1 -1
  13. package/dist/hash.js +18 -18
  14. package/dist/hash.js.map +1 -1
  15. package/dist/hdwallet.d.ts +2 -4
  16. package/dist/hdwallet.d.ts.map +1 -1
  17. package/dist/hdwallet.js +6 -7
  18. package/dist/hdwallet.js.map +1 -1
  19. package/dist/hmac.js +3 -3
  20. package/dist/hmac.js.map +1 -1
  21. package/dist/initBrowser.d.ts +1 -11
  22. package/dist/initBrowser.d.ts.map +1 -1
  23. package/dist/initBrowser.js +21 -41
  24. package/dist/initBrowser.js.map +1 -1
  25. package/dist/initNodeJs.d.ts +1 -2
  26. package/dist/initNodeJs.d.ts.map +1 -1
  27. package/dist/initNodeJs.js +16 -30
  28. package/dist/initNodeJs.js.map +1 -1
  29. package/dist/io/bytes.js +2 -2
  30. package/dist/io/bytes.js.map +1 -1
  31. package/dist/io/hex.js +5 -4
  32. package/dist/io/hex.js.map +1 -1
  33. package/dist/io/str.js +3 -2
  34. package/dist/io/str.js.map +1 -1
  35. package/dist/io/varsize.js +3 -2
  36. package/dist/io/varsize.js.map +1 -1
  37. package/dist/mnemonic.js +4 -3
  38. package/dist/mnemonic.js.map +1 -1
  39. package/dist/op.js +6 -5
  40. package/dist/op.js.map +1 -1
  41. package/dist/pbkdf2.js +2 -1
  42. package/dist/pbkdf2.js.map +1 -1
  43. package/dist/test/testRunner.d.ts +1 -2
  44. package/dist/test/testRunner.d.ts.map +1 -1
  45. package/dist/test/testRunner.js +10 -23
  46. package/dist/test/testRunner.js.map +1 -1
  47. package/dist/token/alp.d.ts +1 -1
  48. package/dist/token/alp.d.ts.map +1 -1
  49. package/dist/token/alp.js +5 -5
  50. package/dist/token/alp.js.map +1 -1
  51. package/dist/token/common.d.ts +4 -4
  52. package/dist/token/common.d.ts.map +1 -1
  53. package/dist/token/empp.js +2 -1
  54. package/dist/token/empp.js.map +1 -1
  55. package/dist/token/slp.d.ts +1 -1
  56. package/dist/token/slp.d.ts.map +1 -1
  57. package/dist/token/slp.js +7 -7
  58. package/dist/token/slp.js.map +1 -1
  59. package/dist/tx.js +7 -7
  60. package/dist/tx.js.map +1 -1
  61. package/dist/txBuilder.d.ts +5 -1
  62. package/dist/txBuilder.d.ts.map +1 -1
  63. package/dist/txBuilder.js +12 -11
  64. package/dist/txBuilder.js.map +1 -1
  65. package/package.json +1 -1
  66. package/src/ecc.ts +27 -61
  67. package/src/ffi/ecash_lib_wasm_bg_browser.d.ts +1 -0
  68. package/src/ffi/ecash_lib_wasm_bg_browser.js +1571 -0
  69. package/src/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  70. package/src/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  71. package/src/hash.ts +19 -38
  72. package/src/hdwallet.ts +4 -8
  73. package/src/initBrowser.ts +18 -25
  74. package/src/initNodeJs.ts +9 -12
  75. package/src/test/testRunner.ts +3 -11
  76. package/src/txBuilder.ts +12 -7
  77. package/.nyc_output/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  78. package/.nyc_output/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  79. package/.nyc_output/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  80. package/.nyc_output/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  81. package/.nyc_output/processinfo/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  82. package/.nyc_output/processinfo/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  83. package/.nyc_output/processinfo/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  84. package/.nyc_output/processinfo/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  85. package/.nyc_output/processinfo/index.json +0 -1
  86. package/dist/address/cashaddr.d.ts +0 -78
  87. package/dist/address/cashaddr.d.ts.map +0 -1
  88. package/dist/address/cashaddr.js +0 -543
  89. package/dist/address/cashaddr.js.map +0 -1
  90. package/dist/cashaddr/cashaddr.d.ts +0 -23
  91. package/dist/cashaddr/cashaddr.d.ts.map +0 -1
  92. package/dist/cashaddr/cashaddr.js +0 -325
  93. package/dist/cashaddr/cashaddr.js.map +0 -1
  94. package/test.log +0 -82
package/README.md CHANGED
@@ -18,27 +18,9 @@ This library works for both browser and NodeJS.
18
18
 
19
19
  `npm install --save ecash-lib`
20
20
 
21
- ### Setup
22
-
23
- To use this library, you first have to initialize the WebAssembly module:
24
-
25
- ```ts
26
- import { initWasm } from 'ecash-lib';
27
- await initWasm();
28
- ```
29
-
30
- After that, to sign signatures, you need an "Ecc" instance:
31
-
32
- ```ts
33
- import { Ecc } from 'ecash-lib';
34
- const ecc = new Ecc();
35
- ```
36
-
37
- **Note: You should only call this function once, as it's fairly expensive to setup, it internally precomputes some elliptic curve field elements, which takes some time**
38
-
39
21
  ### Usage
40
22
 
41
- Now you're ready to sign your first transactions:
23
+ Here's how to sign your first transaction:
42
24
 
43
25
  ```ts
44
26
  import {
@@ -47,20 +29,15 @@ import {
47
29
  Script,
48
30
  TxBuilder,
49
31
  fromHex,
50
- initWasm,
51
32
  shaRmd160,
52
33
  toHex,
53
34
  ALL_BIP143,
54
35
  } from 'ecash-lib';
55
36
 
56
- // Download and compile WebAssembly
57
- await initWasm();
58
- // Build a signature context for elliptic curve cryptography (ECC)
59
- const ecc = new Ecc();
60
37
  const walletSk = fromHex(
61
38
  'e6ae1669c47d092eff3eb652bea535331c338e29f34be709bc4055655cd0e950',
62
39
  );
63
- const walletPk = ecc.derivePubkey(walletSk);
40
+ const walletPk = new Ecc().derivePubkey(walletSk);
64
41
  const walletPkh = shaRmd160(walletPk);
65
42
  const walletP2pkh = Script.p2pkh(walletPkh);
66
43
  // TxId with unspent funds for the above wallet
@@ -90,24 +67,11 @@ const txBuild = new TxBuilder({
90
67
  walletP2pkh,
91
68
  ],
92
69
  });
93
- const tx = txBuild.sign(ecc, 1000, 546);
70
+ const tx = txBuild.sign({ feePerKb: 1000, dustLimit: 546 });
94
71
  const rawTx = tx.ser();
95
72
  console.log(toHex(rawTx));
96
73
  ```
97
74
 
98
- ### Troubleshooting
99
-
100
- #### Can't load WebAssembly
101
-
102
- Some bundlers can't handle WebAssembly yet (at the time of writing, vite).
103
- If you run into "CompileError: expected magic word 00 61 73 6d", you can
104
- provide a custom WASM URL or module:
105
-
106
- ```ts
107
- import ecashLibWasmUrl from 'ecash-lib/dist/ffi/ecash_lib_wasm_bg_browser.wasm?url';
108
- await initWasm(ecashLibWasmUrl);
109
- ```
110
-
111
75
  ## Changelog
112
76
 
113
77
  - 0.1.1 - Validation that feePerKb is an integer
@@ -125,4 +89,4 @@ await initWasm(ecashLibWasmUrl);
125
89
  - 1.4.1 - Patch import in `mnemonic.ts` [D17621](https://reviews.bitcoinabc.org/D17621)
126
90
  - 1.5.0 - Support custom WASM URL and module [D17622](https://reviews.bitcoinabc.org/D17622)
127
91
  - 1.5.1 - `Address.withPrefix()` returns same prefix if unchanged (instead of throwing an error) [D17623](https://reviews.bitcoinabc.org/D17623)
128
- - 1.5.2 - Attach `Ecc` and `HASHES` to `globalThis` instead of dependency injection, so that they can work when `ecash-lib` is a dependency of another lib [D17464](https://reviews.bitcoinabc.org/D17464)
92
+ - 2.0.0 - Remove `initWasm`, auto-load the WebAssembly instead. Remove unneeded `ecc` parameters, esp. in `TxBuilder.sign` and `HdNode.fromSeed` [D17639](https://reviews.bitcoinabc.org/D17639) [D17640](https://reviews.bitcoinabc.org/D17640)
@@ -26,6 +26,6 @@ export declare const decodeLegacyAddress: (address: string) => DecodedLegacyAddr
26
26
  * Encode a legacy address given type and hash
27
27
  * For now, this is a stub method that supports only BTC p2pkh and p2sh
28
28
  */
29
- export declare const encodeLegacyAddress: (hash: Uint8Array, type: "p2pkh" | "p2sh", network?: NetworkType) => string;
29
+ export declare const encodeLegacyAddress: (hash: Uint8Array, type: 'p2pkh' | 'p2sh', network?: NetworkType) => string;
30
30
  export {};
31
31
  //# sourceMappingURL=legacyaddr.d.ts.map
package/dist/ecc.d.ts CHANGED
@@ -25,29 +25,7 @@ export declare class EccDummy implements Ecc {
25
25
  seckeyAdd(_a: Uint8Array, _b: Uint8Array): Uint8Array;
26
26
  pubkeyAdd(_a: Uint8Array, _b: Uint8Array): Uint8Array;
27
27
  }
28
- /**
29
- * We define Ecc as a proxy
30
- * This is done to solve a specific problem
31
- * If we have this kind of app structure:
32
- * - AppOne has ecash-lib as a dependency
33
- * - AppTwo has ecash-lib as a dependency
34
- * - AppOne has AppTwo as a dependency
35
- *
36
- * So, we expect AppOne to use AppTwo methods that need initWasm()
37
- * However, if we initWasm() in AppOne, these methods are not available in AppTwo
38
- *
39
- * We can get them into the globalThis with initWasm, but we still need Ecc to dynamically
40
- * check the globalThis and realize it is there --- to preserve lib syntax
41
- *
42
- * In this way, users can still call "new Ecc()"
43
- *
44
- * With just globalThis, users must call "new (globalThis as unknown as GlobalThis).ecashlib.Ecc()"
45
- *
46
- * Note that we "redefine" EccUninitialized in the implementation, because we do not want
47
- * console.log(Ecc) to give "EccUnitialized" even when it works; "EccProxy" is more accurate
48
- */
49
- export declare const Ecc: new () => Ecc;
50
- export declare function __setEcc(ecc: {
51
- new (): Ecc;
52
- }): void;
28
+ export declare function __setEcc(ecc: Ecc): void;
29
+ export declare class Ecc implements Ecc {
30
+ }
53
31
  //# sourceMappingURL=ecc.d.ts.map
package/dist/ecc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ecc.d.ts","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":"AAMA,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;IAE7D;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAE3C,mCAAmC;IACnC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAEpD,gDAAgD;IAChD,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACvD;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;IAI9D,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAI3C,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,UAAU;IAIrD,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,UAAU;CAGxD;AAmCD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,GAAG,EAAE,UAAU,GAOG,CAAC;AAEhC,wBAAgB,QAAQ,CAAC,GAAG,EAAE;IAAE,QAAQ,GAAG,CAAA;CAAE,QAO5C"}
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;IAE7D;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAE3C,mCAAmC;IACnC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAEpD,gDAAgD;IAChD,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACvD;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;IAI9D,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO;IAI3C,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,UAAU;IAIrD,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,UAAU;CAGxD;AAID,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,QAEhC;AAED,qBAAa,GAAI,YAAW,GAAG;CAiC9B"}
package/dist/ecc.js CHANGED
@@ -3,8 +3,7 @@
3
3
  // Distributed under the MIT software license, see the accompanying
4
4
  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Ecc = exports.EccDummy = void 0;
7
- exports.__setEcc = __setEcc;
6
+ exports.Ecc = exports.__setEcc = exports.EccDummy = void 0;
8
7
  /** Dummy Ecc impl that always returns 0, useful for measuring tx size */
9
8
  class EccDummy {
10
9
  derivePubkey(_seckey) {
@@ -27,66 +26,39 @@ class EccDummy {
27
26
  }
28
27
  }
29
28
  exports.EccDummy = EccDummy;
30
- /** Uninitialized Ecc for fallback */
31
- class EccUninitialized {
32
- constructor() {
33
- if (!exports.Ecc.prototype.derivePubkey) {
34
- throw new Error('Ecc not initialized. Call initWasm first.');
35
- }
29
+ const ECC = {};
30
+ function __setEcc(ecc) {
31
+ ECC.ecc = ecc;
32
+ }
33
+ exports.__setEcc = __setEcc;
34
+ class Ecc {
35
+ /** Derive a public key from secret key. */
36
+ derivePubkey(seckey) {
37
+ return ECC.ecc.derivePubkey(seckey);
36
38
  }
37
- derivePubkey(_seckey) {
38
- throw new Error('Ecc not initialized. Call initWasm first.');
39
+ /** Sign an ECDSA signature. msg needs to be a 32-byte hash */
40
+ ecdsaSign(seckey, msg) {
41
+ return ECC.ecc.ecdsaSign(seckey, msg);
39
42
  }
40
- ecdsaSign(_seckey, _msg) {
41
- throw new Error('Ecc not initialized. Call initWasm first.');
43
+ /** Sign a Schnorr signature. msg needs to be a 32-byte hash */
44
+ schnorrSign(seckey, msg) {
45
+ return ECC.ecc.schnorrSign(seckey, msg);
42
46
  }
43
- schnorrSign(_seckey, _msg) {
44
- throw new Error('Ecc not initialized. Call initWasm first.');
47
+ /**
48
+ * Return whether the given secret key is valid, i.e. whether is of correct
49
+ * length (32 bytes) and is on the curve.
50
+ */
51
+ isValidSeckey(seckey) {
52
+ return ECC.ecc.isValidSeckey(seckey);
45
53
  }
46
- isValidSeckey(_seckey) {
47
- throw new Error('Ecc not initialized. Call initWasm first.');
48
- }
49
- seckeyAdd(_a, _b) {
50
- throw new Error('Ecc not initialized. Call initWasm first.');
54
+ /** Add a scalar to a secret key */
55
+ seckeyAdd(a, b) {
56
+ return ECC.ecc.seckeyAdd(a, b);
51
57
  }
52
- pubkeyAdd(_a, _b) {
53
- throw new Error('Ecc not initialized. Call initWasm first.');
58
+ /** Add a scalar to a public key (adding G*b) */
59
+ pubkeyAdd(a, b) {
60
+ return ECC.ecc.pubkeyAdd(a, b);
54
61
  }
55
62
  }
56
- /**
57
- * We define Ecc as a proxy
58
- * This is done to solve a specific problem
59
- * If we have this kind of app structure:
60
- * - AppOne has ecash-lib as a dependency
61
- * - AppTwo has ecash-lib as a dependency
62
- * - AppOne has AppTwo as a dependency
63
- *
64
- * So, we expect AppOne to use AppTwo methods that need initWasm()
65
- * However, if we initWasm() in AppOne, these methods are not available in AppTwo
66
- *
67
- * We can get them into the globalThis with initWasm, but we still need Ecc to dynamically
68
- * check the globalThis and realize it is there --- to preserve lib syntax
69
- *
70
- * In this way, users can still call "new Ecc()"
71
- *
72
- * With just globalThis, users must call "new (globalThis as unknown as GlobalThis).ecashlib.Ecc()"
73
- *
74
- * Note that we "redefine" EccUninitialized in the implementation, because we do not want
75
- * console.log(Ecc) to give "EccUnitialized" even when it works; "EccProxy" is more accurate
76
- */
77
- exports.Ecc = function () {
78
- const currentEcc = 'ecashlib' in globalThis &&
79
- 'Ecc' in globalThis.ecashlib
80
- ? globalThis.ecashlib.Ecc
81
- : EccUninitialized;
82
- return new currentEcc();
83
- };
84
- function __setEcc(ecc) {
85
- Object.assign(globalThis, {
86
- ecashlib: {
87
- ...(globalThis.ecashlib || {}),
88
- Ecc: ecc,
89
- },
90
- });
91
- }
63
+ exports.Ecc = Ecc;
92
64
  //# sourceMappingURL=ecc.js.map
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;;;AAuHtE,4BAOC;AAlGD,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;IAED,aAAa,CAAC,OAAmB;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,EAAc,EAAE,EAAc;QACpC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,EAAc,EAAE,EAAc;QACpC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAxBD,4BAwBC;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;IAED,aAAa,CAAC,OAAmB;QAC7B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,EAAc,EAAE,EAAc;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,EAAc,EAAE,EAAc;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AAEU,QAAA,GAAG,GAAkB;IAC9B,MAAM,UAAU,GACZ,UAAU,IAAI,UAAU;QACxB,KAAK,IAAK,UAAuC,CAAC,QAAQ;QACtD,CAAC,CAAE,UAAuC,CAAC,QAAQ,CAAC,GAAG;QACvD,CAAC,CAAC,gBAAgB,CAAC;IAC3B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC5B,CAA+B,CAAC;AAEhC,SAAgB,QAAQ,CAAC,GAAoB;IACzC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;QACtB,QAAQ,EAAE;YACN,GAAG,CAAE,UAAkC,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvD,GAAG,EAAE,GAAG;SACX;KACsB,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"ecc.js","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AA0BtE,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;IAED,aAAa,CAAC,OAAmB;QAC7B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,EAAc,EAAE,EAAc;QACpC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,EAAc,EAAE,EAAc;QACpC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAxBD,4BAwBC;AAED,MAAM,GAAG,GAAkB,EAAE,CAAC;AAE9B,SAAgB,QAAQ,CAAC,GAAQ;IAC7B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AAClB,CAAC;AAFD,4BAEC;AAED,MAAa,GAAG;IACZ,2CAA2C;IAC3C,YAAY,CAAC,MAAkB;QAC3B,OAAO,GAAG,CAAC,GAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,8DAA8D;IAC9D,SAAS,CAAC,MAAkB,EAAE,GAAe;QACzC,OAAO,GAAG,CAAC,GAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,+DAA+D;IAC/D,WAAW,CAAC,MAAkB,EAAE,GAAe;QAC3C,OAAO,GAAG,CAAC,GAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,MAAkB;QAC5B,OAAO,GAAG,CAAC,GAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,mCAAmC;IACnC,SAAS,CAAC,CAAa,EAAE,CAAa;QAClC,OAAO,GAAG,CAAC,GAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,gDAAgD;IAChD,SAAS,CAAC,CAAa,EAAE,CAAa;QAClC,OAAO,GAAG,CAAC,GAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC;CACJ;AAjCD,kBAiCC"}
@@ -0,0 +1 @@
1
+ export const ECASH_LIB_WASM_BASE64: string;