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
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