import nfc, nfc.snep
import threading
import argparse
def send_uri(llc, uri):
snep = nfc.snep.SnepClient(llc)
snep.put(nfc.ndef.Message(nfc.ndef.UriRecord(uri)))
class Main(object):
def __init__(self):
parser = argparse.ArgumentParser()
parser.add_argument("address", help="bitcoin receiver address")
parser.add_argument("amount", type=float, help="amount to send")
args = parser.parse_args()
self.uri = "bitcoin:{address}?amount={amount}".format(
address=args.address, amount=args.amount)
def on_connect(self, llc):
threading.Thread(target=send_uri, args=(llc, self.uri)).start()
return llc
def run(self):
clf = nfc.ContactlessFrontend('usb')
clf.connect(llcp={'on-connect': self.on_connect})
if __name__ == '__main__':
Main().run()