diff --git a/src/cpp/py_monero.cpp b/src/cpp/py_monero.cpp index 6ba4d84..593ea09 100644 --- a/src/cpp/py_monero.cpp +++ b/src/cpp/py_monero.cpp @@ -455,12 +455,13 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("prev_hash", &monero::monero_block_header::m_prev_hash) .def_readwrite("reward", &monero::monero_block_header::m_reward) .def_readwrite("pow_hash", &monero::monero_block_header::m_pow_hash) - .def("copy", [](monero::monero_block_header& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("merge", [](monero::monero_block_header& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")); + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")); // monero_block (needs: monero_tx) py_monero_block @@ -470,15 +471,13 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("miner_tx", &monero::monero_block::m_miner_tx) .def_readwrite("txs", &monero::monero_block::m_txs) .def_readwrite("tx_hashes", &monero::monero_block::m_tx_hashes) - .def("copy", [](monero::monero_block& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("merge", [](monero::monero_block& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")) - .def("merge", [](monero::monero_block& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")); + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")); // monero_block_template py::class_>(m, "MoneroBlockTemplate") @@ -743,12 +742,13 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("max_used_block_height", &monero::monero_tx::m_max_used_block_height) .def_readwrite("max_used_block_hash", &monero::monero_tx::m_max_used_block_hash) .def_readwrite("signatures", &monero::monero_tx::m_signatures) - .def("copy", [](monero::monero_tx& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("merge", [](monero::monero_tx& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")) + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")) .def("get_height", [](monero::monero_tx& self) { MONERO_CATCH_AND_RETHROW(self.get_height()); }); @@ -761,12 +761,13 @@ PYBIND11_MODULE(monero, m) { }, py::arg("key_images_json")) .def_readwrite("hex", &monero::monero_key_image::m_hex) .def_readwrite("signature", &monero::monero_key_image::m_signature) - .def("copy", [](monero::monero_key_image& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("merge", [](monero::monero_key_image& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")); + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")); // monero_output py_monero_output @@ -777,12 +778,13 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("index", &monero::monero_output::m_index) .def_readwrite("stealth_public_key", &monero::monero_output::m_stealth_public_key) .def_readwrite("ring_output_indices", &monero::monero_output::m_ring_output_indices) - .def("copy", [](monero::monero_output& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("merge", [](monero::monero_output& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")); + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")); // monero_wallet_config py_monero_wallet_config @@ -857,9 +859,10 @@ PYBIND11_MODULE(monero, m) { .def(py::init(), py::arg("address"), py::arg("amount")) .def_readwrite("address", &monero::monero_destination::m_address) .def_readwrite("amount", &monero::monero_destination::m_amount) - .def("copy", [](monero::monero_destination& self, const std::shared_ptr& src, const std::shared_ptr& tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")); + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }); // monero_transfer py_monero_transfer @@ -873,12 +876,13 @@ PYBIND11_MODULE(monero, m) { .def("is_outgoing", [](monero::monero_transfer& self) { MONERO_CATCH_AND_RETHROW(self.is_outgoing()); }) - .def("merge", [](monero::monero_transfer& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")) - .def("copy", [](monero::monero_transfer& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")); + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")) + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }); // monero_incoming_transfer py_monero_incoming_transfer @@ -886,15 +890,13 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("address", &monero::monero_incoming_transfer::m_address) .def_readwrite("subaddress_index", &monero::monero_incoming_transfer::m_subaddress_index) .def_readwrite("num_suggested_confirmations", &monero::monero_incoming_transfer::m_num_suggested_confirmations) - .def("merge", [](monero::monero_incoming_transfer& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")) - .def("copy", [](monero::monero_incoming_transfer& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_incoming_transfer& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")); + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")) + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }); // monero_outgoing_transfer py_monero_outgoing_transfer @@ -902,15 +904,13 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("subaddress_indices", &monero::monero_outgoing_transfer::m_subaddress_indices) .def_readwrite("addresses", &monero::monero_outgoing_transfer::m_addresses) .def_readwrite("destinations", &monero::monero_outgoing_transfer::m_destinations) - .def("merge", [](monero::monero_outgoing_transfer& self, const std::shared_ptr _self, const std::shared_ptr other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")) - .def("copy", [](monero::monero_outgoing_transfer& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_outgoing_transfer& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")); + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")) + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }); // monero_transfer_query py_monero_transfer_query @@ -926,12 +926,10 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("destinations", &monero::monero_transfer_query::m_destinations) .def_readwrite("has_destinations", &monero::monero_transfer_query::m_has_destinations) .def_readwrite("tx_query", &monero::monero_transfer_query::m_tx_query) - .def("copy", [](monero::monero_transfer_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_transfer_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) .def("meets_criteria", [](monero::monero_transfer_query& self, monero_transfer_query* transfer, bool query_parent) { MONERO_CATCH_AND_RETHROW(self.meets_criteria(transfer, query_parent)); }, py::arg("transfer"), py::arg("query_parent") = true); @@ -943,18 +941,13 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("subaddress_index", &monero::monero_output_wallet::m_subaddress_index) .def_readwrite("is_spent", &monero::monero_output_wallet::m_is_spent) .def_readwrite("is_frozen", &monero::monero_output_wallet::m_is_frozen) - .def("copy", [](monero::monero_output_wallet& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_output_wallet& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("merge", [](monero::monero_output_wallet& self, const std::shared_ptr &_self, const std::shared_ptr &other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")) - .def("merge", [](monero::monero_output_wallet& self, const std::shared_ptr &_self, const std::shared_ptr &other) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, other)); - }, py::arg("_self"), py::arg("other")); + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) + .def("merge", [](const std::shared_ptr& self, const std::shared_ptr& other) { + MONERO_CATCH_AND_RETHROW(self->merge(self, other)); + }, py::arg("other")); // monero_output_query py_monero_output_query @@ -966,15 +959,10 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("min_amount", &monero::monero_output_query::m_min_amount) .def_readwrite("max_amount", &monero::monero_output_query::m_max_amount) .def_readwrite("tx_query", &monero::monero_output_query::m_tx_query) - .def("copy", [](monero::monero_output_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_output_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_output_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) .def("meets_criteria", [](monero::monero_output_query& self, monero_output_wallet* output, bool query_parent) { MONERO_CATCH_AND_RETHROW(self.meets_criteria(output, query_parent)); }, py::arg("output"), py::arg("query_parent") = true); @@ -1013,18 +1001,13 @@ PYBIND11_MODULE(monero, m) { .def("filter_outputs_wallet", [](monero::monero_tx_wallet& self, const monero_output_query& query) { MONERO_CATCH_AND_RETHROW(self.filter_outputs_wallet(query)); }, py::arg("query")) - .def("copy", [](monero::monero_tx_wallet& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_tx_wallet& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("merge", [](monero::monero_tx_wallet& self, const std::shared_ptr &_self, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, tgt)); - }, py::arg("_self"), py::arg("tgt")) - .def("merge", [](monero::monero_tx_wallet& self, const std::shared_ptr &_self, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.merge(_self, tgt)); - }, py::arg("_self"), py::arg("tgt")); + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) + .def("merge", [](const std::shared_ptr &self, const std::shared_ptr& tgt) { + MONERO_CATCH_AND_RETHROW(self->merge(self, tgt)); + }, py::arg("tgt")); // monero_tx_query py_monero_tx_query @@ -1044,15 +1027,10 @@ PYBIND11_MODULE(monero, m) { .def_readwrite("transfer_query", &monero::monero_tx_query::m_transfer_query) .def_readwrite("input_query", &monero::monero_tx_query::m_input_query) .def_readwrite("output_query", &monero::monero_tx_query::m_output_query) - .def("copy", [](monero::monero_tx_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_tx_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) - .def("copy", [](monero::monero_tx_query& self, const std::shared_ptr &src, const std::shared_ptr &tgt) { - MONERO_CATCH_AND_RETHROW(self.copy(src, tgt)); - }, py::arg("src"), py::arg("tgt")) + .def("copy", [](const std::shared_ptr& self) { + auto tgt = std::make_shared(); + MONERO_CATCH_AND_RETHROW(self->copy(self, tgt)); + }) .def("meets_criteria", [](monero::monero_tx_query& self, monero_tx_wallet* tx, bool query_children) { MONERO_CATCH_AND_RETHROW(self.meets_criteria(tx, query_children)); }, py::arg("tx"), py::arg("query_children") = false); diff --git a/src/python/monero_block.pyi b/src/python/monero_block.pyi index 7c67981..2a07535 100644 --- a/src/python/monero_block.pyi +++ b/src/python/monero_block.pyi @@ -18,15 +18,12 @@ class MoneroBlock(MoneroBlockHeader): def __init__(self) -> None: """Initialize a Monero block.""" ... - @typing.overload - def copy(self, src: MoneroBlock, tgt: MoneroBlock) -> MoneroBlock: - ... - @typing.overload - def copy(self, src: MoneroBlockHeader, tgt: MoneroBlockHeader) -> MoneroBlockHeader: + @typing.override + def copy(self) -> MoneroBlock: ... @typing.overload - def merge(self, _self: MoneroBlock, other: MoneroBlock) -> None: + def merge(self, other: MoneroBlock) -> None: ... @typing.overload - def merge(self, _self: MoneroBlockHeader, other: MoneroBlockHeader) -> None: + def merge(self, other: MoneroBlockHeader) -> None: ... diff --git a/src/python/monero_block_header.pyi b/src/python/monero_block_header.pyi index b26e8ca..96eae58 100644 --- a/src/python/monero_block_header.pyi +++ b/src/python/monero_block_header.pyi @@ -46,7 +46,7 @@ class MoneroBlockHeader(SerializableStruct): def __init__(self) -> None: """Initialize a Monero block header.""" ... - def copy(self, src: MoneroBlockHeader, tgt: MoneroBlockHeader) -> MoneroBlockHeader: + def copy(self) -> MoneroBlockHeader: ... - def merge(self, _self: MoneroBlockHeader, other: MoneroBlockHeader) -> None: + def merge(self, other: MoneroBlockHeader) -> None: ... diff --git a/src/python/monero_destination.pyi b/src/python/monero_destination.pyi index 29e77df..1e98b63 100644 --- a/src/python/monero_destination.pyi +++ b/src/python/monero_destination.pyi @@ -30,12 +30,8 @@ class MoneroDestination: :param int amount: Amount sent to the destination. """ ... - def copy(self, src: MoneroDestination, tgt: MoneroDestination) -> MoneroDestination: + def copy(self) -> MoneroDestination: """ Copy a Monero outgoing transfer destination. - - :param MoneroDestination src: Source. - :param MoneroDestination target: Target. - :return MoneroDestination: The copied destination. """ ... diff --git a/src/python/monero_incoming_transfer.pyi b/src/python/monero_incoming_transfer.pyi index 89722a8..c4a5ba7 100644 --- a/src/python/monero_incoming_transfer.pyi +++ b/src/python/monero_incoming_transfer.pyi @@ -16,15 +16,13 @@ class MoneroIncomingTransfer(MoneroTransfer): def __init__(self) -> None: """Initialize a Monero incoming transfer.""" ... - @typing.overload - def copy(self, src: MoneroIncomingTransfer, tgt: MoneroIncomingTransfer) -> MoneroIncomingTransfer: - ... - @typing.overload - def copy(self, src: MoneroTransfer, tgt: MoneroTransfer) -> MoneroIncomingTransfer: + @typing.override + def copy(self) -> MoneroIncomingTransfer: ... @typing.overload - def merge(self, _self: MoneroIncomingTransfer, other: MoneroIncomingTransfer) -> None: + def merge(self, other: MoneroIncomingTransfer) -> None: ... @typing.overload - def merge(self, _self: MoneroTransfer, other: MoneroTransfer) -> None: + def merge(self, other: MoneroTransfer) -> None: ... + \ No newline at end of file diff --git a/src/python/monero_key_image.pyi b/src/python/monero_key_image.pyi index 3b3202f..d05d360 100644 --- a/src/python/monero_key_image.pyi +++ b/src/python/monero_key_image.pyi @@ -21,7 +21,7 @@ class MoneroKeyImage(SerializableStruct): def __init__(self) -> None: """Initialize a Monero key image.""" ... - def copy(self, src: MoneroKeyImage, tgt: MoneroKeyImage) -> MoneroKeyImage: + def copy(self) -> MoneroKeyImage: ... - def merge(self, _self: MoneroKeyImage, other: MoneroKeyImage) -> None: + def merge(self, other: MoneroKeyImage) -> None: ... diff --git a/src/python/monero_outgoing_transfer.pyi b/src/python/monero_outgoing_transfer.pyi index d8ebcff..f6a95ac 100644 --- a/src/python/monero_outgoing_transfer.pyi +++ b/src/python/monero_outgoing_transfer.pyi @@ -2,7 +2,6 @@ import typing from .monero_transfer import MoneroTransfer from .monero_destination import MoneroDestination -from .monero_incoming_transfer import MoneroIncomingTransfer class MoneroOutgoingTransfer(MoneroTransfer): @@ -17,15 +16,12 @@ class MoneroOutgoingTransfer(MoneroTransfer): """Subaddresses from which the transfer originated.""" def __init__(self) -> None: ... - @typing.overload - def copy(self, src: MoneroOutgoingTransfer, tgt: MoneroIncomingTransfer) -> MoneroOutgoingTransfer: - ... - @typing.overload - def copy(self, src: MoneroTransfer, tgt: MoneroTransfer) -> MoneroOutgoingTransfer: + @typing.override + def copy(self) -> MoneroOutgoingTransfer: ... @typing.overload - def merge(self, _self: MoneroOutgoingTransfer, other: MoneroOutgoingTransfer) -> None: + def merge(self, other: MoneroOutgoingTransfer) -> None: ... @typing.overload - def merge(self, _self: MoneroTransfer, other: MoneroTransfer) -> None: + def merge(self, other: MoneroTransfer) -> None: ... diff --git a/src/python/monero_output.pyi b/src/python/monero_output.pyi index c0685c6..82254e1 100644 --- a/src/python/monero_output.pyi +++ b/src/python/monero_output.pyi @@ -22,7 +22,7 @@ class MoneroOutput(SerializableStruct): def __init__(self) -> None: """Initialize a Monero output.""" ... - def copy(self, src: MoneroOutput, tgt: MoneroOutput) -> MoneroOutput: + def copy(self) -> MoneroOutput: ... - def merge(self, _self: MoneroOutput, other: MoneroOutput) -> None: + def merge(self, other: MoneroOutput) -> None: ... diff --git a/src/python/monero_output_query.pyi b/src/python/monero_output_query.pyi index cbd69ee..e710503 100644 --- a/src/python/monero_output_query.pyi +++ b/src/python/monero_output_query.pyi @@ -25,15 +25,10 @@ class MoneroOutputQuery(MoneroOutputWallet): def __init__(self) -> None: """Initialize a Monero output query.""" ... - @typing.overload - def copy(self, src: MoneroOutputQuery, tgt: MoneroOutputQuery) -> MoneroOutputQuery: - ... - @typing.overload - def copy(self, src: MoneroOutputWallet, tgt: MoneroOutputWallet) -> MoneroOutputQuery: - ... - @typing.overload - def copy(self, src: MoneroOutput, tgt: MoneroOutput) -> MoneroOutputQuery: # type: ignore + @typing.override + def copy(self) -> MoneroOutputQuery: ... + def meets_criteria(self, output: MoneroOutputWallet, query_parent: bool = True) -> bool: """ Indicates if the output meets all the criteria defined within this query. diff --git a/src/python/monero_output_wallet.pyi b/src/python/monero_output_wallet.pyi index 87704ab..3cc25bd 100644 --- a/src/python/monero_output_wallet.pyi +++ b/src/python/monero_output_wallet.pyi @@ -18,15 +18,12 @@ class MoneroOutputWallet(MoneroOutput): def __init__(self) -> None: """Initialize a Monero wallet output.""" ... - @typing.overload - def copy(self, src: MoneroOutputWallet, tgt: MoneroOutputWallet) -> MoneroOutputWallet: - ... - @typing.overload - def copy(self, src: MoneroOutput, tgt: MoneroOutput) -> MoneroOutputWallet: + @typing.override + def copy(self) -> MoneroOutputWallet: ... @typing.overload - def merge(self, _self: MoneroOutputWallet, other: MoneroOutputWallet) -> None: + def merge(self, other: MoneroOutputWallet) -> None: ... @typing.overload - def merge(self, _self: MoneroOutput, other: MoneroOutput) -> None: + def merge(self, other: MoneroOutput) -> None: ... diff --git a/src/python/monero_transfer.pyi b/src/python/monero_transfer.pyi index 9fa8c91..0d7c4a8 100644 --- a/src/python/monero_transfer.pyi +++ b/src/python/monero_transfer.pyi @@ -14,7 +14,7 @@ class MoneroTransfer: def __init__(self) -> None: """Initialize a Monero transfer.""" ... - def copy(self, src: MoneroTransfer, tgt: MoneroTransfer) -> MoneroTransfer: + def copy(self) -> MoneroTransfer: ... def is_incoming(self) -> bool | None: """ @@ -30,5 +30,5 @@ class MoneroTransfer: :return Optional[bool]: """ ... - def merge(self, _self: MoneroTransfer, other: MoneroTransfer) -> None: + def merge(self, other: MoneroTransfer) -> None: ... diff --git a/src/python/monero_transfer_query.pyi b/src/python/monero_transfer_query.pyi index 9c4b21f..60d5347 100644 --- a/src/python/monero_transfer_query.pyi +++ b/src/python/monero_transfer_query.pyi @@ -31,11 +31,8 @@ class MoneroTransferQuery(MoneroTransfer): def __init__(self) -> None: """Initialize a Monero transfer query.""" ... - @typing.overload - def copy(self, src: MoneroTransferQuery, tgt: MoneroTransferQuery) -> MoneroTransferQuery: - ... - @typing.overload - def copy(self, src: MoneroTransfer, tgt: MoneroTransfer) -> MoneroTransferQuery: + @typing.override + def copy(self) -> MoneroTransferQuery: ... def meets_criteria(self, transfer: MoneroTransferQuery, query_parent: bool = True) -> bool: ... diff --git a/src/python/monero_tx.pyi b/src/python/monero_tx.pyi index 4e7614d..4f42097 100644 --- a/src/python/monero_tx.pyi +++ b/src/python/monero_tx.pyi @@ -85,7 +85,7 @@ class MoneroTx(SerializableStruct): """The weight of this transaction in bytes.""" def __init__(self) -> None: ... - def copy(self, src: MoneroTx, tgt: MoneroTx) -> MoneroTx: + def copy(self) -> MoneroTx: ... def get_height(self) -> int | None: """ @@ -94,5 +94,5 @@ class MoneroTx(SerializableStruct): :return int | None: The height of the transaction, if known. """ ... - def merge(self, _self: MoneroTx, other: MoneroTx) -> None: + def merge(self, other: MoneroTx) -> None: ... diff --git a/src/python/monero_tx_query.pyi b/src/python/monero_tx_query.pyi index 1814ccb..b097c76 100644 --- a/src/python/monero_tx_query.pyi +++ b/src/python/monero_tx_query.pyi @@ -40,14 +40,8 @@ class MoneroTxQuery(MoneroTxWallet): ... def __init__(self) -> None: ... - @typing.overload - def copy(self, src: MoneroTxQuery, tgt: MoneroTxQuery) -> MoneroTxQuery: - ... - @typing.overload - def copy(self, src: MoneroTxWallet, tgt: MoneroTxWallet) -> MoneroTxQuery: - ... - @typing.overload - def copy(self, src: MoneroTx, tgt: MoneroTx) -> MoneroTxQuery: # type: ignore + @typing.override + def copy(self) -> MoneroTxQuery: ... def meets_criteria(self, tx: MoneroTxWallet, query_children: bool = False) -> bool: ... diff --git a/src/python/monero_tx_wallet.pyi b/src/python/monero_tx_wallet.pyi index deae9f6..caf9b51 100644 --- a/src/python/monero_tx_wallet.pyi +++ b/src/python/monero_tx_wallet.pyi @@ -42,11 +42,8 @@ class MoneroTxWallet(MoneroTx): """The transaction set""" def __init__(self) -> None: ... - @typing.overload - def copy(self, src: MoneroTxWallet, tgt: MoneroTxWallet) -> MoneroTxWallet: - ... - @typing.overload - def copy(self, src: MoneroTx, tgt: MoneroTx) -> MoneroTxWallet: + @typing.override + def copy(self) -> MoneroTxWallet: ... def filter_outputs_wallet(self, query: MoneroOutputQuery) -> list[MoneroOutputWallet]: ... @@ -65,8 +62,8 @@ class MoneroTxWallet(MoneroTx): def get_transfers(self, query: MoneroTransferQuery) -> list[MoneroTransfer]: ... @typing.overload - def merge(self, _self: MoneroTxWallet, tgt: MoneroTxWallet) -> None: + def merge(self, tgt: MoneroTxWallet) -> None: ... @typing.overload - def merge(self, _self: MoneroTx, tgt: MoneroTx) -> None: # type: ignore + def merge(self, tgt: MoneroTx) -> None: # type: ignore ... diff --git a/tests/test_monero_wallet_common.py b/tests/test_monero_wallet_common.py index 2abfeba..177cad5 100644 --- a/tests/test_monero_wallet_common.py +++ b/tests/test_monero_wallet_common.py @@ -11,7 +11,10 @@ MoneroTxConfig, MoneroDestination, MoneroRpcConnection, MoneroError, MoneroKeyImage, MoneroTxQuery, MoneroUtils, MoneroWalletFull ) -from utils import TestUtils, WalletEqualityUtils, MiningUtils, OsUtils +from utils import ( + TestUtils, WalletEqualityUtils, MiningUtils, + OsUtils, StringUtils +) logger: logging.Logger = logging.getLogger("TestMoneroWalletCommon") @@ -359,7 +362,7 @@ def test_get_path(self) -> None: # set a random attribute #String uuid = UUID.randomUUID().toString() - uuid = TestUtils.get_random_string() + uuid = StringUtils.get_random_string() wallet.set_attribute("uuid", uuid) # record the wallet's path then save and close @@ -699,7 +702,7 @@ def test_create_account_with_label(self): wallet = self._wallet # create account with label accounts_before = wallet.get_accounts() - label = TestUtils.get_random_string() + label = StringUtils.get_random_string() created_account = wallet.create_account(label) TestUtils.test_account(created_account) assert created_account.index is not None @@ -728,7 +731,7 @@ def test_set_account_label(self): wallet.create_account() # set account label - label = TestUtils.get_random_string() + label = StringUtils.get_random_string() wallet.set_account_label(1, label) assert label == wallet.get_subaddress(1, 0).label @@ -817,7 +820,7 @@ def test_create_subaddress(self): # create subaddress with label subaddresses = wallet.get_subaddresses(account_idx) - uuid = TestUtils.get_random_string() + uuid = StringUtils.get_random_string() subaddress = wallet.create_subaddress(account_idx, uuid) assert (uuid == subaddress.label) TestUtils.test_subaddress(subaddress) @@ -836,18 +839,20 @@ def test_set_subaddress_label(self): # set subaddress labels subaddress_idx = 0 while subaddress_idx < len(wallet.get_subaddresses(0)): - label = TestUtils.get_random_string() + label = StringUtils.get_random_string() wallet.set_subaddress_label(0, subaddress_idx, label) assert label == wallet.get_subaddress(0, subaddress_idx).label subaddress_idx += 1 + #region Txs Tests + @pytest.mark.skipif(TestUtils.TEST_NON_RELAYS is False, reason="TEST_NON_RELAYS disabled") def test_set_tx_note(self) -> None: wallet = self._wallet txs = TestUtils.get_random_transactions(wallet, None, 1, 5) # set notes - uuid = TestUtils.get_random_string() + uuid = StringUtils.get_random_string() i: int = 0 while i < len(txs): @@ -868,7 +873,7 @@ def test_set_tx_note(self) -> None: def test_set_tx_notes(self): wallet = self._wallet # set tx notes - uuid = TestUtils.get_random_string() + uuid = StringUtils.get_random_string() txs = wallet.get_txs() assert len(txs) >= 3, "Test requires 3 or more wallet transactions run send tests" tx_hashes: list[str] = [] @@ -890,6 +895,8 @@ def test_set_tx_notes(self): # TODO: test that get transaction has note + #endregion + @pytest.mark.skipif(TestUtils.TEST_NON_RELAYS is False, reason="TEST_NON_RELAYS disabled") def test_export_key_images(self): wallet = self._wallet @@ -1064,7 +1071,7 @@ def test_save_and_close(self) -> None: path: str = wallet.get_path() # set an attribute - uuid: str = TestUtils.get_random_string() + uuid: str = StringUtils.get_random_string() wallet.set_attribute("id", uuid) # close the wallet without saving diff --git a/tests/test_monero_wallet_full.py b/tests/test_monero_wallet_full.py index 847d74b..06916c8 100644 --- a/tests/test_monero_wallet_full.py +++ b/tests/test_monero_wallet_full.py @@ -8,7 +8,7 @@ MoneroSubaddress, MoneroDaemonRpc, MoneroWallet ) -from utils import TestUtils as Utils, OsUtils +from utils import TestUtils as Utils, OsUtils, StringUtils from test_monero_wallet_common import BaseTestMoneroWallet logger: logging.Logger = logging.getLogger("TestMoneroWalletFull") @@ -29,7 +29,7 @@ def _create_wallet(self, config: Optional[MoneroWalletConfig], start_syncing: bo config = MoneroWalletConfig() random: bool = self.is_random_wallet_config(config) if config.path is None: - config.path = Utils.TEST_WALLETS_DIR + "/" + Utils.get_random_string() + config.path = Utils.TEST_WALLETS_DIR + "/" + StringUtils.get_random_string() if config.password is None: config.password = Utils.WALLET_PASSWORD if config.network_type is None: @@ -120,7 +120,7 @@ def test_create_subaddress(self): # create subaddress with label subaddresses = self._wallet.get_subaddresses(account_idx) - uuid: str = Utils.get_random_string() + uuid: str = StringUtils.get_random_string() subaddress = self._wallet.create_subaddress(account_idx, uuid) Utils.assert_equals(uuid, subaddress.label) Utils.test_subaddress(subaddress) diff --git a/tests/utils/string_utils.py b/tests/utils/string_utils.py index 08067ae..630c470 100644 --- a/tests/utils/string_utils.py +++ b/tests/utils/string_utils.py @@ -1,4 +1,5 @@ from abc import ABC +from secrets import token_hex class StringUtils(ABC): @@ -11,3 +12,7 @@ def get_percentage(cls, n: int, m: int, precision: int = 2) -> str: @classmethod def get_percentage_float(cls, n: float, precision: int = 2) -> str: return f"{round(n, precision)}%" + + @classmethod + def get_random_string(cls, n: int = 25) -> str: + return token_hex(n) diff --git a/tests/utils/test_utils.py b/tests/utils/test_utils.py index 9fd62df..fd26134 100644 --- a/tests/utils/test_utils.py +++ b/tests/utils/test_utils.py @@ -6,7 +6,6 @@ from time import sleep, time from os.path import exists as path_exists from os import makedirs, getenv -from secrets import token_hex from configparser import ConfigParser from monero import ( MoneroNetworkType, MoneroTx, MoneroUtils, MoneroWalletFull, MoneroRpcConnection, @@ -24,6 +23,7 @@ from .tx_context import TxContext from .binary_block_context import BinaryBlockContext from .os_utils import OsUtils +from .string_utils import StringUtils logger: logging.Logger = logging.getLogger("TestUtils") @@ -279,10 +279,6 @@ def assert_is(cls, expr: Any, what: Any, message: str = "assertion failed"): def assert_not_supported(cls, error: Any) -> None: assert "not supported" in str(error), f"Expected not supported method: {error}" - @classmethod - def get_random_string(cls, n: int = 25) -> str: - return token_hex(n) - @classmethod def get_wallets(cls, wallet_type: str) -> list[MoneroWallet]: raise NotImplementedError() @@ -457,7 +453,7 @@ def create_wallet_rpc(cls, c: Optional[MoneroWalletConfig]) -> MoneroWalletRpc: random = config.seed is None and config.primary_address is None if config.path is None: - config.path = TestUtils.get_random_string() + config.path = StringUtils.get_random_string() if config.password is None: config.password = TestUtils.WALLET_PASSWORD diff --git a/tests/utils/wallet_tx_tracker.py b/tests/utils/wallet_tx_tracker.py index ef73a22..f551b3c 100644 --- a/tests/utils/wallet_tx_tracker.py +++ b/tests/utils/wallet_tx_tracker.py @@ -79,7 +79,7 @@ def wait_for_wallet_txs_to_clear_pool( def wait_for_unlocked_balance( self, daemon: MoneroDaemon, sync_period_ms: int, wallet: MoneroWallet, - account_index: int, subaddress_index: int | None, min_amount: int | None = None + account_index: int, subaddress_index: int | None = None, min_amount: int | None = None ) -> int: if min_amount is None: min_amount = 0