tweaks
This commit is contained in:
parent
a6f89fe424
commit
3dcd20c767
16
eth.py
16
eth.py
|
@ -1,12 +1,14 @@
|
||||||
import zXcat
|
import zXcat
|
||||||
import bXcat
|
import bXcat
|
||||||
from xcat import *
|
from xcat import *
|
||||||
|
from zXcat import b2x,lx
|
||||||
print("Starting test of xcat...")
|
print("Starting test of xcat...")
|
||||||
|
|
||||||
def Zcash_getaddr():
|
def Zcash_getaddr():
|
||||||
return zXcat.zcashd.getnewaddress()
|
return zXcat.zcashd.getnewaddress()
|
||||||
|
|
||||||
|
def Zcash_generate(i):
|
||||||
|
zXcat.zcashd.generate(i)
|
||||||
|
|
||||||
def Zcash_fund(contract,amount):
|
def Zcash_fund(contract,amount):
|
||||||
p2sh = contract['p2sh']
|
p2sh = contract['p2sh']
|
||||||
|
@ -24,13 +26,17 @@ def Zcash_make_contract(funder, redeemer, hash_of_secret, lock_increment):
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# finds seller's redeem tx and gets secret from it
|
# finds seller's redeem tx and gets secret from it
|
||||||
def Zcash_get_secret(p2sh,fund_txid):
|
def Zcash_get_secret(contract):
|
||||||
return zXcat.find_secret(p2sh,fund_tx)
|
print("HERE", b2x(lx(b2x(contract['fund_tx']))))
|
||||||
|
return zXcat.find_secret(contract['p2sh'], b2x(lx(b2x(contract['fund_tx']))))
|
||||||
|
|
||||||
def Zcash_refund(contract):
|
def Zcash_refund(contract):
|
||||||
|
contractobj = Contract(contract)
|
||||||
return zXcat.redeem_after_timelock(contract)
|
return zXcat.redeem_after_timelock(contract)
|
||||||
|
|
||||||
# returns txid of redeem transaction with secret
|
# returns txid of redeem transaction with secret
|
||||||
def Zcash_redeem(contract,secret):
|
def Zcash_redeem(contract, secret):
|
||||||
txid = zXcat.redeem_with_secret(contract,secret)
|
contractobj = Contract(contract)
|
||||||
|
txid = zXcat.redeem_with_secret(contractobj, secret)
|
||||||
return txid
|
return txid
|
||||||
|
|
||||||
|
|
29
zXcat.py
29
zXcat.py
|
@ -7,7 +7,7 @@ import sys
|
||||||
if sys.version_info.major < 3:
|
if sys.version_info.major < 3:
|
||||||
sys.stderr.write('Sorry, Python 3.x required by this example.\n')
|
sys.stderr.write('Sorry, Python 3.x required by this example.\n')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
import trades
|
||||||
import zcash
|
import zcash
|
||||||
import zcash.rpc
|
import zcash.rpc
|
||||||
from zcash import SelectParams
|
from zcash import SelectParams
|
||||||
|
@ -60,7 +60,7 @@ def make_hashtimelockcontract(funder, redeemer, hash_of_secret, lock_increment):
|
||||||
blocknum = zcashd.getblockcount()
|
blocknum = zcashd.getblockcount()
|
||||||
print("Current blocknum", blocknum)
|
print("Current blocknum", blocknum)
|
||||||
redeemblocknum = blocknum + lock_increment
|
redeemblocknum = blocknum + lock_increment
|
||||||
hash_of_secret = sha256("bla")
|
# hash_of_secret = sha256("blaa")
|
||||||
print(type(hash_of_secret))
|
print(type(hash_of_secret))
|
||||||
print("REDEEMBLOCKNUM ZCASH", redeemblocknum)
|
print("REDEEMBLOCKNUM ZCASH", redeemblocknum)
|
||||||
zec_redeemScript = CScript([OP_IF, OP_SHA256, hash_of_secret, OP_EQUALVERIFY,OP_DUP, OP_HASH160,
|
zec_redeemScript = CScript([OP_IF, OP_SHA256, hash_of_secret, OP_EQUALVERIFY,OP_DUP, OP_HASH160,
|
||||||
|
@ -113,30 +113,36 @@ def find_transaction_to_address(p2sh):
|
||||||
def find_secret(p2sh,vinid):
|
def find_secret(p2sh,vinid):
|
||||||
zcashd.importaddress(p2sh, "", True)
|
zcashd.importaddress(p2sh, "", True)
|
||||||
# is this working?
|
# is this working?
|
||||||
|
zcashd.listtransactions()
|
||||||
txs = zcashd.listtransactions()
|
txs = zcashd.listtransactions()
|
||||||
# print("==========================================LISTTT============", txs)
|
print("==========================================LISTTT============", len(txs))
|
||||||
# print()
|
# print()
|
||||||
# print('LENNNNNNN:', len(txs))
|
# print('LENNNNNNN:', len(txs))
|
||||||
# print('LENNNNNNN2:', len(txs))
|
# print('LENNNNNNN2:', len(txs))
|
||||||
for tx in txs:
|
for i in range(0,len(txs)):
|
||||||
|
print("blabla", len(txs))
|
||||||
|
tx = txs[i]
|
||||||
|
|
||||||
|
# print(tx)
|
||||||
# print("tx addr:", tx['address'], "tx id:", tx['txid'])
|
# print("tx addr:", tx['address'], "tx id:", tx['txid'])
|
||||||
# print(type(tx['address']))
|
# print(type(tx['address']))
|
||||||
# print(type(p2sh))
|
# print(type(p2sh))
|
||||||
# print('type::',type(tx['txid']))
|
# print('type::',type(tx['txid']))
|
||||||
raw = zcashd.gettransaction(lx(tx['txid']))['hex']
|
raw = zcashd.gettransaction(lx(tx['txid']))['hex']
|
||||||
decoded = zcashd.decoderawtransaction(raw)
|
decoded = zcashd.decoderawtransaction(raw)
|
||||||
|
print(decoded)
|
||||||
# print("fdsfdfds", decoded['vin'][0])
|
# print("fdsfdfds", decoded['vin'][0])
|
||||||
if('txid' in decoded['vin'][0]):
|
if('txid' in decoded['vin'][0]):
|
||||||
sendid = decoded['vin'][0]['txid']
|
sendid = decoded['vin'][0]['txid']
|
||||||
# print("sendid:", sendid)
|
print("sendid:", sendid)
|
||||||
|
|
||||||
if (sendid == vinid ):
|
if (sendid == vinid ):
|
||||||
# print(type(tx['txid']))
|
# print(type(tx['txid']))
|
||||||
# print(str.encode(tx['txid']))
|
# print(str.encode(tx['txid']))
|
||||||
|
print("Here")
|
||||||
return parse_secret(lx(tx['txid']))
|
return parse_secret(lx(tx['txid']))
|
||||||
print("Redeem transaction with secret not found")
|
print("Redeem transaction with secret not found")
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
def parse_secret(txid):
|
def parse_secret(txid):
|
||||||
|
@ -147,7 +153,10 @@ def parse_secret(txid):
|
||||||
print("Decoded", scriptSig)
|
print("Decoded", scriptSig)
|
||||||
asm = scriptSig['asm'].split(" ")
|
asm = scriptSig['asm'].split(" ")
|
||||||
pubkey = asm[1]
|
pubkey = asm[1]
|
||||||
secret = hex2str(asm[2])
|
print("asm2", asm[2])
|
||||||
|
secret = hex2str(asm[2])
|
||||||
|
# secret = asm[2] # .strip().decode('hex')
|
||||||
|
|
||||||
redeemPubkey = P2PKHBitcoinAddress.from_pubkey(x(pubkey))
|
redeemPubkey = P2PKHBitcoinAddress.from_pubkey(x(pubkey))
|
||||||
print('redeemPubkey', redeemPubkey)
|
print('redeemPubkey', redeemPubkey)
|
||||||
print(secret)
|
print(secret)
|
||||||
|
@ -286,7 +295,7 @@ def redeem_with_secret(contract, secret):
|
||||||
amount = check_funds(p2sh)
|
amount = check_funds(p2sh)
|
||||||
if(amount < minamount):
|
if(amount < minamount):
|
||||||
print("address ", p2sh, " not sufficiently funded")
|
print("address ", p2sh, " not sufficiently funded")
|
||||||
return false
|
return False
|
||||||
fundtx = find_transaction_to_address(p2sh)
|
fundtx = find_transaction_to_address(p2sh)
|
||||||
amount = fundtx['amount'] / COIN
|
amount = fundtx['amount'] / COIN
|
||||||
p2sh = P2SHBitcoinAddress(p2sh)
|
p2sh = P2SHBitcoinAddress(p2sh)
|
||||||
|
|
Loading…
Reference in New Issue