ecash-lib 1.5.2-rc → 2.1.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 (106) hide show
  1. package/README.md +5 -40
  2. package/dist/address/legacyaddr.d.ts +1 -1
  3. package/dist/ecc.d.ts +9 -25
  4. package/dist/ecc.d.ts.map +1 -1
  5. package/dist/ecc.js +40 -56
  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 +1707 -0
  9. package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  10. package/dist/ffi/ecash_lib_wasm_bg_browser.wasm.d.ts +2 -0
  11. package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  12. package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm.d.ts +2 -0
  13. package/dist/ffi/ecash_lib_wasm_browser.d.ts +24 -0
  14. package/dist/ffi/ecash_lib_wasm_browser.js +64 -0
  15. package/dist/ffi/ecash_lib_wasm_nodejs.d.ts +22 -0
  16. package/dist/ffi/ecash_lib_wasm_nodejs.js +64 -0
  17. package/dist/hash.d.ts +6 -16
  18. package/dist/hash.d.ts.map +1 -1
  19. package/dist/hash.js +18 -18
  20. package/dist/hash.js.map +1 -1
  21. package/dist/hdwallet.d.ts +2 -4
  22. package/dist/hdwallet.d.ts.map +1 -1
  23. package/dist/hdwallet.js +6 -7
  24. package/dist/hdwallet.js.map +1 -1
  25. package/dist/hmac.js +3 -3
  26. package/dist/hmac.js.map +1 -1
  27. package/dist/initBrowser.d.ts +1 -11
  28. package/dist/initBrowser.d.ts.map +1 -1
  29. package/dist/initBrowser.js +21 -41
  30. package/dist/initBrowser.js.map +1 -1
  31. package/dist/initNodeJs.d.ts +1 -2
  32. package/dist/initNodeJs.d.ts.map +1 -1
  33. package/dist/initNodeJs.js +16 -30
  34. package/dist/initNodeJs.js.map +1 -1
  35. package/dist/io/bytes.js +2 -2
  36. package/dist/io/bytes.js.map +1 -1
  37. package/dist/io/hex.js +5 -4
  38. package/dist/io/hex.js.map +1 -1
  39. package/dist/io/str.js +3 -2
  40. package/dist/io/str.js.map +1 -1
  41. package/dist/io/varsize.js +3 -2
  42. package/dist/io/varsize.js.map +1 -1
  43. package/dist/mnemonic.js +4 -3
  44. package/dist/mnemonic.js.map +1 -1
  45. package/dist/op.js +6 -5
  46. package/dist/op.js.map +1 -1
  47. package/dist/pbkdf2.js +2 -1
  48. package/dist/pbkdf2.js.map +1 -1
  49. package/dist/test/testRunner.d.ts +1 -2
  50. package/dist/test/testRunner.d.ts.map +1 -1
  51. package/dist/test/testRunner.js +10 -23
  52. package/dist/test/testRunner.js.map +1 -1
  53. package/dist/token/alp.d.ts +1 -1
  54. package/dist/token/alp.d.ts.map +1 -1
  55. package/dist/token/alp.js +5 -5
  56. package/dist/token/alp.js.map +1 -1
  57. package/dist/token/common.d.ts +4 -4
  58. package/dist/token/common.d.ts.map +1 -1
  59. package/dist/token/empp.js +2 -1
  60. package/dist/token/empp.js.map +1 -1
  61. package/dist/token/slp.d.ts +1 -1
  62. package/dist/token/slp.d.ts.map +1 -1
  63. package/dist/token/slp.js +7 -7
  64. package/dist/token/slp.js.map +1 -1
  65. package/dist/tx.js +7 -7
  66. package/dist/tx.js.map +1 -1
  67. package/dist/txBuilder.d.ts +5 -1
  68. package/dist/txBuilder.d.ts.map +1 -1
  69. package/dist/txBuilder.js +12 -11
  70. package/dist/txBuilder.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/ecc.ts +47 -59
  73. package/src/ffi/ecash_lib_wasm_bg_browser.d.ts +1 -0
  74. package/src/ffi/ecash_lib_wasm_bg_browser.js +1707 -0
  75. package/src/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
  76. package/src/ffi/ecash_lib_wasm_bg_browser.wasm.d.ts +2 -0
  77. package/src/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
  78. package/src/ffi/ecash_lib_wasm_bg_nodejs.wasm.d.ts +2 -0
  79. package/src/ffi/ecash_lib_wasm_browser.d.ts +24 -0
  80. package/src/ffi/ecash_lib_wasm_browser.js +64 -0
  81. package/src/ffi/ecash_lib_wasm_nodejs.d.ts +22 -0
  82. package/src/ffi/ecash_lib_wasm_nodejs.js +64 -0
  83. package/src/hash.ts +19 -38
  84. package/src/hdwallet.ts +4 -8
  85. package/src/initBrowser.ts +18 -25
  86. package/src/initNodeJs.ts +9 -12
  87. package/src/test/testRunner.ts +3 -11
  88. package/src/txBuilder.ts +12 -7
  89. package/.nyc_output/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  90. package/.nyc_output/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  91. package/.nyc_output/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  92. package/.nyc_output/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  93. package/.nyc_output/processinfo/0fc40ca6-d52c-45eb-b31b-2601ce70b887.json +0 -1
  94. package/.nyc_output/processinfo/ac5be6db-4e40-41f8-8b84-7598d4747e57.json +0 -1
  95. package/.nyc_output/processinfo/b316d46f-5ea0-4e98-884a-bfbf9cc1d0f8.json +0 -1
  96. package/.nyc_output/processinfo/f965566b-9422-4874-b45e-9eefda9c769c.json +0 -1
  97. package/.nyc_output/processinfo/index.json +0 -1
  98. package/dist/address/cashaddr.d.ts +0 -78
  99. package/dist/address/cashaddr.d.ts.map +0 -1
  100. package/dist/address/cashaddr.js +0 -543
  101. package/dist/address/cashaddr.js.map +0 -1
  102. package/dist/cashaddr/cashaddr.d.ts +0 -23
  103. package/dist/cashaddr/cashaddr.d.ts.map +0 -1
  104. package/dist/cashaddr/cashaddr.js +0 -325
  105. package/dist/cashaddr/cashaddr.js.map +0 -1
  106. package/test.log +0 -82
