Use bytes for server proto (#626)

* Use bytes for squeak_hash in getsqueak method

* Use bytes for squeak hash in get offer rpc

* Use bytes for hash field in squeak message in proto

* Use bytes for hashes in lookup response

* Remove old commented code

* Use bytes for squeak hash in peer client post

* Remove old comments
This commit is contained in:
Jonathan Zernik 2021-01-12 19:13:40 -08:00 committed by GitHub
parent eed3e744f4
commit 5572ee07d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 33 deletions

View file

@ -80,7 +80,7 @@ def test_post_squeak(server_stub, admin_stub, lightning_client, following_signin
# Get the same squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=squeak_hash)
squeak_server_pb2.GetSqueakRequest(hash=bytes.fromhex(squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
@ -122,7 +122,7 @@ def test_lookup_squeaks(server_stub, admin_stub, signing_profile_id, saved_squea
)
)
assert len(lookup_response.hashes) == 1
assert saved_squeak_hash in set(lookup_response.hashes)
assert bytes.fromhex(saved_squeak_hash) in set(lookup_response.hashes)
def test_lookup_squeaks_empty_result_addresses(server_stub, admin_stub):
@ -172,7 +172,8 @@ def test_sell_squeak(server_stub, admin_stub, lightning_client, saved_squeak_has
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=saved_squeak_hash)
squeak_server_pb2.GetSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
@ -180,7 +181,7 @@ def test_sell_squeak(server_stub, admin_stub, lightning_client, saved_squeak_has
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
hash=saved_squeak_hash,
hash=bytes.fromhex(saved_squeak_hash),
)
)
assert buy_response.offer.payment_request.startswith("ln")
@ -238,7 +239,8 @@ def test_make_squeak(server_stub, admin_stub, signing_profile_id):
# Get the new squeak from the server
get_squeak_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=make_squeak_hash)
squeak_server_pb2.GetSqueakRequest(
hash=bytes.fromhex(make_squeak_hash))
)
get_squeak_response_squeak = squeak_from_msg(get_squeak_response.squeak)
CheckSqueak(get_squeak_response_squeak, skipDecryptionCheck=True)
@ -511,7 +513,8 @@ def test_delete_squeak(server_stub, admin_stub, saved_squeak_hash):
# Try to get the squeak and fail
with pytest.raises(Exception) as excinfo:
server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=saved_squeak_hash)
squeak_server_pb2.GetSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
assert "Squeak not found." in str(excinfo.value)
@ -616,7 +619,8 @@ def test_delete_peer(server_stub, admin_stub, peer_id):
def test_list_channels(server_stub, admin_stub, lightning_client, saved_squeak_hash):
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=saved_squeak_hash)
squeak_server_pb2.GetSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
@ -624,7 +628,7 @@ def test_list_channels(server_stub, admin_stub, lightning_client, saved_squeak_h
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
hash=saved_squeak_hash,
hash=bytes.fromhex(saved_squeak_hash),
)
)
assert buy_response.offer.payment_request.startswith("ln")
@ -677,7 +681,8 @@ def test_send_coins(server_stub, admin_stub, lightning_client):
def test_list_peers(server_stub, admin_stub, lightning_client, saved_squeak_hash):
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=saved_squeak_hash)
squeak_server_pb2.GetSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
@ -685,7 +690,7 @@ def test_list_peers(server_stub, admin_stub, lightning_client, saved_squeak_hash
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
hash=saved_squeak_hash,
hash=bytes.fromhex(saved_squeak_hash),
)
)
assert buy_response.offer.payment_request.startswith("ln")
@ -728,7 +733,8 @@ def test_list_peers(server_stub, admin_stub, lightning_client, saved_squeak_hash
def test_open_channel(server_stub, admin_stub, lightning_client, saved_squeak_hash):
# Get the squeak from the server
get_response = server_stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(hash=saved_squeak_hash)
squeak_server_pb2.GetSqueakRequest(
hash=bytes.fromhex(saved_squeak_hash))
)
get_response_squeak = squeak_from_msg(get_response.squeak)
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
@ -736,7 +742,7 @@ def test_open_channel(server_stub, admin_stub, lightning_client, saved_squeak_ha
# Buy the squeak data key
buy_response = server_stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
hash=saved_squeak_hash,
hash=bytes.fromhex(saved_squeak_hash),
)
)
assert buy_response.offer.payment_request.startswith("ln")

View file

@ -18,7 +18,7 @@ from proto import squeak_server_pb2
def build_squeak_msg(squeak):
return squeak_server_pb2.Squeak(
hash=get_hash(squeak),
hash=bytes.fromhex(get_hash(squeak)),
serialized_squeak=squeak.serialize(),
)

View file

@ -35,7 +35,7 @@ message PostSqueakRequest {
message GetSqueakRequest {
/// Hash of the squeak to get.
string hash = 1;
bytes hash = 1;
}
message LookupSqueaksRequest {
@ -49,7 +49,7 @@ message LookupSqueaksRequest {
message GetOfferRequest {
/// Hash of the squeak to buy.
string hash = 1;
bytes hash = 1;
}
message PostSqueakReply {
@ -62,7 +62,7 @@ message GetSqueakReply {
message LookupSqueaksReply {
/// Hash of the squeak to get.
repeated string hashes = 1;
repeated bytes hashes = 1;
/// Hash of the squeak to get.
repeated string allowed_addresses = 2;
@ -75,7 +75,7 @@ message GetOfferReply {
message Squeak {
/// Hash of the squeak.
string hash = 1;
bytes hash = 1;
/// Serialized squeak.
bytes serialized_squeak = 2;

View file

@ -35,9 +35,7 @@ class PeerClient:
)
)
return LookupResponse(
hashes=[
bytes.fromhex(hash)
for hash in lookup_response.hashes],
hashes=lookup_response.hashes,
allowed_addresses=lookup_response.allowed_addresses,
)
@ -54,7 +52,7 @@ class PeerClient:
with self.get_stub() as stub:
get_response = stub.GetSqueak(
squeak_server_pb2.GetSqueakRequest(
hash=squeak_hash.hex(),
hash=squeak_hash,
)
)
get_response_squeak = self._squeak_from_msg(get_response.squeak)
@ -65,7 +63,7 @@ class PeerClient:
with self.get_stub() as stub:
buy_response = stub.GetOffer(
squeak_server_pb2.GetOfferRequest(
hash=squeak_hash.hex(),
hash=squeak_hash,
)
)
offer_msg = buy_response.offer
@ -73,7 +71,7 @@ class PeerClient:
def _build_squeak_msg(self, squeak: CSqueak):
return squeak_server_pb2.Squeak(
hash=get_hash(squeak).hex(),
hash=get_hash(squeak),
serialized_squeak=squeak.serialize(),
)

View file

@ -44,9 +44,7 @@ class SqueakServerHandler(object):
len(allowed_addresses))
)
return squeak_server_pb2.LookupSqueaksReply(
hashes=[
hash.hex()
for hash in hashes],
hashes=hashes,
allowed_addresses=allowed_addresses,
)

View file

@ -31,7 +31,7 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
return squeak_server_pb2.PostSqueakReply()
# Check if squeak hash is correct
if get_hash(squeak).hex() != squeak_hash:
if get_hash(squeak) != squeak_hash:
context.set_code(grpc.StatusCode.INVALID_ARGUMENT)
return squeak_server_pb2.PostSqueakReply()
@ -45,9 +45,7 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
return squeak_server_pb2.PostSqueakReply()
def GetSqueak(self, request: squeak_server_pb2.GetSqueakRequest, context):
# squeak_hash = request.hash
squeak_hash_str = request.hash
squeak_hash = bytes.fromhex(squeak_hash_str)
squeak_hash = request.hash
# TODO: check if hash is valid
squeak = self.handler.handle_get_squeak(squeak_hash)
@ -60,7 +58,7 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
return squeak_server_pb2.GetSqueakReply(
squeak=squeak_server_pb2.Squeak(
hash=get_hash(squeak).hex(),
hash=get_hash(squeak),
serialized_squeak=squeak.serialize(),
)
)
@ -69,8 +67,7 @@ class SqueakServerServicer(squeak_server_pb2_grpc.SqueakServerServicer):
return self.handler.handle_lookup_squeaks(request)
def GetOffer(self, request, context):
squeak_hash_str = request.hash
squeak_hash = bytes.fromhex(squeak_hash_str)
squeak_hash = request.hash
# TODO: check if hash is valid
client_addr = context.peer()
ip_addr = parse_ip_address(client_addr)