@helios-lang/effect 0.1.15 → 0.3.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 (399) 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 +31 -21
  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 +24 -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 +6 -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 +963 -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/Wallet.js +48 -0
  79. package/dist/Cardano/Wallet.js.map +1 -0
  80. package/dist/Cardano/index.js +7 -0
  81. package/dist/Cardano/index.js.map +1 -0
  82. package/dist/{internal → Codecs}/Base32.js +2 -2
  83. package/dist/Codecs/Base32.js.map +1 -0
  84. package/dist/{Bech32.js → Codecs/Bech32.js} +2 -2
  85. package/dist/Codecs/Bech32.js.map +1 -0
  86. package/dist/Codecs/BigEndian.js.map +1 -0
  87. package/dist/Codecs/Bits.js.map +1 -0
  88. package/dist/{internal → Codecs}/Bytes.js +23 -12
  89. package/dist/Codecs/Bytes.js.map +1 -0
  90. package/dist/{Cbor.js → Codecs/Cbor.js} +559 -328
  91. package/dist/Codecs/Cbor.js.map +1 -0
  92. package/dist/{internal → Codecs}/Flat.js +16 -0
  93. package/dist/Codecs/Flat.js.map +1 -0
  94. package/dist/Codecs/Float.js.map +1 -0
  95. package/dist/Codecs/LittleEndian.js +31 -0
  96. package/dist/Codecs/LittleEndian.js.map +1 -0
  97. package/dist/Codecs/Uint64.js +89 -0
  98. package/dist/Codecs/Uint64.js.map +1 -0
  99. package/dist/{internal → Codecs}/Utf8.js +7 -2
  100. package/dist/Codecs/Utf8.js.map +1 -0
  101. package/dist/Codecs/ZigZag.js +26 -0
  102. package/dist/Codecs/ZigZag.js.map +1 -0
  103. package/dist/Codecs/index.js +8 -0
  104. package/dist/Codecs/index.js.map +1 -0
  105. package/dist/Crypto/Bip32.js +131 -0
  106. package/dist/Crypto/Bip32.js.map +1 -0
  107. package/dist/Crypto/Bip39.js +2176 -0
  108. package/dist/Crypto/Bip39.js.map +1 -0
  109. package/dist/Crypto/Blake2b.js +156 -0
  110. package/dist/Crypto/Blake2b.js.map +1 -0
  111. package/dist/Crypto/Curve.js +92 -0
  112. package/dist/Crypto/Curve.js.map +1 -0
  113. package/dist/Crypto/Ed25519.js +323 -0
  114. package/dist/Crypto/Ed25519.js.map +1 -0
  115. package/dist/Crypto/EdDSA.js +222 -0
  116. package/dist/Crypto/EdDSA.js.map +1 -0
  117. package/dist/Crypto/Field.js +323 -0
  118. package/dist/Crypto/Field.js.map +1 -0
  119. package/dist/Crypto/Hmac.js +51 -0
  120. package/dist/Crypto/Hmac.js.map +1 -0
  121. package/dist/Crypto/Keccak.js +167 -0
  122. package/dist/Crypto/Keccak.js.map +1 -0
  123. package/dist/Crypto/Pbkdf2.js +45 -0
  124. package/dist/Crypto/Pbkdf2.js.map +1 -0
  125. package/dist/Crypto/Sha2_256.js +200 -0
  126. package/dist/Crypto/Sha2_256.js.map +1 -0
  127. package/dist/Crypto/Sha2_512.js +264 -0
  128. package/dist/Crypto/Sha2_512.js.map +1 -0
  129. package/dist/Crypto/Sha3_256.js +10 -0
  130. package/dist/Crypto/Sha3_256.js.map +1 -0
  131. package/dist/Crypto/errors.js +9 -0
  132. package/dist/Crypto/errors.js.map +1 -0
  133. package/dist/Crypto/index.js +12 -0
  134. package/dist/Crypto/index.js.map +1 -0
  135. package/dist/index.js +3 -5
  136. package/dist/index.js.map +1 -1
  137. package/package.json +24 -6
  138. package/tsconfig.build.json +1 -1
  139. package/types/Cardano/CoinSelection.d.ts +26 -0
  140. package/types/Cardano/CoinSelection.d.ts.map +1 -0
  141. package/types/{Ledger → Cardano/Ledger}/Address.d.ts +8 -7
  142. package/types/Cardano/Ledger/Address.d.ts.map +1 -0
  143. package/types/{Ledger → Cardano/Ledger}/AssetClass.d.ts +2 -2
  144. package/types/Cardano/Ledger/AssetClass.d.ts.map +1 -0
  145. package/types/Cardano/Ledger/Assets.d.ts +114 -0
  146. package/types/Cardano/Ledger/Assets.d.ts.map +1 -0
  147. package/types/{Ledger → Cardano/Ledger}/Credential.d.ts +10 -4
  148. package/types/Cardano/Ledger/Credential.d.ts.map +1 -0
  149. package/types/Cardano/Ledger/DCert.d.ts +40 -0
  150. package/types/Cardano/Ledger/DCert.d.ts.map +1 -0
  151. package/types/{Ledger → Cardano/Ledger}/DatumHash.d.ts +6 -5
  152. package/types/Cardano/Ledger/DatumHash.d.ts.map +1 -0
  153. package/types/{Ledger → Cardano/Ledger}/MintingPolicy.d.ts +11 -8
  154. package/types/Cardano/Ledger/MintingPolicy.d.ts.map +1 -0
  155. package/types/Cardano/Ledger/NativeScript.d.ts +105 -0
  156. package/types/Cardano/Ledger/NativeScript.d.ts.map +1 -0
  157. package/types/Cardano/Ledger/PubKey.d.ts +45 -0
  158. package/types/Cardano/Ledger/PubKey.d.ts.map +1 -0
  159. package/types/{Ledger → Cardano/Ledger}/PubKeyHash.d.ts +5 -5
  160. package/types/Cardano/Ledger/PubKeyHash.d.ts.map +1 -0
  161. package/types/Cardano/Ledger/Redeemer.d.ts +303 -0
  162. package/types/Cardano/Ledger/Redeemer.d.ts.map +1 -0
  163. package/types/Cardano/Ledger/RewardAddress.d.ts +60 -0
  164. package/types/Cardano/Ledger/RewardAddress.d.ts.map +1 -0
  165. package/types/Cardano/Ledger/Signature.d.ts +13 -0
  166. package/types/Cardano/Ledger/Signature.d.ts.map +1 -0
  167. package/types/Cardano/Ledger/Tx.d.ts +375 -0
  168. package/types/Cardano/Ledger/Tx.d.ts.map +1 -0
  169. package/types/{Ledger → Cardano/Ledger}/TxHash.d.ts +35 -5
  170. package/types/Cardano/Ledger/TxHash.d.ts.map +1 -0
  171. package/types/Cardano/Ledger/TxOutput.d.ts +438 -0
  172. package/types/Cardano/Ledger/TxOutput.d.ts.map +1 -0
  173. package/types/Cardano/Ledger/TxOutputDatum.d.ts +98 -0
  174. package/types/Cardano/Ledger/TxOutputDatum.d.ts.map +1 -0
  175. package/types/Cardano/Ledger/UTxO.d.ts +1420 -0
  176. package/types/Cardano/Ledger/UTxO.d.ts.map +1 -0
  177. package/types/Cardano/Ledger/UTxORef.d.ts +222 -0
  178. package/types/Cardano/Ledger/UTxORef.d.ts.map +1 -0
  179. package/types/{Ledger → Cardano/Ledger}/ValidatorHash.d.ts +5 -5
  180. package/types/Cardano/Ledger/ValidatorHash.d.ts.map +1 -0
  181. package/types/{Ledger → Cardano/Ledger}/index.d.ts +6 -0
  182. package/types/Cardano/Ledger/index.d.ts.map +1 -0
  183. package/types/Cardano/Network/IsMainnet.d.ts.map +1 -0
  184. package/types/{Network → Cardano/Network}/Params.d.ts +32 -4
  185. package/types/Cardano/Network/Params.d.ts.map +1 -0
  186. package/types/Cardano/Network/UTxO.d.ts +15 -0
  187. package/types/Cardano/Network/UTxO.d.ts.map +1 -0
  188. package/types/Cardano/Network/UTxOsAt.d.ts +9 -0
  189. package/types/Cardano/Network/UTxOsAt.d.ts.map +1 -0
  190. package/types/Cardano/Network/errors.d.ts +39 -0
  191. package/types/Cardano/Network/errors.d.ts.map +1 -0
  192. package/types/{Network → Cardano/Network}/index.d.ts +1 -0
  193. package/types/Cardano/Network/index.d.ts.map +1 -0
  194. package/types/Cardano/TxBuilder.d.ts +232 -0
  195. package/types/Cardano/TxBuilder.d.ts.map +1 -0
  196. package/types/Cardano/Uplc/Builtins.d.ts +163 -0
  197. package/types/Cardano/Uplc/Builtins.d.ts.map +1 -0
  198. package/types/Cardano/Uplc/Cek.d.ts +165 -0
  199. package/types/Cardano/Uplc/Cek.d.ts.map +1 -0
  200. package/types/Cardano/Uplc/Cost.d.ts +93 -0
  201. package/types/Cardano/Uplc/Cost.d.ts.map +1 -0
  202. package/types/{Uplc → Cardano/Uplc}/Data.d.ts +149 -15
  203. package/types/Cardano/Uplc/Data.d.ts.map +1 -0
  204. package/types/Cardano/Uplc/Script.d.ts +87 -0
  205. package/types/Cardano/Uplc/Script.d.ts.map +1 -0
  206. package/types/Cardano/Uplc/ScriptContext.d.ts +21 -0
  207. package/types/Cardano/Uplc/ScriptContext.d.ts.map +1 -0
  208. package/types/Cardano/Uplc/Term.d.ts +454 -0
  209. package/types/Cardano/Uplc/Term.d.ts.map +1 -0
  210. package/types/Cardano/Uplc/Type.d.ts +29 -0
  211. package/types/Cardano/Uplc/Type.d.ts.map +1 -0
  212. package/types/Cardano/Uplc/Value.d.ts +152 -0
  213. package/types/Cardano/Uplc/Value.d.ts.map +1 -0
  214. package/types/Cardano/Uplc/index.d.ts +7 -0
  215. package/types/Cardano/Uplc/index.d.ts.map +1 -0
  216. package/types/Cardano/Wallet.d.ts +73 -0
  217. package/types/Cardano/Wallet.d.ts.map +1 -0
  218. package/types/Cardano/index.d.ts +7 -0
  219. package/types/Cardano/index.d.ts.map +1 -0
  220. package/types/Codecs/Base32.d.ts.map +1 -0
  221. package/types/Codecs/Bech32.d.ts.map +1 -0
  222. package/types/Codecs/BigEndian.d.ts.map +1 -0
  223. package/types/Codecs/Bits.d.ts.map +1 -0
  224. package/types/{internal → Codecs}/Bytes.d.ts +7 -6
  225. package/types/Codecs/Bytes.d.ts.map +1 -0
  226. package/types/{Cbor.d.ts → Codecs/Cbor.d.ts} +77 -55
  227. package/types/Codecs/Cbor.d.ts.map +1 -0
  228. package/types/{internal → Codecs}/Flat.d.ts +2 -0
  229. package/types/Codecs/Flat.d.ts.map +1 -0
  230. package/types/Codecs/Float.d.ts.map +1 -0
  231. package/types/Codecs/LittleEndian.d.ts +19 -0
  232. package/types/Codecs/LittleEndian.d.ts.map +1 -0
  233. package/types/Codecs/Uint64.d.ts +16 -0
  234. package/types/Codecs/Uint64.d.ts.map +1 -0
  235. package/types/{internal → Codecs}/Utf8.d.ts +2 -2
  236. package/types/Codecs/Utf8.d.ts.map +1 -0
  237. package/types/Codecs/ZigZag.d.ts +3 -0
  238. package/types/Codecs/ZigZag.d.ts.map +1 -0
  239. package/types/Codecs/index.d.ts +8 -0
  240. package/types/Codecs/index.d.ts.map +1 -0
  241. package/types/Crypto/Bip32.d.ts +29 -0
  242. package/types/Crypto/Bip32.d.ts.map +1 -0
  243. package/types/Crypto/Bip39.d.ts +43 -0
  244. package/types/Crypto/Bip39.d.ts.map +1 -0
  245. package/types/Crypto/Blake2b.d.ts +16 -0
  246. package/types/Crypto/Blake2b.d.ts.map +1 -0
  247. package/types/Crypto/Curve.d.ts +161 -0
  248. package/types/Crypto/Curve.d.ts.map +1 -0
  249. package/types/Crypto/Ed25519.d.ts +155 -0
  250. package/types/Crypto/Ed25519.d.ts.map +1 -0
  251. package/types/Crypto/EdDSA.d.ts +159 -0
  252. package/types/Crypto/EdDSA.d.ts.map +1 -0
  253. package/types/Crypto/Field.d.ts +273 -0
  254. package/types/Crypto/Field.d.ts.map +1 -0
  255. package/types/Crypto/Hmac.d.ts +20 -0
  256. package/types/Crypto/Hmac.d.ts.map +1 -0
  257. package/types/Crypto/Keccak.d.ts +16 -0
  258. package/types/Crypto/Keccak.d.ts.map +1 -0
  259. package/types/Crypto/Pbkdf2.d.ts +15 -0
  260. package/types/Crypto/Pbkdf2.d.ts.map +1 -0
  261. package/types/Crypto/Sha2_256.d.ts +36 -0
  262. package/types/Crypto/Sha2_256.d.ts.map +1 -0
  263. package/types/Crypto/Sha2_512.d.ts +31 -0
  264. package/types/Crypto/Sha2_512.d.ts.map +1 -0
  265. package/types/Crypto/Sha3_256.d.ts +8 -0
  266. package/types/Crypto/Sha3_256.d.ts.map +1 -0
  267. package/types/Crypto/errors.d.ts +10 -0
  268. package/types/Crypto/errors.d.ts.map +1 -0
  269. package/types/Crypto/index.d.ts +12 -0
  270. package/types/Crypto/index.d.ts.map +1 -0
  271. package/types/index.d.ts +3 -5
  272. package/types/index.d.ts.map +1 -1
  273. package/dist/Address.js +0 -13
  274. package/dist/Address.js.map +0 -1
  275. package/dist/Bech32.js.map +0 -1
  276. package/dist/Cbor.js.map +0 -1
  277. package/dist/Ledger/Address.js.map +0 -1
  278. package/dist/Ledger/AssetClass.js.map +0 -1
  279. package/dist/Ledger/Assets.js +0 -120
  280. package/dist/Ledger/Assets.js.map +0 -1
  281. package/dist/Ledger/Credential.js +0 -17
  282. package/dist/Ledger/Credential.js.map +0 -1
  283. package/dist/Ledger/DatumHash.js +0 -21
  284. package/dist/Ledger/DatumHash.js.map +0 -1
  285. package/dist/Ledger/IsMainnet.js +0 -4
  286. package/dist/Ledger/IsMainnet.js.map +0 -1
  287. package/dist/Ledger/MintingPolicy.js +0 -45
  288. package/dist/Ledger/MintingPolicy.js.map +0 -1
  289. package/dist/Ledger/NetworkParams.js +0 -40
  290. package/dist/Ledger/NetworkParams.js.map +0 -1
  291. package/dist/Ledger/PubKeyHash.js.map +0 -1
  292. package/dist/Ledger/TxHash.js +0 -23
  293. package/dist/Ledger/TxHash.js.map +0 -1
  294. package/dist/Ledger/TxId.js +0 -23
  295. package/dist/Ledger/TxId.js.map +0 -1
  296. package/dist/Ledger/TxInput.js +0 -51
  297. package/dist/Ledger/TxInput.js.map +0 -1
  298. package/dist/Ledger/TxOutput.js +0 -118
  299. package/dist/Ledger/TxOutput.js.map +0 -1
  300. package/dist/Ledger/TxOutputDatum.js.map +0 -1
  301. package/dist/Ledger/TxOutputId.js +0 -55
  302. package/dist/Ledger/TxOutputId.js.map +0 -1
  303. package/dist/Ledger/UTxO.js +0 -43
  304. package/dist/Ledger/UTxO.js.map +0 -1
  305. package/dist/Ledger/UTxORef.js.map +0 -1
  306. package/dist/Ledger/ValidatorHash.js.map +0 -1
  307. package/dist/Ledger/index.js.map +0 -1
  308. package/dist/Network/IsMainnet.js.map +0 -1
  309. package/dist/Network/Params.js.map +0 -1
  310. package/dist/Network/UTxOsAt.js +0 -4
  311. package/dist/Network/UTxOsAt.js.map +0 -1
  312. package/dist/Network/errors.js +0 -16
  313. package/dist/Network/errors.js.map +0 -1
  314. package/dist/Network/index.js.map +0 -1
  315. package/dist/Uplc/Cek.js +0 -3
  316. package/dist/Uplc/Cek.js.map +0 -1
  317. package/dist/Uplc/Data.js.map +0 -1
  318. package/dist/Uplc/DataSchema.js +0 -118
  319. package/dist/Uplc/DataSchema.js.map +0 -1
  320. package/dist/Uplc/Primitive.js +0 -23
  321. package/dist/Uplc/Primitive.js.map +0 -1
  322. package/dist/Uplc/index.js +0 -3
  323. package/dist/Uplc/index.js.map +0 -1
  324. package/dist/internal/Base32.js.map +0 -1
  325. package/dist/internal/BigEndian.js.map +0 -1
  326. package/dist/internal/Bits.js.map +0 -1
  327. package/dist/internal/Bytes.js.map +0 -1
  328. package/dist/internal/Flat.js.map +0 -1
  329. package/dist/internal/Float.js.map +0 -1
  330. package/dist/internal/Utf8.js.map +0 -1
  331. package/tsconfig.build.tsbuildinfo +0 -1
  332. package/tsconfig.check.tsbuildinfo +0 -1
  333. package/tsconfig.tsbuildinfo +0 -1
  334. package/types/Address.d.ts +0 -5
  335. package/types/Address.d.ts.map +0 -1
  336. package/types/Bech32.d.ts.map +0 -1
  337. package/types/Cbor.d.ts.map +0 -1
  338. package/types/Ledger/Address.d.ts.map +0 -1
  339. package/types/Ledger/AssetClass.d.ts.map +0 -1
  340. package/types/Ledger/Assets.d.ts +0 -70
  341. package/types/Ledger/Assets.d.ts.map +0 -1
  342. package/types/Ledger/Credential.d.ts.map +0 -1
  343. package/types/Ledger/DatumHash.d.ts.map +0 -1
  344. package/types/Ledger/IsMainnet.d.ts +0 -6
  345. package/types/Ledger/IsMainnet.d.ts.map +0 -1
  346. package/types/Ledger/MintingPolicy.d.ts.map +0 -1
  347. package/types/Ledger/NetworkParams.d.ts +0 -40
  348. package/types/Ledger/NetworkParams.d.ts.map +0 -1
  349. package/types/Ledger/PubKeyHash.d.ts.map +0 -1
  350. package/types/Ledger/TxHash.d.ts.map +0 -1
  351. package/types/Ledger/TxId.d.ts +0 -70
  352. package/types/Ledger/TxId.d.ts.map +0 -1
  353. package/types/Ledger/TxInput.d.ts +0 -55
  354. package/types/Ledger/TxInput.d.ts.map +0 -1
  355. package/types/Ledger/TxOutput.d.ts +0 -63
  356. package/types/Ledger/TxOutput.d.ts.map +0 -1
  357. package/types/Ledger/TxOutputDatum.d.ts +0 -41
  358. package/types/Ledger/TxOutputDatum.d.ts.map +0 -1
  359. package/types/Ledger/TxOutputId.d.ts +0 -133
  360. package/types/Ledger/TxOutputId.d.ts.map +0 -1
  361. package/types/Ledger/UTxO.d.ts +0 -55
  362. package/types/Ledger/UTxO.d.ts.map +0 -1
  363. package/types/Ledger/UTxORef.d.ts +0 -133
  364. package/types/Ledger/UTxORef.d.ts.map +0 -1
  365. package/types/Ledger/ValidatorHash.d.ts.map +0 -1
  366. package/types/Ledger/index.d.ts.map +0 -1
  367. package/types/Network/IsMainnet.d.ts.map +0 -1
  368. package/types/Network/Params.d.ts.map +0 -1
  369. package/types/Network/UTxOsAt.d.ts +0 -9
  370. package/types/Network/UTxOsAt.d.ts.map +0 -1
  371. package/types/Network/errors.d.ts +0 -18
  372. package/types/Network/errors.d.ts.map +0 -1
  373. package/types/Network/index.d.ts.map +0 -1
  374. package/types/Uplc/Cek.d.ts +0 -72
  375. package/types/Uplc/Cek.d.ts.map +0 -1
  376. package/types/Uplc/Data.d.ts.map +0 -1
  377. package/types/Uplc/DataSchema.d.ts +0 -227
  378. package/types/Uplc/DataSchema.d.ts.map +0 -1
  379. package/types/Uplc/Primitive.d.ts +0 -26
  380. package/types/Uplc/Primitive.d.ts.map +0 -1
  381. package/types/Uplc/index.d.ts +0 -3
  382. package/types/Uplc/index.d.ts.map +0 -1
  383. package/types/internal/Base32.d.ts.map +0 -1
  384. package/types/internal/BigEndian.d.ts.map +0 -1
  385. package/types/internal/Bits.d.ts.map +0 -1
  386. package/types/internal/Bytes.d.ts.map +0 -1
  387. package/types/internal/Flat.d.ts.map +0 -1
  388. package/types/internal/Float.d.ts.map +0 -1
  389. package/types/internal/Utf8.d.ts.map +0 -1
  390. /package/dist/{Network → Cardano/Network}/IsMainnet.js +0 -0
  391. /package/dist/{internal → Codecs}/BigEndian.js +0 -0
  392. /package/dist/{internal → Codecs}/Bits.js +0 -0
  393. /package/dist/{internal → Codecs}/Float.js +0 -0
  394. /package/types/{Network → Cardano/Network}/IsMainnet.d.ts +0 -0
  395. /package/types/{internal → Codecs}/Base32.d.ts +0 -0
  396. /package/types/{Bech32.d.ts → Codecs/Bech32.d.ts} +0 -0
  397. /package/types/{internal → Codecs}/BigEndian.d.ts +0 -0
  398. /package/types/{internal → Codecs}/Bits.d.ts +0 -0
  399. /package/types/{internal → Codecs}/Float.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bip39.js","sourceRoot":"","sources":["../../src/Crypto/Bip39.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import * as Bytes from "../Codecs/Bytes.js";
