Handle monitor clients
This commit is contained in:
parent
d2880b475b
commit
68064b1469
@ -60,6 +60,7 @@ validate(#{ connect := #{ pubkey := PK
|
|||||||
, versions := Versions
|
, versions := Versions
|
||||||
, pool_id := PoolId
|
, pool_id := PoolId
|
||||||
, extra_pubkeys := Extra
|
, extra_pubkeys := Extra
|
||||||
|
, type := Type
|
||||||
, nonces := Nonces
|
, nonces := Nonces
|
||||||
}} = Msg, _Vsn) ->
|
}} = Msg, _Vsn) ->
|
||||||
valid({list, protocol}, Protocols),
|
valid({list, protocol}, Protocols),
|
||||||
@ -68,6 +69,7 @@ validate(#{ connect := #{ pubkey := PK
|
|||||||
valid(contract, PoolId),
|
valid(contract, PoolId),
|
||||||
valid(pubkey, PK),
|
valid(pubkey, PK),
|
||||||
valid({list, pubkey}, Extra),
|
valid({list, pubkey}, Extra),
|
||||||
|
valid(type, Type),
|
||||||
valid(pos_int, Nonces),
|
valid(pos_int, Nonces),
|
||||||
Msg;
|
Msg;
|
||||||
validate(#{ connect_ack := #{ protocol := Protocol
|
validate(#{ connect_ack := #{ protocol := Protocol
|
||||||
@ -117,6 +119,8 @@ encode_connect(#{ protocols := _Protocols
|
|||||||
, versions := _Versions
|
, versions := _Versions
|
||||||
, pool_id := _PoolId
|
, pool_id := _PoolId
|
||||||
, pubkey := _Pubkey
|
, pubkey := _Pubkey
|
||||||
|
, extra_pubkeys := _Extra
|
||||||
|
, type := _Type
|
||||||
, signature := _Sig } = Params, Id) ->
|
, signature := _Sig } = Params, Id) ->
|
||||||
encode_request(#{connect => Params}, Id, connect_protocol(), connect_version()).
|
encode_request(#{connect => Params}, Id, connect_protocol(), connect_version()).
|
||||||
|
|
||||||
@ -241,12 +245,14 @@ decode_msg_(<<"connect">>, #{ <<"protocols">> := Protos
|
|||||||
, <<"pool_id">> := PoolId
|
, <<"pool_id">> := PoolId
|
||||||
, <<"pubkey">> := PK
|
, <<"pubkey">> := PK
|
||||||
, <<"extra_pubkeys">> := Extra
|
, <<"extra_pubkeys">> := Extra
|
||||||
|
, <<"type">> := Type
|
||||||
, <<"nonces">> := Nonces }) ->
|
, <<"nonces">> := Nonces }) ->
|
||||||
#{connect => #{ protocols => Protos
|
#{connect => #{ protocols => Protos
|
||||||
, versions => Vsns
|
, versions => Vsns
|
||||||
, pool_id => PoolId
|
, pool_id => PoolId
|
||||||
, pubkey => PK
|
, pubkey => PK
|
||||||
, extra_pubkeys => Extra
|
, extra_pubkeys => Extra
|
||||||
|
, type => Type
|
||||||
, nonces => Nonces
|
, nonces => Nonces
|
||||||
}};
|
}};
|
||||||
decode_msg_(<<"get_nonces">>, #{ <<"seq">> := Seq
|
decode_msg_(<<"get_nonces">>, #{ <<"seq">> := Seq
|
||||||
@ -291,6 +297,7 @@ valid_(target, T) -> pos_integer(T);
|
|||||||
valid_(edge_bits, E) -> pos_integer(E);
|
valid_(edge_bits, E) -> pos_integer(E);
|
||||||
valid_(pos_int, I) -> pos_integer(I);
|
valid_(pos_int, I) -> pos_integer(I);
|
||||||
valid_(contract, Id) -> ok_tuple(gmser_api_encoder:safe_defode(contract_pubkey, Id));
|
valid_(contract, Id) -> ok_tuple(gmser_api_encoder:safe_defode(contract_pubkey, Id));
|
||||||
|
valid_(type, T) -> lists:member(T, [miner, monitor]);
|
||||||
valid_(nonces, Ns) ->
|
valid_(nonces, Ns) ->
|
||||||
case Ns of
|
case Ns of
|
||||||
[N] -> pos_integer(N);
|
[N] -> pos_integer(N);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user