functional_tests: add describe_transfer tests

This commit is contained in:
moneromooo-monero 2019-03-24 08:58:27 +00:00
parent 108f4375b8
commit b3a32d5505
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
3 changed files with 35 additions and 1 deletions

View file

@ -104,6 +104,22 @@ class ColdSigningTest():
unsigned_txset = res.unsigned_txset unsigned_txset = res.unsigned_txset
print 'Signing transaction with cold wallet' print 'Signing transaction with cold wallet'
res = self.cold_wallet.describe_transfer(unsigned_txset = unsigned_txset)
assert len(res.desc) == 1
desc = res.desc[0]
assert desc.amount_in >= amount + fee
assert desc.amount_out == desc.amount_in - fee
assert desc.ring_size == 11
assert desc.unlock_time == 0
assert desc.payment_id == payment_id
assert desc.change_amount == desc.amount_in - 1000000000000 - fee
assert desc.change_address == '42ey1afDFnn4886T7196doS9GPMzexD9gXpsZJDwVjeRVdFCSoHnv7KPbBeGpzJBzHRCAs9UxqeoyFQMYbqSWYTfJJQAWDm'
assert desc.fee == fee
assert len(desc.recipients) == 1
rec = desc.recipients[0]
assert rec.address == '42ey1afDFnn4886T7196doS9GPMzexD9gXpsZJDwVjeRVdFCSoHnv7KPbBeGpzJBzHRCAs9UxqeoyFQMYbqSWYTfJJQAWDm'
assert rec.amount == 1000000000000
res = self.cold_wallet.sign_transfer(unsigned_txset) res = self.cold_wallet.sign_transfer(unsigned_txset)
assert len(res.signed_txset) > 0 assert len(res.signed_txset) > 0
signed_txset = res.signed_txset signed_txset = res.signed_txset

View file

@ -129,6 +129,7 @@ class MultisigTest():
addresses.append(res.address) addresses.append(res.address)
for i in range(N_total): for i in range(N_total):
assert addresses[i] == expected_address assert addresses[i] == expected_address
self.wallet_address = expected_address
for i in range(N_total): for i in range(N_total):
res = self.wallet[i].is_multisig() res = self.wallet[i].is_multisig()
@ -181,6 +182,22 @@ class MultisigTest():
for i in range(len(signers[1:])): for i in range(len(signers[1:])):
print('Signing multisig transaction with wallet ' + str(signers[i+1])) print('Signing multisig transaction with wallet ' + str(signers[i+1]))
res = self.wallet[signers[i+1]].describe_transfer(multisig_txset = multisig_txset)
assert len(res.desc) == 1
desc = res.desc[0]
assert desc.amount_in >= amount + fee
assert desc.amount_out == desc.amount_in - fee
assert desc.ring_size == 11
assert desc.unlock_time == 0
assert desc.payment_id == '0000000000000000'
assert desc.change_amount == desc.amount_in - 1000000000000 - fee
assert desc.change_address == self.wallet_address
assert desc.fee == fee
assert len(desc.recipients) == 1
rec = desc.recipients[0]
assert rec.address == '42ey1afDFnn4886T7196doS9GPMzexD9gXpsZJDwVjeRVdFCSoHnv7KPbBeGpzJBzHRCAs9UxqeoyFQMYbqSWYTfJJQAWDm'
assert rec.amount == 1000000000000
res = self.wallet[signers[i+1]].sign_multisig(multisig_txset) res = self.wallet[signers[i+1]].sign_multisig(multisig_txset)
multisig_txset = res.tx_data_hex multisig_txset = res.tx_data_hex
assert len(res.tx_hash_list if 'tx_hash_list' in res else []) == (i == len(signers[1:]) - 1) assert len(res.tx_hash_list if 'tx_hash_list' in res else []) == (i == len(signers[1:]) - 1)

View file

@ -101,11 +101,12 @@ class Wallet(object):
} }
return self.rpc.send_json_rpc_request(get_bulk_payments) return self.rpc.send_json_rpc_request(get_bulk_payments)
def describe_transfer(self, unsigned_txset): def describe_transfer(self, unsigned_txset = '', multisig_txset = ''):
describe_transfer = { describe_transfer = {
'method': 'describe_transfer', 'method': 'describe_transfer',
'params': { 'params': {
'unsigned_txset': unsigned_txset, 'unsigned_txset': unsigned_txset,
'multisig_txset': multisig_txset,
}, },
'jsonrpc': '2.0', 'jsonrpc': '2.0',
'id': '0' 'id': '0'