Skip to content
Snippets Groups Projects
Commit 9849ea58 authored by Moul's avatar Moul
Browse files

[feat] #314: cert: Implement display option

The generated document is displayed
In case the option is passed, display the table and
the generated document
Use send_doc_confirmation()
parent 5a40e408
No related branches found
No related tags found
No related merge requests found
......@@ -24,19 +24,19 @@ from duniterpy.documents import BlockUID, block_uid, Identity, Certification
from silkaj.auth import auth_method
from silkaj.tools import message_exit, coroutine
from silkaj.tui import convert_time, display_pubkey_and_checksum
from silkaj.network_tools import ClientInstance
from silkaj.blockchain_tools import BlockchainParams, HeadBlock
from silkaj.license import license_approval
from silkaj import wot
from silkaj import wot, tui
from silkaj.constants import SUCCESS_EXIT_STATUS
from silkaj.crypto_tools import is_pubkey_and_check
@click.command("cert", help="Send certification")
@click.argument("uid_pubkey_to_certify")
@click.pass_context
@coroutine
async def send_certification(uid_pubkey_to_certify):
async def send_certification(ctx, uid_pubkey_to_certify):
client = ClientInstance().client
checked_pubkey = is_pubkey_and_check(uid_pubkey_to_certify)
......@@ -69,7 +69,7 @@ async def send_certification(uid_pubkey_to_certify):
# ĞT: 0<–>4.8m - 4.8m + 12.5d
renewable = cert["expiresIn"] - params["sigValidity"] + params["sigReplay"]
if renewable > 0:
renewable_date = convert_time(time() + renewable, "date")
renewable_date = tui.convert_time(time() + renewable, "date")
message_exit("Certification renewable the " + renewable_date)
# Check if the certification is already in the pending certifications
......@@ -84,7 +84,7 @@ async def send_certification(uid_pubkey_to_certify):
# Certification confirmation
await certification_confirmation(
issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify
ctx, issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify
)
identity = Identity(
......@@ -105,6 +105,10 @@ async def send_certification(uid_pubkey_to_certify):
signature="",
)
if ctx.obj["DISPLAY_DOCUMENT"]:
click.echo(certification.signed_raw(), nl=False)
await tui.send_doc_confirmation("certification")
# Sign document
certification.sign([key])
......@@ -120,7 +124,7 @@ async def send_certification(uid_pubkey_to_certify):
async def certification_confirmation(
issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify
ctx, issuer, issuer_pubkey, pubkey_to_certify, idty_to_certify
):
cert = list()
cert.append(["Cert", "Issuer", "–>", "Recipient: Published: #block-hash date"])
......@@ -129,22 +133,21 @@ async def certification_confirmation(
block_uid_idty = block_uid(idty_timestamp)
block = await client(bma.blockchain.block, block_uid_idty.number)
block_uid_date = (
": #" + idty_timestamp[:15] + "" + convert_time(block["time"], "all")
": #" + idty_timestamp[:15] + "" + tui.convert_time(block["time"], "all")
)
cert.append(["ID", issuer["uid"], "–>", idty_to_certify["uid"] + block_uid_date])
cert.append(
[
"Pubkey",
display_pubkey_and_checksum(issuer_pubkey),
tui.display_pubkey_and_checksum(issuer_pubkey),
"–>",
display_pubkey_and_checksum(pubkey_to_certify),
tui.display_pubkey_and_checksum(pubkey_to_certify),
]
)
params = await BlockchainParams().params
cert_begins = convert_time(time(), "date")
cert_ends = convert_time(time() + params["sigValidity"], "date")
cert_begins = tui.convert_time(time(), "date")
cert_ends = tui.convert_time(time() + params["sigValidity"], "date")
cert.append(["Valid", cert_begins, "—>", cert_ends])
click.echo(tabulate(cert, tablefmt="fancy_grid"))
if not click.confirm("Do you confirm sending this certification?"):
await client.close()
sys.exit(SUCCESS_EXIT_STATUS)
if not ctx.obj["DISPLAY_DOCUMENT"]:
await tui.send_doc_confirmation("certification")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment