Wallet Source Codedef privateKeyToWif(key_hex):
return utils.base58CheckEncode(0x80, key_hex.decode('hex1))
def privateKeyToPublicKey(s):
sk = ecdsa.SigningKey.from_string(s.decode('hex' ), curve=ecdsa.SECP256kl)
vk = sk.verifying_key
return ('\04' + sk.verifying_key.to_string()).encode('hex' )
def pubKeyToAddr(s):
ripemdl60 = hashlib.new(1ripemdl60')
ripemdl60.update(hashlib.sha256(s.decode(■hex')).digest())
return utils.base58CheckEncode(0, ripemdl60.digest())
def keyToAddr(s):
return pubKeyToAddr(privateKeyToPublicKey(s))
private_key = ''.jotn(['%x' % random.randrange(16) for x in range(0, 64)])
print keylltils.privateKeyToWif(private_key)
print keylltils. keyToAddr( private_key)
def makeRawTransaction(outputTransactionHash, sourceindex, scriptSig, outputs):
def makeOutput(data):
redemptionSatoshis, outputScri.pt = data
return (struct.pack("<Q", redemptionSatoshis).encode('hex' ) + '%02x' % len(outputscript.decode('hex')) + outputscript)
formattedOutputs = ' 1. joi.n(map(makeOutput, outputs))
return (
"① 1000GMD0" +
"01" +
outputT ransactionHash.decode('hex' ) [::-l].encode(■hex1 ) +
struct.pack('<L', sourceindex).encode('hex' ) +
'%02x' % len(scriptSig.decode('hex')) + scriptSig +
"ffffffff" +
"%02x" % len(outputs) +
"00000000"
)
def makesignedTransaction(privateKey, outputTransactionHash, sourceindex, scriptPubKey, outputs):
myTxn_forSig = (makeRawTransaction(outputTransactionHash, sourceindex, scriptPubKey, outputs)
+ "01000000")
s256 = hashlib.sha256(hashlib.sha256(myTxn_forSig.decode(■hex')).digest()).digest()
sk = ecdsa.SigningKey.from_string(privateKey.decode('hex'), curve=ecdsa.SECP256kl)
sig = sk.sign_digest(s256, sigencode=ecdsa.util.sigencode_der) + 1\011
pubKey = keylltils. privateKeyToPubHcKey( privateKey)
scriptSig = utils.varstr(sig).encode('hex') + utils.varstr(pubKey.decode('hex')).encode('hex')
stgned_txn = makeRawTransaction(outputTransactionHash, sourceindex, scriptSig, outputs)
verifyTxnSIgnature(signed_txn)
return signed_txn
privateKey = keyUtfls.wi.fToPrivateKey("5HusYj2b2x4nroApgfvaSfKYZhRbKFH41bVyPooymbC6KfgSXdD")
signed_txn = txnlltils.makeSignedTransaction(privateKey,
"81b4c832d70cb56ff957589752eb4125a4cab78a25a8fc52d6a09e5bd4404d48",
0,
keyUtils.addrHashToScriptPubKey("lMMMMSUblpiy2ufrSguNUdFmAcvqrQF8M5"),
[[91234,
keyUtils.addrHashToScriptPubKey( ,,lKKKK6N21XKo48zWKuQKXdvSsCf95ibHFa")]]
)
txnUtils.verifyTxnSignature(signed_txn)
print 'SIGNED TXN', signed_txn
magic = 0xd9b4bef9
def makeMessage(magic, command, payload):
checksum = hashlib.sha256(hashlib.sha256(payload) .digest( )).digest( ) [0:4]
return struct.pack('L12sL4s', magic, command, len(payload), checksum) + payload
def getVersionMsg():
version = 60002
services = 1
timestamp = int( time. ti.me( ))
addr_me = utils.netaddr(socket.inet_aton("127.0.0.1"), 8333)
addr_you = utils.netaddr(socket.inet_aton("127.0.0.1"), 8333)
nonce = random.get randbits(64)
sub_version_num = utils.varstr(1' )
start_height = 0
def getTxMsg(payload):
return makeMessage(magic, 'tx', payload)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("97.88.151.164", 8333))
sock.send(msgUtits.getVersionMsg( ))
sock.recv(1000)
sock.recv(1000)
sock.send(msgUtils.getTxMsg("010QQ00Q01484d40d45b9ea0d652fca8258ab7caa42541eb52975857f96fb50cd732c8b48100000QQ08a47304402202cb265bfl0707bf49346c3515dd3dl6fc454618c58ec0a0ff448a676c54ff71302206c6624d762alfce f4618284ead8fO8678ac05bl3c84235fl654e6adl68233e8201410414e301b2328fl7442c0b8310d787bf3d8a404cfbd0704fl3 5b6ad4b2d3ee751310f981926e53a6e8c39bd7d3fefd576c543cce493cbac06388f2651dlaacbfcdffffffff016264010000000 0001976a914c8e90996c7c6080ee06284600c684ed904dl4c5c88ac00000000".decode('hex')))
from bitcoiniib.wallets import Wallet
w = Wallet.create('Walletl')
print(w.get_key().address)
t = w.send_to(*lPWXhWvUH3bcDWn6Fdq3xhMRPfxRXTjAil,, '0.001 BTC*, offline=False)
print(t.info)