Add an RPC to get currently logged in fingerprint (#9436)

* Added /get_fingerprint to wallet RPC

* Added to client too

* return only the fingerprint

* Change RPC name

* Added test
This commit is contained in:
Matt Hauff 2021-12-07 08:45:32 -07:00 committed by GitHub
parent 84c48469ed
commit 6a1f79f325
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 0 deletions

View File

@ -52,6 +52,7 @@ class WalletRpcApi:
return {
# Key management
"/log_in": self.log_in,
"/get_logged_in_fingerprint": self.get_logged_in_fingerprint,
"/get_public_keys": self.get_public_keys,
"/get_private_key": self.get_private_key,
"/generate_mnemonic": self.generate_mnemonic,
@ -195,6 +196,9 @@ class WalletRpcApi:
return {"success": False, "error": "Unknown Error"}
async def get_logged_in_fingerprint(self, request: Dict):
return {"fingerprint": self.service.logged_in_fingerprint}
async def get_public_keys(self, request: Dict):
try:
assert self.service.keychain_proxy is not None # An offering to the mypy gods

View File

@ -53,6 +53,9 @@ class WalletRpcClient(RpcClient):
except ValueError as e:
return e.args[0]
async def get_logged_in_fingerprint(self) -> int:
return (await self.fetch("get_logged_in_fingerprint", {}))["fingerprint"]
async def get_public_keys(self) -> List[int]:
return (await self.fetch("get_public_keys", {}))["public_key_fingerprints"]

View File

@ -246,6 +246,8 @@ class TestWalletRpc:
await client.log_in_and_skip(pks[1])
sk_dict = await client.get_private_key(pks[1])
assert sk_dict["fingerprint"] == pks[1]
fingerprint = await client.get_logged_in_fingerprint()
assert fingerprint == pks[1]
# Add in reward addresses into farmer and pool for testing delete key checks
# set farmer to first private key