aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2019-03-24 08:58:27 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2019-04-11 11:08:04 +0000
commitb3a32d55052f0e2483f1abb08aed0aed1a52cbb5 (patch)
tree6f74a532f5f83dcd55e9754b3903655534f7024c
parentconsole.py: support connecting to any host, not just 127.0.0.1 (diff)
downloadmonero-b3a32d55052f0e2483f1abb08aed0aed1a52cbb5.tar.xz
functional_tests: add describe_transfer tests
-rwxr-xr-xtests/functional_tests/cold_signing.py16
-rwxr-xr-xtests/functional_tests/multisig.py17
-rw-r--r--utils/python-rpc/framework/wallet.py3
3 files changed, 35 insertions, 1 deletions
diff --git a/tests/functional_tests/cold_signing.py b/tests/functional_tests/cold_signing.py
index 6895aec60..07edae854 100755
--- a/tests/functional_tests/cold_signing.py
+++ b/tests/functional_tests/cold_signing.py
@@ -104,6 +104,22 @@ class ColdSigningTest():
unsigned_txset = res.unsigned_txset
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)
assert len(res.signed_txset) > 0
signed_txset = res.signed_txset
diff --git a/tests/functional_tests/multisig.py b/tests/functional_tests/multisig.py
index a0e8551cd..a61f30001 100755
--- a/tests/functional_tests/multisig.py
+++ b/tests/functional_tests/multisig.py
@@ -129,6 +129,7 @@ class MultisigTest():
addresses.append(res.address)
for i in range(N_total):
assert addresses[i] == expected_address
+ self.wallet_address = expected_address
for i in range(N_total):
res = self.wallet[i].is_multisig()
@@ -181,6 +182,22 @@ class MultisigTest():
for i in range(len(signers[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)
multisig_txset = res.tx_data_hex
assert len(res.tx_hash_list if 'tx_hash_list' in res else []) == (i == len(signers[1:]) - 1)
diff --git a/utils/python-rpc/framework/wallet.py b/utils/python-rpc/framework/wallet.py
index ea683b8c5..5b0df2e13 100644
--- a/utils/python-rpc/framework/wallet.py
+++ b/utils/python-rpc/framework/wallet.py
@@ -101,11 +101,12 @@ class Wallet(object):
}
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 = {
'method': 'describe_transfer',
'params': {
'unsigned_txset': unsigned_txset,
+ 'multisig_txset': multisig_txset,
},
'jsonrpc': '2.0',
'id': '0'