You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.0 KiB
38 lines
1.0 KiB
# create a BIP70 payment request signed with a certificate |
|
|
|
import tlslite |
|
import time |
|
import hashlib |
|
|
|
from electrum.transaction import Transaction |
|
from electrum import bitcoin |
|
from electrum import x509 |
|
from electrum import paymentrequest |
|
from electrum import paymentrequest_pb2 as pb2 |
|
|
|
chain_file = 'mychain.pem' |
|
cert_file = 'mycert.pem' |
|
amount = 1000000 |
|
address = "18U5kpCAU4s8weFF8Ps5n8HAfpdUjDVF64" |
|
memo = "blah" |
|
out_file = "payreq" |
|
|
|
|
|
with open(chain_file, 'r') as f: |
|
chain = tlslite.X509CertChain() |
|
chain.parsePemList(f.read()) |
|
|
|
certificates = pb2.X509Certificates() |
|
certificates.certificate.extend(map(lambda x: str(x.bytes), chain.x509List)) |
|
|
|
with open(cert_file, 'r') as f: |
|
rsakey = tlslite.utils.python_rsakey.Python_RSAKey.parsePEM(f.read()) |
|
|
|
script = Transaction.pay_script('address', address).decode('hex') |
|
|
|
pr_string = paymentrequest.make_payment_request(amount, script, memo, rsakey) |
|
|
|
with open(out_file,'wb') as f: |
|
f.write(pr_string) |
|
|
|
print "Payment request was written to file '%s'"%out_file
|
|
|