@@ -1 +1 @@
1
- {"version":3,"file":"slp.d.ts","sourceRoot":"","sources":["../../src/token/slp.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAiB,WAAW,EAAc,MAAM,aAAa,CAAC;AAE7E,uBAAuB;AACvB,eAAO,MAAM,YAAY,6BAAsB,CAAC;AAEhD,qCAAqC;AACrC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,uCAAuC;AACvC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,uCAAuC;AACvC,eAAO,MAAM,cAAc,KAAO,CAAC;AACnC,uCAAuC;AACvC,eAAO,MAAM,cAAc,MAAO,CAAC;AAEnC,+DAA+D;AAC/D,wBAAgB,UAAU,CACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,EACvB,eAAe,CAAC,EAAE,MAAM,GACzB,MAAM,CA4BR;AAED;;;IAGI;AACJ,wBAAgB,OAAO,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,CAAC,EAAE,MAAM,GACzB,MAAM,CAgBR;AAED;;;IAGI;AACJ,wBAAgB,YAAY,CACxB,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAAE,GAC/B,MAAM,CAcR;AAED;;IAEI;AACJ,wBAAgB,OAAO,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAAE,GACtB,MAAM,CAaR;AAED;;;IAGI;AACJ,wBAAgB,OAAO,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACnB,MAAM,CAWR;AAiDD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAYpD"}
1
+ {"version":3,"file":"slp.d.ts","sourceRoot":"","sources":["../../src/token/slp.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAiB,WAAW,EAAc,MAAM,aAAa,CAAC;AAE7E,uBAAuB;AACvB,eAAO,MAAM,YAAY,YAAsB,CAAC;AAEhD,qCAAqC;AACrC,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,uCAAuC;AACvC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,uCAAuC;AACvC,eAAO,MAAM,cAAc,KAAO,CAAC;AACnC,uCAAuC;AACvC,eAAO,MAAM,cAAc,MAAO,CAAC;AAEnC,+DAA+D;AAC/D,wBAAgB,UAAU,CACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,MAAM,EACvB,eAAe,CAAC,EAAE,MAAM,GACzB,MAAM,CA4BR;AAED;;;IAGI;AACJ,wBAAgB,OAAO,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,CAAC,EAAE,MAAM,GACzB,MAAM,CAgBR;AAED;;;IAGI;AACJ,wBAAgB,YAAY,CACxB,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAAE,GAC/B,MAAM,CAcR;AAED;;IAEI;AACJ,wBAAgB,OAAO,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EAAE,GACtB,MAAM,CAaR;AAED;;;IAGI;AACJ,wBAAgB,OAAO,CACnB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACnB,MAAM,CAWR;AAiDD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAYpD"}
package/dist/token/slp.js CHANGED
@@ -3,13 +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.SLP_NFT1_GROUP = exports.SLP_NFT1_CHILD = exports.SLP_MINT_VAULT = exports.SLP_FUNGIBLE = exports.SLP_LOKAD_ID = void 0;
7
- exports.slpGenesis = slpGenesis;
8
- exports.slpMint = slpMint;
9
- exports.slpMintVault = slpMintVault;
10
- exports.slpSend = slpSend;
11
- exports.slpBurn = slpBurn;
12
- exports.slpAmount = slpAmount;
6
+ exports.slpAmount = exports.slpBurn = exports.slpSend = exports.slpMintVault = exports.slpMint = exports.slpGenesis = exports.SLP_NFT1_GROUP = exports.SLP_NFT1_CHILD = exports.SLP_MINT_VAULT = exports.SLP_FUNGIBLE = exports.SLP_LOKAD_ID = void 0;
13
7
  const hex_js_1 = require("../io/hex.js");
14
8
  const str_js_1 = require("../io/str.js");
15
9
  const op_js_1 = require("../op.js");
@@ -58,6 +52,7 @@ function slpGenesis(tokenType, genesisInfo, initialQuantity, mintBatonOutIdx) {
58
52
  data.push(slpAmount(initialQuantity));
59
53
  return script_js_1.Script.fromOps([opcode_js_1.OP_RETURN].concat(data.map(pushdataOpSlp)));
60
54
  }
55
+ exports.slpGenesis = slpGenesis;
61
56
  /**
62
57
  * Build an SLP MINT pushdata section, creating new SLP tokens and mint batons
63
58
  * of the given token ID.
@@ -75,6 +70,7 @@ function slpMint(tokenId, tokenType, additionalQuantity, mintBatonOutIdx) {
75
70
  pushdataOpSlp(slpAmount(additionalQuantity)),
76
71
  ]);
77
72
  }
73
+ exports.slpMint = slpMint;
78
74
  /**
79
75
  * Build an SLP MINT VAULT pushdata section, creating new SLP tokens and mint batons
80
76
  * of the given token ID.
@@ -90,6 +86,7 @@ function slpMintVault(tokenId, additionalQuantities) {
90
86
  pushdataOpSlp((0, hex_js_1.fromHex)(tokenId)),
91
87
  ].concat(additionalQuantities.map(qty => pushdataOpSlp(slpAmount(qty)))));
92
88
  }
89
+ exports.slpMintVault = slpMintVault;
93
90
  /**
94
91
  * Build an SLP SEND pushdata section, moving SLP tokens to different outputs
95
92
  **/
@@ -105,6 +102,7 @@ function slpSend(tokenId, tokenType, sendAmounts) {
105
102
  pushdataOpSlp((0, hex_js_1.fromHex)(tokenId)),
106
103
  ].concat(sendAmounts.map(qty => pushdataOpSlp(slpAmount(qty)))));
107
104
  }
