wip
This commit is contained in:
parent
6ca26f821c
commit
2753b3385f
17
api.py
17
api.py
|
@ -113,16 +113,19 @@ def seller_redeem():
|
|||
(buy,sell) = init_redeem_p2sh(trade.buyContract, trade.sellContract)
|
||||
|
||||
# in case we're still in the time lock on buy side, try to redeem with secret
|
||||
if(buy.redeemtype != ""):
|
||||
if(buy.redeemtype == 'secret'):
|
||||
privkey = get_redeemer_priv_key(buy)
|
||||
buy = get_raw_redeem(buy)
|
||||
r
|
||||
buy = get_raw_redeem(buy,privkey) #puts the raw transaction in the raw_redeem field
|
||||
buy.redeem_tx = send_raw_tx(buy.rawredeem)
|
||||
|
||||
if(sell.redeemtype != ""):
|
||||
if(sell.redeemtype == 'timelock'):
|
||||
privkey = get_redeemer_priv_key(sell)
|
||||
sell = get_raw_redeem(sell)
|
||||
contract = check trade(trade.buyContract, secret, trade.sellContract)
|
||||
setattr(trade.buyContract, 'redeem_tx', txid)
|
||||
sell = get_raw_redeem(sell,privkey)
|
||||
sell.redeem_tx = send_raw_tx(sell.rawredeem)
|
||||
|
||||
trade.buyContract = buy
|
||||
trade.sellContract = sell
|
||||
|
||||
save_seller(trade)
|
||||
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ class Trade(object):
|
|||
class Contract(object):
|
||||
def __init__(self, data):
|
||||
# Keep track of funding and redeem tx?
|
||||
allowed = ('funder', 'redeemer', 'currency', 'p2sh', 'amount', 'fund_tx', 'redeem_tx', 'secret', 'redeemscript', 'redeemblocknum','hash_of_secret','redeemtype')
|
||||
allowed = ('funder', 'redeemer', 'currency', 'p2sh', 'amount', 'fund_tx', 'redeem_tx', 'secret', 'redeemscript', 'redeemblocknum','hash_of_secret','redeemtype', 'rawredeem')
|
||||
for key in data:
|
||||
if key in allowed:
|
||||
setattr(self, key, data[key])
|
||||
|
|
29
xcat.py
29
xcat.py
|
@ -9,6 +9,33 @@ from pprint import pprint
|
|||
from trades import Contract, Trade
|
||||
import userInput
|
||||
|
||||
|
||||
def get_redeemer_priv_key(contract):
|
||||
if contract.currency == 'bitcoin':
|
||||
return bXcat.get_redeemer_priv_key(contract)
|
||||
elif contract.currency = 'zcash':
|
||||
return zXcat.get_redeemer_priv_key(contract)
|
||||
else:
|
||||
raise ValueError("invalid currency value:", contract.currency)
|
||||
|
||||
|
||||
def get_raw_redeem(contract, privkey)
|
||||
if contract.currency == 'bitcoin':
|
||||
return bXcat.get_raw_redeem(contract, privkey)
|
||||
elif contract.currency = 'zcash':
|
||||
return zXcat.get_raw_redeem(contract, privkey)
|
||||
else:
|
||||
raise ValueError("invalid currency value:", contract.currency)
|
||||
|
||||
def send_raw_tx(rawtx)
|
||||
if contract.currency == 'bitcoin':
|
||||
return bXcat.send_raw_tx(rawtx)
|
||||
elif contract.currency = 'zcash':
|
||||
return zXcat.send_raw_tx(rawtx)
|
||||
else:
|
||||
raise ValueError("invalid currency value:", contract.currency)
|
||||
|
||||
|
||||
#compute redeemblocknum according to current block
|
||||
def compute_redeemblocknum(currency, increment):
|
||||
if currency == 'bitcoin':
|
||||
|
@ -105,7 +132,7 @@ def init_redeem_p2sh(contract, revertcontract):
|
|||
|
||||
if (currency == 'bitcoin'):
|
||||
contract = bXcat.check_and_return_fundtx(contract)
|
||||
contract.redeemtype = "secret"
|
||||
contract.redeemtype = 'secret'
|
||||
|
||||
if (currency == 'zcash'):
|
||||
contract = zXcat.check_and_return_fundtx(contract)
|
||||
|
|
4
zXcat.py
4
zXcat.py
|
@ -370,7 +370,7 @@ def redeem_after_timelock(contract):
|
|||
def get_redeemer_priv_key(contract):
|
||||
if (contract.redeemtype == 'secret'):
|
||||
redeemPubKey = find_redeemAddr(contract)
|
||||
elif (contract.redeemtype = 'timelock'):
|
||||
elif (contract.redeemtype == 'timelock'):
|
||||
redeemPubKey = find_refundAddr(contract)
|
||||
else:
|
||||
raise ValueError("Invalid redeemtype:", contract.redeemtype)
|
||||
|
@ -392,7 +392,7 @@ def check_and_return_fundtx(contract):
|
|||
|
||||
amount = fundtx['amount'] / COIN
|
||||
if(amount < minamount):
|
||||
raise ValueError("Insufficient funds in fund transaction")
|
||||
raise ValueError("Insufficient funds in fund transaction.")
|
||||
|
||||
|
||||
contract.fund_tx = fund_tx
|
||||
|
|
Loading…
Reference in New Issue