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