Add id tag and serializations for associate chain
This commit is contained in:
parent
2488ff3978
commit
4d2beb0337
@ -31,6 +31,7 @@
|
|||||||
| oracle_response
|
| oracle_response
|
||||||
| account_pubkey
|
| account_pubkey
|
||||||
| account_seckey
|
| account_seckey
|
||||||
|
| associate_chain
|
||||||
| signature
|
| signature
|
||||||
| name
|
| name
|
||||||
| commitment
|
| commitment
|
||||||
@ -39,6 +40,7 @@
|
|||||||
| poi
|
| poi
|
||||||
| state_trees
|
| state_trees
|
||||||
| call_state_tree
|
| call_state_tree
|
||||||
|
| mp_tree_hash
|
||||||
| bytearray.
|
| bytearray.
|
||||||
|
|
||||||
-type extended_type() :: known_type() | block_hash | {id_hash, [known_type()]}.
|
-type extended_type() :: known_type() | block_hash | {id_hash, [known_type()]}.
|
||||||
@ -161,14 +163,16 @@ sha256_hash(Bin) ->
|
|||||||
crypto:hash(sha256, Bin).
|
crypto:hash(sha256, Bin).
|
||||||
|
|
||||||
|
|
||||||
id2type(account) -> account_pubkey;
|
id2type(account) -> account_pubkey;
|
||||||
id2type(channel) -> channel;
|
id2type(associate_chain) -> associate_chain;
|
||||||
id2type(commitment) -> commitment;
|
id2type(channel) -> channel;
|
||||||
id2type(contract) -> contract_pubkey;
|
id2type(commitment) -> commitment;
|
||||||
id2type(name) -> name;
|
id2type(contract) -> contract_pubkey;
|
||||||
id2type(oracle) -> oracle_pubkey.
|
id2type(name) -> name;
|
||||||
|
id2type(oracle) -> oracle_pubkey.
|
||||||
|
|
||||||
type2id(account_pubkey) -> account;
|
type2id(account_pubkey) -> account;
|
||||||
|
type2id(associate_chain) -> associate_chain;
|
||||||
type2id(channel) -> channel;
|
type2id(channel) -> channel;
|
||||||
type2id(commitment) -> commitment;
|
type2id(commitment) -> commitment;
|
||||||
type2id(contract_pubkey) -> contract;
|
type2id(contract_pubkey) -> contract;
|
||||||
@ -193,6 +197,7 @@ type2enc(oracle_query_id) -> ?BASE58;
|
|||||||
type2enc(oracle_response) -> ?BASE64;
|
type2enc(oracle_response) -> ?BASE64;
|
||||||
type2enc(account_pubkey) -> ?BASE58;
|
type2enc(account_pubkey) -> ?BASE58;
|
||||||
type2enc(account_seckey) -> ?BASE58;
|
type2enc(account_seckey) -> ?BASE58;
|
||||||
|
type2enc(associate_chain) -> ?BASE58;
|
||||||
type2enc(signature) -> ?BASE58;
|
type2enc(signature) -> ?BASE58;
|
||||||
type2enc(commitment) -> ?BASE58;
|
type2enc(commitment) -> ?BASE58;
|
||||||
type2enc(peer_pubkey) -> ?BASE58;
|
type2enc(peer_pubkey) -> ?BASE58;
|
||||||
@ -201,6 +206,7 @@ type2enc(state) -> ?BASE64;
|
|||||||
type2enc(poi) -> ?BASE64;
|
type2enc(poi) -> ?BASE64;
|
||||||
type2enc(state_trees) -> ?BASE64;
|
type2enc(state_trees) -> ?BASE64;
|
||||||
type2enc(call_state_tree) -> ?BASE64;
|
type2enc(call_state_tree) -> ?BASE64;
|
||||||
|
type2enc(mp_tree_hash) -> ?BASE58;
|
||||||
type2enc(bytearray) -> ?BASE64.
|
type2enc(bytearray) -> ?BASE64.
|
||||||
|
|
||||||
|
|
||||||
@ -222,6 +228,7 @@ type2pfx(oracle_query_id) -> <<"oq">>;
|
|||||||
type2pfx(oracle_response) -> <<"or">>;
|
type2pfx(oracle_response) -> <<"or">>;
|
||||||
type2pfx(account_pubkey) -> <<"ak">>;
|
type2pfx(account_pubkey) -> <<"ak">>;
|
||||||
type2pfx(account_seckey) -> <<"sk">>;
|
type2pfx(account_seckey) -> <<"sk">>;
|
||||||
|
type2pfx(associate_chain) -> <<"ac">>;
|
||||||
type2pfx(signature) -> <<"sg">>;
|
type2pfx(signature) -> <<"sg">>;
|
||||||
type2pfx(commitment) -> <<"cm">>;
|
type2pfx(commitment) -> <<"cm">>;
|
||||||
type2pfx(peer_pubkey) -> <<"pp">>;
|
type2pfx(peer_pubkey) -> <<"pp">>;
|
||||||
@ -230,6 +237,7 @@ type2pfx(state) -> <<"st">>;
|
|||||||
type2pfx(poi) -> <<"pi">>;
|
type2pfx(poi) -> <<"pi">>;
|
||||||
type2pfx(state_trees) -> <<"ss">>;
|
type2pfx(state_trees) -> <<"ss">>;
|
||||||
type2pfx(call_state_tree) -> <<"cs">>;
|
type2pfx(call_state_tree) -> <<"cs">>;
|
||||||
|
type2pfx(mp_tree_hash) -> <<"mt">>;
|
||||||
type2pfx(bytearray) -> <<"ba">>.
|
type2pfx(bytearray) -> <<"ba">>.
|
||||||
|
|
||||||
pfx2type(<<"kh">>) -> key_block_hash;
|
pfx2type(<<"kh">>) -> key_block_hash;
|
||||||
@ -250,6 +258,7 @@ pfx2type(<<"oq">>) -> oracle_query_id;
|
|||||||
pfx2type(<<"or">>) -> oracle_response;
|
pfx2type(<<"or">>) -> oracle_response;
|
||||||
pfx2type(<<"ak">>) -> account_pubkey;
|
pfx2type(<<"ak">>) -> account_pubkey;
|
||||||
pfx2type(<<"sk">>) -> account_seckey;
|
pfx2type(<<"sk">>) -> account_seckey;
|
||||||
|
pfx2type(<<"ac">>) -> associate_chain;
|
||||||
pfx2type(<<"sg">>) -> signature;
|
pfx2type(<<"sg">>) -> signature;
|
||||||
pfx2type(<<"cm">>) -> commitment;
|
pfx2type(<<"cm">>) -> commitment;
|
||||||
pfx2type(<<"pp">>) -> peer_pubkey;
|
pfx2type(<<"pp">>) -> peer_pubkey;
|
||||||
@ -258,6 +267,7 @@ pfx2type(<<"st">>) -> state;
|
|||||||
pfx2type(<<"pi">>) -> poi;
|
pfx2type(<<"pi">>) -> poi;
|
||||||
pfx2type(<<"ss">>) -> state_trees;
|
pfx2type(<<"ss">>) -> state_trees;
|
||||||
pfx2type(<<"cs">>) -> call_state_tree;
|
pfx2type(<<"cs">>) -> call_state_tree;
|
||||||
|
pfx2type(<<"mt">>) -> mp_tree_hash;
|
||||||
pfx2type(<<"ba">>) -> bytearray.
|
pfx2type(<<"ba">>) -> bytearray.
|
||||||
|
|
||||||
-spec byte_size_for_type(known_type()) -> non_neg_integer() | not_applicable.
|
-spec byte_size_for_type(known_type()) -> non_neg_integer() | not_applicable.
|
||||||
@ -280,6 +290,7 @@ byte_size_for_type(oracle_query_id) -> 32;
|
|||||||
byte_size_for_type(oracle_response) -> not_applicable;
|
byte_size_for_type(oracle_response) -> not_applicable;
|
||||||
byte_size_for_type(account_pubkey) -> 32;
|
byte_size_for_type(account_pubkey) -> 32;
|
||||||
byte_size_for_type(account_seckey) -> 32;
|
byte_size_for_type(account_seckey) -> 32;
|
||||||
|
byte_size_for_type(associate_chain) -> 32;
|
||||||
byte_size_for_type(signature) -> 64;
|
byte_size_for_type(signature) -> 64;
|
||||||
byte_size_for_type(name) -> not_applicable;
|
byte_size_for_type(name) -> not_applicable;
|
||||||
byte_size_for_type(commitment) -> 32;
|
byte_size_for_type(commitment) -> 32;
|
||||||
@ -288,6 +299,7 @@ byte_size_for_type(state) -> 32;
|
|||||||
byte_size_for_type(poi) -> not_applicable;
|
byte_size_for_type(poi) -> not_applicable;
|
||||||
byte_size_for_type(state_trees) -> not_applicable;
|
byte_size_for_type(state_trees) -> not_applicable;
|
||||||
byte_size_for_type(call_state_tree) -> not_applicable;
|
byte_size_for_type(call_state_tree) -> not_applicable;
|
||||||
|
byte_size_for_type(mp_tree_hash) -> 32;
|
||||||
byte_size_for_type(bytearray) -> not_applicable.
|
byte_size_for_type(bytearray) -> not_applicable.
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
}).
|
}).
|
||||||
|
|
||||||
-type tag() :: 'account' | 'oracle' | 'name'
|
-type tag() :: 'account' | 'oracle' | 'name'
|
||||||
| 'commitment' | 'contract' | 'channel'.
|
| 'commitment' | 'contract' | 'channel'
|
||||||
|
| 'associate_chain' .
|
||||||
-type val() :: <<_:256>>.
|
-type val() :: <<_:256>>.
|
||||||
-opaque(id() :: #id{}).
|
-opaque(id() :: #id{}).
|
||||||
|
|
||||||
@ -43,7 +44,8 @@
|
|||||||
___TAG___ =:= name;
|
___TAG___ =:= name;
|
||||||
___TAG___ =:= commitment;
|
___TAG___ =:= commitment;
|
||||||
___TAG___ =:= contract;
|
___TAG___ =:= contract;
|
||||||
___TAG___ =:= channel
|
___TAG___ =:= channel;
|
||||||
|
___TAG___ =:= associate_chain
|
||||||
).
|
).
|
||||||
-define(IS_VAL(___VAL___), byte_size(___VAL___) =:= 32).
|
-define(IS_VAL(___VAL___), byte_size(___VAL___) =:= 32).
|
||||||
|
|
||||||
@ -94,13 +96,14 @@ decode(<<Tag:?TAG_SIZE/unit:8, Val:?PUB_SIZE/binary>>) ->
|
|||||||
%%% Internal functions
|
%%% Internal functions
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
|
|
||||||
encode_tag(account) -> 1;
|
encode_tag(account) -> 1;
|
||||||
encode_tag(name) -> 2;
|
encode_tag(name) -> 2;
|
||||||
encode_tag(commitment) -> 3;
|
encode_tag(commitment) -> 3;
|
||||||
encode_tag(oracle) -> 4;
|
encode_tag(oracle) -> 4;
|
||||||
encode_tag(contract) -> 5;
|
encode_tag(contract) -> 5;
|
||||||
encode_tag(channel) -> 6;
|
encode_tag(channel) -> 6;
|
||||||
encode_tag(Other) -> error({illegal_id_tag_name, Other}).
|
encode_tag(associate_chain) -> 7;
|
||||||
|
encode_tag(Other) -> error({illegal_id_tag_name, Other}).
|
||||||
|
|
||||||
decode_tag(1) -> account;
|
decode_tag(1) -> account;
|
||||||
decode_tag(2) -> name;
|
decode_tag(2) -> name;
|
||||||
@ -108,4 +111,5 @@ decode_tag(3) -> commitment;
|
|||||||
decode_tag(4) -> oracle;
|
decode_tag(4) -> oracle;
|
||||||
decode_tag(5) -> contract;
|
decode_tag(5) -> contract;
|
||||||
decode_tag(6) -> channel;
|
decode_tag(6) -> channel;
|
||||||
|
decode_tag(7) -> associate_chain;
|
||||||
decode_tag(X) -> error({illegal_id_tag, X}).
|
decode_tag(X) -> error({illegal_id_tag, X}).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user