@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.
- package/dist/Cardano/CoinSelection.js +130 -0
- package/dist/Cardano/CoinSelection.js.map +1 -0
- package/dist/{Ledger → Cardano/Ledger}/Address.js +30 -20
- package/dist/Cardano/Ledger/Address.js.map +1 -0
- package/dist/{Ledger → Cardano/Ledger}/AssetClass.js +16 -11
- package/dist/Cardano/Ledger/AssetClass.js.map +1 -0
- package/dist/Cardano/Ledger/Assets.js +235 -0
- package/dist/Cardano/Ledger/Assets.js.map +1 -0
- package/dist/Cardano/Ledger/Credential.js +53 -0
- package/dist/Cardano/Ledger/Credential.js.map +1 -0
- package/dist/Cardano/Ledger/DCert.js +117 -0
- package/dist/Cardano/Ledger/DCert.js.map +1 -0
- package/dist/Cardano/Ledger/DatumHash.js +25 -0
- package/dist/Cardano/Ledger/DatumHash.js.map +1 -0
- package/dist/Cardano/Ledger/MintingPolicy.js +40 -0
- package/dist/Cardano/Ledger/MintingPolicy.js.map +1 -0
- package/dist/Cardano/Ledger/NativeScript.js +140 -0
- package/dist/Cardano/Ledger/NativeScript.js.map +1 -0
- package/dist/Cardano/Ledger/PubKey.js +22 -0
- package/dist/Cardano/Ledger/PubKey.js.map +1 -0
- package/dist/{Ledger → Cardano/Ledger}/PubKeyHash.js +5 -5
- package/dist/Cardano/Ledger/PubKeyHash.js.map +1 -0
- package/dist/Cardano/Ledger/Redeemer.js +155 -0
- package/dist/Cardano/Ledger/Redeemer.js.map +1 -0
- package/dist/Cardano/Ledger/RewardAddress.js +93 -0
- package/dist/Cardano/Ledger/RewardAddress.js.map +1 -0
- package/dist/Cardano/Ledger/Signature.js +23 -0
- package/dist/Cardano/Ledger/Signature.js.map +1 -0
- package/dist/Cardano/Ledger/Tx.js +498 -0
- package/dist/Cardano/Ledger/Tx.js.map +1 -0
- package/dist/Cardano/Ledger/TxHash.js +38 -0
- package/dist/Cardano/Ledger/TxHash.js.map +1 -0
- package/dist/Cardano/Ledger/TxOutput.js +167 -0
- package/dist/Cardano/Ledger/TxOutput.js.map +1 -0
- package/dist/{Ledger → Cardano/Ledger}/TxOutputDatum.js +44 -8
- package/dist/Cardano/Ledger/TxOutputDatum.js.map +1 -0
- package/dist/Cardano/Ledger/UTxO.js +100 -0
- package/dist/Cardano/Ledger/UTxO.js.map +1 -0
- package/dist/{Ledger → Cardano/Ledger}/UTxORef.js +28 -6
- package/dist/Cardano/Ledger/UTxORef.js.map +1 -0
- package/dist/{Ledger → Cardano/Ledger}/ValidatorHash.js +5 -5
- package/dist/Cardano/Ledger/ValidatorHash.js.map +1 -0
- package/dist/{Ledger → Cardano/Ledger}/index.js +5 -0
- package/dist/Cardano/Ledger/index.js.map +1 -0
- package/dist/Cardano/Network/IsMainnet.js.map +1 -0
- package/dist/{Network → Cardano/Network}/Params.js +27 -3
- package/dist/Cardano/Network/Params.js.map +1 -0
- package/dist/Cardano/Network/UTxO.js +20 -0
- package/dist/Cardano/Network/UTxO.js.map +1 -0
- package/dist/Cardano/Network/UTxOsAt.js +4 -0
- package/dist/Cardano/Network/UTxOsAt.js.map +1 -0
- package/dist/Cardano/Network/errors.js +33 -0
- package/dist/Cardano/Network/errors.js.map +1 -0
- package/dist/{Network → Cardano/Network}/index.js +1 -0
- package/dist/Cardano/Network/index.js.map +1 -0
- package/dist/Cardano/TxBuilder.js +946 -0
- package/dist/Cardano/TxBuilder.js.map +1 -0
- package/dist/Cardano/Uplc/Builtins.js +1820 -0
- package/dist/Cardano/Uplc/Builtins.js.map +1 -0
- package/dist/Cardano/Uplc/Cek.js +716 -0
- package/dist/Cardano/Uplc/Cek.js.map +1 -0
- package/dist/Cardano/Uplc/Cost.js +956 -0
- package/dist/Cardano/Uplc/Cost.js.map +1 -0
- package/dist/{Uplc → Cardano/Uplc}/Data.js +143 -22
- package/dist/Cardano/Uplc/Data.js.map +1 -0
- package/dist/Cardano/Uplc/Script.js +118 -0
- package/dist/Cardano/Uplc/Script.js.map +1 -0
- package/dist/Cardano/Uplc/ScriptContext.js +259 -0
- package/dist/Cardano/Uplc/ScriptContext.js.map +1 -0
- package/dist/Cardano/Uplc/Term.js +384 -0
- package/dist/Cardano/Uplc/Term.js.map +1 -0
- package/dist/Cardano/Uplc/Type.js +131 -0
- package/dist/Cardano/Uplc/Type.js.map +1 -0
- package/dist/Cardano/Uplc/Value.js +315 -0
- package/dist/Cardano/Uplc/Value.js.map +1 -0
- package/dist/Cardano/Uplc/index.js +7 -0
- package/dist/Cardano/Uplc/index.js.map +1 -0
- package/dist/Cardano/index.js +6 -0
- package/dist/Cardano/index.js.map +1 -0
- package/dist/{internal → Codecs}/Base32.js +2 -2
- package/dist/Codecs/Base32.js.map +1 -0
- package/dist/{Bech32.js → Codecs/Bech32.js} +2 -2
- package/dist/Codecs/Bech32.js.map +1 -0
- package/dist/Codecs/BigEndian.js.map +1 -0
- package/dist/Codecs/Bits.js.map +1 -0
- package/dist/{internal → Codecs}/Bytes.js +23 -12
- package/dist/Codecs/Bytes.js.map +1 -0
- package/dist/{Cbor.js → Codecs/Cbor.js} +559 -328
- package/dist/Codecs/Cbor.js.map +1 -0
- package/dist/{internal → Codecs}/Flat.js +16 -0
- package/dist/Codecs/Flat.js.map +1 -0
- package/dist/Codecs/Float.js.map +1 -0
- package/dist/Codecs/LittleEndian.js +27 -0
- package/dist/Codecs/LittleEndian.js.map +1 -0
- package/dist/Codecs/Uint64.js +89 -0
- package/dist/Codecs/Uint64.js.map +1 -0
- package/dist/{internal → Codecs}/Utf8.js +7 -2
- package/dist/Codecs/Utf8.js.map +1 -0
- package/dist/Codecs/ZigZag.js +26 -0
- package/dist/Codecs/ZigZag.js.map +1 -0
- package/dist/Codecs/index.js +8 -0
- package/dist/Codecs/index.js.map +1 -0
- package/dist/Crypto/Blake2b.js +156 -0
- package/dist/Crypto/Blake2b.js.map +1 -0
- package/dist/Crypto/Curve.js +92 -0
- package/dist/Crypto/Curve.js.map +1 -0
- package/dist/Crypto/Ed25519.js +323 -0
- package/dist/Crypto/Ed25519.js.map +1 -0
- package/dist/Crypto/EdDSA.js +222 -0
- package/dist/Crypto/EdDSA.js.map +1 -0
- package/dist/Crypto/Field.js +323 -0
- package/dist/Crypto/Field.js.map +1 -0
- package/dist/Crypto/Hmac.js +51 -0
- package/dist/Crypto/Hmac.js.map +1 -0
- package/dist/Crypto/Keccak.js +167 -0
- package/dist/Crypto/Keccak.js.map +1 -0
- package/dist/Crypto/Pbkdf2.js +45 -0
- package/dist/Crypto/Pbkdf2.js.map +1 -0
- package/dist/Crypto/Sha2_256.js +200 -0
- package/dist/Crypto/Sha2_256.js.map +1 -0
- package/dist/Crypto/Sha2_512.js +264 -0
- package/dist/Crypto/Sha2_512.js.map +1 -0
- package/dist/Crypto/Sha3_256.js +10 -0
- package/dist/Crypto/Sha3_256.js.map +1 -0
- package/dist/Crypto/errors.js +9 -0
- package/dist/Crypto/errors.js.map +1 -0
- package/dist/Crypto/index.js +12 -0
- package/dist/Crypto/index.js.map +1 -0
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/package.json +24 -6
- package/tsconfig.build.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/types/Cardano/CoinSelection.d.ts +26 -0
- package/types/Cardano/CoinSelection.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/Address.d.ts +7 -6
- package/types/Cardano/Ledger/Address.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/AssetClass.d.ts +2 -2
- package/types/Cardano/Ledger/AssetClass.d.ts.map +1 -0
- package/types/Cardano/Ledger/Assets.d.ts +114 -0
- package/types/Cardano/Ledger/Assets.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/Credential.d.ts +10 -4
- package/types/Cardano/Ledger/Credential.d.ts.map +1 -0
- package/types/Cardano/Ledger/DCert.d.ts +40 -0
- package/types/Cardano/Ledger/DCert.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/DatumHash.d.ts +6 -5
- package/types/Cardano/Ledger/DatumHash.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/MintingPolicy.d.ts +11 -8
- package/types/Cardano/Ledger/MintingPolicy.d.ts.map +1 -0
- package/types/Cardano/Ledger/NativeScript.d.ts +105 -0
- package/types/Cardano/Ledger/NativeScript.d.ts.map +1 -0
- package/types/Cardano/Ledger/PubKey.d.ts +41 -0
- package/types/Cardano/Ledger/PubKey.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/PubKeyHash.d.ts +5 -5
- package/types/Cardano/Ledger/PubKeyHash.d.ts.map +1 -0
- package/types/Cardano/Ledger/Redeemer.d.ts +303 -0
- package/types/Cardano/Ledger/Redeemer.d.ts.map +1 -0
- package/types/Cardano/Ledger/RewardAddress.d.ts +60 -0
- package/types/Cardano/Ledger/RewardAddress.d.ts.map +1 -0
- package/types/Cardano/Ledger/Signature.d.ts +13 -0
- package/types/Cardano/Ledger/Signature.d.ts.map +1 -0
- package/types/Cardano/Ledger/Tx.d.ts +375 -0
- package/types/Cardano/Ledger/Tx.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/TxHash.d.ts +35 -5
- package/types/Cardano/Ledger/TxHash.d.ts.map +1 -0
- package/types/Cardano/Ledger/TxOutput.d.ts +438 -0
- package/types/Cardano/Ledger/TxOutput.d.ts.map +1 -0
- package/types/Cardano/Ledger/TxOutputDatum.d.ts +98 -0
- package/types/Cardano/Ledger/TxOutputDatum.d.ts.map +1 -0
- package/types/Cardano/Ledger/UTxO.d.ts +1420 -0
- package/types/Cardano/Ledger/UTxO.d.ts.map +1 -0
- package/types/Cardano/Ledger/UTxORef.d.ts +222 -0
- package/types/Cardano/Ledger/UTxORef.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/ValidatorHash.d.ts +5 -5
- package/types/Cardano/Ledger/ValidatorHash.d.ts.map +1 -0
- package/types/{Ledger → Cardano/Ledger}/index.d.ts +5 -0
- package/types/Cardano/Ledger/index.d.ts.map +1 -0
- package/types/Cardano/Network/IsMainnet.d.ts.map +1 -0
- package/types/{Network → Cardano/Network}/Params.d.ts +32 -4
- package/types/Cardano/Network/Params.d.ts.map +1 -0
- package/types/Cardano/Network/UTxO.d.ts +15 -0
- package/types/Cardano/Network/UTxO.d.ts.map +1 -0
- package/types/Cardano/Network/UTxOsAt.d.ts +9 -0
- package/types/Cardano/Network/UTxOsAt.d.ts.map +1 -0
- package/types/Cardano/Network/errors.d.ts +39 -0
- package/types/Cardano/Network/errors.d.ts.map +1 -0
- package/types/{Network → Cardano/Network}/index.d.ts +1 -0
- package/types/Cardano/Network/index.d.ts.map +1 -0
- package/types/Cardano/TxBuilder.d.ts +261 -0
- package/types/Cardano/TxBuilder.d.ts.map +1 -0
- package/types/Cardano/Uplc/Builtins.d.ts +163 -0
- package/types/Cardano/Uplc/Builtins.d.ts.map +1 -0
- package/types/Cardano/Uplc/Cek.d.ts +165 -0
- package/types/Cardano/Uplc/Cek.d.ts.map +1 -0
- package/types/Cardano/Uplc/Cost.d.ts +93 -0
- package/types/Cardano/Uplc/Cost.d.ts.map +1 -0
- package/types/{Uplc → Cardano/Uplc}/Data.d.ts +149 -15
- package/types/Cardano/Uplc/Data.d.ts.map +1 -0
- package/types/Cardano/Uplc/Script.d.ts +87 -0
- package/types/Cardano/Uplc/Script.d.ts.map +1 -0
- package/types/Cardano/Uplc/ScriptContext.d.ts +21 -0
- package/types/Cardano/Uplc/ScriptContext.d.ts.map +1 -0
- package/types/Cardano/Uplc/Term.d.ts +454 -0
- package/types/Cardano/Uplc/Term.d.ts.map +1 -0
- package/types/Cardano/Uplc/Type.d.ts +29 -0
- package/types/Cardano/Uplc/Type.d.ts.map +1 -0
- package/types/Cardano/Uplc/Value.d.ts +152 -0
- package/types/Cardano/Uplc/Value.d.ts.map +1 -0
- package/types/Cardano/Uplc/index.d.ts +7 -0
- package/types/Cardano/Uplc/index.d.ts.map +1 -0
- package/types/Cardano/index.d.ts +6 -0
- package/types/Cardano/index.d.ts.map +1 -0
- package/types/Codecs/Base32.d.ts.map +1 -0
- package/types/Codecs/Bech32.d.ts.map +1 -0
- package/types/Codecs/BigEndian.d.ts.map +1 -0
- package/types/Codecs/Bits.d.ts.map +1 -0
- package/types/{internal → Codecs}/Bytes.d.ts +7 -6
- package/types/Codecs/Bytes.d.ts.map +1 -0
- package/types/{Cbor.d.ts → Codecs/Cbor.d.ts} +77 -55
- package/types/Codecs/Cbor.d.ts.map +1 -0
- package/types/{internal → Codecs}/Flat.d.ts +2 -0
- package/types/Codecs/Flat.d.ts.map +1 -0
- package/types/Codecs/Float.d.ts.map +1 -0
- package/types/Codecs/LittleEndian.d.ts +18 -0
- package/types/Codecs/LittleEndian.d.ts.map +1 -0
- package/types/Codecs/Uint64.d.ts +16 -0
- package/types/Codecs/Uint64.d.ts.map +1 -0
- package/types/{internal → Codecs}/Utf8.d.ts +2 -2
- package/types/Codecs/Utf8.d.ts.map +1 -0
- package/types/Codecs/ZigZag.d.ts +3 -0
- package/types/Codecs/ZigZag.d.ts.map +1 -0
- package/types/Codecs/index.d.ts +8 -0
- package/types/Codecs/index.d.ts.map +1 -0
- package/types/Crypto/Blake2b.d.ts +16 -0
- package/types/Crypto/Blake2b.d.ts.map +1 -0
- package/types/Crypto/Curve.d.ts +161 -0
- package/types/Crypto/Curve.d.ts.map +1 -0
- package/types/Crypto/Ed25519.d.ts +155 -0
- package/types/Crypto/Ed25519.d.ts.map +1 -0
- package/types/Crypto/EdDSA.d.ts +159 -0
- package/types/Crypto/EdDSA.d.ts.map +1 -0
- package/types/Crypto/Field.d.ts +273 -0
- package/types/Crypto/Field.d.ts.map +1 -0
- package/types/Crypto/Hmac.d.ts +20 -0
- package/types/Crypto/Hmac.d.ts.map +1 -0
- package/types/Crypto/Keccak.d.ts +16 -0
- package/types/Crypto/Keccak.d.ts.map +1 -0
- package/types/Crypto/Pbkdf2.d.ts +15 -0
- package/types/Crypto/Pbkdf2.d.ts.map +1 -0
- package/types/Crypto/Sha2_256.d.ts +36 -0
- package/types/Crypto/Sha2_256.d.ts.map +1 -0
- package/types/Crypto/Sha2_512.d.ts +31 -0
- package/types/Crypto/Sha2_512.d.ts.map +1 -0
- package/types/Crypto/Sha3_256.d.ts +8 -0
- package/types/Crypto/Sha3_256.d.ts.map +1 -0
- package/types/Crypto/errors.d.ts +10 -0
- package/types/Crypto/errors.d.ts.map +1 -0
- package/types/Crypto/index.d.ts +12 -0
- package/types/Crypto/index.d.ts.map +1 -0
- package/types/index.d.ts +3 -5
- package/types/index.d.ts.map +1 -1
- package/dist/Address.js +0 -13
- package/dist/Address.js.map +0 -1
- package/dist/Bech32.js.map +0 -1
- package/dist/Cbor.js.map +0 -1
- package/dist/Ledger/Address.js.map +0 -1
- package/dist/Ledger/AssetClass.js.map +0 -1
- package/dist/Ledger/Assets.js +0 -120
- package/dist/Ledger/Assets.js.map +0 -1
- package/dist/Ledger/Credential.js +0 -17
- package/dist/Ledger/Credential.js.map +0 -1
- package/dist/Ledger/DatumHash.js +0 -21
- package/dist/Ledger/DatumHash.js.map +0 -1
- package/dist/Ledger/IsMainnet.js +0 -4
- package/dist/Ledger/IsMainnet.js.map +0 -1
- package/dist/Ledger/MintingPolicy.js +0 -45
- package/dist/Ledger/MintingPolicy.js.map +0 -1
- package/dist/Ledger/NetworkParams.js +0 -40
- package/dist/Ledger/NetworkParams.js.map +0 -1
- package/dist/Ledger/PubKeyHash.js.map +0 -1
- package/dist/Ledger/TxHash.js +0 -23
- package/dist/Ledger/TxHash.js.map +0 -1
- package/dist/Ledger/TxId.js +0 -23
- package/dist/Ledger/TxId.js.map +0 -1
- package/dist/Ledger/TxInput.js +0 -51
- package/dist/Ledger/TxInput.js.map +0 -1
- package/dist/Ledger/TxOutput.js +0 -118
- package/dist/Ledger/TxOutput.js.map +0 -1
- package/dist/Ledger/TxOutputDatum.js.map +0 -1
- package/dist/Ledger/TxOutputId.js +0 -55
- package/dist/Ledger/TxOutputId.js.map +0 -1
- package/dist/Ledger/UTxO.js +0 -43
- package/dist/Ledger/UTxO.js.map +0 -1
- package/dist/Ledger/UTxORef.js.map +0 -1
- package/dist/Ledger/ValidatorHash.js.map +0 -1
- package/dist/Ledger/index.js.map +0 -1
- package/dist/Network/IsMainnet.js.map +0 -1
- package/dist/Network/Params.js.map +0 -1
- package/dist/Network/UTxOsAt.js +0 -4
- package/dist/Network/UTxOsAt.js.map +0 -1
- package/dist/Network/errors.js +0 -16
- package/dist/Network/errors.js.map +0 -1
- package/dist/Network/index.js.map +0 -1
- package/dist/Uplc/Cek.js +0 -3
- package/dist/Uplc/Cek.js.map +0 -1
- package/dist/Uplc/Data.js.map +0 -1
- package/dist/Uplc/DataSchema.js +0 -118
- package/dist/Uplc/DataSchema.js.map +0 -1
- package/dist/Uplc/Primitive.js +0 -23
- package/dist/Uplc/Primitive.js.map +0 -1
- package/dist/Uplc/index.js +0 -3
- package/dist/Uplc/index.js.map +0 -1
- package/dist/internal/Base32.js.map +0 -1
- package/dist/internal/BigEndian.js.map +0 -1
- package/dist/internal/Bits.js.map +0 -1
- package/dist/internal/Bytes.js.map +0 -1
- package/dist/internal/Flat.js.map +0 -1
- package/dist/internal/Float.js.map +0 -1
- package/dist/internal/Utf8.js.map +0 -1
- package/tsconfig.check.tsbuildinfo +0 -1
- package/types/Address.d.ts +0 -5
- package/types/Address.d.ts.map +0 -1
- package/types/Bech32.d.ts.map +0 -1
- package/types/Cbor.d.ts.map +0 -1
- package/types/Ledger/Address.d.ts.map +0 -1
- package/types/Ledger/AssetClass.d.ts.map +0 -1
- package/types/Ledger/Assets.d.ts +0 -70
- package/types/Ledger/Assets.d.ts.map +0 -1
- package/types/Ledger/Credential.d.ts.map +0 -1
- package/types/Ledger/DatumHash.d.ts.map +0 -1
- package/types/Ledger/IsMainnet.d.ts +0 -6
- package/types/Ledger/IsMainnet.d.ts.map +0 -1
- package/types/Ledger/MintingPolicy.d.ts.map +0 -1
- package/types/Ledger/NetworkParams.d.ts +0 -40
- package/types/Ledger/NetworkParams.d.ts.map +0 -1
- package/types/Ledger/PubKeyHash.d.ts.map +0 -1
- package/types/Ledger/TxHash.d.ts.map +0 -1
- package/types/Ledger/TxId.d.ts +0 -70
- package/types/Ledger/TxId.d.ts.map +0 -1
- package/types/Ledger/TxInput.d.ts +0 -55
- package/types/Ledger/TxInput.d.ts.map +0 -1
- package/types/Ledger/TxOutput.d.ts +0 -63
- package/types/Ledger/TxOutput.d.ts.map +0 -1
- package/types/Ledger/TxOutputDatum.d.ts +0 -41
- package/types/Ledger/TxOutputDatum.d.ts.map +0 -1
- package/types/Ledger/TxOutputId.d.ts +0 -133
- package/types/Ledger/TxOutputId.d.ts.map +0 -1
- package/types/Ledger/UTxO.d.ts +0 -55
- package/types/Ledger/UTxO.d.ts.map +0 -1
- package/types/Ledger/UTxORef.d.ts +0 -133
- package/types/Ledger/UTxORef.d.ts.map +0 -1
- package/types/Ledger/ValidatorHash.d.ts.map +0 -1
- package/types/Ledger/index.d.ts.map +0 -1
- package/types/Network/IsMainnet.d.ts.map +0 -1
- package/types/Network/Params.d.ts.map +0 -1
- package/types/Network/UTxOsAt.d.ts +0 -9
- package/types/Network/UTxOsAt.d.ts.map +0 -1
- package/types/Network/errors.d.ts +0 -18
- package/types/Network/errors.d.ts.map +0 -1
- package/types/Network/index.d.ts.map +0 -1
- package/types/Uplc/Cek.d.ts +0 -72
- package/types/Uplc/Cek.d.ts.map +0 -1
- package/types/Uplc/Data.d.ts.map +0 -1
- package/types/Uplc/DataSchema.d.ts +0 -227
- package/types/Uplc/DataSchema.d.ts.map +0 -1
- package/types/Uplc/Primitive.d.ts +0 -26
- package/types/Uplc/Primitive.d.ts.map +0 -1
- package/types/Uplc/index.d.ts +0 -3
- package/types/Uplc/index.d.ts.map +0 -1
- package/types/internal/Base32.d.ts.map +0 -1
- package/types/internal/BigEndian.d.ts.map +0 -1
- package/types/internal/Bits.d.ts.map +0 -1
- package/types/internal/Bytes.d.ts.map +0 -1
- package/types/internal/Flat.d.ts.map +0 -1
- package/types/internal/Float.d.ts.map +0 -1
- package/types/internal/Utf8.d.ts.map +0 -1
- /package/dist/{Network → Cardano/Network}/IsMainnet.js +0 -0
- /package/dist/{internal → Codecs}/BigEndian.js +0 -0
- /package/dist/{internal → Codecs}/Bits.js +0 -0
- /package/dist/{internal → Codecs}/Float.js +0 -0
- /package/types/{Network → Cardano/Network}/IsMainnet.d.ts +0 -0
- /package/types/{internal → Codecs}/Base32.d.ts +0 -0
- /package/types/{Bech32.d.ts → Codecs/Bech32.d.ts} +0 -0
- /package/types/{internal → Codecs}/BigEndian.d.ts +0 -0
- /package/types/{internal → Codecs}/Bits.d.ts +0 -0
- /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":"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"}
|
|
@@ -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"}
|