|
|
|
@ -44,6 +44,7 @@ class ProofsTest():
|
|
|
|
|
txid, tx_key, amount = self.transfer()
|
|
|
|
|
self.check_tx_key(txid, tx_key, amount)
|
|
|
|
|
self.check_tx_proof(txid, amount)
|
|
|
|
|
self.check_spend_proof(txid)
|
|
|
|
|
self.check_reserve_proof()
|
|
|
|
|
|
|
|
|
|
def reset(self):
|
|
|
|
@ -217,6 +218,40 @@ class ProofsTest():
|
|
|
|
|
except: ok = True
|
|
|
|
|
assert ok or not res.good
|
|
|
|
|
|
|
|
|
|
def check_spend_proof(self, txid):
|
|
|
|
|
daemon = Daemon()
|
|
|
|
|
|
|
|
|
|
print('Checking spend proof')
|
|
|
|
|
|
|
|
|
|
self.wallet[0].refresh()
|
|
|
|
|
self.wallet[1].refresh()
|
|
|
|
|
|
|
|
|
|
res = self.wallet[0].get_spend_proof(txid, message = 'foo')
|
|
|
|
|
assert len(res.signature) > 0
|
|
|
|
|
signature = res.signature
|
|
|
|
|
res = self.wallet[1].check_spend_proof(txid, message = 'foo', signature = signature)
|
|
|
|
|
assert res.good
|
|
|
|
|
|
|
|
|
|
res = self.wallet[0].get_spend_proof(txid, message = 'foobar')
|
|
|
|
|
assert len(res.signature) > 0
|
|
|
|
|
signature2 = res.signature
|
|
|
|
|
res = self.wallet[1].check_spend_proof(txid, message = 'foobar', signature = signature2)
|
|
|
|
|
assert res.good
|
|
|
|
|
|
|
|
|
|
ok = False
|
|
|
|
|
try: res = self.wallet[1].check_spend_proof('0' * 64, message = 'foo', signature = signature)
|
|
|
|
|
except: ok = True
|
|
|
|
|
assert ok or not res.good
|
|
|
|
|
|
|
|
|
|
ok = False
|
|
|
|
|
try: res = self.wallet[1].check_spend_proof(txid, message = 'bar', signature = signature)
|
|
|
|
|
except: ok = True
|
|
|
|
|
assert ok or not res.good
|
|
|
|
|
|
|
|
|
|
ok = False
|
|
|
|
|
try: res = self.wallet[1].check_spend_proof(txid, message = 'foo', signature = signature2)
|
|
|
|
|
except: ok = True
|
|
|
|
|
assert ok or not res.good
|
|
|
|
|
|
|
|
|
|
def check_reserve_proof(self):
|
|
|
|
|
daemon = Daemon()
|
|
|
|
|