This commit is contained in:
Ariel Gabizon 2017-07-14 11:56:06 -04:00
parent 0db4fec559
commit a6f89fe424
4 changed files with 15 additions and 41 deletions

50
eth.py
View File

@ -8,12 +8,20 @@ def Zcash_getaddr():
return zXcat.zcashd.getnewaddress()
def Zcash_fund(p2sh,amount):
def Zcash_fund(contract,amount):
p2sh = contract['p2sh']
fund_txid = zXcat.zcashd.sendtoaddress(p2sh,amount)
return fund_txid
contract['fund_tx'] = fund_txid
return contract
def Zcash_make_contract(funder, redeemer, hash_of_secret, lock_increment):
return zXcat.make_hashtimelockcontract(funder, redeemer, hash_of_secret, lock_increment)
contract = zXcat.make_hashtimelockcontract(funder, redeemer, hash_of_secret, lock_increment)
return contract
'''def Zcash_make_contract_random(funder, redeemer, hash_of_secret, lock_increment):
contract = zXcat.make_hashtimelockcontract(funder, redeemer, hash_of_secret, lock_increment)
return contract
'''
# finds seller's redeem tx and gets secret from it
def Zcash_get_secret(p2sh,fund_txid):
@ -26,39 +34,3 @@ def Zcash_refund(contract):
def Zcash_redeem(contract,secret):
txid = zXcat.redeem_with_secret(contract,secret)
return txid
def redeem_buyer():
print("BUYER REDEEMING SELL CONTRACT")
print("=============================")
trade = get_trade()
buyContract = trade.buyContract
sellContract = trade.sellContract
secret = ""
# if sellContract.get_status() == 'redeemed':
# raise RuntimeError("Sell contract was redeemed before buyer could retrieve funds")
# elif buyContract.get_status() == 'refunded':
# print("buyContract was refunded to buyer")
# else:
# Buy contract is where seller disclosed secret in redeeming
if buyContract.currency == 'bitcoin':
if (bXcat.still_locked(buyContract)):
if(not hasattr(buyContract,'fund_tx')):
print("Seems address has not been funded yet. Aborting.")
quit()
secret = bXcat.find_secret(buyContract.p2sh,buyContract.fund_tx)
if(secret != ""):
print("Found secret in seller's redeem tx on bitcoin chain:", secret)
else:
if zXcat.still_locked(buyContract):
secret = zXcat.find_secret(buyContract.p2sh,buyContract.fund_tx)
if(secret != ""):
print("Found secret in seller's redeem tx on zcash chain:", secret)
redeem_tx = redeem_p2sh(sellContract, secret, buyContract)
setattr(trade.sellContract, 'redeem_tx', redeem_tx)
save(trade)
def generate_blocks(num):
bXcat.generate(num)
zXcat.generate(num)

View File

@ -1 +1 @@
4tqcS72n
5Afk90Vi

View File

@ -1 +1 @@
{"sell": {"fulfiller": "tmP3jJoyhBzAxeqpTYW9HrAt1XvJFg9gttc", "amount": "0.01", "redeemScript": "63a82044ddae444a583f19d0ebdd539cc7abb7e1aa4e54fac042486a5c1b935c4a0bf88876a9149243e230812261371e6743055ee8c6ea4181f80567024608b17576a9148e4144cee39078239a6dcd026ac65043a76254486888ac", "initiator": "tmNgXUNBTfH9TD4TwgEKK8K6Aytjph3QGtZ", "fund_tx": "9bb403ad881781818ea193f2c23eeafd02190b9aac8944b22650ffc6faff2736", "redeemblocknum": 2118, "currency": "zcash", "p2sh": "t2NPhNuYvwXVpiFA3QiZjgaeSDZwQVVKmUT"}, "buy": {"fulfiller": "mj12n62KmrWLCsjrpG1PN8iQnLy4J518s7", "amount": "1.12", "redeemScript": "63a82044ddae444a583f19d0ebdd539cc7abb7e1aa4e54fac042486a5c1b935c4a0bf88876a9141991d55a642946f5a8def2d69116619f659b89626702151fb17576a9142637c44bba94afbe236eb7587cc67e0682cd3d186888ac", "initiator": "mhr9tXrXmCXipK1ogWkhbESAmaYN1DfCQG", "fund_tx": "9c3bc5dc1aca5e722aa43f632fd7b130d9c5f972cad0f75236a210e80b1a466f", "redeemblocknum": 7957, "redeem_tx": "18ae4ff1a30111154ea40f265a47e5f18fc8b2cb785c9de80f71ad4b577d2f46", "currency": "bitcoin", "p2sh": "2N8Ru77EQ1qZtzBieZ17Q8wdEZA9SjiTJmj"}}
{"buy": {"redeemScript": "63a8202be8f9ff8ba049cbf3ef98d4e1f61b975cda1f33bd2050cd6b382ce3e91bd01d8876a914cf37e9d86857e5dfe09dfba3ddefcbeb0e4ca6776702141fb17576a9140ee96e91d594cec695e9c792150eab63015e30816888ac", "redeemblocknum": 7956, "fulfiller": "mgsoPsbzAY3LCgNweUFoLMGKxi5EFCagBM", "initiator": "mzQd9hShqi2s7QgGsduwePN5FDU3Yj8yup", "currency": "bitcoin", "amount": "1.12", "p2sh": "2N1U3R7joYwmdYSSK19D2LHNEcKemvw3w4n"}, "sell": {"redeemScript": "63a8202be8f9ff8ba049cbf3ef98d4e1f61b975cda1f33bd2050cd6b382ce3e91bd01d8876a9145e11f686898f4e9b77c4669a5b02678daf65f7f667024608b17576a91407c64692f3e8de565e5e991f4575b5b494a605306888ac", "redeemblocknum": 2118, "fulfiller": "tmJHkNJ1fnyPsyhCR1EgwfwU2Eikzg9Cgda", "initiator": "tmARTax4dZ9A6QjF2AC5RmGhRXotf5zgfyM", "currency": "zcash", "amount": "0.01", "fund_tx": "9afb0f4d1de568b928c9d51eddba65f284bc6cea566b54192298193ad7649027", "p2sh": "t26vHfsTqZbjk5Jko8qHsrA2EJHhQns9SRo"}}

View File

@ -60,6 +60,8 @@ def make_hashtimelockcontract(funder, redeemer, hash_of_secret, lock_increment):
blocknum = zcashd.getblockcount()
print("Current blocknum", blocknum)
redeemblocknum = blocknum + lock_increment
hash_of_secret = sha256("bla")
print(type(hash_of_secret))
print("REDEEMBLOCKNUM ZCASH", redeemblocknum)
zec_redeemScript = CScript([OP_IF, OP_SHA256, hash_of_secret, OP_EQUALVERIFY,OP_DUP, OP_HASH160,
redeemerAddr, OP_ELSE, redeemblocknum, OP_CHECKLOCKTIMEVERIFY, OP_DROP, OP_DUP, OP_HASH160,