diff options
Diffstat (limited to 'tests/functional_tests/test_framework')
-rw-r--r-- | tests/functional_tests/test_framework/__init__.py | 0 | ||||
-rw-r--r-- | tests/functional_tests/test_framework/daemon.py | 198 | ||||
-rw-r--r-- | tests/functional_tests/test_framework/rpc.py | 83 | ||||
-rw-r--r-- | tests/functional_tests/test_framework/wallet.py | 592 |
4 files changed, 0 insertions, 873 deletions
diff --git a/tests/functional_tests/test_framework/__init__.py b/tests/functional_tests/test_framework/__init__.py deleted file mode 100644 index e69de29bb..000000000 --- a/tests/functional_tests/test_framework/__init__.py +++ /dev/null diff --git a/tests/functional_tests/test_framework/daemon.py b/tests/functional_tests/test_framework/daemon.py deleted file mode 100644 index 11d5f5845..000000000 --- a/tests/functional_tests/test_framework/daemon.py +++ /dev/null @@ -1,198 +0,0 @@ -# Copyright (c) 2018 The Monero Project -# -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, are -# permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this list of -# conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright notice, this list -# of conditions and the following disclaimer in the documentation and/or other -# materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its contributors may be -# used to endorse or promote products derived from this software without specific -# prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Daemon class to make rpc calls and store state.""" - -from .rpc import JSONRPC - -class Daemon(object): - - def __init__(self, protocol='http', host='127.0.0.1', port=0, idx=0): - self.rpc = JSONRPC('{protocol}://{host}:{port}'.format(protocol=protocol, host=host, port=port if port else 18180+idx)) - - def getblocktemplate(self, address): - getblocktemplate = { - 'method': 'getblocktemplate', - 'params': { - 'wallet_address': address, - 'reserve_size' : 1 - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(getblocktemplate) - - def send_raw_transaction(self, tx_as_hex, do_not_relay = False): - send_raw_transaction = { - 'tx_as_hex': tx_as_hex, - 'do_not_relay': do_not_relay, - } - return self.rpc.send_request("/send_raw_transaction", send_raw_transaction) - - def submitblock(self, block): - submitblock = { - 'method': 'submitblock', - 'params': [ block ], - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(submitblock) - - def getblock(self, height=0): - getblock = { - 'method': 'getblock', - 'params': { - 'height': height - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(getblock) - - def getlastblockheader(self): - getlastblockheader = { - 'method': 'getlastblockheader', - 'params': { - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(getlastblockheader) - - def getblockheaderbyhash(self, hash): - getblockheaderbyhash = { - 'method': 'getblockheaderbyhash', - 'params': { - 'hash': hash, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(getblockheaderbyhash) - - def getblockheaderbyheight(self, height): - getblockheaderbyheight = { - 'method': 'getblockheaderbyheight', - 'params': { - 'height': height, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(getblockheaderbyheight) - - def get_connections(self): - get_connections = { - 'method': 'get_connections', - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_connections) - - def get_info(self): - get_info = { - 'method': 'get_info', - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_info) - - def hard_fork_info(self): - hard_fork_info = { - 'method': 'hard_fork_info', - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(hard_fork_info) - - def generateblocks(self, address, blocks=1): - generateblocks = { - 'method': 'generateblocks', - 'params': { - 'amount_of_blocks' : blocks, - 'reserve_size' : 20, - 'wallet_address': address - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(generateblocks) - - def get_height(self): - get_height = { - 'method': 'get_height', - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_request("/get_height", get_height) - - def pop_blocks(self, nblocks = 1): - pop_blocks = { - 'nblocks' : nblocks, - } - return self.rpc.send_request("/pop_blocks", pop_blocks) - - def start_mining(self, miner_address, threads_count = 0, do_background_mining = False, ignore_battery = False): - start_mining = { - 'miner_address' : miner_address, - 'threads_count' : threads_count, - 'do_background_mining' : do_background_mining, - 'ignore_battery' : ignore_battery, - } - return self.rpc.send_request('/start_mining', start_mining) - - def stop_mining(self): - stop_mining = { - } - return self.rpc.send_request('/stop_mining', stop_mining) - - def mining_status(self): - mining_status = { - } - return self.rpc.send_request('/mining_status', mining_status) - - def get_transaction_pool(self): - get_transaction_pool = { - } - return self.rpc.send_request('/get_transaction_pool', get_transaction_pool) - - def get_transaction_pool_hashes(self): - get_transaction_pool_hashes = { - } - return self.rpc.send_request('/get_transaction_pool_hashes', get_transaction_pool_hashes) - - def flush_txpool(self, txids = []): - flush_txpool = { - 'method': 'flush_txpool', - 'params': { - 'txids': txids - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(flush_txpool) diff --git a/tests/functional_tests/test_framework/rpc.py b/tests/functional_tests/test_framework/rpc.py deleted file mode 100644 index b857be4d2..000000000 --- a/tests/functional_tests/test_framework/rpc.py +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright (c) 2018 The Monero Project -# -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, are -# permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this list of -# conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright notice, this list -# of conditions and the following disclaimer in the documentation and/or other -# materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its contributors may be -# used to endorse or promote products derived from this software without specific -# prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import requests -import json - -class Response(dict): - def __init__(self, d): - for k in d.keys(): - if type(d[k]) == dict: - self[k] = Response(d[k]) - elif type(d[k]) == list: - self[k] = [] - for i in range(len(d[k])): - if type(d[k][i]) == dict: - self[k].append(Response(d[k][i])) - else: - self[k].append(d[k][i]) - else: - self[k] = d[k] - - def __getattr__(self, key): - return self[key] - def __setattr__(self, key, value): - self[key] = value - def __eq__(self, other): - if type(other) == dict: - return self == Response(other) - if self.keys() != other.keys(): - return False - for k in self.keys(): - if self[k] != other[k]: - return False - return True - -class JSONRPC(object): - def __init__(self, url): - self.url = url - - def send_request(self, path, inputs, result_field = None): - res = requests.post( - self.url + path, - data=json.dumps(inputs), - headers={'content-type': 'application/json'}) - res = res.json() - - assert 'error' not in res, res - - if result_field: - res = res[result_field] - - return Response(res) - - def send_json_rpc_request(self, inputs): - return self.send_request("/json_rpc", inputs, 'result') - - - diff --git a/tests/functional_tests/test_framework/wallet.py b/tests/functional_tests/test_framework/wallet.py deleted file mode 100644 index e9f13667b..000000000 --- a/tests/functional_tests/test_framework/wallet.py +++ /dev/null @@ -1,592 +0,0 @@ -# Copyright (c) 2018 The Monero Project -# -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without modification, are -# permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, this list of -# conditions and the following disclaimer. -# -# 2. Redistributions in binary form must reproduce the above copyright notice, this list -# of conditions and the following disclaimer in the documentation and/or other -# materials provided with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its contributors may be -# used to endorse or promote products derived from this software without specific -# prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -"""Daemon class to make rpc calls and store state.""" - -from .rpc import JSONRPC - -class Wallet(object): - - def __init__(self, protocol='http', host='127.0.0.1', port=0, idx=0): - self.rpc = JSONRPC('{protocol}://{host}:{port}'.format(protocol=protocol, host=host, port=port if port else 18090+idx)) - - def make_uniform_destinations(self, address, transfer_amount, transfer_number_of_destinations=1): - destinations = [] - for i in range(transfer_number_of_destinations): - destinations.append({"amount":transfer_amount,"address":address}) - return destinations - - def make_destinations(self, addresses, transfer_amounts): - destinations = [] - for i in range(len(addresses)): - destinations.append({'amount':transfer_amounts[i],'address':addresses[i]}) - return destinations - - def transfer(self, destinations, account_index = 0, subaddr_indices = [], priority = 0, ring_size = 0, unlock_time = 0, payment_id = '', get_tx_key = True, do_not_relay = False, get_tx_hex = False, get_tx_metadata = False): - transfer = { - 'method': 'transfer', - 'params': { - 'destinations': destinations, - 'account_index': account_index, - 'subaddr_indices': subaddr_indices, - 'priority': priority, - 'ring_size' : ring_size, - 'unlock_time' : unlock_time, - 'payment_id' : payment_id, - 'get_tx_key' : get_tx_key, - 'do_not_relay' : do_not_relay, - 'get_tx_hex' : get_tx_hex, - 'get_tx_metadata' : get_tx_metadata, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(transfer) - - def transfer_split(self, destinations, account_index = 0, subaddr_indices = [], priority = 0, ring_size = 0, unlock_time = 0, payment_id = '', get_tx_key = True, do_not_relay = False, get_tx_hex = False, get_tx_metadata = False): - transfer = { - "method": "transfer_split", - "params": { - 'destinations': destinations, - 'account_index': account_index, - 'subaddr_indices': subaddr_indices, - 'priority': priority, - 'ring_size' : ring_size, - 'unlock_time' : unlock_time, - 'payment_id' : payment_id, - 'get_tx_key' : get_tx_key, - 'do_not_relay' : do_not_relay, - 'get_tx_hex' : get_tx_hex, - 'get_tx_metadata' : get_tx_metadata, - }, - "jsonrpc": "2.0", - "id": "0" - } - return self.rpc.send_json_rpc_request(transfer) - - def get_bulk_payments(self, payment_ids = [], min_block_height = 0): - get_bulk_payments = { - 'method': 'get_bulk_payments', - 'params': { - 'payment_ids': payment_ids, - 'min_block_height': min_block_height, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_bulk_payments) - - def describe_transfer(self, unsigned_txset): - describe_transfer = { - 'method': 'describe_transfer', - 'params': { - 'unsigned_txset': unsigned_txset, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(describe_transfer) - - def create_wallet(self, index=''): - create_wallet = { - 'method': 'create_wallet', - 'params': { - 'filename': 'testWallet' + index, - 'password' : '', - 'language' : 'English' - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(create_wallet) - - def get_balance(self, account_index = 0, address_indices = [], all_accounts = False): - get_balance = { - 'method': 'get_balance', - 'params': { - 'account_index': account_index, - 'address_indices': address_indices, - 'all_accounts': all_accounts, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_balance) - - def sweep_dust(self): - sweep_dust = { - 'method': 'sweep_dust', - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(sweep_dust) - - def sweep_all(self, address): - sweep_all = { - 'method': 'sweep_all', - 'params' : { - 'address' : '' - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(sweep_all) - - def get_address(self, account_index = 0, subaddresses = []): - get_address = { - 'method': 'get_address', - 'params' : { - 'account_index' : account_index, - 'address_index': subaddresses - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_address) - - def create_account(self, label = ""): - create_account = { - 'method': 'create_account', - 'params' : { - 'label': label - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(create_account) - - def create_address(self, account_index = 0, label = ""): - create_address = { - 'method': 'create_address', - 'params' : { - 'account_index': account_index, - 'label': label - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(create_address) - - def label_address(self, subaddress_index, label): - label_address = { - 'method': 'label_address', - 'params' : { - 'index': { 'major': subaddress_index[0], 'minor': subaddress_index[1]}, - 'label': label - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(label_address) - - def label_account(self, account_index, label): - label_account = { - 'method': 'label_account', - 'params' : { - 'account_index': account_index, - 'label': label - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(label_account) - - def get_address_index(self, address): - get_address_index = { - 'method': 'get_address_index', - 'params' : { - 'address': address - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_address_index) - - def query_key(self, key_type): - query_key = { - 'method': 'query_key', - 'params' : { - 'key_type': key_type - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(query_key) - - def restore_deterministic_wallet(self, seed = '', seed_offset = '', filename = '', restore_height = 0, password = '', language = ''): - restore_deterministic_wallet = { - 'method': 'restore_deterministic_wallet', - 'params' : { - 'restore_height': restore_height, - 'filename': filename, - 'seed': seed, - 'seed_offset': seed_offset, - 'password': password, - 'language': language - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(restore_deterministic_wallet) - - def generate_from_keys(self, restore_height = 0, filename = "", password = "", address = "", spendkey = "", viewkey = ""): - generate_from_keys = { - 'method': 'generate_from_keys', - 'params' : { - 'restore_height': restore_height, - 'filename': filename, - 'address': address, - 'spendkey': spendkey, - 'viewkey': viewkey, - 'password': password, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(generate_from_keys) - - def close_wallet(self): - close_wallet = { - 'method': 'close_wallet', - 'params' : { - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(close_wallet) - - def refresh(self): - refresh = { - 'method': 'refresh', - 'params' : { - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(refresh) - - def incoming_transfers(self, transfer_type='all', account_index = 0, subaddr_indices = []): - incoming_transfers = { - 'method': 'incoming_transfers', - 'params' : { - 'transfer_type': transfer_type, - 'account_index': account_index, - 'subaddr_indices': subaddr_indices, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(incoming_transfers) - - def get_transfers(self, in_ = True, out = True, pending = True, failed = True, pool = True, min_height = None, max_height = None, account_index = 0, subaddr_indices = [], all_accounts = False): - get_transfers = { - 'method': 'get_transfers', - 'params' : { - 'in': in_, - 'out': out, - 'pending': pending, - 'failed': failed, - 'pool': pool, - 'min_height': min_height, - 'max_height': max_height, - 'filter_by_height': min_height or max_height, - 'account_index': account_index, - 'subaddr_indices': subaddr_indices, - 'all_accounts': all_accounts, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_transfers) - - def make_integrated_address(self, standard_address = '', payment_id = ''): - make_integrated_address = { - 'method': 'make_integrated_address', - 'params' : { - 'standard_address': standard_address, - 'payment_id': payment_id, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(make_integrated_address) - - def split_integrated_address(self, integrated_address): - split_integrated_address = { - 'method': 'split_integrated_address', - 'params' : { - 'integrated_address': integrated_address, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(split_integrated_address) - - def auto_refresh(self, enable, period = 0): - auto_refresh = { - 'method': 'auto_refresh', - 'params' : { - 'enable': enable, - 'period': period - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(auto_refresh) - - def set_daemon(self, address, trusted = False, ssl_support = "autodetect", ssl_private_key_path = "", ssl_certificate_path = "", ssl_allowed_certificates = [], ssl_allowed_fingerprints = [], ssl_allow_any_cert = False): - set_daemon = { - 'method': 'set_daemon', - 'params' : { - 'address': address, - 'trusted': trusted, - 'ssl_support': ssl_support, - 'ssl_private_key_path': ssl_private_key_path, - 'ssl_certificate_path': ssl_certificate_path, - 'ssl_allowed_certificates': ssl_allowed_certificates, - 'ssl_allowed_fingerprints': ssl_allowed_fingerprints, - 'ssl_allow_any_cert': ssl_allow_any_cert, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(set_daemon) - - def is_multisig(self): - is_multisig = { - 'method': 'is_multisig', - 'params' : { - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(is_multisig) - - def prepare_multisig(self): - prepare_multisig = { - 'method': 'prepare_multisig', - 'params' : { - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(prepare_multisig) - - def make_multisig(self, multisig_info, threshold, password = ''): - make_multisig = { - 'method': 'make_multisig', - 'params' : { - 'multisig_info': multisig_info, - 'threshold': threshold, - 'password': password, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(make_multisig) - - def exchange_multisig_keys(self, multisig_info, password = ''): - exchange_multisig_keys = { - 'method': 'exchange_multisig_keys', - 'params' : { - 'multisig_info': multisig_info, - 'password': password, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(exchange_multisig_keys) - - def export_multisig_info(self): - export_multisig_info = { - 'method': 'export_multisig_info', - 'params' : { - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(export_multisig_info) - - def import_multisig_info(self, info = []): - import_multisig_info = { - 'method': 'import_multisig_info', - 'params' : { - 'info': info - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(import_multisig_info) - - def sign_multisig(self, tx_data_hex): - sign_multisig = { - 'method': 'sign_multisig', - 'params' : { - 'tx_data_hex': tx_data_hex - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(sign_multisig) - - def submit_multisig(self, tx_data_hex): - submit_multisig = { - 'method': 'submit_multisig', - 'params' : { - 'tx_data_hex': tx_data_hex - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(submit_multisig) - - def sign_transfer(self, unsigned_txset, export_raw = False, get_tx_keys = False): - sign_transfer = { - 'method': 'sign_transfer', - 'params' : { - 'unsigned_txset': unsigned_txset, - 'export_raw': export_raw, - 'get_tx_keys': get_tx_keys, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(sign_transfer) - - def submit_transfer(self, tx_data_hex): - submit_transfer = { - 'method': 'submit_transfer', - 'params' : { - 'tx_data_hex': tx_data_hex, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(submit_transfer) - - def get_tx_key(self, txid): - get_tx_key = { - 'method': 'get_tx_key', - 'params' : { - 'txid': txid, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_tx_key) - - def check_tx_key(self, txid = '', tx_key = '', address = ''): - check_tx_key = { - 'method': 'check_tx_key', - 'params' : { - 'txid': txid, - 'tx_key': tx_key, - 'address': address, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(check_tx_key) - - def get_tx_proof(self, txid = '', address = '', message = ''): - get_tx_proof = { - 'method': 'get_tx_proof', - 'params' : { - 'txid': txid, - 'address': address, - 'message': message, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_tx_proof) - - def check_tx_proof(self, txid = '', address = '', message = '', signature = ''): - check_tx_proof = { - 'method': 'check_tx_proof', - 'params' : { - 'txid': txid, - 'address': address, - 'message': message, - 'signature': signature, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(check_tx_proof) - - def get_reserve_proof(self, all_ = True, account_index = 0, amount = 0, message = ''): - get_reserve_proof = { - 'method': 'get_reserve_proof', - 'params' : { - 'all': all_, - 'account_index': account_index, - 'amount': amount, - 'message': message, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(get_reserve_proof) - - def check_reserve_proof(self, address = '', message = '', signature = ''): - check_reserve_proof = { - 'method': 'check_reserve_proof', - 'params' : { - 'address': address, - 'message': message, - 'signature': signature, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(check_reserve_proof) - - def sign(self, data): - sign = { - 'method': 'sign', - 'params' : { - 'data': data, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(sign) - - def verify(self, data, address, signature): - verify = { - 'method': 'verify', - 'params' : { - 'data': data, - 'address': address, - 'signature': signature, - }, - 'jsonrpc': '2.0', - 'id': '0' - } - return self.rpc.send_json_rpc_request(verify) |