Library
Module
Module type
Parameter
Class
Class type
type rk = Client.UTXO.rk
Randomised signature keys. All inputs are signed with a randomised version of a secret key. *
type spend_proof = Client.UTXO.spend_proof
Zero knowledge proofs needed to spend a transaction outputs. See spec section 4.15 *
type spend_sig = Client.UTXO.spend_sig
Signature needed to spend tokens. Computed with a randomised version of the secret key and verifies under a randomised version of the public key. Signs a hash of an input concatenated with an optional anti-replay string. *
type output_proof = Client.UTXO.output_proof
Zero-knowledge proof needed to create money. See spec section 4.15 *
type input = Client.UTXO.input = {
cv : Client.CV.t;
nf : Client.Nullifier.t;
rk : rk;
proof_i : spend_proof;
signature : spend_sig;
}
Contains the necessary information to spend tokens (except the root which we include in the transaction). *
val input_encoding : input Data_encoding.t
type output = Client.UTXO.output = {
cm : Client.Commitment.t;
proof_o : output_proof;
ciphertext : Client.Ciphertext.t;
}
Contains the necessary information to create tokens. *
val output_encoding : output Data_encoding.t
type binding_sig = Client.UTXO.binding_sig
Ties a transaction to a balance (difference between the tokens created and spent). Proves with the commitment values that sum of values of inputs minus sums of values of output equals balance. *
val binding_sig_encoding : binding_sig Data_encoding.t
module Legacy = Validator.UTXO.Legacy
type transaction_new = Client.UTXO.transaction
type transaction = Client.UTXO.Legacy.transaction = {
inputs : Client.UTXO.input list;
outputs : Client.UTXO.output list;
binding_sig : Client.UTXO.binding_sig;
balance : int64;
root : Client.Hash.t;
}
val transaction_encoding : transaction Data_encoding.t
val cast : transaction -> transaction_new