@helios-lang/effect 0.1.15 → 0.2.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 (387) hide show
  1. package/dist/Cardano/CoinSelection.js +130 -0
  2. package/dist/Cardano/CoinSelection.js.map +1 -0
  3. package/dist/{Ledger → Cardano/Ledger}/Address.js +30 -20
  4. package/dist/Cardano/Ledger/Address.js.map +1 -0
  5. package/dist/{Ledger → Cardano/Ledger}/AssetClass.js +16 -11
  6. package/dist/Cardano/Ledger/AssetClass.js.map +1 -0
  7. package/dist/Cardano/Ledger/Assets.js +235 -0
  8. package/dist/Cardano/Ledger/Assets.js.map +1 -0
  9. package/dist/Cardano/Ledger/Credential.js +53 -0
  10. package/dist/Cardano/Ledger/Credential.js.map +1 -0
  11. package/dist/Cardano/Ledger/DCert.js +117 -0
  12. package/dist/Cardano/Ledger/DCert.js.map +1 -0
  13. package/dist/Cardano/Ledger/DatumHash.js +25 -0
  14. package/dist/Cardano/Ledger/DatumHash.js.map +1 -0
  15. package/dist/Cardano/Ledger/MintingPolicy.js +40 -0
  16. package/dist/Cardano/Ledger/MintingPolicy.js.map +1 -0
  17. package/dist/Cardano/Ledger/NativeScript.js +140 -0
  18. package/dist/Cardano/Ledger/NativeScript.js.map +1 -0
  19. package/dist/Cardano/Ledger/PubKey.js +22 -0
  20. package/dist/Cardano/Ledger/PubKey.js.map +1 -0
  21. package/dist/{Ledger → Cardano/Ledger}/PubKeyHash.js +5 -5
  22. package/dist/Cardano/Ledger/PubKeyHash.js.map +1 -0
  23. package/dist/Cardano/Ledger/Redeemer.js +155 -0
  24. package/dist/Cardano/Ledger/Redeemer.js.map +1 -0
  25. package/dist/Cardano/Ledger/RewardAddress.js +93 -0
  26. package/dist/Cardano/Ledger/RewardAddress.js.map +1 -0
  27. package/dist/Cardano/Ledger/Signature.js +23 -0
  28. package/dist/Cardano/Ledger/Signature.js.map +1 -0
  29. package/dist/Cardano/Ledger/Tx.js +498 -0
  30. package/dist/Cardano/Ledger/Tx.js.map +1 -0
  31. package/dist/Cardano/Ledger/TxHash.js +38 -0
  32. package/dist/Cardano/Ledger/TxHash.js.map +1 -0
  33. package/dist/Cardano/Ledger/TxOutput.js +167 -0
  34. package/dist/Cardano/Ledger/TxOutput.js.map +1 -0
  35. package/dist/{Ledger → Cardano/Ledger}/TxOutputDatum.js +44 -8
  36. package/dist/Cardano/Ledger/TxOutputDatum.js.map +1 -0
  37. package/dist/Cardano/Ledger/UTxO.js +100 -0
  38. package/dist/Cardano/Ledger/UTxO.js.map +1 -0
  39. package/dist/{Ledger → Cardano/Ledger}/UTxORef.js +28 -6
  40. package/dist/Cardano/Ledger/UTxORef.js.map +1 -0
  41. package/dist/{Ledger → Cardano/Ledger}/ValidatorHash.js +5 -5
  42. package/dist/Cardano/Ledger/ValidatorHash.js.map +1 -0
  43. package/dist/{Ledger → Cardano/Ledger}/index.js +5 -0
  44. package/dist/Cardano/Ledger/index.js.map +1 -0
  45. package/dist/Cardano/Network/IsMainnet.js.map +1 -0
  46. package/dist/{Network → Cardano/Network}/Params.js +27 -3
  47. package/dist/Cardano/Network/Params.js.map +1 -0
  48. package/dist/Cardano/Network/UTxO.js +20 -0
  49. package/dist/Cardano/Network/UTxO.js.map +1 -0
  50. package/dist/Cardano/Network/UTxOsAt.js +4 -0
  51. package/dist/Cardano/Network/UTxOsAt.js.map +1 -0
  52. package/dist/Cardano/Network/errors.js +33 -0
  53. package/dist/Cardano/Network/errors.js.map +1 -0
  54. package/dist/{Network → Cardano/Network}/index.js +1 -0
  55. package/dist/Cardano/Network/index.js.map +1 -0
  56. package/dist/Cardano/TxBuilder.js +946 -0
  57. package/dist/Cardano/TxBuilder.js.map +1 -0
  58. package/dist/Cardano/Uplc/Builtins.js +1820 -0
  59. package/dist/Cardano/Uplc/Builtins.js.map +1 -0
  60. package/dist/Cardano/Uplc/Cek.js +716 -0
  61. package/dist/Cardano/Uplc/Cek.js.map +1 -0
  62. package/dist/Cardano/Uplc/Cost.js +956 -0
  63. package/dist/Cardano/Uplc/Cost.js.map +1 -0
  64. package/dist/{Uplc → Cardano/Uplc}/Data.js +143 -22
  65. package/dist/Cardano/Uplc/Data.js.map +1 -0
  66. package/dist/Cardano/Uplc/Script.js +118 -0
  67. package/dist/Cardano/Uplc/Script.js.map +1 -0
  68. package/dist/Cardano/Uplc/ScriptContext.js +259 -0
  69. package/dist/Cardano/Uplc/ScriptContext.js.map +1 -0
  70. package/dist/Cardano/Uplc/Term.js +384 -0
  71. package/dist/Cardano/Uplc/Term.js.map +1 -0
  72. package/dist/Cardano/Uplc/Type.js +131 -0
  73. package/dist/Cardano/Uplc/Type.js.map +1 -0
  74. package/dist/Cardano/Uplc/Value.js +315 -0
  75. package/dist/Cardano/Uplc/Value.js.map +1 -0
  76. package/dist/Cardano/Uplc/index.js +7 -0
  77. package/dist/Cardano/Uplc/index.js.map +1 -0
  78. package/dist/Cardano/index.js +6 -0
  79. package/dist/Cardano/index.js.map +1 -0
  80. package/dist/{internal → Codecs}/Base32.js +2 -2
  81. package/dist/Codecs/Base32.js.map +1 -0
  82. package/dist/{Bech32.js → Codecs/Bech32.js} +2 -2
  83. package/dist/Codecs/Bech32.js.map +1 -0
  84. package/dist/Codecs/BigEndian.js.map +1 -0
  85. package/dist/Codecs/Bits.js.map +1 -0
  86. package/dist/{internal → Codecs}/Bytes.js +23 -12
  87. package/dist/Codecs/Bytes.js.map +1 -0
  88. package/dist/{Cbor.js → Codecs/Cbor.js} +559 -328
  89. package/dist/Codecs/Cbor.js.map +1 -0
  90. package/dist/{internal → Codecs}/Flat.js +16 -0
  91. package/dist/Codecs/Flat.js.map +1 -0
  92. package/dist/Codecs/Float.js.map +1 -0
  93. package/dist/Codecs/LittleEndian.js +27 -0
  94. package/dist/Codecs/LittleEndian.js.map +1 -0
  95. package/dist/Codecs/Uint64.js +89 -0
  96. package/dist/Codecs/Uint64.js.map +1 -0
  97. package/dist/{internal → Codecs}/Utf8.js +7 -2
  98. package/dist/Codecs/Utf8.js.map +1 -0
  99. package/dist/Codecs/ZigZag.js +26 -0
  100. package/dist/Codecs/ZigZag.js.map +1 -0
  101. package/dist/Codecs/index.js +8 -0
  102. package/dist/Codecs/index.js.map +1 -0
  103. package/dist/Crypto/Blake2b.js +156 -0
  104. package/dist/Crypto/Blake2b.js.map +1 -0
  105. package/dist/Crypto/Curve.js +92 -0
  106. package/dist/Crypto/Curve.js.map +1 -0
  107. package/dist/Crypto/Ed25519.js +323 -0
  108. package/dist/Crypto/Ed25519.js.map +1 -0
  109. package/dist/Crypto/EdDSA.js +222 -0
  110. package/dist/Crypto/EdDSA.js.map +1 -0
  111. package/dist/Crypto/Field.js +323 -0
  112. package/dist/Crypto/Field.js.map +1 -0
  113. package/dist/Crypto/Hmac.js +51 -0
  114. package/dist/Crypto/Hmac.js.map +1 -0
  115. package/dist/Crypto/Keccak.js +167 -0
  116. package/dist/Crypto/Keccak.js.map +1 -0
  117. package/dist/Crypto/Pbkdf2.js +45 -0
  118. package/dist/Crypto/Pbkdf2.js.map +1 -0
  119. package/dist/Crypto/Sha2_256.js +200 -0
  120. package/dist/Crypto/Sha2_256.js.map +1 -0
  121. package/dist/Crypto/Sha2_512.js +264 -0
  122. package/dist/Crypto/Sha2_512.js.map +1 -0
  123. package/dist/Crypto/Sha3_256.js +10 -0
  124. package/dist/Crypto/Sha3_256.js.map +1 -0
  125. package/dist/Crypto/errors.js +9 -0
  126. package/dist/Crypto/errors.js.map +1 -0
  127. package/dist/Crypto/index.js +12 -0
  128. package/dist/Crypto/index.js.map +1 -0
  129. package/dist/index.js +3 -5
  130. package/dist/index.js.map +1 -1
  131. package/package.json +24 -6
  132. package/tsconfig.build.json +1 -1
  133. package/tsconfig.build.tsbuildinfo +1 -1
  134. package/tsconfig.tsbuildinfo +1 -1
  135. package/types/Cardano/CoinSelection.d.ts +26 -0
  136. package/types/Cardano/CoinSelection.d.ts.map +1 -0
  137. package/types/{Ledger → Cardano/Ledger}/Address.d.ts +7 -6
  138. package/types/Cardano/Ledger/Address.d.ts.map +1 -0
  139. package/types/{Ledger → Cardano/Ledger}/AssetClass.d.ts +2 -2
  140. package/types/Cardano/Ledger/AssetClass.d.ts.map +1 -0
  141. package/types/Cardano/Ledger/Assets.d.ts +114 -0
  142. package/types/Cardano/Ledger/Assets.d.ts.map +1 -0
  143. package/types/{Ledger → Cardano/Ledger}/Credential.d.ts +10 -4
  144. package/types/Cardano/Ledger/Credential.d.ts.map +1 -0
  145. package/types/Cardano/Ledger/DCert.d.ts +40 -0
  146. package/types/Cardano/Ledger/DCert.d.ts.map +1 -0
  147. package/types/{Ledger → Cardano/Ledger}/DatumHash.d.ts +6 -5
  148. package/types/Cardano/Ledger/DatumHash.d.ts.map +1 -0
  149. package/types/{Ledger → Cardano/Ledger}/MintingPolicy.d.ts +11 -8
  150. package/types/Cardano/Ledger/MintingPolicy.d.ts.map +1 -0
  151. package/types/Cardano/Ledger/NativeScript.d.ts +105 -0
  152. package/types/Cardano/Ledger/NativeScript.d.ts.map +1 -0
  153. package/types/Cardano/Ledger/PubKey.d.ts +41 -0
  154. package/types/Cardano/Ledger/PubKey.d.ts.map +1 -0
  155. package/types/{Ledger → Cardano/Ledger}/PubKeyHash.d.ts +5 -5
  156. package/types/Cardano/Ledger/PubKeyHash.d.ts.map +1 -0
  157. package/types/Cardano/Ledger/Redeemer.d.ts +303 -0
  158. package/types/Cardano/Ledger/Redeemer.d.ts.map +1 -0
  159. package/types/Cardano/Ledger/RewardAddress.d.ts +60 -0
  160. package/types/Cardano/Ledger/RewardAddress.d.ts.map +1 -0
  161. package/types/Cardano/Ledger/Signature.d.ts +13 -0
  162. package/types/Cardano/Ledger/Signature.d.ts.map +1 -0
  163. package/types/Cardano/Ledger/Tx.d.ts +375 -0
  164. package/types/Cardano/Ledger/Tx.d.ts.map +1 -0
  165. package/types/{Ledger → Cardano/Ledger}/TxHash.d.ts +35 -5
  166. package/types/Cardano/Ledger/TxHash.d.ts.map +1 -0
  167. package/types/Cardano/Ledger/TxOutput.d.ts +438 -0
  168. package/types/Cardano/Ledger/TxOutput.d.ts.map +1 -0
  169. package/types/Cardano/Ledger/TxOutputDatum.d.ts +98 -0
  170. package/types/Cardano/Ledger/TxOutputDatum.d.ts.map +1 -0
  171. package/types/Cardano/Ledger/UTxO.d.ts +1420 -0
  172. package/types/Cardano/Ledger/UTxO.d.ts.map +1 -0
  173. package/types/Cardano/Ledger/UTxORef.d.ts +222 -0
  174. package/types/Cardano/Ledger/UTxORef.d.ts.map +1 -0
  175. package/types/{Ledger → Cardano/Ledger}/ValidatorHash.d.ts +5 -5
  176. package/types/Cardano/Ledger/ValidatorHash.d.ts.map +1 -0
  177. package/types/{Ledger → Cardano/Ledger}/index.d.ts +5 -0
  178. package/types/Cardano/Ledger/index.d.ts.map +1 -0
  179. package/types/Cardano/Network/IsMainnet.d.ts.map +1 -0
  180. package/types/{Network → Cardano/Network}/Params.d.ts +32 -4
  181. package/types/Cardano/Network/Params.d.ts.map +1 -0
  182. package/types/Cardano/Network/UTxO.d.ts +15 -0
  183. package/types/Cardano/Network/UTxO.d.ts.map +1 -0
  184. package/types/Cardano/Network/UTxOsAt.d.ts +9 -0
  185. package/types/Cardano/Network/UTxOsAt.d.ts.map +1 -0
  186. package/types/Cardano/Network/errors.d.ts +39 -0
  187. package/types/Cardano/Network/errors.d.ts.map +1 -0
  188. package/types/{Network → Cardano/Network}/index.d.ts +1 -0
  189. package/types/Cardano/Network/index.d.ts.map +1 -0
  190. package/types/Cardano/TxBuilder.d.ts +261 -0
  191. package/types/Cardano/TxBuilder.d.ts.map +1 -0
  192. package/types/Cardano/Uplc/Builtins.d.ts +163 -0
  193. package/types/Cardano/Uplc/Builtins.d.ts.map +1 -0
  194. package/types/Cardano/Uplc/Cek.d.ts +165 -0
  195. package/types/Cardano/Uplc/Cek.d.ts.map +1 -0
  196. package/types/Cardano/Uplc/Cost.d.ts +93 -0
  197. package/types/Cardano/Uplc/Cost.d.ts.map +1 -0
  198. package/types/{Uplc → Cardano/Uplc}/Data.d.ts +149 -15
  199. package/types/Cardano/Uplc/Data.d.ts.map +1 -0
  200. package/types/Cardano/Uplc/Script.d.ts +87 -0
  201. package/types/Cardano/Uplc/Script.d.ts.map +1 -0
  202. package/types/Cardano/Uplc/ScriptContext.d.ts +21 -0
  203. package/types/Cardano/Uplc/ScriptContext.d.ts.map +1 -0
  204. package/types/Cardano/Uplc/Term.d.ts +454 -0
  205. package/types/Cardano/Uplc/Term.d.ts.map +1 -0
  206. package/types/Cardano/Uplc/Type.d.ts +29 -0
  207. package/types/Cardano/Uplc/Type.d.ts.map +1 -0
  208. package/types/Cardano/Uplc/Value.d.ts +152 -0
  209. package/types/Cardano/Uplc/Value.d.ts.map +1 -0
  210. package/types/Cardano/Uplc/index.d.ts +7 -0
  211. package/types/Cardano/Uplc/index.d.ts.map +1 -0
  212. package/types/Cardano/index.d.ts +6 -0
  213. package/types/Cardano/index.d.ts.map +1 -0
  214. package/types/Codecs/Base32.d.ts.map +1 -0
  215. package/types/Codecs/Bech32.d.ts.map +1 -0
  216. package/types/Codecs/BigEndian.d.ts.map +1 -0
  217. package/types/Codecs/Bits.d.ts.map +1 -0
  218. package/types/{internal → Codecs}/Bytes.d.ts +7 -6
  219. package/types/Codecs/Bytes.d.ts.map +1 -0
  220. package/types/{Cbor.d.ts → Codecs/Cbor.d.ts} +77 -55
  221. package/types/Codecs/Cbor.d.ts.map +1 -0
  222. package/types/{internal → Codecs}/Flat.d.ts +2 -0
  223. package/types/Codecs/Flat.d.ts.map +1 -0
  224. package/types/Codecs/Float.d.ts.map +1 -0
  225. package/types/Codecs/LittleEndian.d.ts +18 -0
  226. package/types/Codecs/LittleEndian.d.ts.map +1 -0
  227. package/types/Codecs/Uint64.d.ts +16 -0
  228. package/types/Codecs/Uint64.d.ts.map +1 -0
  229. package/types/{internal → Codecs}/Utf8.d.ts +2 -2
  230. package/types/Codecs/Utf8.d.ts.map +1 -0
  231. package/types/Codecs/ZigZag.d.ts +3 -0
  232. package/types/Codecs/ZigZag.d.ts.map +1 -0
  233. package/types/Codecs/index.d.ts +8 -0
  234. package/types/Codecs/index.d.ts.map +1 -0
  235. package/types/Crypto/Blake2b.d.ts +16 -0
  236. package/types/Crypto/Blake2b.d.ts.map +1 -0
  237. package/types/Crypto/Curve.d.ts +161 -0
  238. package/types/Crypto/Curve.d.ts.map +1 -0
  239. package/types/Crypto/Ed25519.d.ts +155 -0
  240. package/types/Crypto/Ed25519.d.ts.map +1 -0
  241. package/types/Crypto/EdDSA.d.ts +159 -0
  242. package/types/Crypto/EdDSA.d.ts.map +1 -0
  243. package/types/Crypto/Field.d.ts +273 -0
  244. package/types/Crypto/Field.d.ts.map +1 -0
  245. package/types/Crypto/Hmac.d.ts +20 -0
  246. package/types/Crypto/Hmac.d.ts.map +1 -0
  247. package/types/Crypto/Keccak.d.ts +16 -0
  248. package/types/Crypto/Keccak.d.ts.map +1 -0
  249. package/types/Crypto/Pbkdf2.d.ts +15 -0
  250. package/types/Crypto/Pbkdf2.d.ts.map +1 -0
  251. package/types/Crypto/Sha2_256.d.ts +36 -0
  252. package/types/Crypto/Sha2_256.d.ts.map +1 -0
  253. package/types/Crypto/Sha2_512.d.ts +31 -0
  254. package/types/Crypto/Sha2_512.d.ts.map +1 -0
  255. package/types/Crypto/Sha3_256.d.ts +8 -0
  256. package/types/Crypto/Sha3_256.d.ts.map +1 -0
  257. package/types/Crypto/errors.d.ts +10 -0
  258. package/types/Crypto/errors.d.ts.map +1 -0
  259. package/types/Crypto/index.d.ts +12 -0
  260. package/types/Crypto/index.d.ts.map +1 -0
  261. package/types/index.d.ts +3 -5
  262. package/types/index.d.ts.map +1 -1
  263. package/dist/Address.js +0 -13
  264. package/dist/Address.js.map +0 -1
  265. package/dist/Bech32.js.map +0 -1
  266. package/dist/Cbor.js.map +0 -1
  267. package/dist/Ledger/Address.js.map +0 -1
  268. package/dist/Ledger/AssetClass.js.map +0 -1
  269. package/dist/Ledger/Assets.js +0 -120
  270. package/dist/Ledger/Assets.js.map +0 -1
  271. package/dist/Ledger/Credential.js +0 -17
  272. package/dist/Ledger/Credential.js.map +0 -1
  273. package/dist/Ledger/DatumHash.js +0 -21
  274. package/dist/Ledger/DatumHash.js.map +0 -1
  275. package/dist/Ledger/IsMainnet.js +0 -4
  276. package/dist/Ledger/IsMainnet.js.map +0 -1
  277. package/dist/Ledger/MintingPolicy.js +0 -45
  278. package/dist/Ledger/MintingPolicy.js.map +0 -1
  279. package/dist/Ledger/NetworkParams.js +0 -40
  280. package/dist/Ledger/NetworkParams.js.map +0 -1
  281. package/dist/Ledger/PubKeyHash.js.map +0 -1
  282. package/dist/Ledger/TxHash.js +0 -23
  283. package/dist/Ledger/TxHash.js.map +0 -1
  284. package/dist/Ledger/TxId.js +0 -23
  285. package/dist/Ledger/TxId.js.map +0 -1
  286. package/dist/Ledger/TxInput.js +0 -51
  287. package/dist/Ledger/TxInput.js.map +0 -1
  288. package/dist/Ledger/TxOutput.js +0 -118
  289. package/dist/Ledger/TxOutput.js.map +0 -1
  290. package/dist/Ledger/TxOutputDatum.js.map +0 -1
  291. package/dist/Ledger/TxOutputId.js +0 -55
  292. package/dist/Ledger/TxOutputId.js.map +0 -1
  293. package/dist/Ledger/UTxO.js +0 -43
  294. package/dist/Ledger/UTxO.js.map +0 -1
  295. package/dist/Ledger/UTxORef.js.map +0 -1
  296. package/dist/Ledger/ValidatorHash.js.map +0 -1
  297. package/dist/Ledger/index.js.map +0 -1
  298. package/dist/Network/IsMainnet.js.map +0 -1
  299. package/dist/Network/Params.js.map +0 -1
  300. package/dist/Network/UTxOsAt.js +0 -4
  301. package/dist/Network/UTxOsAt.js.map +0 -1
  302. package/dist/Network/errors.js +0 -16
  303. package/dist/Network/errors.js.map +0 -1
  304. package/dist/Network/index.js.map +0 -1
  305. package/dist/Uplc/Cek.js +0 -3
  306. package/dist/Uplc/Cek.js.map +0 -1
  307. package/dist/Uplc/Data.js.map +0 -1
  308. package/dist/Uplc/DataSchema.js +0 -118
  309. package/dist/Uplc/DataSchema.js.map +0 -1
  310. package/dist/Uplc/Primitive.js +0 -23
  311. package/dist/Uplc/Primitive.js.map +0 -1
  312. package/dist/Uplc/index.js +0 -3
  313. package/dist/Uplc/index.js.map +0 -1
  314. package/dist/internal/Base32.js.map +0 -1
  315. package/dist/internal/BigEndian.js.map +0 -1
  316. package/dist/internal/Bits.js.map +0 -1
  317. package/dist/internal/Bytes.js.map +0 -1
  318. package/dist/internal/Flat.js.map +0 -1
  319. package/dist/internal/Float.js.map +0 -1
  320. package/dist/internal/Utf8.js.map +0 -1
  321. package/tsconfig.check.tsbuildinfo +0 -1
  322. package/types/Address.d.ts +0 -5
  323. package/types/Address.d.ts.map +0 -1
  324. package/types/Bech32.d.ts.map +0 -1
  325. package/types/Cbor.d.ts.map +0 -1
  326. package/types/Ledger/Address.d.ts.map +0 -1
  327. package/types/Ledger/AssetClass.d.ts.map +0 -1
  328. package/types/Ledger/Assets.d.ts +0 -70
  329. package/types/Ledger/Assets.d.ts.map +0 -1
  330. package/types/Ledger/Credential.d.ts.map +0 -1
  331. package/types/Ledger/DatumHash.d.ts.map +0 -1
  332. package/types/Ledger/IsMainnet.d.ts +0 -6
  333. package/types/Ledger/IsMainnet.d.ts.map +0 -1
  334. package/types/Ledger/MintingPolicy.d.ts.map +0 -1
  335. package/types/Ledger/NetworkParams.d.ts +0 -40
  336. package/types/Ledger/NetworkParams.d.ts.map +0 -1
  337. package/types/Ledger/PubKeyHash.d.ts.map +0 -1
  338. package/types/Ledger/TxHash.d.ts.map +0 -1
  339. package/types/Ledger/TxId.d.ts +0 -70
  340. package/types/Ledger/TxId.d.ts.map +0 -1
  341. package/types/Ledger/TxInput.d.ts +0 -55
  342. package/types/Ledger/TxInput.d.ts.map +0 -1
  343. package/types/Ledger/TxOutput.d.ts +0 -63
  344. package/types/Ledger/TxOutput.d.ts.map +0 -1
  345. package/types/Ledger/TxOutputDatum.d.ts +0 -41
  346. package/types/Ledger/TxOutputDatum.d.ts.map +0 -1
  347. package/types/Ledger/TxOutputId.d.ts +0 -133
  348. package/types/Ledger/TxOutputId.d.ts.map +0 -1
  349. package/types/Ledger/UTxO.d.ts +0 -55
  350. package/types/Ledger/UTxO.d.ts.map +0 -1
  351. package/types/Ledger/UTxORef.d.ts +0 -133
  352. package/types/Ledger/UTxORef.d.ts.map +0 -1
  353. package/types/Ledger/ValidatorHash.d.ts.map +0 -1
  354. package/types/Ledger/index.d.ts.map +0 -1
  355. package/types/Network/IsMainnet.d.ts.map +0 -1
  356. package/types/Network/Params.d.ts.map +0 -1
  357. package/types/Network/UTxOsAt.d.ts +0 -9
  358. package/types/Network/UTxOsAt.d.ts.map +0 -1
  359. package/types/Network/errors.d.ts +0 -18
  360. package/types/Network/errors.d.ts.map +0 -1
  361. package/types/Network/index.d.ts.map +0 -1
  362. package/types/Uplc/Cek.d.ts +0 -72
  363. package/types/Uplc/Cek.d.ts.map +0 -1
  364. package/types/Uplc/Data.d.ts.map +0 -1
  365. package/types/Uplc/DataSchema.d.ts +0 -227
  366. package/types/Uplc/DataSchema.d.ts.map +0 -1
  367. package/types/Uplc/Primitive.d.ts +0 -26
  368. package/types/Uplc/Primitive.d.ts.map +0 -1
  369. package/types/Uplc/index.d.ts +0 -3
  370. package/types/Uplc/index.d.ts.map +0 -1
  371. package/types/internal/Base32.d.ts.map +0 -1
  372. package/types/internal/BigEndian.d.ts.map +0 -1
  373. package/types/internal/Bits.d.ts.map +0 -1
  374. package/types/internal/Bytes.d.ts.map +0 -1
  375. package/types/internal/Flat.d.ts.map +0 -1
  376. package/types/internal/Float.d.ts.map +0 -1
  377. package/types/internal/Utf8.d.ts.map +0 -1
  378. /package/dist/{Network → Cardano/Network}/IsMainnet.js +0 -0
  379. /package/dist/{internal → Codecs}/BigEndian.js +0 -0
  380. /package/dist/{internal → Codecs}/Bits.js +0 -0
  381. /package/dist/{internal → Codecs}/Float.js +0 -0
  382. /package/types/{Network → Cardano/Network}/IsMainnet.d.ts +0 -0
  383. /package/types/{internal → Codecs}/Base32.d.ts +0 -0
  384. /package/types/{Bech32.d.ts → Codecs/Bech32.d.ts} +0 -0
  385. /package/types/{internal → Codecs}/BigEndian.d.ts +0 -0
  386. /package/types/{internal → Codecs}/Bits.d.ts +0 -0
  387. /package/types/{internal → Codecs}/Float.d.ts +0 -0
@@ -0,0 +1,161 @@
1
+ import { type Field } from "./Field.js";
2
+ /**
3
+ * Data container for affine points
4
+ */
5
+ export type Point2<T> = {
6
+ x: T;
7
+ y: T;
8
+ };
9
+ export type Point2I = Point2<bigint>;
10
+ export type Point2C = Point2<[bigint, bigint]>;
11
+ /**
12
+ * Data container for projected points (much faster to do curve operations on than affine)
13
+ */
14
+ export type Point3<T> = {
15
+ x: T;
16
+ y: T;
17
+ z: T;
18
+ };
19
+ export type Point3I = Point3<bigint>;
20
+ export type Point3C = Point3<[bigint, bigint]>;
21
+ /**
22
+ * Data container for extended points (much faster to operate on than affine points)
23
+ */
24
+ export type Point4<T> = {
25
+ x: T;
26
+ y: T;
27
+ z: T;
28
+ t: T;
29
+ };
30
+ /**
31
+ * Abstraction of an additive group
32
+ * * ZERO: additive identity
33
+ * * add two points to form a new point
34
+ * * scale: add a point to itself
35
+ * * equals: compares two points
36
+ * * isValidPoint: returns true if point lies on curve
37
+ *
38
+ * For scale we'll always be using the double-and-add algorithm
39
+ */
40
+ export interface Curve<T, Tc> {
41
+ ZERO: T;
42
+ add: (a: T, b: T) => T;
43
+ negate: (a: T) => T;
44
+ equals: (a: T, b: T) => boolean;
45
+ isValidPoint: (p: T) => boolean;
46
+ toAffine: (point: T) => Point2<Tc>;
47
+ fromAffine: (point: Point2<Tc>) => T;
48
+ }
49
+ export declare class CurveHelper<T, Tc> implements Curve<T, Tc> {
50
+ protected readonly curve: Curve<T, Tc>;
51
+ /**
52
+ * @param curve
53
+ */
54
+ constructor(curve: Curve<T, Tc>);
55
+ get ZERO(): T;
56
+ /**
57
+ * @param point
58
+ * @returns
59
+ */
60
+ isZero(point: T): boolean;
61
+ /**
62
+ * @param point
63
+ * @returns
64
+ */
65
+ isValidPoint(point: T): boolean;
66
+ /**
67
+ * @param a
68
+ * @param b
69
+ * @returns
70
+ */
71
+ equals(a: T, b: T): boolean;
72
+ /**
73
+ * @param a
74
+ * @param b
75
+ * @returns
76
+ */
77
+ add(a: T, b: T): T;
78
+ /**
79
+ * @param a
80
+ * @param b
81
+ * @returns
82
+ */
83
+ subtract(a: T, b: T): T;
84
+ /**
85
+ * @param a
86
+ * @returns
87
+ */
88
+ negate(a: T): T;
89
+ /**
90
+ * Double-and-add algorithm
91
+ * Seems to have acceptable performance.
92
+ * Not constant-time, but for the signing algorithms this scalar is always a random private number
93
+ * @param point
94
+ * @param s
95
+ * @returns
96
+ */
97
+ scale(point: T, s: bigint): T;
98
+ toAffine(point: T): Point2<Tc>;
99
+ fromAffine(point: Point2<Tc>): T;
100
+ }
101
+ export interface ShortAffineCurve<T> extends Curve<Point2<T>, T> {
102
+ F: Field<T>;
103
+ b: T;
104
+ double(point: Point2<T>): Point2<T>;
105
+ }
106
+ export interface AffineCurve1 {
107
+ b: bigint;
108
+ ZERO: Point2I;
109
+ add(a: Point2I, b: Point2I): Point2I;
110
+ negate(a: Point2I): Point2I;
111
+ equals(a: Point2I, b: Point2I): boolean;
112
+ isValidPoint(p: Point2I): boolean;
113
+ isZero(point: Point2I): boolean;
114
+ subtract(a: Point2I, b: Point2I): Point2I;
115
+ scale(point: Point2I, s: bigint): Point2I;
116
+ toAffine(point: Point2I): Point2I;
117
+ fromAffine(point: Point2I): Point2I;
118
+ }
119
+ export interface AffineCurve2 {
120
+ b: [bigint, bigint];
121
+ ZERO: Point2C;
122
+ add(a: Point2C, b: Point2C): Point2C;
123
+ negate(a: Point2C): Point2C;
124
+ equals(a: Point2C, b: Point2C): boolean;
125
+ isValidPoint(p: Point2C): boolean;
126
+ isZero(point: Point2C): boolean;
127
+ subtract(a: Point2C, b: Point2C): Point2C;
128
+ scale(point: Point2C, s: bigint): Point2C;
129
+ toAffine(point: Point2C): Point2C;
130
+ fromAffine(point: Point2C): Point2C;
131
+ }
132
+ export interface ProjectedCurve1 {
133
+ ZERO: Point3I;
134
+ add(a: Point3I, b: Point3I): Point3I;
135
+ negate(a: Point3I): Point3I;
136
+ equals(a: Point3I, b: Point3I): boolean;
137
+ isValidPoint(p: Point3I): boolean;
138
+ isZero(point: Point3I): boolean;
139
+ subtract(a: Point3I, b: Point3I): Point3I;
140
+ scale(point: Point3I, s: bigint): Point3I;
141
+ toAffine(point: Point3I): Point2I;
142
+ fromAffine(point: Point2I): Point3I;
143
+ clearCofactor(point: Point3I): Point3I;
144
+ }
145
+ export interface ProjectedCurve2 {
146
+ ZERO: Point3C;
147
+ add(a: Point3C, b: Point3C): Point3C;
148
+ negate(a: Point3C): Point3C;
149
+ equals(a: Point3C, b: Point3C): boolean;
150
+ isValidPoint(p: Point3C): boolean;
151
+ isZero(point: Point3C): boolean;
152
+ subtract(a: Point3C, b: Point3C): Point3C;
153
+ scale(point: Point3C, s: bigint): Point3C;
154
+ toAffine(point: Point3C): Point2C;
155
+ fromAffine(point: Point2C): Point3C;
156
+ scalex(point: Point3C): Point3C;
157
+ psi(point: Point3C): Point3C;
158
+ psi2(point: Point3C): Point3C;
159
+ clearCofactor(point: Point3C): Point3C;
160
+ }
161
+ //# sourceMappingURL=Curve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Curve.d.ts","sourceRoot":"","sources":["../../src/Crypto/Curve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import { Either, Encoding } from "effect";
2
+ import { type Curve, type Point2I, type Point4 } from "./Curve.js";
3
+ import { BadPrivateKeyLength, BadPublicKeyLength, BadSignatureLength } from "./EdDSA.js";
4
+ /**
5
+ * @param bytes
6
+ * @param truncate
7
+ * Force `bytes` to 32 bytes long, applying special padding to first and 32nd byte
8
+ * @returns
9
+ * A DecodeException if `bytes` is empty
10
+ */
11
+ export declare function decodeScalar(bytes: Uint8Array, truncate?: boolean): Either.Either<bigint, Encoding.DecodeException>;
12
+ /**
13
+ * @param bytes
14
+ * @returns
15
+ * A DecodeException if `bytes` is empty
16
+ */
17
+ export declare function decodePrivateKey(bytes: Uint8Array): Either.Either<bigint, Encoding.DecodeException>;
18
+ /**
19
+ * @param x
20
+ * @returns
21
+ */
22
+ export declare function encodeScalar(x: bigint): Uint8Array;
23
+ /**
24
+ * The formula for the twisted Edwards curve is:
25
+ * -x^2 + y^2 = 1 - d*x^2*y^2
26
+ * Calculating x from this we get (only y is stored in the encoded point):
27
+ * y^2 - 1 = x^2*(1 - d*y^2)
28
+ * x = sqrt((y^2 - 1)/(1 - d*y^2))
29
+ * @param bytes
30
+ * @returns
31
+ * A DecodeException if `bytes` isn't exactly 32 long
32
+ */
33
+ export declare const decodePoint: (bytes: Uint8Array) => Either.Either<Point2I, Encoding.DecodeException>;
34
+ /**
35
+ * @param point
36
+ * @returns
37
+ */
38
+ export declare function encodePoint(point: Point2I): Uint8Array;
39
+ export declare const P = 57896044618658097711785492504343953926634992332820282019728792003956564819949n;
40
+ export declare const N = 7237005577332262213973186563042994240857116359379907606001950938285454250989n;
41
+ export declare const D: bigint;
42
+ export declare const G: {
43
+ x: bigint;
44
+ y: bigint;
45
+ };
46
+ declare class AffineCurve implements Curve<Point2I, bigint> {
47
+ constructor();
48
+ get ZERO(): Point2I;
49
+ /**
50
+ * @param a
51
+ * @param b
52
+ * @returns
53
+ */
54
+ equals(a: Point2I, b: Point2I): boolean;
55
+ /**
56
+ * @param point
57
+ * @returns
58
+ */
59
+ negate(point: Point2I): Point2I;
60
+ /**
61
+ * @param point
62
+ * @returns
63
+ */
64
+ isValidPoint(point: Point2I): boolean;
65
+ /**
66
+ * @param a
67
+ * @param b
68
+ * @returns
69
+ */
70
+ add(a: Point2I, b: Point2I): Point2I;
71
+ /**
72
+ * @param point
73
+ * @returns
74
+ */
75
+ fromAffine(point: Point2I): Point2I;
76
+ /**
77
+ * @param point
78
+ * @returns
79
+ */
80
+ toAffine(point: Point2I): Point2I;
81
+ }
82
+ export declare const affineCurve: AffineCurve;
83
+ declare class ExtendedCurve implements Curve<Point4<bigint>, bigint> {
84
+ constructor();
85
+ get ZERO(): Point4<bigint>;
86
+ /**
87
+ * @param point
88
+ * @returns
89
+ */
90
+ isValidPoint(point: Point4<bigint>): boolean;
91
+ /**
92
+ * @param a
93
+ * @param b
94
+ * @returns
95
+ */
96
+ equals(a: Point4<bigint>, b: Point4<bigint>): boolean;
97
+ /**
98
+ * @param point
99
+ * @returns
100
+ */
101
+ negate(point: Point4<bigint>): Point4<bigint>;
102
+ /**
103
+ * @param point1
104
+ * @param point2
105
+ * @returns
106
+ */
107
+ add(point1: Point4<bigint>, point2: Point4<bigint>): Point4<bigint>;
108
+ /**
109
+ * @param point
110
+ * @returns
111
+ */
112
+ toAffine(point: Point4<bigint>): Point2I;
113
+ /**
114
+ * @param point
115
+ * @returns
116
+ */
117
+ fromAffine(point: Point2I): Point4<bigint>;
118
+ }
119
+ export declare const extendedCurve: ExtendedCurve;
120
+ /**
121
+ * @param privateKey
122
+ * Must be 64 bytes long
123
+ * @param hashPrivateKey
124
+ * Defaults to true, set to false when used in Bip32 algorithm
125
+ * @returns
126
+ * 32 byte public key, or BadPrivateKeyLength if private key isn't 64 bytes long
127
+ */
128
+ export declare function derivePublicKey(privateKey: Uint8Array, hashPrivateKey?: boolean): Either.Either<Uint8Array, BadPrivateKeyLength>;
129
+ /**
130
+ * Sign the message.
131
+ * Even though this implementation isn't constant time, it isn't vulnerable to a timing attack (see detailed notes in EdDSA implementation)
132
+ * @param message
133
+ * @param privateKeyBytes
134
+ * @param hashPrivateKey
135
+ * Defaults to true, Bip32 passes this as false
136
+ * @returns
137
+ * 64 byte signature, or BadPrivateKeyLength if private key isn't 64 bytes long
138
+ */
139
+ export declare function sign(message: Uint8Array, privateKey: Uint8Array, hashPrivateKey?: boolean): Either.Either<Uint8Array, BadPrivateKeyLength>;
140
+ /**
141
+ * @param signature
142
+ * @param message
143
+ * @param publicKey
144
+ * @returns
145
+ * - `true` if the signature is correct.
146
+ * - `false`:
147
+ * - if the signature is incorrect
148
+ * - if the signature doesn't lie on the curve,
149
+ * - if the publicKey doesn't lie on the curve
150
+ * - BadPublicKeyLength if publicKey isn't 32 bytes long
151
+ * - BadSignatureLength if signature isn't 64 bytes long
152
+ */
153
+ export declare function verify(signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array): Either.Either<boolean, BadSignatureLength | BadPublicKeyLength>;
154
+ export {};
155
+ //# sourceMappingURL=Ed25519.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ed25519.d.ts","sourceRoot":"","sources":["../../src/Crypto/Ed25519.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAIzC,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,YAAY,CAAA;AAGnB;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,QAAQ,GAAE,OAAe,GACxB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAUjD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,UAAU,GAChB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAEjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAElD;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,UAAU,KAChB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAkC9C,CAAA;AAEJ;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAUtD;AAQD,eAAO,MAAM,CAAC,iFACkE,CAAA;AAIhF,eAAO,MAAM,CAAC,gFACiE,CAAA;AAM/E,eAAO,MAAM,CAAC,QAC2E,CAAA;AAGzF,eAAO,MAAM,CAAC;;;CAGb,CAAA;AAwBD,cAAM,WAAY,YAAW,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;;IAGjD,IAAI,IAAI,IAAI,OAAO,CAKlB;IAED;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAIvC;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAO/B;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAUrC;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAYpC;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAInC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAGlC;AAED,eAAO,MAAM,WAAW,aAAoB,CAAA;AAE5C,cAAM,aAAc,YAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;;IAG1D,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAEzB;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO;IAgB5C;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO;IAOrD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAS7C;;;;OAIG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAoBnE;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO;IAaxC;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;CAU3C;AAED,eAAO,MAAM,aAAa,eAAgD,CAAA;AAW1E;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,EACtB,cAAc,GAAE,OAAc,GAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAEhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,cAAc,GAAE,OAAc,GAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAEhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,GACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAAC,CAEjE"}
@@ -0,0 +1,159 @@
1
+ import { Either, Encoding } from "effect";
2
+ import { type Curve, type Point2I } from "./Curve.js";
3
+ import { Field } from "./Field.js";
4
+ declare const BadPrivateKeyLength_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
5
+ readonly _tag: "Crypto.EdDSA.BadPrivateKeyLength";
6
+ } & Readonly<A>;
7
+ export declare class BadPrivateKeyLength extends BadPrivateKeyLength_base<{
8
+ message: string;
9
+ }> {
10
+ constructor(privateKey: Uint8Array);
11
+ }
12
+ declare const BadSignatureLength_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
13
+ readonly _tag: "Crypto.EdDSA.BadSignatureLength";
14
+ } & Readonly<A>;
15
+ export declare class BadSignatureLength extends BadSignatureLength_base<{
16
+ message: string;
17
+ }> {
18
+ constructor(signature: Uint8Array);
19
+ }
20
+ declare const BadPublicKeyLength_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
21
+ readonly _tag: "Crypto.EdDSA.BadPublicKeyLength";
22
+ } & Readonly<A>;
23
+ export declare class BadPublicKeyLength extends BadPublicKeyLength_base<{
24
+ message: string;
25
+ }> {
26
+ constructor(publicKey: Uint8Array);
27
+ }
28
+ /**
29
+ * Implementation of point/scalar codec is left up to Ed25519
30
+ */
31
+ export type Codec = {
32
+ decodePoint(bytes: Uint8Array): Either.Either<Point2I, Encoding.DecodeException>;
33
+ encodePoint(point: Point2I): Uint8Array;
34
+ decodePrivateKey(bytes: Uint8Array): Either.Either<bigint, Encoding.DecodeException>;
35
+ decodeScalar(bytes: Uint8Array): Either.Either<bigint, Encoding.DecodeException>;
36
+ encodeScalar(x: bigint): Uint8Array;
37
+ };
38
+ /**
39
+ * Edwards Digital Signing Algorithm
40
+ *
41
+ * Symbols based on the book "Elliptic Curves in Cryptography" by I.F. Blake, G. Seroussi and N.P. Smart
42
+ * See page 4 for an overview of the DSA algorithm.
43
+ * This book along with the first few sections of "Cryptography: An Introduction" by N.P. Smart are
44
+ * recommended reads in order to understand better the concepts of "scalars" and "CurvePoint" and
45
+ * their arithmatic over finite fields.
46
+ *
47
+ * Notation:
48
+ * privateKey: 64 bytes, first 32 bytes form the scalar integer `x`, the latter bytes are used for private nonce generation
49
+ * publicKey: 32 bytes
50
+ * x: bigint scalar representation of privateKey
51
+ * g: generator BASE point
52
+ * h: CurvePoint representation of publicKey
53
+ * m: (hashed) message, kept as bytes
54
+ * k: a practically random number, created by applying a one-way function to the message and part of the private key
55
+ * a: first part of signature
56
+ * b: second part of signature
57
+ * `*`: group multiplication of a CurvePoint by a scalar integer, or multiplication of 2 scalars (depending on context)
58
+ * `+`: CurvePoint addition or scalar addition depending on context
59
+ * `.`: byte concatenation
60
+ * `[n:N]`: slice bytes
61
+ * `f(a,h,m)`: a one-way function for publicy known information
62
+ * `mod()`: take modulo of a scalar wrt. the order of the Curve
63
+ * `hash()`: Sha512 hash function
64
+ * `encodeScalar`: turn a scalar integer into bytes
65
+ * `decodeScalar`: turn bytes into a scalar integer
66
+ * `encodePoint`: turn a CurvePoint into bytes
67
+ * `decodePoint`: turn bytes into a CurvePoint
68
+ *
69
+ * The algorithm below is approached from an additive perspective.
70
+ *
71
+ * 1. Generate 64 random private key bytes
72
+ * privateKey = random(64)
73
+ * 2. Generate the associated scalar `x`:
74
+ * x = decodeScalar(privateKey[0:32])
75
+ * 3. Generate public key CurvePoint:
76
+ * h = g*x
77
+ * 4. Encode public key:
78
+ * publicKey = encodePoint(h)
79
+ * 5. Create first part of a signature:
80
+ * k = decodeScalar(hash(privateKey[32:64] . m))
81
+ * a = g*k
82
+ * signature[0:32] = encodePoint(a)
83
+ * 6. Create second part of a signature:
84
+ * f(a,h,m) = decodeScalar(hash(signature[0:32] . publicKey . m))
85
+ * b = mod(k + f(a,h,m)*x)
86
+ * signature[32:64] = encodeScalar(b)
87
+ * 7. Verify a signature:
88
+ * a = decodePoint(signature[0:32])
89
+ * b = decodeScalar(signature[32:64])
90
+ * h = decodePoint(publicKey)
91
+ * f(a,h,m) = decodeScalar(hash(signature[0:32] . publicKey . m))
92
+ * g*b === a + h*f(a,h,m)
93
+ *
94
+ * We can show that this works by substituting the private calculations done upon signing (the arithmatic takes care of the mod() operator):
95
+ * g*(k + f(a,h,m)*x) === g*k + h*f(a,h,m)
96
+ * g*k + g*x*f(a,h,m) === g*k + h*f(a,h,m)
97
+ *
98
+ * We know that `g*x == h`, QED.
99
+ *
100
+ * The arithmatic details are handled by the CurvePoint class
101
+ */
102
+ export declare class EdDSA<T> {
103
+ readonly curve: Curve<T, bigint>;
104
+ readonly G: {
105
+ x: bigint;
106
+ y: bigint;
107
+ };
108
+ readonly Z: Field<bigint>;
109
+ readonly codec: Codec;
110
+ /**
111
+ * @param curve
112
+ */
113
+ constructor(curve: Curve<T, bigint>, G: {
114
+ x: bigint;
115
+ y: bigint;
116
+ }, Z: Field<bigint>, pointCodec: Codec);
117
+ /**
118
+ * Combination hash and decodeCurveInt
119
+ * @param bytes
120
+ * @returns
121
+ */
122
+ private oneWay;
123
+ /**
124
+ * @param privateKeyBytes
125
+ * @param hashPrivateKey
126
+ * Defaults to true, set to false
127
+ * when used in Bip32 algorithm
128
+ * @returns 32 byte public key.
129
+ */
130
+ derivePublicKey(privateKeyBytes: Uint8Array, hashPrivateKey?: boolean): Either.Either<Uint8Array, BadPrivateKeyLength>;
131
+ /**
132
+ * Sign the message.
133
+ * Even though this implementation isn't constant time, it isn't vulnerable to a timing attack (see detailed notes in implementation below)
134
+ * @param message
135
+ * @param privateKeyBytes
136
+ * @param hashPrivateKey
137
+ * Defaults to true, Bip32 passes this as false
138
+ * @returns
139
+ * 64 byte signature.
140
+ */
141
+ sign(message: Uint8Array, privateKeyBytes: Uint8Array, hashPrivateKey?: boolean): Either.Either<Uint8Array, BadPrivateKeyLength>;
142
+ /**
143
+ * Returns `true` if the signature is correct.
144
+ * Returns `false`:
145
+ * * if the signature is incorrect
146
+ * * if the signature doesn't lie on the curve,
147
+ * * if the publicKey doesn't lie on the curve
148
+ * Throw an error:
149
+ * * signature isn't 64 bytes long
150
+ * * publickey isn't 32 bytes long (asserted inside `decodePoint()`)
151
+ * @param signature
152
+ * @param message
153
+ * @param publicKey
154
+ * @returns
155
+ */
156
+ verify(signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array): Either.Either<boolean, BadSignatureLength | BadPublicKeyLength>;
157
+ }
158
+ export {};
159
+ //# sourceMappingURL=EdDSA.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdDSA.d.ts","sourceRoot":"","sources":["../../src/Crypto/EdDSA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,KAAK,KAAK,EAAe,KAAK,OAAO,EAAE,MAAM,YAAY,CAAA;AAElE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;;;;AAElC,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC;gBACY,UAAU,EAAE,UAAU;CAKnC;;;;AAED,qBAAa,kBAAmB,SAAQ,wBAEtC;IACA,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC;gBACY,SAAS,EAAE,UAAU;CAGlC;;;;AAED,qBAAa,kBAAmB,SAAQ,wBAEtC;IACA,OAAO,EAAE,MAAM,CAAA;CAChB,CAAC;gBACY,SAAS,EAAE,UAAU;CAGlC;AAED;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,WAAW,CACT,KAAK,EAAE,UAAU,GAChB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;IACnD,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAA;IACvC,gBAAgB,CACd,KAAK,EAAE,UAAU,GAChB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;IAClD,YAAY,CACV,KAAK,EAAE,UAAU,GAChB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAA;IAClD,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;CACpC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,qBAAa,KAAK,CAAC,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IAErB;;OAEG;gBAED,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EACvB,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3B,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAChB,UAAU,EAAE,KAAK;IAQnB;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAcd;;;;;;OAMG;IACH,eAAe,CACb,eAAe,EAAE,UAAU,EAC3B,cAAc,GAAE,OAAc,GAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC;IA2BjD;;;;;;;;;OASG;IACH,IAAI,CACF,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,UAAU,EAC3B,cAAc,GAAE,OAAc,GAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAsDjD;;;;;;;;;;;;;OAaG;IACH,MAAM,CACJ,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,GACpB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;CAsCnE"}