2
+ import * as Uint64 from "../Codecs/Uint64.js";
3
+ /**
4
+ * Calculates blake2b hash of a list of uint8 numbers (variable digest size).
5
+ * Result is also a list of uint8 numbers.
6
+ * @example
7
+ * bytesToHex(Blake2b.hash([0, 1])) == "01cf79da4945c370c68b265ef70641aaa65eaa8f5953e3900d97724c2c5aa095"
8
+ * @example
9
+ * bytesToHex(Blake2b.hash(textToBytes("abc"), 64)) == "ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923"
10
+ * @param bytes
11
+ * @param digestSize
12
+ * Defaults to 32. Can't be greater than 64.
13
+ * @returns
14
+ * List of uint8 numbers.
15
+ */
16
+ export function hashSync(bytes, digestSize = 32) {
17
+ let bs = Bytes.toArray(bytes);
18
+ /**
19
+ * Blake2b is a 64bit algorithm, so we need to be careful when replicating 64-bit operations with 2 32-bit numbers
20
+ * (low-word overflow must spill into high-word, and shifts must go over low/high boundary).
21
+ */
22
+ const nBytes = bs.length;
23
+ bs = pad(bs);
24
+ // init hash vector
25
+ const h = IV.slice();
26
+ // setup the param block
27
+ const paramBlock = new Uint8Array(64);
28
+ paramBlock[0] = digestSize; // n output bytes
29
+ paramBlock[1] = 0; // key-length (always zero in our case)
30
+ paramBlock[2] = 1; // fanout
31
+ paramBlock[3] = 1; // depth
32
+ //mix in the parameter block
33
+ const paramBlockView = new DataView(paramBlock.buffer);
34
+ for (let i = 0; i < 8; i++) {
35
+ h[i] = Uint64.xor(h[i], {
36
+ high: paramBlockView.getUint32(i * 8 + 4, true),
37
+ low: paramBlockView.getUint32(i * 8, true)
38
+ });
39
+ }
40
+ // loop all chunks
41
+ for (let chunkStart = 0; chunkStart < bs.length; chunkStart += WIDTH) {
42
+ const chunkEnd = chunkStart + WIDTH; // exclusive
43
+ const chunk = bs.slice(chunkStart, chunkStart + WIDTH);
44
+ const chunk64 = new Array(WIDTH / 8);
45
+ for (let i = 0; i < WIDTH; i += 8) {
46
+ chunk64[i / 8] = Uint64.fromBytes(chunk.slice(i, i + 8));
47
+ }
48
+ if (chunkStart == bs.length - WIDTH) {
49
+ // last block
50
+ compress(h, chunk64, nBytes, true);
51
+ }
52
+ else {
53
+ compress(h, chunk64, chunkEnd, false);
54
+ }
55
+ }
56
+ // extract lowest BLAKE2B_DIGEST_SIZE bytes from h
57
+ let final = [];
58
+ for (let i = 0; i < digestSize / 8; i++) {
59
+ final = final.concat(Uint64.toBytes(h[i]));
60
+ }
61
+ return new Uint8Array(final.slice(0, digestSize));
62
+ }
63
+ /**
64
+ * 128 bytes (16*8 byte words)
65
+ */
66
+ const WIDTH = 128;
67
+ /**
68
+ * Initialization vector
69
+ */
70
+ const IV = [
71
+ { high: 0x6a09e667, low: 0xf3bcc908 },
72
+ { high: 0xbb67ae85, low: 0x84caa73b },
73
+ { high: 0x3c6ef372, low: 0xfe94f82b },
74
+ { high: 0xa54ff53a, low: 0x5f1d36f1 },
75
+ { high: 0x510e527f, low: 0xade682d1 },
76
+ { high: 0x9b05688c, low: 0x2b3e6c1f },
77
+ { high: 0x1f83d9ab, low: 0xfb41bd6b },
78
+ { high: 0x5be0cd19, low: 0x137e2179 }
79
+ ];
80
+ const SIGMA = [
81
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
82
+ [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],
83
+ [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],
84
+ [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],
85
+ [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],
86
+ [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9],
87
+ [12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11],
88
+ [13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10],
89
+ [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5],
90
+ [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0]
91
+ ];
92
+ /**
93
+ * @param src
94
+ * list of uint8 bytes
95
+ * @returns
96
+ * list of uint8 bytes
97
+ */
98
+ function pad(src) {
99
+ const dst = src.slice();
100
+ const nZeroes = dst.length == 0 ? WIDTH : (WIDTH - (dst.length % WIDTH)) % WIDTH;
101
+ // just padding with zeroes, the actual message length is used during compression stage of final block in order to uniquely hash messages of different lengths
102
+ for (let i = 0; i < nZeroes; i++) {
103
+ dst.push(0);
104
+ }
105
+ return dst;
106
+ }
107
+ /**
108
+ * @param {UInt64[]} v
109
+ * @param {UInt64[]} chunk
110
+ * @param a - index
111
+ * @param b - index
112
+ * @param c - index
113
+ * @param d - index
114
+ * @param i - index in chunk for low word 1
115
+ * @param j - index in chunk for low word 2
116
+ */
117
+ function mix(v, chunk, a, b, c, d, i, j) {
118
+ const x = chunk[i];
119
+ const y = chunk[j];
120
+ v[a] = Uint64.add(Uint64.add(v[a], v[b]), x);
121
+ v[d] = Uint64.rotr(Uint64.xor(v[d], v[a]), 32);
122
+ v[c] = Uint64.add(v[c], v[d]);
123
+ v[b] = Uint64.rotr(Uint64.xor(v[b], v[c]), 24);
124
+ v[a] = Uint64.add(Uint64.add(v[a], v[b]), y);
125
+ v[d] = Uint64.rotr(Uint64.xor(v[d], v[a]), 16);
126
+ v[c] = Uint64.add(v[c], v[d]);
127
+ v[b] = Uint64.rotr(Uint64.xor(v[b], v[c]), 63);
128
+ }
129
+ /**
130
+ * @param {UInt64[]} h - state vector
131
+ * @param {UInt64[]} chunk
132
+ * @param {number} t - chunkEnd (expected to fit in uint32)
133
+ * @param {boolean} last
134
+ */
135
+ function compress(h, chunk, t, last) {
136
+ // work vectors
137
+ const v = h.slice().concat(IV.slice());
138
+ v[12] = Uint64.xor(v[12], { high: 0, low: t >>> 0 }); // v[12].high unmodified
139
+ // v[13] unmodified
140
+ if (last) {
141
+ v[14] = Uint64.xor(v[14], { high: 0xffffffff, low: 0xffffffff });
142
+ }
143
+ for (let round = 0; round < 12; round++) {
144
+ const s = SIGMA[round % 10];
145
+ for (let i = 0; i < 4; i++) {
146
+ mix(v, chunk, i, i + 4, i + 8, i + 12, s[i * 2], s[i * 2 + 1]);
147
+ }
148
+ for (let i = 0; i < 4; i++) {
149
+ mix(v, chunk, i, ((i + 1) % 4) + 4, ((i + 2) % 4) + 8, ((i + 3) % 4) + 12, s[8 + i * 2], s[8 + i * 2 + 1]);
150
+ }
151
+ }
152
+ for (let i = 0; i < 8; i++) {
153
+ h[i] = Uint64.xor(h[i], Uint64.xor(v[i], v[i + 8]));
154
+ }
155
+ }
156
+ //# sourceMappingURL=Blake2b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Blake2b.js","sourceRoot":"","sources":["../../src/Crypto/Blake2b.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ export class CurveHelper {
2
+ curve;
3
+ /**
4
+ * @param curve
5
+ */
6
+ constructor(curve) {
7
+ this.curve = curve;
8
+ }
9
+ get ZERO() {
10
+ return this.curve.ZERO;
11
+ }
12
+ /**
13
+ * @param point
14
+ * @returns
15
+ */
16
+ isZero(point) {
17
+ return this.curve.equals(this.curve.ZERO, point);
18
+ }
19
+ /**
20
+ * @param point
21
+ * @returns
22
+ */
23
+ isValidPoint(point) {
24
+ return this.curve.isValidPoint(point);
25
+ }
26
+ /**
27
+ * @param a
28
+ * @param b
29
+ * @returns
30
+ */
31
+ equals(a, b) {
32
+ return this.curve.equals(a, b);
33
+ }
34
+ /**
35
+ * @param a
36
+ * @param b
37
+ * @returns
38
+ */
39
+ add(a, b) {
40
+ return this.curve.add(a, b);
41
+ }
42
+ /**
43
+ * @param a
44
+ * @param b
45
+ * @returns
46
+ */
47
+ subtract(a, b) {
48
+ return this.curve.add(a, this.curve.negate(b));
49
+ }
50
+ /**
51
+ * @param a
52
+ * @returns
53
+ */
54
+ negate(a) {
55
+ return this.curve.negate(a);
56
+ }
57
+ /**
58
+ * Double-and-add algorithm
59
+ * Seems to have acceptable performance.
60
+ * Not constant-time, but for the signing algorithms this scalar is always a random private number
61
+ * @param point
62
+ * @param s
63
+ * @returns
64
+ */
65
+ scale(point, s) {
66
+ if (s == 0n) {
67
+ console.log("scale returning 0");
68
+ return this.curve.ZERO;
69
+ }
70
+ else if (s == 1n) {
71
+ return point;
72
+ }
73
+ else if (s < 0n) {
74
+ return this.scale(this.curve.negate(point), -s);
75
+ }
76
+ else {
77
+ let sum = this.scale(point, s / 2n);
78
+ sum = this.curve.add(sum, sum);
79
+ if (s % 2n != 0n) {
80
+ sum = this.curve.add(sum, point);
81
+ }
82
+ return sum;
83
+ }
84
+ }
85
+ toAffine(point) {
86
+ return this.curve.toAffine(point);
87
+ }
88
+ fromAffine(point) {
89
+ return this.curve.fromAffine(point);
90
+ }
91
+ }
92
+ //# sourceMappingURL=Curve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Curve.js","sourceRoot":"","sources":["../../src/Crypto/Curve.ts"],"names":[],"mappings":"AAuDA,MAAM,OAAO,WAAW;IACH,KAAK,CAAc;IAEtC;;OAEG;IACH,YAAY,KAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAQ;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,CAAI,EAAE,CAAI;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,CAAI,EAAE,CAAI;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAI,EAAE,CAAI;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,CAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAQ,EAAE,CAAS;QACvB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;QACxB,CAAC;aAAM,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,OAAO,KAAK,CAAA;QACd,CAAC;aAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;YAEnC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAE9B,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;gBACjB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAClC,CAAC;YAED,OAAO,GAAG,CAAA;QACZ,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAAQ;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,UAAU,CAAC,KAAiB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;CACF"}
@@ -0,0 +1,323 @@
1
+ import { Either, Encoding } from "effect";
2
+ import * as Bits from "../Codecs/Bits.js";
3
+ import * as Bytes from "../Codecs/Bytes.js";
4
+ import * as LittleEndian from "../Codecs/LittleEndian.js";
5
+ import { EdDSA } from "./EdDSA.js";
6
+ import { FieldHelper, ScalarField } from "./Field.js";
7
+ /**
8
+ * @param bytes
9
+ * @param truncate
10
+ * Force `bytes` to 32 bytes long, applying special padding to first and 32nd byte
11
+ * @returns
12
+ * A DecodeException if `bytes` is empty
13
+ */
14
+ export function decodeScalar(bytes, truncate = false) {
15
+ if (truncate) {
16
+ bytes = bytes.slice(0, 32);
17
+ bytes[0] &= 0b11111000;
18
+ bytes[31] &= 0b00111111;
19
+ bytes[31] |= 0b01000000;
20
+ }
21
+ return LittleEndian.decode(bytes);
22
+ }
23
+ /**
24
+ * @param bytes
25
+ * @returns
26
+ * A DecodeException if `bytes` is empty
27
+ */
28
+ export function decodePrivateKey(bytes) {
29
+ return decodeScalar(bytes, true);
30
+ }
31
+ /**
32
+ * @param x
33
+ * @returns
34
+ */
35
+ export function encodeScalar(x) {
36
+ return new Uint8Array(LittleEndian.encode32(x));
37
+ }
38
+ /**
39
+ * The formula for the twisted Edwards curve is:
40
+ * -x^2 + y^2 = 1 - d*x^2*y^2
41
+ * Calculating x from this we get (only y is stored in the encoded point):
42
+ * y^2 - 1 = x^2*(1 - d*y^2)
43
+ * x = sqrt((y^2 - 1)/(1 - d*y^2))
44
+ * @param bytes
45
+ * @returns
46
+ * A DecodeException if `bytes` isn't exactly 32 long
47
+ */
48
+ export const decodePoint = (bytes) => Either.gen(function* () {
49
+ if (bytes.length != 32) {
50
+ return yield* Either.left(Encoding.DecodeException(Bytes.toHex(bytes), `expected 32 bytes for encoded point, got ${bytes.length}`));
51
+ }
52
+ const tmp = bytes.slice();
53
+ tmp[31] = tmp[31] & 0b01111111;
54
+ // here we know that `tmp` isn't empty, so `decodeScalar()` can't throw an error
55
+ const y = Either.getOrThrow(decodeScalar(tmp));
56
+ const finalBit = Bits.getBit(Array.from(bytes), 255);
57
+ const y2 = y * y;
58
+ const x2 = (y2 - 1n) * F.invert(1n + D * y2);
59
+ // sqrt
60
+ let x = sqrt(x2);
61
+ if (!x) {
62
+ throw new Error("sqrt not defined on Ed25519 field, unable to recover X");
63
+ }
64
+ // if odd state not equal, make odd state same
65
+ if (Number(x & 1n) != finalBit) {
66
+ x = F.negate(x);
67
+ }
68
+ return { x, y };
69
+ });
70
+ /**
71
+ * @param point
72
+ * @returns
73
+ */
74
+ export function encodePoint(point) {
75
+ const { x, y } = point;
76
+ const evenOdd = Number(x & 1n); // 0: even, 1: odd
77
+ const bytes = encodeScalar(y);
78
+ // last bit is determined by x
79
+ bytes[31] = (bytes[31] & 0b011111111) | (evenOdd * 0b10000000);
80
+ return bytes;
81
+ }
82
+ // Decimal representations of large numbers because that's most common in literature
83
+ // Curve coordinate prime number.
84
+ // 255 bits so last bit can instead be used to encode sign
85
+ // (i.e. 32 byte compressed format for points which is neede by publicKey and first part of signature)
86
+ // operations on point coordinates are modulo P
87
+ export const P = 57896044618658097711785492504343953926634992332820282019728792003956564819949n; // ipowi(255n) - 19n, hence 25519
88
+ // A prime number that is <= the number of unique points on the curve
89
+ // operations on point multiplication factors are modulo N
90
+ export const N = 7237005577332262213973186563042994240857116359379907606001950938285454250989n; // ipow2(252n) + 27742317777372353535851937790883648493n;
91
+ // d parameter of affine twisted Edwards curve
92
+ // The formula for the twisted Edwards curve is:
93
+ // -x^2 + y^2 = 1 - d*x^2*y^2
94
+ // Note: the negative number is already included in this parameter
95
+ export const D = /* @__PURE__ */ (() => -4513249062541557337682894930092624173785641285191125241628941591882900924598840740n)(); // -121665n/121666n == -121665n * invert(121666n)
96
+ // Generator point
97
+ export const G = {
98
+ x: 15112221349535400772501151409588531511454012693041857206046113283949847762202n, // recovered from Gy
99
+ y: 46316835694926478169428394003475163141307993866256225615783033603165251855960n // (4n*invert(5n)) % P
100
+ };
101
+ const F = /* @__PURE__ */ (() => new FieldHelper(new ScalarField(P)))();
102
+ // (P + 3n)/8n
103
+ const P38 = 7237005577332262213973186563042994240829374041602535252466099000494570602494n;
104
+ // pow(2n, (P + 1n)/4n, P);
105
+ const SQRT2P14 = 19681161376707505956807079304988542015446066515923890162744021073123829784752n;
106
+ function sqrt(a) {
107
+ let r = F.pow(a, P38);
108
+ const r2 = F.multiply(r, r);
109
+ if (!F.equals(r2, a)) {
110
+ r = F.multiply(r, SQRT2P14);
111
+ }
112
+ return r;
113
+ }
114
+ class AffineCurve {
115
+ constructor() { }
116
+ get ZERO() {
117
+ return {
118
+ x: 0n,
119
+ y: 1n
120
+ };
121
+ }
122
+ /**
123
+ * @param a
124
+ * @param b
125
+ * @returns
126
+ */
127
+ equals(a, b) {
128
+ return F.equals(a.x, b.x) && F.equals(a.y, b.y);
129
+ }
130
+ /**
131
+ * @param point
132
+ * @returns
133
+ */
134
+ negate(point) {
135
+ return {
136
+ x: F.negate(point.x),
137
+ y: point.y
138
+ };
139
+ }
140
+ /**
141
+ * @param point
142
+ * @returns
143
+ */
144
+ isValidPoint(point) {
145
+ const { x, y } = point;
146
+ // TODO: can we use F.square() ?
147
+ const xx = x * x;
148
+ const yy = y * y;
149
+ return F.equals(-xx + yy - 1n, D * xx * yy);
150
+ }
151
+ /**
152
+ * @param a
153
+ * @param b
154
+ * @returns
155
+ */
156
+ add(a, b) {
157
+ const { x: x1, y: y1 } = a;
158
+ const { x: x2, y: y2 } = b;
159
+ const dxxyy = D * x1 * x2 * y1 * y2;
160
+ const x3 = F.multiply(x1 * y2 + x2 * y1, F.invert(1n + dxxyy));
161
+ const y3 = F.multiply(y1 * y2 + x1 * x2, F.invert(1n - dxxyy));
162
+ return { x: x3, y: y3 };
163
+ }
164
+ /**
165
+ * @param point
166
+ * @returns
167
+ */
168
+ fromAffine(point) {
169
+ return point;
170
+ }
171
+ /**
172
+ * @param point
173
+ * @returns
174
+ */
175
+ toAffine(point) {
176
+ return point;
177
+ }
178
+ }
179
+ export const affineCurve = new AffineCurve();
180
+ class ExtendedCurve {
181
+ constructor() { }
182
+ get ZERO() {
183
+ return { x: 0n, y: 1n, z: 1n, t: 0n };
184
+ }
185
+ /**
186
+ * @param point
187
+ * @returns
188
+ */
189
+ isValidPoint(point) {
190
+ if (this.equals(this.ZERO, point)) {
191
+ return true;
192
+ }
193
+ else {
194
+ const zInverse = F.invert(point.z);
195
+ const x = F.multiply(point.x, zInverse);
196
+ const y = F.multiply(point.y, zInverse);
197
+ const xx = x * x;
198
+ const yy = y * y;
199
+ return F.equals(-xx + yy - 1n, D * xx * yy);
200
+ }
201
+ }
202
+ /**
203
+ * @param a
204
+ * @param b
205
+ * @returns
206
+ */
207
+ equals(a, b) {
208
+ return (F.multiply(a.x, b.z) == F.multiply(b.x, a.z) &&
209
+ F.multiply(a.y, b.z) == F.multiply(b.y, a.z));
210
+ }
211
+ /**
212
+ * @param point
213
+ * @returns
214
+ */
215
+ negate(point) {
216
+ return {
217
+ x: F.negate(point.x),
218
+ y: point.y,
219
+ z: point.z,
220
+ t: F.negate(point.t)
221
+ };
222
+ }
223
+ /**
224
+ * @param point1
225
+ * @param point2
226
+ * @returns
227
+ */
228
+ add(point1, point2) {
229
+ const { x: x1, y: y1, z: z1, t: t1 } = point1;
230
+ const { x: x2, y: y2, z: z2, t: t2 } = point2;
231
+ const a = F.multiply(x1, x2);
232
+ const b = F.multiply(y1, y2);
233
+ const c = F.multiply(D * t1, t2);
234
+ const d = F.multiply(z1, z2);
235
+ const e = F.add((x1 + y1) * (x2 + y2), -a - b);
236
+ const f = F.add(d, -c);
237
+ const g = F.add(d, c);
238
+ const h = F.add(a, b);
239
+ const x3 = F.multiply(e, f);
240
+ const y3 = F.multiply(g, h);
241
+ const z3 = F.multiply(f, g);
242
+ const t3 = F.multiply(e, h);
243
+ return { x: x3, y: y3, z: z3, t: t3 };
244
+ }
245
+ /**
246
+ * @param point
247
+ * @returns
248
+ */
249
+ toAffine(point) {
250
+ if (this.equals(this.ZERO, point)) {
251
+ return { x: 0n, y: 1n };
252
+ }
253
+ else {
254
+ const zInverse = F.invert(point.z);
255
+ return {
256
+ x: F.multiply(point.x, zInverse),
257
+ y: F.multiply(point.y, zInverse)
258
+ };
259
+ }
260
+ }
261
+ /**
262
+ * @param point
263
+ * @returns
264
+ */
265
+ fromAffine(point) {
266
+ const { x, y } = point;
267
+ return {
268
+ x,
269
+ y,
270
+ z: 1n,
271
+ t: F.multiply(x, y)
272
+ };
273
+ }
274
+ }
275
+ export const extendedCurve = /* @__PURE__ */ (() => new ExtendedCurve())();
276
+ const algorithm = /* @__PURE__ */ (() => new EdDSA(extendedCurve, G, new ScalarField(N), {
277
+ decodePoint,
278
+ encodePoint,
279
+ decodePrivateKey,
280
+ decodeScalar,
281
+ encodeScalar
282
+ }))();
283
+ /**
284
+ * @param privateKey
285
+ * Must be 64 bytes long
286
+ * @param hashPrivateKey
287
+ * Defaults to true, set to false when used in Bip32 algorithm
288
+ * @returns
289
+ * 32 byte public key, or BadPrivateKeyLength if private key isn't 64 bytes long
290
+ */
291
+ export function derivePublicKey(privateKey, hashPrivateKey = true) {
292
+ return algorithm.derivePublicKey(privateKey, hashPrivateKey);
293
+ }
294
+ /**
295
+ * Sign the message.
296
+ * Even though this implementation isn't constant time, it isn't vulnerable to a timing attack (see detailed notes in EdDSA implementation)
297
+ * @param message
298
+ * @param privateKeyBytes
299
+ * @param hashPrivateKey
300
+ * Defaults to true, Bip32 passes this as false
301
+ * @returns
302
+ * 64 byte signature, or BadPrivateKeyLength if private key isn't 64 bytes long
303
+ */
304
+ export function sign(message, privateKey, hashPrivateKey = true) {
305
+ return algorithm.sign(message, privateKey, hashPrivateKey);
306
+ }
307
+ /**
308
+ * @param signature
309
+ * @param message
310
+ * @param publicKey
311
+ * @returns
312
+ * - `true` if the signature is correct.
313
+ * - `false`:
314
+ * - if the signature is incorrect
315
+ * - if the signature doesn't lie on the curve,
316
+ * - if the publicKey doesn't lie on the curve
317
+ * - BadPublicKeyLength if publicKey isn't 32 bytes long
318
+ * - BadSignatureLength if signature isn't 64 bytes long
319
+ */
320
+ export function verify(signature, message, publicKey) {
321
+ return algorithm.verify(signature, message, publicKey);
322
+ }
323
+ //# sourceMappingURL=Ed25519.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ed25519.js","sourceRoot":"","sources":["../../src/Crypto/Ed25519.ts"],"names":[],"mappings":"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"}