4th Street Bar Hive-Bar

Hive-Bar Powered by Hive beta-fdb5b5b

Community post

decrypt memos from an account and store them in a csv file

#!/usr/bin/python
from beem import Steem
from beem.memo import Memo
from beem.account import Account
from beem.amount import Amount
import getpass
import six
import csv


if __name__ == "__main__":
    if six.PY3:
        account = input("Enter account name: ")
    else:
        account = raw_input("Enter account name: ")    
    memo_wif = getpass.getpass(prompt='Enter the memo key of %s:' % account)
    stm = Steem(keys=[memo_wif])
    acc = Account(account, steem_instance=stm)
    with open('encrypted_memos.csv', mode='w') as csv_file:
        fieldnames = ['timestamp', 'from', 'to', 'amount', 'decrypted_memo']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        writer.writeheader()
        for h in acc.history_reverse(only_ops=["transfer"]):
            if len(h["memo"]) < 2:
                continue
            if h["memo"][0] != '#':
                continue
            memo = Memo(from_account=h["from"], to_account=h["to"], steem_instance=stm)
            try:
                decrypted_memo = memo.decrypt(h["memo"])
            except:
                decrypted_memo = "decryption failed."
            amount = Amount(h["amount"], steem_instance=stm)
            print("%s - from: %s, to: %s, amount: %s, decr. text: %s" % (h["timestamp"], h["from"], h["to"], str(amount), decrypted_memo))
            writer.writerow({"timestamp": h["timestamp"], "from": h["from"], "to": h["to"], "amount": str(amount), "decrypted_memo": decrypted_memo})
1 upvotes $0.06

Replies (2)

Review before signing

Posting as . Signing with . Keychain permission: Posting. Hive Keychain will ask you to approve this action next.


  
Technical details

Operation fingerprint: