Exemplo n.º 1
0
private_key = keypair.get_privkey()
public_key = keypair.get_pubkey()

# Generate key addr
key_addr = str(P2PKHBitcoinAddress.from_pubkey(public_key))

# Construct Payload
header = Header(name="Something wicked", value="this way comes")
entry = Entry(headers=[header], entry_data=b'This gonna be so f*****g fast')
timestamp = int(time())
metadata = AddressMetadata(timestamp=timestamp, ttl=3000, entries=[entry])

# Sign
raw_metadata = metadata.SerializeToString()
digest = sha256(raw_metadata).digest()
signature, _ = keypair.sign_compact(digest)

# Address metadata
auth_wrapper = AuthWrapper(pub_key=public_key,
                           serialized_payload=raw_metadata,
                           scheme=1,
                           signature=signature)
raw_addr_meta = auth_wrapper.SerializeToString()

# Commit
print("Getting PaymentRequest...")
metadata_digest = sha256(raw_addr_meta).digest().hex()
response = requests.post(url=BASE_URL_A + "/commit",
                         params={
                             'address': key_addr,
                             'metadata_digest': metadata_digest
Exemplo n.º 2
0
def sign_metadata(raw_metadata: bytes, keypair: CECKey):
    """Return the AddressMetadata digest and a signature over it"""
    digest = sha256(raw_metadata).digest()
    signature, _ = keypair.sign_compact(digest)
    return signature, digest