viz.memo

Module Contents

class Memo

Bases: graphenecommon.memo.Memo

Inheritance diagram of viz.memo.Memo
private-bases

Deals with Memos that are attached to a transfer.

param viz.account.Account from_account

Account that has sent the memo

param viz.account.Account to_account

Account that has received the memo

param viz.viz.Client blockchain_instance

Client instance

A memo is encrypted with a shared secret derived from a private key of the sender and a public key of the receiver. Due to the underlying mathematics, the same shared secret can be derived by the private key of the receiver and the public key of the sender. The encrypted message is perturbed by a nonce that is part of the transmitted message.

from viz.memo import Memo
m = Memo("alice", "bob")
m.unlock_wallet("secret")
enc = (m.encrypt("foobar"))
print(enc)
print(m.decrypt(enc))
>> foobar

To decrypt a memo, simply use

from viz.memo import Memo
m = Memo()
m.blockchain.wallet.unlock("secret")
print(memo.decrypt(op_data["memo"]))

if op_data being the payload of a transfer operation.

define_classes(self)
encrypt(self, message: str)

Encrypt a memo.

This class overriden because upstream assumes memo key is in account[‘options’][‘memo_key’], and bitshares memo format is different. We’re using Golos memo format.

Parameters

message (str) – clear text memo message

Returns

encrypted message

Return type

str

decrypt(self, message: str)

Decrypt a message.

Parameters

message (dict) – encrypted memo message

Returns

decrypted message

Return type

str