mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-15 12:50:47 +02:00
Fix squeak page hash (#140)
* Use bytes for all squeak hashes in admin proto * Use string for squeak_hash grpc fields in admin rpc * Fix redirect to squeak page from make squeak * Verfiy block synchronously before returning response in make_squeak
This commit is contained in:
parent
96c72f640e
commit
5ab01107e4
6 changed files with 35 additions and 15 deletions
|
|
@ -60,8 +60,8 @@ export default function MakeSqueakPage() {
|
|||
}
|
||||
|
||||
console.log(response);
|
||||
console.log(response.getHash());
|
||||
goToSqueakPage(response.getHash());
|
||||
console.log(response.getSqueakHash());
|
||||
goToSqueakPage(response.getSqueakHash());
|
||||
});
|
||||
};
|
||||
const getSigningProfiles = () => {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export default function SqueakPage() {
|
|||
|
||||
const getSqueak = (hash) => {
|
||||
var getSqueakDisplayRequest = new GetSqueakDisplayRequest()
|
||||
getSqueakDisplayRequest.setHash(hash);
|
||||
getSqueakDisplayRequest.setSqueakHash(hash);
|
||||
console.log(getSqueakDisplayRequest);
|
||||
|
||||
client.getSqueakDisplay(getSqueakDisplayRequest, {}, (err, response) => {
|
||||
|
|
|
|||
|
|
@ -292,17 +292,17 @@ def run():
|
|||
)
|
||||
)
|
||||
print("Get make squeak response: " + str(make_squeak_response))
|
||||
make_squeak_hash = make_squeak_response.hash
|
||||
assert len(make_squeak_hash) == 32
|
||||
make_squeak_hash = make_squeak_response.squeak_hash
|
||||
assert len(make_squeak_hash) == 32*2
|
||||
|
||||
# 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))
|
||||
)
|
||||
print("Get squeak response: " + str(get_squeak_response))
|
||||
get_squeak_response_squeak = squeak_from_msg(get_squeak_response.squeak)
|
||||
CheckSqueak(get_response_squeak, skipDecryptionCheck=True)
|
||||
assert get_hash(get_squeak_response_squeak) == make_squeak_hash
|
||||
assert get_hash(get_squeak_response_squeak) == bytes.fromhex(make_squeak_hash)
|
||||
print("Squeak from make squeak request: " + str(get_squeak_response_squeak))
|
||||
|
||||
# Close the channel
|
||||
|
|
@ -321,7 +321,7 @@ def run():
|
|||
|
||||
# Get a squeak display item
|
||||
get_squeak_display_response = admin_stub.GetSqueakDisplay(
|
||||
squeak_admin_pb2.GetSqueakDisplayRequest(hash=make_squeak_hash,)
|
||||
squeak_admin_pb2.GetSqueakDisplayRequest(squeak_hash=make_squeak_hash,)
|
||||
)
|
||||
print("Get squeak display response: " + str(get_squeak_display_response))
|
||||
assert (
|
||||
|
|
@ -348,6 +348,18 @@ def run():
|
|||
len(get_followed_squeak_display_response.squeak_display_entries) == 2
|
||||
)
|
||||
|
||||
# Get each individual squeak from the list of followed squeak display items
|
||||
for entry in get_followed_squeak_display_response.squeak_display_entries:
|
||||
get_squeak_display_response = admin_stub.GetSqueakDisplay(
|
||||
squeak_admin_pb2.GetSqueakDisplayRequest(
|
||||
squeak_hash=entry.squeak_hash
|
||||
)
|
||||
)
|
||||
print("Get squeak display entry response: " + str(get_squeak_display_response))
|
||||
assert (
|
||||
get_squeak_display_response.squeak_display_entry.squeak_hash == entry.squeak_hash
|
||||
)
|
||||
|
||||
# Get all signing profiles
|
||||
get_signing_profiles_response = admin_stub.GetSigningProfiles(
|
||||
squeak_admin_pb2.GetSigningProfilesRequest()
|
||||
|
|
|
|||
|
|
@ -159,17 +159,17 @@ message MakeSqueakRequest {
|
|||
string content = 2;
|
||||
|
||||
/// The replyto hash
|
||||
bytes replyto = 3;
|
||||
string replyto = 3;
|
||||
}
|
||||
|
||||
message MakeSqueakReply {
|
||||
/// Hash of the created squeak.
|
||||
bytes hash = 1;
|
||||
string squeak_hash = 1;
|
||||
}
|
||||
|
||||
message GetSqueakDisplayRequest {
|
||||
/// Hash of the squeak.
|
||||
bytes hash = 1;
|
||||
string squeak_hash = 1;
|
||||
}
|
||||
|
||||
message GetSqueakDisplayReply {
|
||||
|
|
|
|||
|
|
@ -86,14 +86,17 @@ class SqueakAdminServerServicer(squeak_admin_pb2_grpc.SqueakAdminServicer):
|
|||
def MakeSqueak(self, request, context):
|
||||
profile_id = request.profile_id
|
||||
content_str = request.content
|
||||
replyto_hash = request.replyto
|
||||
replyto_hash_str = request.replyto
|
||||
replyto_hash = bytes.fromhex(replyto_hash) if replyto_hash_str else None
|
||||
squeak_hash = self.handler.handle_make_squeak(
|
||||
profile_id, content_str, replyto_hash
|
||||
)
|
||||
return squeak_admin_pb2.MakeSqueakReply(hash=squeak_hash,)
|
||||
squeak_hash_str = squeak_hash.hex()
|
||||
return squeak_admin_pb2.MakeSqueakReply(squeak_hash=squeak_hash_str,)
|
||||
|
||||
def GetSqueakDisplay(self, request, context):
|
||||
squeak_hash = request.hash
|
||||
squeak_hash_str = request.squeak_hash
|
||||
squeak_hash = bytes.fromhex(squeak_hash_str)
|
||||
squeak_entry_with_profile = self.handler.handle_get_squeak_display_entry(
|
||||
squeak_hash
|
||||
)
|
||||
|
|
|
|||
|
|
@ -45,6 +45,11 @@ class SqueakNode:
|
|||
self.squeak_block_verifier.add_squeak_to_queue(inserted_squeak_hash)
|
||||
return inserted_squeak_hash
|
||||
|
||||
def save_squeak_and_verify(self, squeak):
|
||||
inserted_squeak_hash = self.postgres_db.insert_squeak(squeak)
|
||||
self.squeak_block_verifier.verify_squeak_block(inserted_squeak_hash)
|
||||
return inserted_squeak_hash
|
||||
|
||||
def get_locked_squeak(self, squeak_hash):
|
||||
squeak_entry = self.postgres_db.get_squeak_entry(squeak_hash)
|
||||
squeak = squeak_entry.squeak
|
||||
|
|
@ -142,7 +147,7 @@ class SqueakNode:
|
|||
squeak_profile = self.postgres_db.get_profile(profile_id)
|
||||
squeak_maker = SqueakMaker(self.lightning_client)
|
||||
squeak = squeak_maker.make_squeak(squeak_profile, content_str, replyto_hash)
|
||||
return self.save_squeak(squeak)
|
||||
return self.save_squeak_and_verify(squeak)
|
||||
|
||||
def get_squeak_entry_with_profile(self, squeak_hash):
|
||||
return self.postgres_db.get_squeak_entry_with_profile(squeak_hash)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue