Current section
Files
Jump to
Current section
Files
src/transaction@flags.erl
-module(transaction@flags).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([from_signature_proof_flags/1, to_signature_proof_flags/1, from_transaction_flags/1, to_transaction_flags/1]).
-export_type([signature_proof_flags/0, transaction_flags/0]).
-type signature_proof_flags() :: webauthn_fields_flag.
-type transaction_flags() :: contract_creation_flag | signaling_flag.
-spec from_signature_proof_flags(gleam@option:option(signature_proof_flags())) -> integer().
from_signature_proof_flags(Flags) ->
case Flags of
none ->
2#0000;
{some, webauthn_fields_flag} ->
2#0001
end.
-spec to_signature_proof_flags(integer()) -> {ok,
gleam@option:option(signature_proof_flags())} |
{error, binary()}.
to_signature_proof_flags(Flags) ->
case Flags of
2#0000 ->
{ok, none};
2#0001 ->
{ok, {some, webauthn_fields_flag}};
_ ->
{error, <<"Invalid signature proof flags"/utf8>>}
end.
-spec from_transaction_flags(gleam@option:option(transaction_flags())) -> integer().
from_transaction_flags(Flags) ->
case Flags of
none ->
2#00000000;
{some, contract_creation_flag} ->
2#00000001;
{some, signaling_flag} ->
2#00000010
end.
-spec to_transaction_flags(integer()) -> {ok,
gleam@option:option(transaction_flags())} |
{error, binary()}.
to_transaction_flags(Flags) ->
case Flags of
2#00000000 ->
{ok, none};
2#00000001 ->
{ok, {some, contract_creation_flag}};
2#00000010 ->
{ok, {some, signaling_flag}};
_ ->
{error, <<"Invalid transaction flags"/utf8>>}
end.