Packages
elixium_core
0.4.10
0.6.3
0.6.2
0.6.1
0.6.0
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.1
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
The core package for the Elixium blockchain, containing all the modules needed to run the chain
Current section
Files
Jump to
Current section
Files
lib/utxo.ex
defmodule Elixium.Utxo do
alias Elixium.Utxo
defstruct [:addr, :amount, :txoid]
@moduledoc """
Functionality specific to UTXOs
"""
@doc """
Takes in a utxo received from a peer which may have malicious or extra
attributes attached. Removes all extra parameters which are not defined
explicitly by the utxo struct.
"""
@spec sanitize(Utxo) :: Utxo
def sanitize(unsanitized_utxo) do
struct(Utxo, Map.delete(unsanitized_utxo, :__struct__))
end
@doc """
Returns a hash representation of a given utxo (to be used as an input for
signature)
"""
@spec hash(Utxo) :: binary
def hash(utxo) do
:crypto.hash(:sha256, [utxo.txoid, utxo.addr, :erlang.term_to_binary(utxo.amount)])
end
end