105
+ exports.slpSend = slpSend;
108
106
  /**
109
107
  * Build an SLP BURN pushdata section, intentionally burning SLP tokens.
110
108
  * See https://github.com/badger-cash/slp-self-mint-protocol/blob/master/token-type1-burn.md
@@ -121,6 +119,7 @@ function slpBurn(tokenId, tokenType, burnAmount) {
121
119
  pushdataOpSlp(slpAmount(burnAmount)),
122
120
  ]);
123
121
  }
122
+ exports.slpBurn = slpBurn;
124
123
  function verifyTokenType(tokenType) {
125
124
  switch (tokenType) {
126
125
  case exports.SLP_FUNGIBLE:
@@ -169,4 +168,5 @@ function slpAmount(amount) {
169
168
  view.setBigUint64(0, BigInt(amount), /*little endian=*/ false);
170
169
  return amountBytes;
171
170
  }
171
+ exports.slpAmount = slpAmount;
172
172
  //# sourceMappingURL=slp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slp.js","sourceRoot":"","sources":["../../src/token/slp.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AAsBtE,gCAiCC;AAMD,0BAqBC;AAMD,oCAiBC;AAKD,0BAiBC;AAMD,0BAeC;AAiDD,8BAYC;AA/MD,yCAAuC;AACvC,yCAA0C;AAC1C,oCAA2C;AAC3C,4CAAuD;AACvD,4CAAsC;AACtC,2CAA6E;AAE7E,uBAAuB;AACV,QAAA,YAAY,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;AAEhD,qCAAqC;AACxB,QAAA,YAAY,GAAG,CAAC,CAAC;AAC9B,uCAAuC;AAC1B,QAAA,cAAc,GAAG,CAAC,CAAC;AAChC,uCAAuC;AAC1B,QAAA,cAAc,GAAG,IAAI,CAAC;AACnC,uCAAuC;AAC1B,QAAA,cAAc,GAAG,IAAI,CAAC;AAEnC,+DAA+D;AAC/D,SAAgB,UAAU,CACtB,SAAiB,EACjB,WAAwB,EACxB,eAAuB,EACvB,eAAwB;IAExB,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,oBAAY,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,mBAAO,CAAC,CAAC;IACnB,IAAI,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,SAAS,IAAI,sBAAc,EAAE,CAAC;QAC9B,IAAI,WAAW,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACJ,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC;IACtC,OAAO,kBAAM,CAAC,OAAO,CAAC,CAAC,qBAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED;;;IAGI;AACJ,SAAgB,OAAO,CACnB,OAAe,EACf,SAAiB,EACjB,kBAA0B,EAC1B,eAAwB;IAExB,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,kBAAM,CAAC,OAAO,CAAC;QAClB,qBAAS;QACT,aAAa,CAAC,oBAAY,CAAC;QAC3B,aAAa,CAAC,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,aAAa,CAAC,gBAAI,CAAC;QACnB,aAAa,CAAC,IAAA,gBAAO,EAAC,OAAO,CAAC,CAAC;QAC/B,aAAa,CACT,IAAI,UAAU,CACV,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CACzD,CACJ;QACD,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;KAC/C,CAAC,CAAC;AACP,CAAC;AAED;;;IAGI;AACJ,SAAgB,YAAY,CACxB,OAAe,EACf,oBAA8B;IAE9B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACxC,OAAO,kBAAM,CAAC,OAAO,CACjB;QACI,qBAAS;QACT,aAAa,CAAC,oBAAY,CAAC;QAC3B,aAAa,CAAC,IAAI,UAAU,CAAC,CAAC,sBAAc,CAAC,CAAC,CAAC;QAC/C,aAAa,CAAC,gBAAI,CAAC;QACnB,aAAa,CAAC,IAAA,gBAAO,EAAC,OAAO,CAAC,CAAC;KAClC,CAAC,MAAM,CACJ,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CACjE,CACJ,CAAC;AACN,CAAC;AAED;;IAEI;AACJ,SAAgB,OAAO,CACnB,OAAe,EACf,SAAiB,EACjB,WAAqB;IAErB,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/B,OAAO,kBAAM,CAAC,OAAO,CACjB;QACI,qBAAS;QACT,aAAa,CAAC,oBAAY,CAAC;QAC3B,aAAa,CAAC,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,aAAa,CAAC,gBAAI,CAAC;QACnB,aAAa,CAAC,IAAA,gBAAO,EAAC,OAAO,CAAC,CAAC;KAClC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAClE,CAAC;AACN,CAAC;AAED;;;IAGI;AACJ,SAAgB,OAAO,CACnB,OAAe,EACf,SAAiB,EACjB,UAAkB;IAElB,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,kBAAM,CAAC,OAAO,CAAC;QAClB,qBAAS;QACT,aAAa,CAAC,oBAAY,CAAC;QAC3B,aAAa,CAAC,IAAI,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,aAAa,CAAC,gBAAI,CAAC;QACnB,aAAa,CAAC,IAAA,gBAAO,EAAC,OAAO,CAAC,CAAC;QAC/B,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KACvC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACtC,QAAQ,SAAS,EAAE,CAAC;QAChB,KAAK,oBAAY,CAAC;QAClB,KAAK,sBAAc,CAAC;QACpB,KAAK,sBAAc,CAAC;QACpB,KAAK,sBAAc;YACf,OAAO;QACX;YACI,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IAClC,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACX,yDAAyD,OAAO,CAAC,MAAM,EAAE,CAC5E,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAqB;IAC5C,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACX,4CAA4C,WAAW,CAAC,MAAM,EAAE,CACnE,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,QAAoB;IACvC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO;YACH,MAAM,EAAE,wBAAY;YACpB,IAAI,EAAE,QAAQ;SACjB,CAAC;IACN,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,wBAAY,EAAE,CAAC;QACjC,OAAO;YACH,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ;SACjB,CAAC;IACN,CAAC;IACD,OAAO,IAAA,mBAAW,EAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,SAAS,CAAC,MAAc;IACpC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,mBAAmB,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,QAAQ,CACrB,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,UAAU,EACtB,WAAW,CAAC,UAAU,CACzB,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,WAAW,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"slp.js","sourceRoot":"","sources":["../../src/token/slp.ts"],"names":[],"mappings":"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"}
package/dist/tx.js CHANGED
@@ -3,13 +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.Tx = exports.DEFAULT_TX_VERSION = exports.DEFAULT_SEQUENCE = void 0;
7
- exports.readTxOutput = readTxOutput;
8
- exports.writeOutPoint = writeOutPoint;
9
- exports.writeTxInput = writeTxInput;
10
- exports.writeTxOutput = writeTxOutput;
11
- exports.copyTxInput = copyTxInput;
12
- exports.copyTxOutput = copyTxOutput;
6
+ exports.copyTxOutput = exports.copyTxInput = exports.writeTxOutput = exports.writeTxInput = exports.writeOutPoint = exports.readTxOutput = exports.Tx = exports.DEFAULT_TX_VERSION = exports.DEFAULT_SEQUENCE = void 0;
13
7
  const hex_js_1 = require("./io/hex.js");
14
8
  const varsize_js_1 = require("./io/varsize.js");
15
9
  const writerbytes_js_1 = require("./io/writerbytes.js");
@@ -69,6 +63,7 @@ function readTxOutput(bytes) {
69
63
  script,
70
64
  };
71
65
  }
66
+ exports.readTxOutput = readTxOutput;
72
67
  /** Write an outpoint to a Writer */
73
68
  function writeOutPoint(outpoint, writer) {
74
69
  const txid = typeof outpoint.txid === 'string'
@@ -77,17 +72,20 @@ function writeOutPoint(outpoint, writer) {
77
72
  writer.putBytes(txid);
78
73
  writer.putU32(outpoint.outIdx);
79
74
  }
75
+ exports.writeOutPoint = writeOutPoint;
80
76
  /** Write a TxInput to a Writer */
81
77
  function writeTxInput(input, writer) {
82
78
  writeOutPoint(input.prevOut, writer);
83
79
  (input.script ?? new script_js_1.Script()).writeWithSize(writer);
84
80
  writer.putU32(input.sequence ?? exports.DEFAULT_SEQUENCE);
85
81
  }
82
+ exports.writeTxInput = writeTxInput;
86
83
  /** Write a TxOutput to a Writer */
87
84
  function writeTxOutput(output, writer) {
88
85
  writer.putU64(output.value);
89
86
  output.script.writeWithSize(writer);
90
87
  }
88
+ exports.writeTxOutput = writeTxOutput;
91
89
  /** Create a deep copy of the TxInput */
92
90
  function copyTxInput(input) {
93
91
  return {
@@ -106,6 +104,7 @@ function copyTxInput(input) {
106
104
  },
107
105
  };
108
106
  }
107
+ exports.copyTxInput = copyTxInput;
109
108
  /** Create a deep copy of the TxOutput */
110
109
  function copyTxOutput(output) {
111
110
  return {
@@ -113,4 +112,5 @@ function copyTxOutput(output) {
113
112
  script: output.script.copy(),
114
113
  };
115
114
  }
115
+ exports.copyTxOutput = copyTxOutput;
116
116
  //# sourceMappingURL=tx.js.map
package/dist/tx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tx.js","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx.js","sourceRoot":"","sources":["../src/tx.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,11 @@ export declare class TxBuilder {
56
56
  private inputSum;
57
57
  private prepareOutputs;
58
58
  /** Sign the tx built by this builder and return a Tx */
59
- sign(ecc: Ecc, feePerKb?: number, dustLimit?: number): Tx;
59
+ sign(params?: {
60
+ ecc?: Ecc;
61
+ feePerKb?: number;
62
+ dustLimit?: number;
63
+ }): Tx;
60
64
  }
61
65
  /** Calculate the required tx fee for the given txSize and feePerKb,
62
66
  * rounding up */
@@ -1 +1 @@
1
- {"version":3,"file":"txBuilder.d.ts","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAY,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAEH,EAAE,EACF,OAAO,EACP,QAAQ,EAGX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAc,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;;;;;;;;;;;IAeI;AACJ,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC;AAErE,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhD,oDAAoD;AACpD,qBAAa,SAAS;IAClB,mCAAmC;IAC5B,OAAO,EAAE,MAAM,CAAC;IACvB,+CAA+C;IACxC,MAAM,EAAE,cAAc,EAAE,CAAC;IAChC;;;QAGI;IACG,OAAO,EAAE,eAAe,EAAE,CAAC;IAClC,oCAAoC;IAC7B,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB;IAOD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IA8BtB,wDAAwD;IACjD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,EAAE;CAiFnE;AAED;kBACkB;AAClB,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CACzB,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,WAAW,GAC1B,UAAU,CAKZ;AAED;;;IAGI;AACJ,wBAAgB,eAAe,CAC3B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,WAAW,GACzB,UAAU,CAMZ;AAED,kEAAkE;AAClE,eAAO,MAAM,cAAc,OACnB,UAAU,MACV,UAAU,eACD,WAAW,WAEX,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,aAAa,OAAQ,UAAU,eAAe,WAAW,WACrD,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC"}
1
+ {"version":3,"file":"txBuilder.d.ts","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAY,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAEH,EAAE,EACF,OAAO,EACP,QAAQ,EAGX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAc,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;;;;;;;;;;;IAeI;AACJ,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC;AAErE,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhD,oDAAoD;AACpD,qBAAa,SAAS;IAClB,mCAAmC;IAC5B,OAAO,EAAE,MAAM,CAAC;IACvB,+CAA+C;IACxC,MAAM,EAAE,cAAc,EAAE,CAAC;IAChC;;;QAGI;IACG,OAAO,EAAE,eAAe,EAAE,CAAC;IAClC,oCAAoC;IAC7B,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,CAAC,EAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB;IAOD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IA8BtB,wDAAwD;IACjD,IAAI,CAAC,MAAM,CAAC,EAAE;QACjB,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,EAAE;CAkFT;AAED;kBACkB;AAClB,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CACzB,GAAG,EAAE,UAAU,EACf,YAAY,EAAE,WAAW,GAC1B,UAAU,CAKZ;AAED;;;IAGI;AACJ,wBAAgB,eAAe,CAC3B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,WAAW,GACzB,UAAU,CAMZ;AAED,kEAAkE;AAClE,eAAO,MAAM,cAAc,OACnB,UAAU,MACV,UAAU,eACD,WAAW,WAEX,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,aAAa,OAAQ,UAAU,eAAe,WAAW,WACrD,GAAG,SAAS,eAAe,KAAG,MAM9C,CAAC"}
package/dist/txBuilder.js CHANGED
@@ -3,10 +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.P2PKSignatory = exports.P2PKHSignatory = exports.TxBuilder = void 0;
7
- exports.calcTxFee = calcTxFee;
8
- exports.flagSignature = flagSignature;
9
- exports.signWithSigHash = signWithSigHash;
6
+ exports.P2PKSignatory = exports.P2PKHSignatory = exports.signWithSigHash = exports.flagSignature = exports.calcTxFee = exports.TxBuilder = void 0;
10
7
  const ecc_js_1 = require("./ecc.js");
11
8
  const hash_js_1 = require("./hash.js");
12
9
  const writerbytes_js_1 = require("./io/writerbytes.js");
@@ -61,7 +58,8 @@ class TxBuilder {
61
58
  return { fixedOutputSum, leftoverIdx, outputs };
62
59
  }
63
60
  /** Sign the tx built by this builder and return a Tx */
64
- sign(ecc, feePerKb, dustLimit) {
61
+ sign(params) {
62
+ const ecc = params?.ecc ?? new ecc_js_1.Ecc();
65
63
  const { fixedOutputSum, leftoverIdx, outputs } = this.prepareOutputs();
66
64
  const inputs = this.inputs.map(input => (0, tx_js_1.copyTxInput)(input.input));
67
65
  const updateSignatories = (ecc, unsignedTx) => {
@@ -81,13 +79,13 @@ class TxBuilder {
81
79
  if (inputSum === undefined) {
82
80
  throw new Error('Using a leftover output requires setting SignData.value for all inputs');
83
81
  }
84
- if (feePerKb === undefined) {
82
+ if (params?.feePerKb === undefined) {
85
83
  throw new Error('Using a leftover output requires setting feePerKb');
86
84
  }
87
- if (!Number.isInteger(feePerKb)) {
85
+ if (!Number.isInteger(params.feePerKb)) {
88
86
  throw new Error('feePerKb must be an integer');
89
87
  }
90
- if (dustLimit === undefined) {
88
+ if (params?.dustLimit === undefined) {
91
89
  throw new Error('Using a leftover output requires setting dustLimit');
92
90
  }
93
91
  const dummyUnsignedTx = unsignedTx_js_1.UnsignedTx.dummyFromTx(new tx_js_1.Tx({
@@ -99,16 +97,16 @@ class TxBuilder {
99
97
  // Must use dummy here because ECDSA sigs could be too small for fee calc
100
98
  updateSignatories(new ecc_js_1.EccDummy(), dummyUnsignedTx);
101
99
  let txSize = dummyUnsignedTx.tx.serSize();
102
- let txFee = calcTxFee(txSize, feePerKb);
100
+ let txFee = calcTxFee(txSize, params.feePerKb);
103
101
  const leftoverValue = inputSum - (fixedOutputSum + txFee);
104
- if (leftoverValue < dustLimit) {
102
+ if (leftoverValue < params.dustLimit) {
105
103
  // inputs cannot pay for a dust leftover -> remove & recalc
106
104
  outputs.splice(leftoverIdx, 1);
107
105
  dummyUnsignedTx.tx.outputs = outputs;
108
106
  // Must update signatories again as they might depend on outputs
109
107
  updateSignatories(new ecc_js_1.EccDummy(), dummyUnsignedTx);
110
108
  txSize = dummyUnsignedTx.tx.serSize();
111
- txFee = calcTxFee(txSize, feePerKb);
109
+ txFee = calcTxFee(txSize, params.feePerKb);
112
110
  }
113
111
  else {
114
112
  outputs[leftoverIdx].value = leftoverValue;
@@ -133,6 +131,7 @@ exports.TxBuilder = TxBuilder;
133
131
  function calcTxFee(txSize, feePerKb) {
134
132
  return (BigInt(txSize) * BigInt(feePerKb) + 999n) / 1000n;
135
133
  }
134
+ exports.calcTxFee = calcTxFee;
136
135
  /** Append the sighash flags to the signature */
137
136
  function flagSignature(sig, sigHashFlags) {
138
137
  const writer = new writerbytes_js_1.WriterBytes(sig.length + 1);
@@ -140,6 +139,7 @@ function flagSignature(sig, sigHashFlags) {
140
139
  writer.putU8(sigHashFlags.toInt() & 0xff);
141
140
  return writer.data;
142
141
  }
142
+ exports.flagSignature = flagSignature;
143
143
  /**
144
144
  * Sign the sighash using Schnorr for BIP143 signatures and ECDSA for Legacy
145
145
  * signatures, and then flags the signature correctly
@@ -150,6 +150,7 @@ function signWithSigHash(ecc, sk, sigHash, sigHashType) {
150
150
  : ecc.schnorrSign(sk, sigHash);
151
151
  return flagSignature(sig, sigHashType);
152
152
  }
153
+ exports.signWithSigHash = signWithSigHash;
153
154
  /** Signatory for a P2PKH input. Always uses Schnorr signatures */
154
155
  const P2PKHSignatory = (sk, pk, sigHashType) => {
155
156
  return (ecc, input) => {
@@ -1 +1 @@
1
- {"version":3,"file":"txBuilder.js","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"txBuilder.js","sourceRoot":"","sources":["../src/txBuilder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ecash-lib",
3
- "version": "1.5.2-rc",
3
+ "version": "2.1.0",
4
4
  "description": "Library for eCash transaction building",
5
5
  "main": "./dist/indexNodeJs.js",
6
6
  "browser": "./dist/indexBrowser.js",
package/src/ecc.ts CHANGED
@@ -2,8 +2,6 @@
2
2
  // Distributed under the MIT software license, see the accompanying
3
3
  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
4
 
5
- import { GlobalThisExt } from './hash';
6
-
7
5
  /** Interface to abstract over Elliptic Curve Cryptography */
8
6
  export interface Ecc {
9
7
  /** Derive a public key from secret key. */
@@ -26,6 +24,12 @@ export interface Ecc {
26
24
 
27
25
  /** Add a scalar to a public key (adding G*b) */
28
26
  pubkeyAdd(a: Uint8Array, b: Uint8Array): Uint8Array;
27
+
28
+ /** Sign a ECDSA recoverable signature, includes the recovery ID */
29
+ signRecoverable(seckey: Uint8Array, msg: Uint8Array): Uint8Array;
30
+
31
+ /** Recover the public key of an ECDSA signed signature (with recovery ID) */
32
+ recoverSig(sig: Uint8Array, msg: Uint8Array): Uint8Array;
29
33
  }
30
34
 
31
35
  /** Dummy Ecc impl that always returns 0, useful for measuring tx size */
@@ -53,77 +57,61 @@ export class EccDummy implements Ecc {
53
57
  pubkeyAdd(_a: Uint8Array, _b: Uint8Array): Uint8Array {
54
58
  return new Uint8Array(32);
55
59
  }
60
+
61
+ signRecoverable(_seckey: Uint8Array, _msg: Uint8Array): Uint8Array {
62
+ return new Uint8Array(65);
63
+ }
64
+
65
+ recoverSig(_sig: Uint8Array, _msg: Uint8Array): Uint8Array {
66
+ return new Uint8Array(33);
67
+ }
68
+ }
69
+
70
+ const ECC: { ecc?: Ecc } = {};
71
+
72
+ export function __setEcc(ecc: Ecc) {
73
+ ECC.ecc = ecc;
56
74
  }
57
75
 
58
- /** Uninitialized Ecc for fallback */
59
- class EccUninitialized implements Ecc {
60
- constructor() {
61
- if (!Ecc.prototype.derivePubkey) {
62
- throw new Error('Ecc not initialized. Call initWasm first.');
63
- }
76
+ export class Ecc implements Ecc {
77
+ /** Derive a public key from secret key. */
78
+ derivePubkey(seckey: Uint8Array): Uint8Array {
79
+ return ECC.ecc!.derivePubkey(seckey);
64
80
  }
65
81
 
66
- derivePubkey(_seckey: Uint8Array): Uint8Array {
67
- throw new Error('Ecc not initialized. Call initWasm first.');
82
+ /** Sign an ECDSA signature. msg needs to be a 32-byte hash */
83
+ ecdsaSign(seckey: Uint8Array, msg: Uint8Array): Uint8Array {
84
+ return ECC.ecc!.ecdsaSign(seckey, msg);
68
85
  }
69
86
 
70
- ecdsaSign(_seckey: Uint8Array, _msg: Uint8Array): Uint8Array {
71
- throw new Error('Ecc not initialized. Call initWasm first.');
87
+ /** Sign a Schnorr signature. msg needs to be a 32-byte hash */
88
+ schnorrSign(seckey: Uint8Array, msg: Uint8Array): Uint8Array {
89
+ return ECC.ecc!.schnorrSign(seckey, msg);
72
90
  }
73
91
 
74
- schnorrSign(_seckey: Uint8Array, _msg: Uint8Array): Uint8Array {
75
- throw new Error('Ecc not initialized. Call initWasm first.');
92
+ /**
93
+ * Return whether the given secret key is valid, i.e. whether is of correct
94
+ * length (32 bytes) and is on the curve.
95
+ */
96
+ isValidSeckey(seckey: Uint8Array): boolean {
97
+ return ECC.ecc!.isValidSeckey(seckey);
76
98
  }
77
99
 
78
- isValidSeckey(_seckey: Uint8Array): boolean {
79
- throw new Error('Ecc not initialized. Call initWasm first.');
100
+ /** Add a scalar to a secret key */
101
+ seckeyAdd(a: Uint8Array, b: Uint8Array): Uint8Array {
102
+ return ECC.ecc!.seckeyAdd(a, b);
80
103
  }
81
104
 
82
- seckeyAdd(_a: Uint8Array, _b: Uint8Array): Uint8Array {
83
- throw new Error('Ecc not initialized. Call initWasm first.');
105
+ /** Add a scalar to a public key (adding G*b) */
106
+ pubkeyAdd(a: Uint8Array, b: Uint8Array): Uint8Array {
107
+ return ECC.ecc!.pubkeyAdd(a, b);
84
108
  }
85
109
 
86
- pubkeyAdd(_a: Uint8Array, _b: Uint8Array): Uint8Array {
87
- throw new Error('Ecc not initialized. Call initWasm first.');
110
+ signRecoverable(seckey: Uint8Array, msg: Uint8Array): Uint8Array {
111
+ return ECC.ecc!.signRecoverable(seckey, msg);
88
112
  }
89
- }
90
113
 
91
- /**
92
- * We define Ecc as a proxy
93
- * This is done to solve a specific problem
94
- * If we have this kind of app structure:
95
- * - AppOne has ecash-lib as a dependency
96
- * - AppTwo has ecash-lib as a dependency
97
- * - AppOne has AppTwo as a dependency
98
- *
99
- * So, we expect AppOne to use AppTwo methods that need initWasm()
100
- * However, if we initWasm() in AppOne, these methods are not available in AppTwo
101
- *
102
- * We can get them into the globalThis with initWasm, but we still need Ecc to dynamically
103
- * check the globalThis and realize it is there --- to preserve lib syntax
104
- *
105
- * In this way, users can still call "new Ecc()"
106
- *
107
- * With just globalThis, users must call "new (globalThis as unknown as GlobalThis).ecashlib.Ecc()"
108
- *
109
- * Note that we "redefine" EccUninitialized in the implementation, because we do not want
110
- * console.log(Ecc) to give "EccUnitialized" even when it works; "EccProxy" is more accurate
111
- */
112
-
113
- export const Ecc: new () => Ecc = function () {
114
- const currentEcc =
115
- 'ecashlib' in globalThis &&
116
- 'Ecc' in (globalThis as unknown as GlobalThisExt).ecashlib
117
- ? (globalThis as unknown as GlobalThisExt).ecashlib.Ecc
118
- : EccUninitialized;
119
- return new currentEcc();
120
- } as unknown as { new (): Ecc };
121
-
122
- export function __setEcc(ecc: { new (): Ecc }) {
123
- Object.assign(globalThis, {
124
- ecashlib: {
125
- ...((globalThis as Record<string, any>).ecashlib || {}),
126
- Ecc: ecc,
127
- },
128
- } as Partial<GlobalThisExt>);
114
+ recoverSig(sig: Uint8Array, msg: Uint8Array): Uint8Array {
115
+ return ECC.ecc!.recoverSig(sig, msg);
116
+ }
129
117
  }
@@ -0,0 +1 @@
1
+ export const ECASH_LIB_WASM_BASE64: string;