diff options
93 files changed, 11194 insertions, 4978 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 730a0f875..f0be28845 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) include(CheckLinkerFlag) include(CheckLibraryExists) +include(CheckFunctionExists) if (IOS) INCLUDE(CmakeLists_IOS.txt) @@ -80,6 +81,22 @@ function (add_linker_flag_if_supported flag var) endif() endfunction() +function (add_definition_if_function_found function var) + string(REPLACE "-" "_" supported ${function}_function) + check_function_exists(${function} ${supported}) + if(${${supported}}) + add_definitions("-D${var}") + endif() +endfunction() + +function (add_definition_if_library_exists library function header var) + string(REPLACE "-" "_" supported ${function}_library) + check_library_exists(${library} ${function} ${header} ${supported}) + if(${${supported}}) + add_definitions("-D${var}") + endif() +endfunction() + if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE) message(STATUS "Setting default build type: ${CMAKE_BUILD_TYPE}") @@ -395,6 +412,10 @@ if(STATIC AND NOT IOS) endif() endif() +add_definition_if_library_exists(c memset_s "string.h" HAVE_MEMSET_S) +add_definition_if_library_exists(c explicit_bzero "strings.h" HAVE_EXPLICIT_BZERO) +add_definition_if_function_found(strptime HAVE_STRPTIME) + add_definitions(-DAUTO_INITIALIZE_EASYLOGGINGPP) # Generate header for embedded translations @@ -867,10 +888,3 @@ option(INSTALL_VENDORED_LIBUNBOUND "Install libunbound binary built from source CHECK_C_COMPILER_FLAG(-std=c11 HAVE_C11) - -include(CheckLibraryExists) -include(CheckFunctionExists) - -check_library_exists(c memset_s "string.h" HAVE_MEMSET_S) -check_library_exists(c explicit_bzero "strings.h" HAVE_EXPLICIT_BZERO) -check_function_exists(strptime HAVE_STRPTIME) diff --git a/Dockerfile b/Dockerfile index 138dec4c7..f5d670633 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,16 +8,83 @@ RUN apt-get update && \ ca-certificates \ cmake \ g++ \ - libboost1.58-all-dev \ - libssl-dev \ - libzmq3-dev \ - libreadline-dev \ - libsodium-dev \ make \ pkg-config \ graphviz \ doxygen \ - git + git \ + curl \ + libtool-bin \ + autoconf \ + automake + +WORKDIR /usr/local + +## Boost +ARG BOOST_VERSION=1_66_0 +ARG BOOST_VERSION_DOT=1.66.0 +ARG BOOST_HASH=5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9 +RUN curl -s -L -o boost_${BOOST_VERSION}.tar.bz2 https://sourceforge.net/projects/boost/files/boost/${BOOST_VERSION_DOT}/boost_${BOOST_VERSION}.tar.bz2/download \ + && echo "${BOOST_HASH} boost_${BOOST_VERSION}.tar.bz2" | sha256sum -c \ + && tar -xvf boost_${BOOST_VERSION}.tar.bz2 \ + && cd boost_${BOOST_VERSION} \ + && ./bootstrap.sh \ + && ./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread threading=multi threadapi=pthread cflags="-fPIC" cxxflags="-fPIC" stage +ENV BOOST_ROOT /usr/local/boost_${BOOST_VERSION} + +# OpenSSL +ARG OPENSSL_VERSION=1.0.2n +ARG OPENSSL_HASH=370babb75f278c39e0c50e8c4e7493bc0f18db6867478341a832a982fd15a8fe +RUN curl -s -O https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \ + && echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \ + && tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \ + && cd openssl-${OPENSSL_VERSION} \ + && ./Configure linux-x86_64 no-shared --static -fPIC \ + && make build_crypto build_ssl \ + && make install +ENV OPENSSL_ROOT_DIR=/usr/local/openssl-${OPENSSL_VERSION} + +# ZMQ +ARG ZMQ_VERSION=v4.2.3 +ARG ZMQ_HASH=3226b8ebddd9c6c738ba42986822c26418a49afb +RUN git clone https://github.com/zeromq/libzmq.git -b ${ZMQ_VERSION} \ + && cd libzmq \ + && test `git rev-parse HEAD` = ${ZMQ_HASH} || exit 1 \ + && ./autogen.sh \ + && CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure --enable-static --disable-shared \ + && make \ + && make install \ + && ldconfig + +# zmq.hpp +ARG CPPZMQ_HASH=6aa3ab686e916cb0e62df7fa7d12e0b13ae9fae6 +RUN git clone https://github.com/zeromq/cppzmq.git -b ${ZMQ_VERSION} \ + && cd cppzmq \ + && test `git rev-parse HEAD` = ${CPPZMQ_HASH} || exit 1 \ + && mv *.hpp /usr/local/include + +# Readline +ARG READLINE_VERSION=7.0 +ARG READLINE_HASH=750d437185286f40a369e1e4f4764eda932b9459b5ec9a731628393dd3d32334 +RUN curl -s -O https://ftp.gnu.org/gnu/readline/readline-${READLINE_VERSION}.tar.gz \ + && echo "${READLINE_HASH} readline-${READLINE_VERSION}.tar.gz" | sha256sum -c \ + && tar -xzf readline-${READLINE_VERSION}.tar.gz \ + && cd readline-${READLINE_VERSION} \ + && CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure \ + && make \ + && make install + +# Sodium +ARG SODIUM_VERSION=1.0.16 +ARG SODIUM_HASH=675149b9b8b66ff44152553fb3ebf9858128363d +RUN git clone https://github.com/jedisct1/libsodium.git -b ${SODIUM_VERSION} \ + && cd libsodium \ + && test `git rev-parse HEAD` = ${SODIUM_HASH} || exit 1 \ + && ./autogen.sh \ + && CFLAGS="-fPIC" CXXFLAGS="-fPIC" ./configure \ + && make \ + && make check \ + && make install WORKDIR /src COPY . . @@ -251,7 +251,7 @@ Tested on a Raspberry Pi Zero with a clean install of minimal Raspbian Stretch ( ``` git clone https://github.com/monero-project/monero.git cd monero - git checkout tags/v0.11.0.0 + git checkout tags/v0.11.1.0 ``` * Build: ``` diff --git a/contrib/epee/include/misc_os_dependent.h b/contrib/epee/include/misc_os_dependent.h index 99690b301..ffe575501 100644 --- a/contrib/epee/include/misc_os_dependent.h +++ b/contrib/epee/include/misc_os_dependent.h @@ -75,13 +75,13 @@ namespace misc_utils clock_get_time(cclock, &mts); mach_port_deallocate(mach_task_self(), cclock); - return (mts.tv_sec * 1000000000) + (mts.tv_nsec); + return ((uint64_t)mts.tv_sec * 1000000000) + (mts.tv_nsec); #else struct timespec ts; if(clock_gettime(CLOCK_MONOTONIC, &ts) != 0) { return 0; } - return (ts.tv_sec * 1000000000) + (ts.tv_nsec); + return ((uint64_t)ts.tv_sec * 1000000000) + (ts.tv_nsec); #endif } diff --git a/contrib/epee/include/net/abstract_tcp_server2.h b/contrib/epee/include/net/abstract_tcp_server2.h index c0401c8b0..ccde928ba 100644 --- a/contrib/epee/include/net/abstract_tcp_server2.h +++ b/contrib/epee/include/net/abstract_tcp_server2.h @@ -207,7 +207,7 @@ namespace net_utils bool connect(const std::string& adr, const std::string& port, uint32_t conn_timeot, t_connection_context& cn, const std::string& bind_ip = "0.0.0.0"); template<class t_callback> - bool connect_async(const std::string& adr, const std::string& port, uint32_t conn_timeot, t_callback cb, const std::string& bind_ip = "0.0.0.0"); + bool connect_async(const std::string& adr, const std::string& port, uint32_t conn_timeot, const t_callback &cb, const std::string& bind_ip = "0.0.0.0"); typename t_protocol_handler::config_type& get_config_object(){return m_config;} diff --git a/contrib/epee/include/net/abstract_tcp_server2.inl b/contrib/epee/include/net/abstract_tcp_server2.inl index 870f6c2b2..195ee2f0c 100644 --- a/contrib/epee/include/net/abstract_tcp_server2.inl +++ b/contrib/epee/include/net/abstract_tcp_server2.inl @@ -935,6 +935,9 @@ POP_WARNINGS boost::bind(&boosted_tcp_server<t_protocol_handler>::handle_accept, this, boost::asio::placeholders::error)); + boost::asio::socket_base::keep_alive opt(true); + conn->socket().set_option(opt); + conn->start(true, 1 < m_threads_count); conn->save_dbg_log(); }else @@ -1055,7 +1058,7 @@ POP_WARNINGS } //--------------------------------------------------------------------------------- template<class t_protocol_handler> template<class t_callback> - bool boosted_tcp_server<t_protocol_handler>::connect_async(const std::string& adr, const std::string& port, uint32_t conn_timeout, t_callback cb, const std::string& bind_ip) + bool boosted_tcp_server<t_protocol_handler>::connect_async(const std::string& adr, const std::string& port, uint32_t conn_timeout, const t_callback &cb, const std::string& bind_ip) { TRY_ENTRY(); connection_ptr new_connection_l(new connection<t_protocol_handler>(io_service_, m_config, m_sock_count, m_sock_number, m_pfilter, m_connection_type) ); diff --git a/contrib/epee/include/net/levin_protocol_handler_async.h b/contrib/epee/include/net/levin_protocol_handler_async.h index ee64da5d8..0b1fe05fa 100644 --- a/contrib/epee/include/net/levin_protocol_handler_async.h +++ b/contrib/epee/include/net/levin_protocol_handler_async.h @@ -77,6 +77,8 @@ class async_protocol_handler_config levin_commands_handler<t_connection_context>* m_pcommands_handler; void (*m_pcommands_handler_destroy)(levin_commands_handler<t_connection_context>*); + void delete_connections (size_t count, bool incoming); + public: typedef t_connection_context connection_context; uint64_t m_max_packet_size; @@ -84,16 +86,16 @@ public: int invoke(int command, const std::string& in_buff, std::string& buff_out, boost::uuids::uuid connection_id); template<class callback_t> - int invoke_async(int command, const std::string& in_buff, boost::uuids::uuid connection_id, callback_t cb, size_t timeout = LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED); + int invoke_async(int command, const std::string& in_buff, boost::uuids::uuid connection_id, const callback_t &cb, size_t timeout = LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED); int notify(int command, const std::string& in_buff, boost::uuids::uuid connection_id); bool close(boost::uuids::uuid connection_id); bool update_connection_context(const t_connection_context& contxt); bool request_callback(boost::uuids::uuid connection_id); template<class callback_t> - bool foreach_connection(callback_t cb); + bool foreach_connection(const callback_t &cb); template<class callback_t> - bool for_connection(const boost::uuids::uuid &connection_id, callback_t cb); + bool for_connection(const boost::uuids::uuid &connection_id, const callback_t &cb); size_t get_connections_count(); void set_handler(levin_commands_handler<t_connection_context>* handler, void (*destroy)(levin_commands_handler<t_connection_context>*) = NULL); @@ -101,6 +103,7 @@ public: {} ~async_protocol_handler_config() { set_handler(NULL, NULL); } void del_out_connections(size_t count); + void del_in_connections(size_t count); }; @@ -245,7 +248,7 @@ public: std::list<boost::shared_ptr<invoke_response_handler_base> > m_invoke_response_handlers; template<class callback_t> - bool add_invoke_response_handler(callback_t cb, uint64_t timeout, async_protocol_handler& con, int command) + bool add_invoke_response_handler(const callback_t &cb, uint64_t timeout, async_protocol_handler& con, int command) { CRITICAL_REGION_LOCAL(m_invoke_response_handlers_lock); boost::shared_ptr<invoke_response_handler_base> handler(boost::make_shared<anvoke_handler<callback_t>>(cb, timeout, con, command)); @@ -529,7 +532,7 @@ public: } template<class callback_t> - bool async_invoke(int command, const std::string& in_buff, callback_t cb, size_t timeout = LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED) + bool async_invoke(int command, const std::string& in_buff, const callback_t &cb, size_t timeout = LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED) { misc_utils::auto_scope_leave_caller scope_exit_handler = misc_utils::create_scope_leave_handler( boost::bind(&async_protocol_handler::finish_outer_call, this)); @@ -731,41 +734,50 @@ void async_protocol_handler_config<t_connection_context>::del_connection(async_p } //------------------------------------------------------------------------------------------ template<class t_connection_context> +void async_protocol_handler_config<t_connection_context>::delete_connections(size_t count, bool incoming) +{ + std::vector <boost::uuids::uuid> connections; + CRITICAL_REGION_BEGIN(m_connects_lock); + for (auto& c: m_connects) + { + if (c.second->m_connection_context.m_is_income == incoming) + connections.push_back(c.first); + } + + // close random connections from the provided set + // TODO or better just keep removing random elements (performance) + unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); + shuffle(connections.begin(), connections.end(), std::default_random_engine(seed)); + while (count > 0 && connections.size() > 0) + { + try + { + auto i = connections.end() - 1; + async_protocol_handler<t_connection_context> *conn = m_connects.at(*i); + del_connection(conn); + close(*i); + connections.erase(i); + } + catch (const std::out_of_range &e) + { + MWARNING("Connection not found in m_connects, continuing"); + } + --count; + } + + CRITICAL_REGION_END(); +} +//------------------------------------------------------------------------------------------ +template<class t_connection_context> void async_protocol_handler_config<t_connection_context>::del_out_connections(size_t count) { - std::vector <boost::uuids::uuid> out_connections; - CRITICAL_REGION_BEGIN(m_connects_lock); - for (auto& c: m_connects) - { - if (!c.second->m_connection_context.m_is_income) - out_connections.push_back(c.first); - } - - if (out_connections.size() == 0) - return; - - // close random out connections - // TODO or better just keep removing random elements (performance) - unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); - shuffle(out_connections.begin(), out_connections.end(), std::default_random_engine(seed)); - while (count > 0 && out_connections.size() > 0) - { - try - { - auto i = out_connections.end() - 1; - async_protocol_handler<t_connection_context> *conn = m_connects.at(*i); - del_connection(conn); - close(*i); - out_connections.erase(i); - } - catch (const std::out_of_range &e) - { - MWARNING("Connection not found in m_connects, continuing"); - } - --count; - } - - CRITICAL_REGION_END(); + delete_connections(count, false); +} +//------------------------------------------------------------------------------------------ +template<class t_connection_context> +void async_protocol_handler_config<t_connection_context>::del_in_connections(size_t count) +{ + delete_connections(count, true); } //------------------------------------------------------------------------------------------ template<class t_connection_context> @@ -805,7 +817,7 @@ int async_protocol_handler_config<t_connection_context>::invoke(int command, con } //------------------------------------------------------------------------------------------ template<class t_connection_context> template<class callback_t> -int async_protocol_handler_config<t_connection_context>::invoke_async(int command, const std::string& in_buff, boost::uuids::uuid connection_id, callback_t cb, size_t timeout) +int async_protocol_handler_config<t_connection_context>::invoke_async(int command, const std::string& in_buff, boost::uuids::uuid connection_id, const callback_t &cb, size_t timeout) { async_protocol_handler<t_connection_context>* aph; int r = find_and_lock_connection(connection_id, aph); @@ -813,7 +825,7 @@ int async_protocol_handler_config<t_connection_context>::invoke_async(int comman } //------------------------------------------------------------------------------------------ template<class t_connection_context> template<class callback_t> -bool async_protocol_handler_config<t_connection_context>::foreach_connection(callback_t cb) +bool async_protocol_handler_config<t_connection_context>::foreach_connection(const callback_t &cb) { CRITICAL_REGION_LOCAL(m_connects_lock); for(auto& c: m_connects) @@ -826,7 +838,7 @@ bool async_protocol_handler_config<t_connection_context>::foreach_connection(cal } //------------------------------------------------------------------------------------------ template<class t_connection_context> template<class callback_t> -bool async_protocol_handler_config<t_connection_context>::for_connection(const boost::uuids::uuid &connection_id, callback_t cb) +bool async_protocol_handler_config<t_connection_context>::for_connection(const boost::uuids::uuid &connection_id, const callback_t &cb) { CRITICAL_REGION_LOCAL(m_connects_lock); async_protocol_handler<t_connection_context>* aph = find_connection(connection_id); diff --git a/contrib/epee/include/storages/http_abstract_invoke.h b/contrib/epee/include/storages/http_abstract_invoke.h index 6517f1253..d93084ab0 100644 --- a/contrib/epee/include/storages/http_abstract_invoke.h +++ b/contrib/epee/include/storages/http_abstract_invoke.h @@ -115,7 +115,7 @@ namespace epee } if(resp_t.error.code || resp_t.error.message.size()) { - LOG_ERROR("RPC call of \"" << method_name << "\" returned error: " << resp_t.error.code << ", message: " << resp_t.error.message); + LOG_ERROR("RPC call of \"" << req_t.method << "\" returned error: " << resp_t.error.code << ", message: " << resp_t.error.message); return false; } result_struct = resp_t.result; diff --git a/contrib/epee/include/storages/levin_abstract_invoke2.h b/contrib/epee/include/storages/levin_abstract_invoke2.h index b4f7abca8..d77e7a1f8 100644 --- a/contrib/epee/include/storages/levin_abstract_invoke2.h +++ b/contrib/epee/include/storages/levin_abstract_invoke2.h @@ -108,7 +108,7 @@ namespace epee } template<class t_result, class t_arg, class callback_t, class t_transport> - bool async_invoke_remote_command2(boost::uuids::uuid conn_id, int command, const t_arg& out_struct, t_transport& transport, callback_t cb, size_t inv_timeout = LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED) + bool async_invoke_remote_command2(boost::uuids::uuid conn_id, int command, const t_arg& out_struct, t_transport& transport, const callback_t &cb, size_t inv_timeout = LEVIN_DEFAULT_TIMEOUT_PRECONFIGURED) { typename serialization::portable_storage stg; const_cast<t_arg&>(out_struct).store(stg);//TODO: add true const support to searilzation diff --git a/contrib/epee/include/wipeable_string.h b/contrib/epee/include/wipeable_string.h index d120112a6..70d1a9586 100644 --- a/contrib/epee/include/wipeable_string.h +++ b/contrib/epee/include/wipeable_string.h @@ -58,13 +58,10 @@ namespace epee wipeable_string &operator=(wipeable_string &&other); wipeable_string &operator=(const wipeable_string &other); - static void set_wipe(void *(*f)(void*, size_t)) { wipefunc = f; } - private: void grow(size_t sz, size_t reserved = 0); private: std::vector<char> buffer; - static void *(*wipefunc)(void*, size_t); }; } diff --git a/contrib/epee/src/memwipe.c b/contrib/epee/src/memwipe.c index 870c69757..e3a2f76c8 100644 --- a/contrib/epee/src/memwipe.c +++ b/contrib/epee/src/memwipe.c @@ -31,6 +31,8 @@ #define __STDC_WANT_LIB_EXT1__ 1 #include <string.h> #include <stdlib.h> +#include <stdio.h> +#include <unistd.h> #ifdef HAVE_EXPLICIT_BZERO #include <strings.h> #endif @@ -50,7 +52,12 @@ void *memwipe(void *ptr, size_t n) { if (memset_s(ptr, n, 0, n)) { +#ifdef NDEBUG + fprintf(stderr, "Error: memset_s failed\n"); + _exit(1); +#else abort(); +#endif } SCARECROW // might as well... return ptr; diff --git a/contrib/epee/src/wipeable_string.cpp b/contrib/epee/src/wipeable_string.cpp index 5671ed9d9..cc43b8988 100644 --- a/contrib/epee/src/wipeable_string.cpp +++ b/contrib/epee/src/wipeable_string.cpp @@ -27,14 +27,13 @@ // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include <string.h> +#include "memwipe.h" #include "misc_log_ex.h" #include "wipeable_string.h" namespace epee { -void *(*wipeable_string::wipefunc)(void*, size_t) = NULL; - wipeable_string::wipeable_string(const wipeable_string &other): buffer(other.buffer) { @@ -55,12 +54,11 @@ wipeable_string::wipeable_string(const std::string &other) wipeable_string::wipeable_string(std::string &&other) { - CHECK_AND_ASSERT_THROW_MES(wipefunc, "wipefunc is not set"); grow(other.size()); memcpy(buffer.data(), other.c_str(), size()); if (!other.empty()) { - wipefunc(&other[0], other.size()); // we're kinda left with this again aren't we + memwipe(&other[0], other.size()); // we're kinda left with this again aren't we other = std::string(); } } @@ -78,30 +76,28 @@ wipeable_string::~wipeable_string() void wipeable_string::wipe() { - CHECK_AND_ASSERT_THROW_MES(wipefunc, "wipefunc is not set"); - wipefunc(buffer.data(), buffer.size() * sizeof(char)); + memwipe(buffer.data(), buffer.size() * sizeof(char)); } void wipeable_string::grow(size_t sz, size_t reserved) { - CHECK_AND_ASSERT_THROW_MES(wipefunc, "wipefunc is not set"); if (reserved < sz) reserved = sz; if (reserved <= buffer.capacity()) { if (sz < buffer.size()) - wipefunc(buffer.data() + sz, buffer.size() - sz); + memwipe(buffer.data() + sz, buffer.size() - sz); buffer.resize(sz); return; } size_t old_sz = buffer.size(); std::unique_ptr<char[]> tmp{new char[old_sz]}; memcpy(tmp.get(), buffer.data(), old_sz * sizeof(char)); - wipefunc(buffer.data(), old_sz * sizeof(char)); + memwipe(buffer.data(), old_sz * sizeof(char)); buffer.reserve(reserved); buffer.resize(sz); memcpy(buffer.data(), tmp.get(), old_sz * sizeof(char)); - wipefunc(tmp.get(), old_sz * sizeof(char)); + memwipe(tmp.get(), old_sz * sizeof(char)); } void wipeable_string::push_back(char c) diff --git a/external/db_drivers/liblmdb/mdb.c b/external/db_drivers/liblmdb/mdb.c index 87b244ce7..bb0420453 100644 --- a/external/db_drivers/liblmdb/mdb.c +++ b/external/db_drivers/liblmdb/mdb.c @@ -1635,7 +1635,11 @@ mdb_assert_fail(MDB_env *env, const char *expr_txt, if (env->me_assert_func) env->me_assert_func(env, buf); fprintf(stderr, "%s\n", buf); +#ifdef NDEBUG + _exit(); +#else abort(); +#endif } #else # define mdb_assert0(env, expr, expr_txt) ((void) 0) diff --git a/external/easylogging++/easylogging++.cc b/external/easylogging++/easylogging++.cc index 57742b2e5..212a1822d 100644 --- a/external/easylogging++/easylogging++.cc +++ b/external/easylogging++/easylogging++.cc @@ -17,6 +17,8 @@ #define EASYLOGGING_CC #include "easylogging++.h" +#include <unistd.h> + #if defined(AUTO_INITIALIZE_EASYLOGGINGPP) INITIALIZE_EASYLOGGINGPP #endif @@ -36,7 +38,11 @@ static void abort(int status, const std::string& reason) { // Ignore msvc critical error dialog - break instead (on debug mode) _asm int 3 #else +#ifdef NDEBUG + ::_exit(1); +#else ::abort(); +#endif #endif // defined(ELPP_COMPILER_MSVC) && defined(_M_IX86) && defined(_DEBUG) } diff --git a/src/blockchain_db/berkeleydb/db_bdb.cpp b/src/blockchain_db/berkeleydb/db_bdb.cpp index f540ce133..3a66ecb93 100644 --- a/src/blockchain_db/berkeleydb/db_bdb.cpp +++ b/src/blockchain_db/berkeleydb/db_bdb.cpp @@ -770,13 +770,13 @@ BlockchainBDB::~BlockchainBDB() } BlockchainBDB::BlockchainBDB(bool batch_transactions) : + BlockchainDB(), m_buffer(DB_BUFFER_COUNT, DB_BUFFER_LENGTH) { LOG_PRINT_L3("BlockchainBDB::" << __func__); // initialize folder to something "safe" just in case // someone accidentally misuses this class... m_folder = "thishsouldnotexistbecauseitisgibberish"; - m_open = false; m_run_checkpoint = 0; m_batch_transactions = batch_transactions; m_write_txn = nullptr; diff --git a/src/blockchain_db/blockchain_db.h b/src/blockchain_db/blockchain_db.h index 227169614..cce288793 100644 --- a/src/blockchain_db/blockchain_db.h +++ b/src/blockchain_db/blockchain_db.h @@ -538,6 +538,11 @@ protected: public: /** + * @brief An empty constructor. + */ + BlockchainDB(): m_open(false) { } + + /** * @brief An empty destructor. */ virtual ~BlockchainDB() { }; diff --git a/src/blockchain_db/lmdb/db_lmdb.cpp b/src/blockchain_db/lmdb/db_lmdb.cpp index 6b81a4c90..fd8aad31d 100644 --- a/src/blockchain_db/lmdb/db_lmdb.cpp +++ b/src/blockchain_db/lmdb/db_lmdb.cpp @@ -338,6 +338,12 @@ mdb_txn_safe::~mdb_txn_safe() num_active_txns--; } +void mdb_txn_safe::uncheck() +{ + num_active_txns--; + m_check = false; +} + void mdb_txn_safe::commit(std::string message) { if (message.size() == 0) @@ -1074,13 +1080,12 @@ BlockchainLMDB::~BlockchainLMDB() close(); } -BlockchainLMDB::BlockchainLMDB(bool batch_transactions) +BlockchainLMDB::BlockchainLMDB(bool batch_transactions): BlockchainDB() { LOG_PRINT_L3("BlockchainLMDB::" << __func__); // initialize folder to something "safe" just in case // someone accidentally misuses this class... m_folder = "thishsouldnotexistbecauseitisgibberish"; - m_open = false; m_batch_transactions = batch_transactions; m_write_txn = nullptr; @@ -1439,9 +1444,10 @@ void BlockchainLMDB::unlock() #define TXN_PREFIX_RDONLY() \ MDB_txn *m_txn; \ mdb_txn_cursors *m_cursors; \ + mdb_txn_safe auto_txn; \ bool my_rtxn = block_rtxn_start(&m_txn, &m_cursors); \ - mdb_txn_safe auto_txn(my_rtxn); \ - if (my_rtxn) auto_txn.m_tinfo = m_tinfo.get() + if (my_rtxn) auto_txn.m_tinfo = m_tinfo.get(); \ + else auto_txn.uncheck() #define TXN_POSTFIX_RDONLY() #define TXN_POSTFIX_SUCCESS() \ @@ -3140,8 +3146,12 @@ void BlockchainLMDB::drop_hard_fork_info() TXN_PREFIX(0); - mdb_drop(*txn_ptr, m_hf_starting_heights, 1); - mdb_drop(*txn_ptr, m_hf_versions, 1); + auto result = mdb_drop(*txn_ptr, m_hf_starting_heights, 1); + if (result) + throw1(DB_ERROR(lmdb_error("Error dropping hard fork starting heights db: ", result).c_str())); + result = mdb_drop(*txn_ptr, m_hf_versions, 1); + if (result) + throw1(DB_ERROR(lmdb_error("Error dropping hard fork versions db: ", result).c_str())); TXN_POSTFIX_SUCCESS(); } diff --git a/src/blockchain_db/lmdb/db_lmdb.h b/src/blockchain_db/lmdb/db_lmdb.h index ceae2f084..1b76abf35 100644 --- a/src/blockchain_db/lmdb/db_lmdb.h +++ b/src/blockchain_db/lmdb/db_lmdb.h @@ -112,6 +112,7 @@ struct mdb_txn_safe // BlockchainLMDB destructor to call mdb_txn_safe destructor, as that's too late // to properly abort, since mdb_env_close would have been called earlier. void abort(); + void uncheck(); operator MDB_txn*() { diff --git a/src/blockchain_utilities/blockchain_export.cpp b/src/blockchain_utilities/blockchain_export.cpp index fcf020057..b3e11605d 100644 --- a/src/blockchain_utilities/blockchain_export.cpp +++ b/src/blockchain_utilities/blockchain_export.cpp @@ -59,7 +59,6 @@ int main(int argc, char* argv[]) tools::on_startup(); boost::filesystem::path default_data_path {tools::get_default_data_dir()}; - boost::filesystem::path default_testnet_data_path {default_data_path / "testnet"}; boost::filesystem::path output_file_path; po::options_description desc_cmd_only("Command line options"); @@ -73,8 +72,7 @@ int main(int argc, char* argv[]) const command_line::arg_descriptor<bool> arg_blocks_dat = {"blocksdat", "Output in blocks.dat format", blocks_dat}; - command_line::add_arg(desc_cmd_sett, cryptonote::arg_data_dir, default_data_path.string()); - command_line::add_arg(desc_cmd_sett, cryptonote::arg_testnet_data_dir, default_testnet_data_path.string()); + command_line::add_arg(desc_cmd_sett, cryptonote::arg_data_dir); command_line::add_arg(desc_cmd_sett, arg_output_file); command_line::add_arg(desc_cmd_sett, cryptonote::arg_testnet_on); command_line::add_arg(desc_cmd_sett, arg_log_level); @@ -118,8 +116,7 @@ int main(int argc, char* argv[]) std::string m_config_folder; - auto data_dir_arg = opt_testnet ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir; - m_config_folder = command_line::get_arg(vm, data_dir_arg); + m_config_folder = command_line::get_arg(vm, cryptonote::arg_data_dir); std::string db_type = command_line::get_arg(vm, arg_database); if (!cryptonote::blockchain_valid_db_type(db_type)) diff --git a/src/blockchain_utilities/blockchain_import.cpp b/src/blockchain_utilities/blockchain_import.cpp index ce08022fc..6195e47e7 100644 --- a/src/blockchain_utilities/blockchain_import.cpp +++ b/src/blockchain_utilities/blockchain_import.cpp @@ -671,8 +671,7 @@ int main(int argc, char* argv[]) } opt_testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on); - auto data_dir_arg = opt_testnet ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir; - m_config_folder = command_line::get_arg(vm, data_dir_arg); + m_config_folder = command_line::get_arg(vm, cryptonote::arg_data_dir); db_arg_str = command_line::get_arg(vm, arg_database); mlog_configure(mlog_get_default_log_path("monero-blockchain-import.log"), true); diff --git a/src/blockchain_utilities/blocksdat_file.cpp b/src/blockchain_utilities/blocksdat_file.cpp index 2bad86dfd..45ef33acb 100644 --- a/src/blockchain_utilities/blocksdat_file.cpp +++ b/src/blockchain_utilities/blocksdat_file.cpp @@ -106,7 +106,7 @@ void BlocksdatFile::write_block(const crypto::hash& block_hash) { crypto::hash hash; crypto::cn_fast_hash(m_hashes.data(), HASH_OF_HASHES_STEP * sizeof(crypto::hash), hash); - memmove(m_hashes.data(), m_hashes.data() + HASH_OF_HASHES_STEP * sizeof(crypto::hash), (m_hashes.size() - HASH_OF_HASHES_STEP) * sizeof(crypto::hash)); + memmove(m_hashes.data(), m_hashes.data() + HASH_OF_HASHES_STEP, (m_hashes.size() - HASH_OF_HASHES_STEP) * sizeof(crypto::hash)); m_hashes.resize(m_hashes.size() - HASH_OF_HASHES_STEP); const std::string data(hash.data, sizeof(hash)); *m_raw_data_file << data; diff --git a/src/common/command_line.h b/src/common/command_line.h index 7b183d86b..f67efcf86 100644 --- a/src/common/command_line.h +++ b/src/common/command_line.h @@ -30,7 +30,9 @@ #pragma once +#include <functional> #include <iostream> +#include <sstream> #include <type_traits> #include <boost/program_options/parsers.hpp> @@ -46,7 +48,7 @@ namespace command_line //! \return True if `str` is `is_iequal("n" || "no" || `tr("no"))`. bool is_no(const std::string& str); - template<typename T, bool required = false> + template<typename T, bool required = false, bool dependent = false> struct arg_descriptor; template<typename T> @@ -81,6 +83,22 @@ namespace command_line }; template<typename T> + struct arg_descriptor<T, false, true> + { + typedef T value_type; + + const char* name; + const char* description; + + T default_value; + + const arg_descriptor<bool, false>& ref; + std::function<T(bool, bool, T)> depf; + + bool not_use_default; + }; + + template<typename T> boost::program_options::typed_value<T, char>* make_semantic(const arg_descriptor<T, true>& /*arg*/) { return boost::program_options::value<T>()->required(); @@ -96,6 +114,20 @@ namespace command_line } template<typename T> + boost::program_options::typed_value<T, char>* make_semantic(const arg_descriptor<T, false, true>& arg) + { + auto semantic = boost::program_options::value<T>(); + if (!arg.not_use_default) { + std::ostringstream format; + format << arg.depf(false, true, arg.default_value) << ", " + << arg.depf(true, true, arg.default_value) << " if '" + << arg.ref.name << "'"; + semantic->default_value(arg.depf(arg.ref.default_value, true, arg.default_value), format.str()); + } + return semantic; + } + + template<typename T> boost::program_options::typed_value<T, char>* make_semantic(const arg_descriptor<T, false>& arg, const T& def) { auto semantic = boost::program_options::value<T>(); @@ -112,8 +144,8 @@ namespace command_line return semantic; } - template<typename T, bool required> - void add_arg(boost::program_options::options_description& description, const arg_descriptor<T, required>& arg, bool unique = true) + template<typename T, bool required, bool dependent> + void add_arg(boost::program_options::options_description& description, const arg_descriptor<T, required, dependent>& arg, bool unique = true) { if (0 != description.find_nothrow(arg.name, false)) { @@ -189,12 +221,17 @@ namespace command_line return !value.empty(); } - template<typename T, bool required> - bool is_arg_defaulted(const boost::program_options::variables_map& vm, const arg_descriptor<T, required>& arg) + template<typename T, bool required, bool dependent> + bool is_arg_defaulted(const boost::program_options::variables_map& vm, const arg_descriptor<T, required, dependent>& arg) { return vm[arg.name].defaulted(); } + template<typename T, bool required> + T get_arg(const boost::program_options::variables_map& vm, const arg_descriptor<T, required, true>& arg) + { + return arg.depf(get_arg(vm, arg.ref), is_arg_defaulted(vm, arg), vm[arg.name].template as<T>()); + } template<typename T, bool required> T get_arg(const boost::program_options::variables_map& vm, const arg_descriptor<T, required>& arg) diff --git a/src/common/dns_utils.cpp b/src/common/dns_utils.cpp index 06f127c25..1ecdae8ec 100644 --- a/src/common/dns_utils.cpp +++ b/src/common/dns_utils.cpp @@ -36,13 +36,21 @@ #include <boost/filesystem/fstream.hpp> #include <boost/thread/mutex.hpp> #include <boost/thread/thread.hpp> +#include <boost/algorithm/string/join.hpp> using namespace epee; namespace bf = boost::filesystem; #undef MONERO_DEFAULT_LOG_CATEGORY #define MONERO_DEFAULT_LOG_CATEGORY "net.dns" -#define DEFAULT_DNS_PUBLIC_ADDR "8.8.4.4" +static const char *DEFAULT_DNS_PUBLIC_ADDR[] = +{ + "194.150.168.168", // CCC (Germany) + "81.3.27.54", // Lightning Wire Labs (Germany) + "31.3.135.232", // OpenNIC (Switzerland) + "80.67.169.40", // FDN (France) + "209.58.179.186", // Cyberghost (Singapore) +}; static boost::mutex instance_lock; @@ -201,13 +209,13 @@ public: DNSResolver::DNSResolver() : m_data(new DNSResolverData()) { int use_dns_public = 0; - std::string dns_public_addr = DEFAULT_DNS_PUBLIC_ADDR; + std::vector<std::string> dns_public_addr; if (auto res = getenv("DNS_PUBLIC")) { dns_public_addr = tools::dns_utils::parse_dns_public(res); if (!dns_public_addr.empty()) { - MGINFO("Using public DNS server: " << dns_public_addr << " (TCP)"); + MGINFO("Using public DNS server(s): " << boost::join(dns_public_addr, ", ") << " (TCP)"); use_dns_public = 1; } else @@ -221,7 +229,8 @@ DNSResolver::DNSResolver() : m_data(new DNSResolverData()) if (use_dns_public) { - ub_ctx_set_fwd(m_data->m_ub_context, dns_public_addr.c_str()); + for (const auto &ip: dns_public_addr) + ub_ctx_set_fwd(m_data->m_ub_context, ip.c_str()); ub_ctx_set_option(m_data->m_ub_context, string_copy("do-udp:"), string_copy("no")); ub_ctx_set_option(m_data->m_ub_context, string_copy("do-tcp:"), string_copy("yes")); } @@ -526,15 +535,16 @@ bool load_txt_records_from_dns(std::vector<std::string> &good_records, const std return true; } -std::string parse_dns_public(const char *s) +std::vector<std::string> parse_dns_public(const char *s) { unsigned ip0, ip1, ip2, ip3; char c; - std::string dns_public_addr; + std::vector<std::string> dns_public_addr; if (!strcmp(s, "tcp")) { - dns_public_addr = DEFAULT_DNS_PUBLIC_ADDR; - LOG_PRINT_L0("Using default public DNS server: " << dns_public_addr << " (TCP)"); + for (size_t i = 0; i < sizeof(DEFAULT_DNS_PUBLIC_ADDR) / sizeof(DEFAULT_DNS_PUBLIC_ADDR[0]); ++i) + dns_public_addr.push_back(DEFAULT_DNS_PUBLIC_ADDR[i]); + LOG_PRINT_L0("Using default public DNS server(s): " << boost::join(dns_public_addr, ", ") << " (TCP)"); } else if (sscanf(s, "tcp://%u.%u.%u.%u%c", &ip0, &ip1, &ip2, &ip3, &c) == 4) { @@ -544,7 +554,7 @@ std::string parse_dns_public(const char *s) } else { - dns_public_addr = std::string(s + strlen("tcp://")); + dns_public_addr.push_back(std::string(s + strlen("tcp://"))); } } else diff --git a/src/common/dns_utils.h b/src/common/dns_utils.h index d5dc03283..f46bca3dd 100644 --- a/src/common/dns_utils.h +++ b/src/common/dns_utils.h @@ -167,7 +167,7 @@ std::string get_account_address_as_str_from_url(const std::string& url, bool& dn bool load_txt_records_from_dns(std::vector<std::string> &records, const std::vector<std::string> &dns_urls); -std::string parse_dns_public(const char *s); +std::vector<std::string> parse_dns_public(const char *s); } // namespace tools::dns_utils diff --git a/src/common/int-util.h b/src/common/int-util.h index 11e39895e..3bcc085e2 100644 --- a/src/common/int-util.h +++ b/src/common/int-util.h @@ -34,7 +34,10 @@ #include <stdbool.h> #include <stdint.h> #include <string.h> + +#ifndef _MSC_VER #include <sys/param.h> +#endif #if defined(__ANDROID__) #include <byteswap.h> @@ -206,6 +209,12 @@ static inline void memcpy_swap64(void *dst, const void *src, size_t n) { } } +#ifdef _MSC_VER +# define LITTLE_ENDIAN 1234 +# define BIG_ENDIAN 4321 +# define BYTE_ORDER LITTLE_ENDIAN +#endif + #if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN) || !defined(BIG_ENDIAN) static_assert(false, "BYTE_ORDER is undefined. Perhaps, GNU extensions are not enabled"); #endif diff --git a/src/common/password.cpp b/src/common/password.cpp index ef026c979..9336a14fc 100644 --- a/src/common/password.cpp +++ b/src/common/password.cpp @@ -42,12 +42,10 @@ #include <unistd.h> #endif -#ifdef HAVE_READLINE - #include "readline_buffer.h" -#endif - #include "memwipe.h" +#define EOT 0x4 + namespace { #if defined(_WIN32) @@ -134,7 +132,7 @@ namespace while (aPass.size() < tools::password_container::max_password_size) { int ch = getch(); - if (EOF == ch) + if (EOF == ch || ch == EOT) { return false; } @@ -229,13 +227,20 @@ namespace tools m_password.clear(); } + std::atomic<bool> password_container::is_prompting(false); + boost::optional<password_container> password_container::prompt(const bool verify, const char *message) { + is_prompting = true; password_container pass1{}; password_container pass2{}; if (is_cin_tty() ? read_from_tty(verify, message, pass1.m_password, pass2.m_password) : read_from_file(pass1.m_password)) + { + is_prompting = false; return {std::move(pass1)}; + } + is_prompting = false; return boost::none; } diff --git a/src/common/password.h b/src/common/password.h index 7c29effe4..61937b93a 100644 --- a/src/common/password.h +++ b/src/common/password.h @@ -31,6 +31,7 @@ #pragma once #include <string> +#include <atomic> #include <boost/optional/optional.hpp> #include "wipeable_string.h" @@ -49,6 +50,7 @@ namespace tools //! \return A password from stdin TTY prompt or `std::cin` pipe. static boost::optional<password_container> prompt(bool verify, const char *mesage = "Password"); + static std::atomic<bool> is_prompting; password_container(const password_container&) = delete; password_container(password_container&& rhs) = default; diff --git a/src/common/perf_timer.cpp b/src/common/perf_timer.cpp index 41e23130d..16abdfd99 100644 --- a/src/common/perf_timer.cpp +++ b/src/common/perf_timer.cpp @@ -49,16 +49,15 @@ namespace #ifdef __x86_64__ uint64_t get_ticks_per_ns() { - uint64_t t0 = epee::misc_utils::get_ns_count(); + uint64_t t0 = epee::misc_utils::get_ns_count(), t1; uint64_t r0 = get_tick_count(); while (1) { - uint64_t t = epee::misc_utils::get_ns_count(); - if (t - t0 > 1*1000000000) break; // work one second + t1 = epee::misc_utils::get_ns_count(); + if (t1 - t0 > 1*1000000000) break; // work one second } - uint64_t t1 = epee::misc_utils::get_ns_count(); uint64_t r1 = get_tick_count(); uint64_t tpns256 = 256 * (r1 - r0) / (t1 - t0); return tpns256 ? tpns256 : 1; diff --git a/src/common/rpc_client.h b/src/common/rpc_client.h index 64c84ed19..9665966ae 100644 --- a/src/common/rpc_client.h +++ b/src/common/rpc_client.h @@ -72,10 +72,10 @@ namespace tools fail_msg_writer() << "Couldn't connect to daemon: " << m_http_client.get_host() << ":" << m_http_client.get_port(); return false; } - ok = ok && epee::net_utils::invoke_http_json_rpc("/json_rpc", method_name, req, res, m_http_client, t_http_connection::TIMEOUT()); + ok = epee::net_utils::invoke_http_json_rpc("/json_rpc", method_name, req, res, m_http_client, t_http_connection::TIMEOUT()); if (!ok) { - fail_msg_writer() << "Daemon request failed"; + fail_msg_writer() << "basic_json_rpc_request: Daemon request failed"; return false; } else @@ -95,15 +95,15 @@ namespace tools t_http_connection connection(&m_http_client); bool ok = connection.is_open(); - ok = ok && epee::net_utils::invoke_http_json_rpc("/json_rpc", method_name, req, res, m_http_client, t_http_connection::TIMEOUT()); if (!ok) { fail_msg_writer() << "Couldn't connect to daemon: " << m_http_client.get_host() << ":" << m_http_client.get_port(); return false; } - else if (res.status != CORE_RPC_STATUS_OK) // TODO - handle CORE_RPC_STATUS_BUSY ? + ok = epee::net_utils::invoke_http_json_rpc("/json_rpc", method_name, req, res, m_http_client, t_http_connection::TIMEOUT()); + if (!ok || res.status != CORE_RPC_STATUS_OK) // TODO - handle CORE_RPC_STATUS_BUSY ? { - fail_msg_writer() << fail_msg << " -- " << res.status; + fail_msg_writer() << fail_msg << " -- json_rpc_request: " << res.status; return false; } else @@ -123,15 +123,15 @@ namespace tools t_http_connection connection(&m_http_client); bool ok = connection.is_open(); - ok = ok && epee::net_utils::invoke_http_json(relative_url, req, res, m_http_client, t_http_connection::TIMEOUT()); if (!ok) { fail_msg_writer() << "Couldn't connect to daemon: " << m_http_client.get_host() << ":" << m_http_client.get_port(); return false; } - else if (res.status != CORE_RPC_STATUS_OK) // TODO - handle CORE_RPC_STATUS_BUSY ? + ok = epee::net_utils::invoke_http_json(relative_url, req, res, m_http_client, t_http_connection::TIMEOUT()); + if (!ok || res.status != CORE_RPC_STATUS_OK) // TODO - handle CORE_RPC_STATUS_BUSY ? { - fail_msg_writer() << fail_msg << " -- " << res.status; + fail_msg_writer() << fail_msg << "-- rpc_request: " << res.status; return false; } else diff --git a/src/common/threadpool.cpp b/src/common/threadpool.cpp index 7fd16ceaf..51e071577 100644 --- a/src/common/threadpool.cpp +++ b/src/common/threadpool.cpp @@ -25,6 +25,7 @@ // 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. +#include "misc_log_ex.h" #include "common/threadpool.h" #include <cassert> @@ -81,6 +82,23 @@ int threadpool::get_max_concurrency() { return max; } +threadpool::waiter::~waiter() +{ + { + boost::unique_lock<boost::mutex> lock(mt); + if (num) + MERROR("wait should have been called before waiter dtor - waiting now"); + } + try + { + wait(); + } + catch (const std::exception &e) + { + /* ignored */ + } +} + void threadpool::waiter::wait() { boost::unique_lock<boost::mutex> lock(mt); while(num) cv.wait(lock); diff --git a/src/common/threadpool.h b/src/common/threadpool.h index a0e53b011..34152541c 100644 --- a/src/common/threadpool.h +++ b/src/common/threadpool.h @@ -34,6 +34,7 @@ #include <functional> #include <utility> #include <vector> +#include <stdexcept> namespace tools { @@ -57,7 +58,7 @@ public: void dec(); void wait(); //! Wait for a set of tasks to finish. waiter() : num(0){} - ~waiter() { wait(); } + ~waiter(); }; // Submit a task to the pool. The waiter pointer may be diff --git a/src/common/util.cpp b/src/common/util.cpp index 659ea31b8..e0f3cd655 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -552,8 +552,6 @@ std::string get_nix_version_display_string() } bool on_startup() { - wipeable_string::set_wipe(&memwipe); - mlog_configure("", true); sanitize_locale(); diff --git a/src/common/util.h b/src/common/util.h index 5afb42c97..d3ba47a4f 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -153,8 +153,12 @@ namespace tools } return r; #else + static struct sigaction sa; + memset(&sa, 0, sizeof(struct sigaction)); + sa.sa_handler = posix_handler; + sa.sa_flags = 0; /* Only blocks SIGINT, SIGTERM and SIGPIPE */ - signal(SIGINT, posix_handler); + sigaction(SIGINT, &sa, NULL); signal(SIGTERM, posix_handler); signal(SIGPIPE, SIG_IGN); m_handler = t; diff --git a/src/crypto/chacha.c b/src/crypto/chacha.c index f573083be..5d3edb98d 100644 --- a/src/crypto/chacha.c +++ b/src/crypto/chacha.c @@ -6,7 +6,9 @@ Public domain. #include <memory.h> #include <stdio.h> +#ifndef _MSC_VER #include <sys/param.h> +#endif #include "chacha.h" #include "common/int-util.h" diff --git a/src/crypto/crypto.cpp b/src/crypto/crypto.cpp index b28854a13..d9b8b6787 100644 --- a/src/crypto/crypto.cpp +++ b/src/crypto/crypto.cpp @@ -28,6 +28,7 @@ // // Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers +#include <unistd.h> #include <cassert> #include <cstddef> #include <cstdint> @@ -43,6 +44,18 @@ #include "crypto.h" #include "hash.h" +namespace { + static void local_abort(const char *msg) + { + fprintf(stderr, "%s\n", msg); +#ifdef NDEBUG + _exit(1); +#else + abort(); +#endif + } +} + namespace crypto { using std::abort; @@ -467,7 +480,7 @@ POP_WARNINGS ec_scalar sum, k, h; boost::shared_ptr<rs_comm> buf(reinterpret_cast<rs_comm *>(malloc(rs_comm_size(pubs_count))), free); if (!buf) - abort(); + local_abort("malloc failure"); assert(sec_index < pubs_count); #if !defined(NDEBUG) { @@ -486,7 +499,7 @@ POP_WARNINGS } #endif if (ge_frombytes_vartime(&image_unp, &image) != 0) { - abort(); + local_abort("invalid key image"); } ge_dsm_precomp(image_pre, &image_unp); sc_0(&sum); @@ -505,7 +518,7 @@ POP_WARNINGS random_scalar(sig[i].c); random_scalar(sig[i].r); if (ge_frombytes_vartime(&tmp3, &*pubs[i]) != 0) { - abort(); + local_abort("invalid pubkey"); } ge_double_scalarmult_base_vartime(&tmp2, &sig[i].c, &tmp3, &sig[i].r); ge_tobytes(&buf->ab[i].a, &tmp2); diff --git a/src/crypto/keccak.c b/src/crypto/keccak.c index fc6d487c2..de8e2a5b3 100644 --- a/src/crypto/keccak.c +++ b/src/crypto/keccak.c @@ -4,9 +4,20 @@ #include <stdio.h> #include <stdlib.h> +#include <unistd.h> #include "hash-ops.h" #include "keccak.h" +static void local_abort(const char *msg) +{ + fprintf(stderr, "%s\n", msg); +#ifdef NDEBUG + _exit(1); +#else + abort(); +#endif +} + const uint64_t keccakf_rndc[24] = { 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, @@ -81,10 +92,10 @@ void keccak(const uint8_t *in, size_t inlen, uint8_t *md, int mdlen) uint8_t temp[144]; size_t i, rsiz, rsizw; - if (mdlen <= 0 || mdlen > 200 || sizeof(st) != 200) + static_assert(HASH_DATA_AREA <= sizeof(temp), "Bad keccak preconditions"); + if (mdlen <= 0 || (mdlen > 100 && sizeof(st) != (size_t)mdlen)) { - fprintf(stderr, "Bad keccak use"); - abort(); + local_abort("Bad keccak use"); } rsiz = sizeof(state_t) == mdlen ? HASH_DATA_AREA : 200 - 2 * mdlen; @@ -99,10 +110,9 @@ void keccak(const uint8_t *in, size_t inlen, uint8_t *md, int mdlen) } // last block and padding - if (inlen >= sizeof(temp) || inlen > rsiz || rsiz - inlen + inlen + 1 >= sizeof(temp) || rsiz == 0 || rsiz - 1 >= sizeof(temp) || rsizw * 8 > sizeof(temp)) + if (inlen + 1 >= sizeof(temp) || inlen > rsiz || rsiz - inlen + inlen + 1 >= sizeof(temp) || rsiz == 0 || rsiz - 1 >= sizeof(temp) || rsizw * 8 > sizeof(temp)) { - fprintf(stderr, "Bad keccak use"); - abort(); + local_abort("Bad keccak use"); } memcpy(temp, in, inlen); diff --git a/src/crypto/oaes_lib.c b/src/crypto/oaes_lib.c index 0afec6212..9e31ebf46 100644 --- a/src/crypto/oaes_lib.c +++ b/src/crypto/oaes_lib.c @@ -53,6 +53,12 @@ #include <unistd.h> #endif +#ifdef _MSC_VER +#define GETPID() _getpid() +#else +#define GETPID() getpid() +#endif + #include "oaes_config.h" #include "oaes_lib.h" @@ -478,7 +484,7 @@ static void oaes_get_seed( char buf[RANDSIZ + 1] ) sprintf( buf, "%04d%02d%02d%02d%02d%02d%03d%p%d", gmTimer->tm_year + 1900, gmTimer->tm_mon + 1, gmTimer->tm_mday, gmTimer->tm_hour, gmTimer->tm_min, gmTimer->tm_sec, timer.millitm, - _test + timer.millitm, getpid() ); + _test + timer.millitm, GETPID() ); #else struct timeval timer; struct tm *gmTimer; @@ -490,7 +496,7 @@ static void oaes_get_seed( char buf[RANDSIZ + 1] ) sprintf( buf, "%04d%02d%02d%02d%02d%02d%03d%p%d", gmTimer->tm_year + 1900, gmTimer->tm_mon + 1, gmTimer->tm_mday, gmTimer->tm_hour, gmTimer->tm_min, gmTimer->tm_sec, timer.tv_usec/1000, - _test + timer.tv_usec/1000, getpid() ); + _test + timer.tv_usec/1000, GETPID() ); #endif if( _test ) @@ -510,7 +516,7 @@ static uint32_t oaes_get_seed(void) _test = (char *) calloc( sizeof( char ), timer.millitm ); _ret = gmTimer->tm_year + 1900 + gmTimer->tm_mon + 1 + gmTimer->tm_mday + gmTimer->tm_hour + gmTimer->tm_min + gmTimer->tm_sec + timer.millitm + - (uintptr_t) ( _test + timer.millitm ) + getpid(); + (uintptr_t) ( _test + timer.millitm ) + GETPID(); #else struct timeval timer; struct tm *gmTimer; @@ -522,7 +528,7 @@ static uint32_t oaes_get_seed(void) _test = (char *) calloc( sizeof( char ), timer.tv_usec/1000 ); _ret = gmTimer->tm_year + 1900 + gmTimer->tm_mon + 1 + gmTimer->tm_mday + gmTimer->tm_hour + gmTimer->tm_min + gmTimer->tm_sec + timer.tv_usec/1000 + - (uintptr_t) ( _test + timer.tv_usec/1000 ) + getpid(); + (uintptr_t) ( _test + timer.tv_usec/1000 ) + GETPID(); #endif if( _test ) diff --git a/src/crypto/random.c b/src/crypto/random.c index cd46a1362..9e1a70a2d 100644 --- a/src/crypto/random.c +++ b/src/crypto/random.c @@ -42,10 +42,15 @@ static void generate_system_random_bytes(size_t n, void *result); #include <windows.h> #include <wincrypt.h> +#include <stdio.h> static void generate_system_random_bytes(size_t n, void *result) { HCRYPTPROV prov; +#ifdef NDEBUG +#define must_succeed(x) do if (!(x)) { fprintf(stderr, "Failed: " #x); _exit(1); } while (0) +#else #define must_succeed(x) do if (!(x)) abort(); while (0) +#endif must_succeed(CryptAcquireContext(&prov, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_SILENT)); must_succeed(CryptGenRandom(prov, (DWORD)n, result)); must_succeed(CryptReleaseContext(prov, 0)); diff --git a/src/crypto/tree-hash.c b/src/crypto/tree-hash.c index 59fd20bf9..e6d6a267c 100644 --- a/src/crypto/tree-hash.c +++ b/src/crypto/tree-hash.c @@ -34,7 +34,9 @@ #include "hash-ops.h" -#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) +#ifdef _MSC_VER +#include <malloc.h> +#elif !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) #include <alloca.h> #else #include <stdlib.h> diff --git a/src/cryptonote_basic/connection_context.h b/src/cryptonote_basic/connection_context.h index 705af978a..5cd1709ab 100644 --- a/src/cryptonote_basic/connection_context.h +++ b/src/cryptonote_basic/connection_context.h @@ -40,7 +40,7 @@ namespace cryptonote struct cryptonote_connection_context: public epee::net_utils::connection_context_base { cryptonote_connection_context(): m_state(state_before_handshake), m_remote_blockchain_height(0), m_last_response_height(0), - m_callback_request_count(0), m_last_known_hash(crypto::null_hash) {} + m_last_request_time(boost::posix_time::microsec_clock::universal_time()), m_callback_request_count(0), m_last_known_hash(crypto::null_hash) {} enum state { diff --git a/src/cryptonote_basic/cryptonote_boost_serialization.h b/src/cryptonote_basic/cryptonote_boost_serialization.h index 80bd2fdc9..143133163 100644 --- a/src/cryptonote_basic/cryptonote_boost_serialization.h +++ b/src/cryptonote_basic/cryptonote_boost_serialization.h @@ -299,7 +299,7 @@ namespace boost throw boost::archive::archive_exception(boost::archive::archive_exception::other_exception, "Unsupported rct type"); // a & x.message; message is not serialized, as it can be reconstructed from the tx data // a & x.mixRing; mixRing is not serialized, as it can be reconstructed from the offsets - if (x.type == rct::RCTTypeSimple || x.type == rct::RCTTypeSimpleBulletproof) + if (x.type == rct::RCTTypeSimple) // moved to prunable with bulletproofs a & x.pseudoOuts; a & x.ecdhInfo; serializeOutPk(a, x.outPk, ver); @@ -313,6 +313,8 @@ namespace boost if (x.rangeSigs.empty()) a & x.bulletproofs; a & x.MGs; + if (x.rangeSigs.empty()) + a & x.pseudoOuts; } template <class Archive> @@ -325,7 +327,7 @@ namespace boost throw boost::archive::archive_exception(boost::archive::archive_exception::other_exception, "Unsupported rct type"); // a & x.message; message is not serialized, as it can be reconstructed from the tx data // a & x.mixRing; mixRing is not serialized, as it can be reconstructed from the offsets - if (x.type == rct::RCTTypeSimple || x.type == rct::RCTTypeSimpleBulletproof) + if (x.type == rct::RCTTypeSimple) a & x.pseudoOuts; a & x.ecdhInfo; serializeOutPk(a, x.outPk, ver); @@ -335,6 +337,8 @@ namespace boost if (x.p.rangeSigs.empty()) a & x.p.bulletproofs; a & x.p.MGs; + if (x.type == rct::RCTTypeSimpleBulletproof) + a & x.p.pseudoOuts; } } } diff --git a/src/cryptonote_basic/miner.cpp b/src/cryptonote_basic/miner.cpp index 6c4ecf58c..b322383a9 100644 --- a/src/cryptonote_basic/miner.cpp +++ b/src/cryptonote_basic/miner.cpp @@ -198,7 +198,8 @@ namespace cryptonote { uint64_t total_hr = std::accumulate(m_last_hash_rates.begin(), m_last_hash_rates.end(), 0); float hr = static_cast<float>(total_hr)/static_cast<float>(m_last_hash_rates.size()); - std::cout << "hashrate: " << std::setprecision(4) << std::fixed << hr << ENDL; + const auto precision = std::cout.precision(); + std::cout << "hashrate: " << std::setprecision(4) << std::fixed << hr << precision << ENDL; } } m_last_hr_merge_time = misc_utils::get_tick_count(); diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h index 0ece65028..f9460e7db 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -92,7 +92,7 @@ #define BLOCKS_SYNCHRONIZING_DEFAULT_COUNT_PRE_V4 100 //by default, blocks count in blocks downloading #define BLOCKS_SYNCHRONIZING_DEFAULT_COUNT 20 //by default, blocks count in blocks downloading -#define CRYPTONOTE_MEMPOOL_TX_LIVETIME 86400 //seconds, one day +#define CRYPTONOTE_MEMPOOL_TX_LIVETIME (86400*3) //seconds, three days #define CRYPTONOTE_MEMPOOL_TX_FROM_ALT_BLOCK_LIVETIME 604800 //seconds, one week #define COMMAND_RPC_GET_BLOCKS_FAST_MAX_COUNT 1000 @@ -138,6 +138,7 @@ #define HASH_OF_HASHES_STEP 256 +#define DEFAULT_TXPOOL_MAX_SIZE 648000000ull // 3 days at 300000, in bytes // New constants are intended to go here namespace config diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index 178479f3c..fe4004caa 100644 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -127,7 +127,8 @@ static const struct { { 5, 802660, 0, 1472415036 + 86400*180 }, // add 5 months on testnet to shut the update warning up since there's a large gap to v6 { 6, 971400, 0, 1501709789 }, - { 7, 1057028, 0, 1512211236 }, + { 7, 1057027, 0, 1512211236 }, + { 8, 1057058, 0, 1515967497 }, }; static const uint64_t testnet_hard_fork_version_1_till = 624633; @@ -2395,11 +2396,11 @@ bool Blockchain::check_tx_outputs(const transaction& tx, tx_verification_context } } - // from v7, allow bulletproofs - if (hf_version < 7 || !m_testnet) { + // from v8, allow bulletproofs + if (hf_version < 8) { if (!tx.rct_signatures.p.bulletproofs.empty()) { - MERROR("Bulletproofs are not allowed before v7 or on mainnet"); + MERROR("Bulletproofs are not allowed before v8"); tvc.m_invalid_output = true; return false; } @@ -3753,6 +3754,10 @@ uint64_t Blockchain::prevalidate_block_hashes(uint64_t height, const std::list<c if (height >= m_blocks_hash_of_hashes.size() * HASH_OF_HASHES_STEP) return hashes.size(); + // if we're getting old blocks, we might have jettisoned the hashes already + if (m_blocks_hash_check.empty()) + return hashes.size(); + // find hashes encompassing those block size_t first_index = height / HASH_OF_HASHES_STEP; size_t last_index = (height + hashes.size() - 1) / HASH_OF_HASHES_STEP; @@ -4343,8 +4348,13 @@ void Blockchain::load_compiled_in_block_hashes() { const unsigned char *p = get_blocks_dat_start(m_testnet); const uint32_t nblocks = *p | ((*(p+1))<<8) | ((*(p+2))<<16) | ((*(p+3))<<24); + if (nblocks > (std::numeric_limits<uint32_t>::max() - 4) / sizeof(hash)) + { + MERROR("Block hash data is too large"); + return; + } const size_t size_needed = 4 + nblocks * sizeof(crypto::hash); - if(nblocks > 0 && nblocks * HASH_OF_HASHES_STEP > m_db->height() && get_blocks_dat_size(m_testnet) >= size_needed) + if(nblocks > 0 && nblocks > (m_db->height() + HASH_OF_HASHES_STEP - 1) / HASH_OF_HASHES_STEP && get_blocks_dat_size(m_testnet) >= size_needed) { p += sizeof(uint32_t); m_blocks_hash_of_hashes.reserve(nblocks); diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp index 81a7b4724..e0430a18a 100644 --- a/src/cryptonote_core/cryptonote_core.cpp +++ b/src/cryptonote_core/cryptonote_core.cpp @@ -66,19 +66,22 @@ DISABLE_VS_WARNINGS(4355) namespace cryptonote { - const command_line::arg_descriptor<std::string> arg_data_dir = { - "data-dir" - , "Specify data directory" - }; - const command_line::arg_descriptor<std::string> arg_testnet_data_dir = { - "testnet-data-dir" - , "Specify testnet data directory" - }; const command_line::arg_descriptor<bool, false> arg_testnet_on = { "testnet" , "Run on testnet. The wallet must be launched with --testnet flag." , false }; + const command_line::arg_descriptor<std::string, false, true> arg_data_dir = { + "data-dir" + , "Specify data directory" + , tools::get_default_data_dir() + , arg_testnet_on + , [](bool testnet, bool defaulted, std::string val) { + if (testnet) + return (boost::filesystem::path(val) / "testnet").string(); + return val; + } + }; const command_line::arg_descriptor<bool> arg_offline = { "offline" , "Do not listen for peers, nor connect to any" @@ -134,9 +137,19 @@ namespace cryptonote }; static const command_line::arg_descriptor<bool> arg_fluffy_blocks = { "fluffy-blocks" - , "Relay blocks as fluffy blocks where possible (automatic on testnet)" + , "Relay blocks as fluffy blocks (obsolete, now default)" + , true + }; + static const command_line::arg_descriptor<bool> arg_no_fluffy_blocks = { + "no-fluffy-blocks" + , "Relay blocks as normal blocks" , false }; + static const command_line::arg_descriptor<size_t> arg_max_txpool_size = { + "max-txpool-size" + , "Set maximum txpool size in bytes." + , DEFAULT_TXPOOL_MAX_SIZE + }; //----------------------------------------------------------------------------------------------- core::core(i_cryptonote_protocol* pprotocol): @@ -224,8 +237,7 @@ namespace cryptonote //----------------------------------------------------------------------------------- void core::init_options(boost::program_options::options_description& desc) { - command_line::add_arg(desc, arg_data_dir, tools::get_default_data_dir()); - command_line::add_arg(desc, arg_testnet_data_dir, (boost::filesystem::path(tools::get_default_data_dir()) / "testnet").string()); + command_line::add_arg(desc, arg_data_dir); command_line::add_arg(desc, arg_test_drop_download); command_line::add_arg(desc, arg_test_drop_download_height); @@ -238,9 +250,11 @@ namespace cryptonote command_line::add_arg(desc, arg_block_sync_size); command_line::add_arg(desc, arg_check_updates); command_line::add_arg(desc, arg_fluffy_blocks); + command_line::add_arg(desc, arg_no_fluffy_blocks); command_line::add_arg(desc, arg_test_dbg_lock_sleep); command_line::add_arg(desc, arg_offline); command_line::add_arg(desc, arg_disable_dns_checkpoints); + command_line::add_arg(desc, arg_max_txpool_size); miner::init_options(desc); BlockchainDB::init_options(desc); @@ -250,8 +264,7 @@ namespace cryptonote { m_testnet = command_line::get_arg(vm, arg_testnet_on); - auto data_dir_arg = m_testnet ? arg_testnet_data_dir : arg_data_dir; - m_config_folder = command_line::get_arg(vm, data_dir_arg); + m_config_folder = command_line::get_arg(vm, arg_data_dir); auto data_dir = boost::filesystem::path(m_config_folder); @@ -273,9 +286,11 @@ namespace cryptonote set_enforce_dns_checkpoints(command_line::get_arg(vm, arg_dns_checkpoints)); test_drop_download_height(command_line::get_arg(vm, arg_test_drop_download_height)); - m_fluffy_blocks_enabled = m_testnet || get_arg(vm, arg_fluffy_blocks); + m_fluffy_blocks_enabled = !get_arg(vm, arg_no_fluffy_blocks); m_offline = get_arg(vm, arg_offline); m_disable_dns_checkpoints = get_arg(vm, arg_disable_dns_checkpoints); + if (!command_line::is_arg_defaulted(vm, arg_fluffy_blocks)) + MWARNING(arg_fluffy_blocks.name << " is obsolete, it is now default"); if (command_line::get_arg(vm, arg_test_drop_download) == true) test_drop_download(); @@ -359,6 +374,7 @@ namespace cryptonote bool fast_sync = command_line::get_arg(vm, arg_fast_block_sync) != 0; uint64_t blocks_threads = command_line::get_arg(vm, arg_prep_blocks_threads); std::string check_updates_string = command_line::get_arg(vm, arg_check_updates); + size_t max_txpool_size = command_line::get_arg(vm, arg_max_txpool_size); boost::filesystem::path folder(m_config_folder); if (m_fakechain) @@ -477,7 +493,7 @@ namespace cryptonote r = m_blockchain_storage.init(db.release(), m_testnet, m_offline, test_options); - r = m_mempool.init(); + r = m_mempool.init(max_txpool_size); CHECK_AND_ASSERT_MES(r, false, "Failed to initialize memory pool"); // now that we have a valid m_blockchain_storage, we can clean out any diff --git a/src/cryptonote_core/cryptonote_core.h b/src/cryptonote_core/cryptonote_core.h index 429f6b820..ce39aaddf 100644 --- a/src/cryptonote_core/cryptonote_core.h +++ b/src/cryptonote_core/cryptonote_core.h @@ -58,8 +58,7 @@ namespace cryptonote const std::pair<uint8_t, uint64_t> *hard_forks; }; - extern const command_line::arg_descriptor<std::string> arg_data_dir; - extern const command_line::arg_descriptor<std::string> arg_testnet_data_dir; + extern const command_line::arg_descriptor<std::string, false, true> arg_data_dir; extern const command_line::arg_descriptor<bool, false> arg_testnet_on; extern const command_line::arg_descriptor<bool> arg_offline; diff --git a/src/cryptonote_core/cryptonote_tx_utils.cpp b/src/cryptonote_core/cryptonote_tx_utils.cpp index 431d71556..4a10f7133 100644 --- a/src/cryptonote_core/cryptonote_tx_utils.cpp +++ b/src/cryptonote_core/cryptonote_tx_utils.cpp @@ -172,20 +172,24 @@ namespace cryptonote return true; } //--------------------------------------------------------------- - crypto::public_key get_destination_view_key_pub(const std::vector<tx_destination_entry> &destinations, const account_keys &sender_keys) + crypto::public_key get_destination_view_key_pub(const std::vector<tx_destination_entry> &destinations, const boost::optional<cryptonote::account_public_address>& change_addr) { - if (destinations.empty()) - return null_pkey; - for (size_t n = 1; n < destinations.size(); ++n) + account_public_address addr = {null_pkey, null_pkey}; + size_t count = 0; + for (const auto &i : destinations) { - if (!memcmp(&destinations[n].addr, &sender_keys.m_account_address, sizeof(destinations[0].addr))) + if (i.amount == 0) continue; - if (destinations[n].amount == 0) + if (change_addr && i.addr == *change_addr) continue; - if (memcmp(&destinations[n].addr, &destinations[0].addr, sizeof(destinations[0].addr))) + if (i.addr == addr) + continue; + if (count > 0) return null_pkey; + addr = i.addr; + ++count; } - return destinations[0].addr.m_view_public_key; + return addr.m_view_public_key; } //--------------------------------------------------------------- bool construct_tx_with_tx_key(const account_keys& sender_account_keys, const std::unordered_map<crypto::public_key, subaddress_index>& subaddresses, std::vector<tx_source_entry>& sources, const std::vector<tx_destination_entry>& destinations, const boost::optional<cryptonote::account_public_address>& change_addr, std::vector<uint8_t> extra, transaction& tx, uint64_t unlock_time, const crypto::secret_key &tx_key, const std::vector<crypto::secret_key> &additional_tx_keys, bool rct, bool bulletproof, rct::multisig_out *msout) @@ -221,7 +225,7 @@ namespace cryptonote if (get_encrypted_payment_id_from_tx_extra_nonce(extra_nonce.nonce, payment_id)) { LOG_PRINT_L2("Encrypting payment id " << payment_id); - crypto::public_key view_key_pub = get_destination_view_key_pub(destinations, sender_account_keys); + crypto::public_key view_key_pub = get_destination_view_key_pub(destinations, change_addr); if (view_key_pub == null_pkey) { LOG_ERROR("Destinations have to have exactly one output to support encrypted payment ids"); diff --git a/src/cryptonote_core/cryptonote_tx_utils.h b/src/cryptonote_core/cryptonote_tx_utils.h index e3b7a4f8c..1c390078d 100644 --- a/src/cryptonote_core/cryptonote_tx_utils.h +++ b/src/cryptonote_core/cryptonote_tx_utils.h @@ -88,7 +88,7 @@ namespace cryptonote }; //--------------------------------------------------------------- - crypto::public_key get_destination_view_key_pub(const std::vector<tx_destination_entry> &destinations, const account_keys &sender_keys); + crypto::public_key get_destination_view_key_pub(const std::vector<tx_destination_entry> &destinations, const boost::optional<cryptonote::account_public_address>& change_addr); bool construct_tx(const account_keys& sender_account_keys, std::vector<tx_source_entry> &sources, const std::vector<tx_destination_entry>& destinations, const boost::optional<cryptonote::account_public_address>& change_addr, std::vector<uint8_t> extra, transaction& tx, uint64_t unlock_time); bool construct_tx_with_tx_key(const account_keys& sender_account_keys, const std::unordered_map<crypto::public_key, subaddress_index>& subaddresses, std::vector<tx_source_entry>& sources, const std::vector<tx_destination_entry>& destinations, const boost::optional<cryptonote::account_public_address>& change_addr, std::vector<uint8_t> extra, transaction& tx, uint64_t unlock_time, const crypto::secret_key &tx_key, const std::vector<crypto::secret_key> &additional_tx_keys, bool rct = false, bool bulletproof = false, rct::multisig_out *msout = NULL); bool construct_tx_and_get_tx_key(const account_keys& sender_account_keys, const std::unordered_map<crypto::public_key, subaddress_index>& subaddresses, std::vector<tx_source_entry>& sources, const std::vector<tx_destination_entry>& destinations, const boost::optional<cryptonote::account_public_address>& change_addr, std::vector<uint8_t> extra, transaction& tx, uint64_t unlock_time, crypto::secret_key &tx_key, std::vector<crypto::secret_key> &additional_tx_keys, bool rct = false, bool bulletproof = false, rct::multisig_out *msout = NULL); diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp index e75584bce..762feb5ee 100644 --- a/src/cryptonote_core/tx_pool.cpp +++ b/src/cryptonote_core/tx_pool.cpp @@ -102,7 +102,7 @@ namespace cryptonote } //--------------------------------------------------------------------------------- //--------------------------------------------------------------------------------- - tx_memory_pool::tx_memory_pool(Blockchain& bchs): m_blockchain(bchs) + tx_memory_pool::tx_memory_pool(Blockchain& bchs): m_blockchain(bchs), m_txpool_max_size(DEFAULT_TXPOOL_MAX_SIZE), m_txpool_size(0) { } @@ -151,13 +151,20 @@ namespace cryptonote } uint64_t outputs_amount = get_outs_money_amount(tx); - if(outputs_amount >= inputs_amount) + if(outputs_amount > inputs_amount) { LOG_PRINT_L1("transaction use more money then it has: use " << print_money(outputs_amount) << ", have " << print_money(inputs_amount)); tvc.m_verifivation_failed = true; tvc.m_overspend = true; return false; } + else if(outputs_amount == inputs_amount) + { + LOG_PRINT_L1("transaction fee is zero: outputs_amount == inputs_amount, rejecting."); + tvc.m_verifivation_failed = true; + tvc.m_fee_too_low = true; + return false; + } fee = inputs_amount - outputs_amount; } @@ -174,7 +181,7 @@ namespace cryptonote } size_t tx_size_limit = get_transaction_size_limit(version); - if (!kept_by_block && blob_size >= tx_size_limit) + if (!kept_by_block && blob_size > tx_size_limit) { LOG_PRINT_L1("transaction is too big: " << blob_size << " bytes, maximum size: " << tx_size_limit); tvc.m_verifivation_failed = true; @@ -295,8 +302,12 @@ namespace cryptonote } tvc.m_verifivation_failed = false; + m_txpool_size += blob_size; MINFO("Transaction added to pool: txid " << id << " bytes: " << blob_size << " fee/byte: " << (fee / (double)blob_size)); + + prune(m_txpool_max_size); + return true; } //--------------------------------------------------------------------------------- @@ -309,6 +320,72 @@ namespace cryptonote return add_tx(tx, h, blob_size, tvc, keeped_by_block, relayed, do_not_relay, version); } //--------------------------------------------------------------------------------- + size_t tx_memory_pool::get_txpool_size() const + { + CRITICAL_REGION_LOCAL(m_transactions_lock); + return m_txpool_size; + } + //--------------------------------------------------------------------------------- + void tx_memory_pool::set_txpool_max_size(size_t bytes) + { + CRITICAL_REGION_LOCAL(m_transactions_lock); + m_txpool_max_size = bytes; + } + //--------------------------------------------------------------------------------- + void tx_memory_pool::prune(size_t bytes) + { + CRITICAL_REGION_LOCAL(m_transactions_lock); + if (bytes == 0) + bytes = m_txpool_max_size; + CRITICAL_REGION_LOCAL1(m_blockchain); + LockedTXN lock(m_blockchain); + + // this will never remove the first one, but we don't care + auto it = --m_txs_by_fee_and_receive_time.end(); + while (it != m_txs_by_fee_and_receive_time.begin()) + { + if (m_txpool_size <= bytes) + break; + try + { + const crypto::hash &txid = it->second; + txpool_tx_meta_t meta; + if (!m_blockchain.get_txpool_tx_meta(txid, meta)) + { + MERROR("Failed to find tx in txpool"); + return; + } + // don't prune the kept_by_block ones, they're likely added because we're adding a block with those + if (meta.kept_by_block) + { + --it; + continue; + } + cryptonote::blobdata txblob = m_blockchain.get_txpool_tx_blob(txid); + cryptonote::transaction tx; + if (!parse_and_validate_tx_from_blob(txblob, tx)) + { + MERROR("Failed to parse tx from txpool"); + return; + } + // remove first, in case this throws, so key images aren't removed + MINFO("Pruning tx " << txid << " from txpool: size: " << it->first.second << ", fee/byte: " << it->first.first); + m_blockchain.remove_txpool_tx(txid); + m_txpool_size -= txblob.size(); + remove_transaction_keyimages(tx); + MINFO("Pruned tx " << txid << " from txpool: size: " << it->first.second << ", fee/byte: " << it->first.first); + m_txs_by_fee_and_receive_time.erase(it--); + } + catch (const std::exception &e) + { + MERROR("Error while pruning txpool: " << e.what()); + return; + } + } + if (m_txpool_size > bytes) + MINFO("Pool size after pruning is larger than limit: " << m_txpool_size << "/" << bytes); + } + //--------------------------------------------------------------------------------- bool tx_memory_pool::insert_key_images(const transaction &tx, bool kept_by_block) { for(const auto& in: tx.vin) @@ -391,6 +468,7 @@ namespace cryptonote // remove first, in case this throws, so key images aren't removed m_blockchain.remove_txpool_tx(id); + m_txpool_size -= blob_size; remove_transaction_keyimages(tx); } catch (const std::exception &e) @@ -463,6 +541,7 @@ namespace cryptonote { // remove first, so we only remove key images if the tx removal succeeds m_blockchain.remove_txpool_tx(txid); + m_txpool_size -= bd.size(); remove_transaction_keyimages(tx); } } @@ -1125,8 +1204,10 @@ namespace cryptonote size_t tx_size_limit = get_transaction_size_limit(version); std::unordered_set<crypto::hash> remove; + m_txpool_size = 0; m_blockchain.for_all_txpool_txes([this, &remove, tx_size_limit](const crypto::hash &txid, const txpool_tx_meta_t &meta, const cryptonote::blobdata*) { - if (meta.blob_size >= tx_size_limit) { + m_txpool_size += meta.blob_size; + if (meta.blob_size > tx_size_limit) { LOG_PRINT_L1("Transaction " << txid << " is too big (" << meta.blob_size << " bytes), removing it from pool"); remove.insert(txid); } @@ -1154,6 +1235,7 @@ namespace cryptonote } // remove tx from db first m_blockchain.remove_txpool_tx(txid); + m_txpool_size -= txblob.size(); remove_transaction_keyimages(tx); auto sorted_it = find_tx_in_sorted_container(txid); if (sorted_it == m_txs_by_fee_and_receive_time.end()) @@ -1176,13 +1258,15 @@ namespace cryptonote return n_removed; } //--------------------------------------------------------------------------------- - bool tx_memory_pool::init() + bool tx_memory_pool::init(size_t max_txpool_size) { CRITICAL_REGION_LOCAL(m_transactions_lock); CRITICAL_REGION_LOCAL1(m_blockchain); + m_txpool_max_size = max_txpool_size ? max_txpool_size : DEFAULT_TXPOOL_MAX_SIZE; m_txs_by_fee_and_receive_time.clear(); m_spent_key_images.clear(); + m_txpool_size = 0; std::vector<crypto::hash> remove; bool r = m_blockchain.for_all_txpool_txes([this, &remove](const crypto::hash &txid, const txpool_tx_meta_t &meta, const cryptonote::blobdata *bd) { cryptonote::transaction tx; @@ -1197,6 +1281,7 @@ namespace cryptonote return false; } m_txs_by_fee_and_receive_time.emplace(std::pair<double, time_t>(meta.fee / (double)meta.blob_size, meta.receive_time), txid); + m_txpool_size += meta.blob_size; return true; }, true); if (!r) diff --git a/src/cryptonote_core/tx_pool.h b/src/cryptonote_core/tx_pool.h index b4ea5a8f4..19cd83ed9 100644 --- a/src/cryptonote_core/tx_pool.h +++ b/src/cryptonote_core/tx_pool.h @@ -198,11 +198,11 @@ namespace cryptonote /** * @brief loads pool state (if any) from disk, and initializes pool * - * @param config_folder folder name where pool state will be + * @param max_txpool_size the max size in bytes * * @return true */ - bool init(); + bool init(size_t max_txpool_size = 0); /** * @brief attempts to save the transaction pool state to disk @@ -362,6 +362,19 @@ namespace cryptonote */ size_t validate(uint8_t version); + /** + * @brief get the cumulative txpool size in bytes + * + * @return the cumulative txpool size in bytes + */ + size_t get_txpool_size() const; + + /** + * @brief set the max cumulative txpool size in bytes + * + * @param bytes the max cumulative txpool size in bytes + */ + void set_txpool_max_size(size_t bytes); #define CURRENT_MEMPOOL_ARCHIVE_VER 11 #define CURRENT_MEMPOOL_TX_DETAILS_ARCHIVE_VER 12 @@ -496,6 +509,13 @@ namespace cryptonote */ void mark_double_spend(const transaction &tx); + /** + * @brief prune lowest fee/byte txes till we're not above bytes + * + * if bytes is 0, use m_txpool_max_size + */ + void prune(size_t bytes = 0); + //TODO: confirm the below comments and investigate whether or not this // is the desired behavior //! map key images to transactions which spent them @@ -542,6 +562,9 @@ private: std::unordered_set<crypto::hash> m_timed_out_transactions; Blockchain& m_blockchain; //!< reference to the Blockchain object + + size_t m_txpool_max_size; + size_t m_txpool_size; }; } diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.h b/src/cryptonote_protocol/cryptonote_protocol_handler.h index cbb8273e9..e24c964a5 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.h +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.h @@ -79,7 +79,7 @@ namespace cryptonote typedef t_cryptonote_protocol_handler<t_core> cryptonote_protocol_handler; typedef CORE_SYNC_DATA payload_type; - t_cryptonote_protocol_handler(t_core& rcore, nodetool::i_p2p_endpoint<connection_context>* p_net_layout); + t_cryptonote_protocol_handler(t_core& rcore, nodetool::i_p2p_endpoint<connection_context>* p_net_layout, bool offline = false); BEGIN_INVOKE_MAP2(cryptonote_protocol_handler) HANDLE_NOTIFY_T2(NOTIFY_NEW_BLOCK, &cryptonote_protocol_handler::handle_notify_new_block) diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.inl b/src/cryptonote_protocol/cryptonote_protocol_handler.inl index bc11ab6e4..ff187e8ae 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.inl +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.inl @@ -61,10 +61,10 @@ namespace cryptonote //----------------------------------------------------------------------------------------------------------------------- template<class t_core> - t_cryptonote_protocol_handler<t_core>::t_cryptonote_protocol_handler(t_core& rcore, nodetool::i_p2p_endpoint<connection_context>* p_net_layout):m_core(rcore), + t_cryptonote_protocol_handler<t_core>::t_cryptonote_protocol_handler(t_core& rcore, nodetool::i_p2p_endpoint<connection_context>* p_net_layout, bool offline):m_core(rcore), m_p2p(p_net_layout), m_syncronized_connections_count(0), - m_synchronized(false), + m_synchronized(offline), m_stopping(false) { @@ -1333,6 +1333,15 @@ skip: break; } + // this one triggers if all threads are in standby, which should not happen, + // but happened at least once, so we unblock at least one thread if so + const boost::unique_lock<boost::mutex> sync{m_sync_lock, boost::try_to_lock}; + if (sync.owns_lock()) + { + LOG_DEBUG_CC(context, "No other thread is adding blocks, resuming"); + break; + } + if (should_download_next_span(context)) { MDEBUG(context << " we should try for that next span too, we think we could get it faster, resuming"); diff --git a/src/daemon/command_line_args.h b/src/daemon/command_line_args.h index ee6167b6a..efbae488c 100644 --- a/src/daemon/command_line_args.h +++ b/src/daemon/command_line_args.h @@ -31,20 +31,35 @@ #include "common/command_line.h" #include "cryptonote_config.h" +#include "daemonizer/daemonizer.h" namespace daemon_args { std::string const WINDOWS_SERVICE_NAME = "Monero Daemon"; - const command_line::arg_descriptor<std::string> arg_config_file = { + const command_line::arg_descriptor<std::string, false, true> arg_config_file = { "config-file" , "Specify configuration file" - , std::string(CRYPTONOTE_NAME ".conf") + , (daemonizer::get_default_data_dir() / std::string(CRYPTONOTE_NAME ".conf")).string() + , cryptonote::arg_testnet_on + , [](bool testnet, bool defaulted, std::string val) { + if (testnet && defaulted) + return (daemonizer::get_default_data_dir() / "testnet" / + std::string(CRYPTONOTE_NAME ".conf")).string(); + return val; + } }; - const command_line::arg_descriptor<std::string> arg_log_file = { + const command_line::arg_descriptor<std::string, false, true> arg_log_file = { "log-file" , "Specify log file" - , "" + , (daemonizer::get_default_data_dir() / std::string(CRYPTONOTE_NAME ".log")).string() + , cryptonote::arg_testnet_on + , [](bool testnet, bool defaulted, std::string val) { + if (testnet && defaulted) + return (daemonizer::get_default_data_dir() / "testnet" / + std::string(CRYPTONOTE_NAME ".log")).string(); + return val; + } }; const command_line::arg_descriptor<std::size_t> arg_max_log_file_size = { "max-log-file-size" @@ -76,16 +91,16 @@ namespace daemon_args , "127.0.0.1" }; - const command_line::arg_descriptor<std::string> arg_zmq_rpc_bind_port = { + const command_line::arg_descriptor<std::string, false, true> arg_zmq_rpc_bind_port = { "zmq-rpc-bind-port" - , "Port for ZMQ RPC server to listen on" - , std::to_string(config::ZMQ_RPC_DEFAULT_PORT) - }; - - const command_line::arg_descriptor<std::string> arg_zmq_testnet_rpc_bind_port = { - "zmq-testnet-rpc-bind-port" - , "Port for testnet ZMQ RPC server to listen on" - , std::to_string(config::testnet::ZMQ_RPC_DEFAULT_PORT) + , "Port for ZMQ RPC server to listen on" + , std::to_string(config::ZMQ_RPC_DEFAULT_PORT) + , cryptonote::arg_testnet_on + , [](bool testnet, bool defaulted, std::string val) { + if (testnet && defaulted) + return std::to_string(config::testnet::ZMQ_RPC_DEFAULT_PORT); + return val; + } }; } // namespace daemon_args diff --git a/src/daemon/command_parser_executor.cpp b/src/daemon/command_parser_executor.cpp index 3ec74ff79..09e425dd1 100644 --- a/src/daemon/command_parser_executor.cpp +++ b/src/daemon/command_parser_executor.cpp @@ -428,6 +428,23 @@ bool t_command_parser_executor::out_peers(const std::vector<std::string>& args) return m_executor.out_peers(limit); } +bool t_command_parser_executor::in_peers(const std::vector<std::string>& args) +{ + if (args.empty()) return false; + + unsigned int limit; + try { + limit = std::stoi(args[0]); + } + + catch(const std::exception& ex) { + _erro("stoi exception"); + return false; + } + + return m_executor.in_peers(limit); +} + bool t_command_parser_executor::start_save_graph(const std::vector<std::string>& args) { if (!args.empty()) return false; diff --git a/src/daemon/command_parser_executor.h b/src/daemon/command_parser_executor.h index 37e900b8f..2c09a4748 100644 --- a/src/daemon/command_parser_executor.h +++ b/src/daemon/command_parser_executor.h @@ -108,7 +108,9 @@ public: bool set_limit_down(const std::vector<std::string>& args); bool out_peers(const std::vector<std::string>& args); - + + bool in_peers(const std::vector<std::string>& args); + bool start_save_graph(const std::vector<std::string>& args); bool stop_save_graph(const std::vector<std::string>& args); diff --git a/src/daemon/command_server.cpp b/src/daemon/command_server.cpp index 1f8981fa2..a50dbea69 100644 --- a/src/daemon/command_server.cpp +++ b/src/daemon/command_server.cpp @@ -197,6 +197,12 @@ t_command_server::t_command_server( , "Set the <max_number> of out peers." ); m_command_lookup.set_handler( + "in_peers" + , std::bind(&t_command_parser_executor::in_peers, &m_parser, p::_1) + , "in_peers <max_number>" + , "Set the <max_number> of in peers." + ); + m_command_lookup.set_handler( "start_save_graph" , std::bind(&t_command_parser_executor::start_save_graph, &m_parser, p::_1) , "Start saving data for dr monero." diff --git a/src/daemon/core.h b/src/daemon/core.h index f00dffccc..1ff696bef 100644 --- a/src/daemon/core.h +++ b/src/daemon/core.h @@ -69,8 +69,7 @@ public: std::string get_config_subdir() const { bool testnet = command_line::get_arg(m_vm_HACK, cryptonote::arg_testnet_on); - auto p2p_bind_arg = testnet ? nodetool::arg_testnet_p2p_bind_port : nodetool::arg_p2p_bind_port; - std::string port = command_line::get_arg(m_vm_HACK, p2p_bind_arg); + std::string port = command_line::get_arg(m_vm_HACK, nodetool::arg_p2p_bind_port); if ((!testnet && port != std::to_string(::config::P2P_DEFAULT_PORT)) || (testnet && port != std::to_string(::config::testnet::P2P_DEFAULT_PORT))) { return port; diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp index 2d662b7d3..8053932fe 100644 --- a/src/daemon/daemon.cpp +++ b/src/daemon/daemon.cpp @@ -68,7 +68,7 @@ public: boost::program_options::variables_map const & vm ) : core{vm} - , protocol{vm, core} + , protocol{vm, core, command_line::get_arg(vm, cryptonote::arg_offline)} , p2p{vm, protocol} { // Handle circular dependencies @@ -77,10 +77,10 @@ public: const auto testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on); const auto restricted = command_line::get_arg(vm, cryptonote::core_rpc_server::arg_restricted_rpc); - const auto main_rpc_port = command_line::get_arg(vm, testnet ? cryptonote::core_rpc_server::arg_testnet_rpc_bind_port : cryptonote::core_rpc_server::arg_rpc_bind_port); + const auto main_rpc_port = command_line::get_arg(vm, cryptonote::core_rpc_server::arg_rpc_bind_port); rpcs.emplace_back(new t_rpc{vm, core, p2p, restricted, testnet, main_rpc_port, "core"}); - auto restricted_rpc_port_arg = testnet ? cryptonote::core_rpc_server::arg_testnet_rpc_restricted_bind_port : cryptonote::core_rpc_server::arg_rpc_restricted_bind_port; + auto restricted_rpc_port_arg = cryptonote::core_rpc_server::arg_rpc_restricted_bind_port; if(!command_line::is_arg_defaulted(vm, restricted_rpc_port_arg)) { auto restricted_rpc_port = command_line::get_arg(vm, restricted_rpc_port_arg); @@ -101,15 +101,7 @@ t_daemon::t_daemon( ) : mp_internals{new t_internals{vm}} { - bool testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on); - if (testnet) - { - zmq_rpc_bind_port = command_line::get_arg(vm, daemon_args::arg_zmq_testnet_rpc_bind_port); - } - else - { - zmq_rpc_bind_port = command_line::get_arg(vm, daemon_args::arg_zmq_rpc_bind_port); - } + zmq_rpc_bind_port = command_line::get_arg(vm, daemon_args::arg_zmq_rpc_bind_port); zmq_rpc_bind_address = command_line::get_arg(vm, daemon_args::arg_zmq_rpc_bind_ip); } diff --git a/src/daemon/main.cpp b/src/daemon/main.cpp index f4d8fad5e..752a92ba4 100644 --- a/src/daemon/main.cpp +++ b/src/daemon/main.cpp @@ -73,26 +73,20 @@ int main(int argc, char const * argv[]) po::options_description core_settings("Settings"); po::positional_options_description positional_options; { - bf::path default_data_dir = daemonizer::get_default_data_dir(); - bf::path default_testnet_data_dir = {default_data_dir / "testnet"}; - // Misc Options command_line::add_arg(visible_options, command_line::arg_help); command_line::add_arg(visible_options, command_line::arg_version); command_line::add_arg(visible_options, daemon_args::arg_os_version); - bf::path default_conf = default_data_dir / std::string(CRYPTONOTE_NAME ".conf"); - command_line::add_arg(visible_options, daemon_args::arg_config_file, default_conf.string()); + command_line::add_arg(visible_options, daemon_args::arg_config_file); // Settings - bf::path default_log = default_data_dir / std::string(CRYPTONOTE_NAME ".log"); - command_line::add_arg(core_settings, daemon_args::arg_log_file, default_log.string()); + command_line::add_arg(core_settings, daemon_args::arg_log_file); command_line::add_arg(core_settings, daemon_args::arg_log_level); command_line::add_arg(core_settings, daemon_args::arg_max_log_file_size); command_line::add_arg(core_settings, daemon_args::arg_max_concurrency); command_line::add_arg(core_settings, daemon_args::arg_zmq_rpc_bind_ip); command_line::add_arg(core_settings, daemon_args::arg_zmq_rpc_bind_port); - command_line::add_arg(core_settings, daemon_args::arg_zmq_testnet_rpc_bind_port); daemonizer::init_options(hidden_options, visible_options); daemonize::t_executor::init_options(core_settings); @@ -154,10 +148,6 @@ int main(int argc, char const * argv[]) return 0; } - bool testnet_mode = command_line::get_arg(vm, cryptonote::arg_testnet_on); - - auto data_dir_arg = testnet_mode ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir; - // data_dir // default: e.g. ~/.bitmonero/ or ~/.bitmonero/testnet // if data-dir argument given: @@ -166,7 +156,7 @@ int main(int argc, char const * argv[]) // Create data dir if it doesn't exist boost::filesystem::path data_dir = boost::filesystem::absolute( - command_line::get_arg(vm, data_dir_arg)); + command_line::get_arg(vm, cryptonote::arg_data_dir)); // FIXME: not sure on windows implementation default, needs further review //bf::path relative_path_base = daemonizer::get_relative_path_base(vm); @@ -226,10 +216,6 @@ int main(int argc, char const * argv[]) const cryptonote::rpc_args::descriptors arg{}; auto rpc_ip_str = command_line::get_arg(vm, arg.rpc_bind_ip); auto rpc_port_str = command_line::get_arg(vm, cryptonote::core_rpc_server::arg_rpc_bind_port); - if (testnet_mode) - { - rpc_port_str = command_line::get_arg(vm, cryptonote::core_rpc_server::arg_testnet_rpc_bind_port); - } uint32_t rpc_ip; uint16_t rpc_port; @@ -287,7 +273,7 @@ int main(int argc, char const * argv[]) MINFO("Moving from main() into the daemonize now."); - return daemonizer::daemonize(argc, argv, daemonize::t_executor{}, vm); + return daemonizer::daemonize(argc, argv, daemonize::t_executor{}, vm) ? 0 : 1; } catch (std::exception const & ex) { diff --git a/src/daemon/protocol.h b/src/daemon/protocol.h index a251ae47c..fd1d1b638 100644 --- a/src/daemon/protocol.h +++ b/src/daemon/protocol.h @@ -46,9 +46,9 @@ private: public: t_protocol( boost::program_options::variables_map const & vm - , t_core & core + , t_core & core, bool offline = false ) - : m_protocol{core.get(), nullptr} + : m_protocol{core.get(), nullptr, offline} { MGINFO("Initializing cryptonote protocol..."); if (!m_protocol.init(vm)) diff --git a/src/daemon/rpc.h b/src/daemon/rpc.h index c1c2329ac..17f6c7f67 100644 --- a/src/daemon/rpc.h +++ b/src/daemon/rpc.h @@ -60,28 +60,28 @@ public: ) : m_server{core.get(), p2p.get()}, m_description{description} { - MGINFO("Initializing " << m_description << " rpc server..."); + MGINFO("Initializing " << m_description << " RPC server..."); if (!m_server.init(vm, restricted, testnet, port)) { - throw std::runtime_error("Failed to initialize " + m_description + " rpc server."); + throw std::runtime_error("Failed to initialize " + m_description + " RPC server."); } - MGINFO(m_description << " rpc server initialized OK on port: " << m_server.get_binded_port()); + MGINFO(m_description << " RPC server initialized OK on port: " << m_server.get_binded_port()); } void run() { - MGINFO("Starting " << m_description << " rpc server..."); + MGINFO("Starting " << m_description << " RPC server..."); if (!m_server.run(2, false)) { - throw std::runtime_error("Failed to start " + m_description + " rpc server."); + throw std::runtime_error("Failed to start " + m_description + " RPC server."); } - MGINFO(m_description << " rpc server started ok"); + MGINFO(m_description << " RPC server started ok"); } void stop() { - MGINFO("Stopping " << m_description << " rpc server..."); + MGINFO("Stopping " << m_description << " RPC server..."); m_server.send_stop_signal(); m_server.timed_wait_server_stop(5000); } @@ -93,11 +93,11 @@ public: ~t_rpc() { - MGINFO("Deinitializing " << m_description << " rpc server..."); + MGINFO("Deinitializing " << m_description << " RPC server..."); try { m_server.deinit(); } catch (...) { - MERROR("Failed to deinitialize " << m_description << " rpc server..."); + MERROR("Failed to deinitialize " << m_description << " RPC server..."); } } }; diff --git a/src/daemon/rpc_command_executor.cpp b/src/daemon/rpc_command_executor.cpp index 2da4f3e6e..5ef799d40 100644 --- a/src/daemon/rpc_command_executor.cpp +++ b/src/daemon/rpc_command_executor.cpp @@ -353,15 +353,18 @@ static std::string get_fork_extra_info(uint64_t t, uint64_t now, uint64_t block_ return ""; } -static float get_sync_percentage(const cryptonote::COMMAND_RPC_GET_INFO::response &ires) +static float get_sync_percentage(uint64_t height, uint64_t target_height) { - uint64_t height = ires.height; - uint64_t target_height = ires.target_height ? ires.target_height < ires.height ? ires.height : ires.target_height : ires.height; + target_height = target_height ? target_height < height ? height : target_height : height; float pc = 100.0f * height / target_height; if (height < target_height && pc > 99.9f) return 99.9f; // to avoid 100% when not fully synced return pc; } +static float get_sync_percentage(const cryptonote::COMMAND_RPC_GET_INFO::response &ires) +{ + return get_sync_percentage(ires.height, ires.target_height); +} bool t_rpc_command_executor::show_status() { cryptonote::COMMAND_RPC_GET_INFO::request ireq; @@ -421,12 +424,26 @@ bool t_rpc_command_executor::show_status() { std::time_t uptime = std::time(nullptr) - ires.start_time; uint64_t net_height = ires.target_height > ires.height ? ires.target_height : ires.height; + std::string bootstrap_msg; + if (ires.was_bootstrap_ever_used) + { + bootstrap_msg = ", bootstrapping from " + ires.bootstrap_daemon_address; + if (ires.untrusted) + { + bootstrap_msg += (boost::format(", local height: %llu (%.1f%%)") % ires.height_without_bootstrap % get_sync_percentage(ires.height_without_bootstrap, net_height)).str(); + } + else + { + bootstrap_msg += " was used before"; + } + } - tools::success_msg_writer() << boost::format("Height: %llu/%llu (%.1f%%) on %s, %s, net hash %s, v%u%s, %s, %u(out)+%u(in) connections, uptime %ud %uh %um %us") + tools::success_msg_writer() << boost::format("Height: %llu/%llu (%.1f%%) on %s%s, %s, net hash %s, v%u%s, %s, %u(out)+%u(in) connections, uptime %ud %uh %um %us") % (unsigned long long)ires.height % (unsigned long long)net_height % get_sync_percentage(ires) % (ires.testnet ? "testnet" : "mainnet") + % bootstrap_msg % (!has_mining_info ? "mining info unavailable" : mining_busy ? "syncing" : mres.active ? ( ( mres.is_background_mining_enabled ? "smart " : "" ) + std::string("mining at ") + get_mining_speed(mres.speed) ) : "not mining") % get_mining_speed(ires.difficulty / ires.target) % (unsigned)hfres.version @@ -1262,7 +1279,7 @@ bool t_rpc_command_executor::out_peers(uint64_t limit) if (m_is_rpc) { - if (!m_rpc_client->json_rpc_request(req, res, "out_peers", fail_message.c_str())) + if (!m_rpc_client->rpc_request(req, res, "/out_peers", fail_message.c_str())) { return true; } @@ -1281,6 +1298,38 @@ bool t_rpc_command_executor::out_peers(uint64_t limit) return true; } +bool t_rpc_command_executor::in_peers(uint64_t limit) +{ + cryptonote::COMMAND_RPC_IN_PEERS::request req; + cryptonote::COMMAND_RPC_IN_PEERS::response res; + + epee::json_rpc::error error_resp; + + req.in_peers = limit; + + std::string fail_message = "Unsuccessful"; + + if (m_is_rpc) + { + if (!m_rpc_client->rpc_request(req, res, "/in_peers", fail_message.c_str())) + { + return true; + } + } + else + { + if (!m_rpc_server->on_in_peers(req, res) || res.status != CORE_RPC_STATUS_OK) + { + tools::fail_msg_writer() << make_error(fail_message, res.status); + return true; + } + } + + std::cout << "Max number of in peers set to " << limit << std::endl; + + return true; +} + bool t_rpc_command_executor::start_save_graph() { cryptonote::COMMAND_RPC_START_SAVE_GRAPH::request req; diff --git a/src/daemon/rpc_command_executor.h b/src/daemon/rpc_command_executor.h index f0781180a..fa83d8988 100644 --- a/src/daemon/rpc_command_executor.h +++ b/src/daemon/rpc_command_executor.h @@ -122,7 +122,9 @@ public: bool set_limit(int64_t limit_down, int64_t limit_up); bool out_peers(uint64_t limit); - + + bool in_peers(uint64_t limit); + bool start_save_graph(); bool stop_save_graph(); diff --git a/src/debug_utilities/cn_deserialize.cpp b/src/debug_utilities/cn_deserialize.cpp index 4f274a66e..dfbd3b864 100644 --- a/src/debug_utilities/cn_deserialize.cpp +++ b/src/debug_utilities/cn_deserialize.cpp @@ -41,6 +41,22 @@ using namespace epee; using namespace cryptonote; +static void print_extra_fields(const std::vector<cryptonote::tx_extra_field> &fields) +{ + std::cout << "tx_extra has " << fields.size() << " field(s)" << std::endl; + for (size_t n = 0; n < fields.size(); ++n) + { + std::cout << "field " << n << ": "; + if (typeid(cryptonote::tx_extra_padding) == fields[n].type()) std::cout << "extra padding: " << boost::get<cryptonote::tx_extra_padding>(fields[n]).size << " bytes"; + else if (typeid(cryptonote::tx_extra_pub_key) == fields[n].type()) std::cout << "extra pub key: " << boost::get<cryptonote::tx_extra_pub_key>(fields[n]).pub_key; + else if (typeid(cryptonote::tx_extra_nonce) == fields[n].type()) std::cout << "extra nonce: " << epee::string_tools::buff_to_hex_nodelimer(boost::get<cryptonote::tx_extra_nonce>(fields[n]).nonce); + else if (typeid(cryptonote::tx_extra_merge_mining_tag) == fields[n].type()) std::cout << "extra merge mining tag: depth " << boost::get<cryptonote::tx_extra_merge_mining_tag>(fields[n]).depth << ", merkle root " << boost::get<cryptonote::tx_extra_merge_mining_tag>(fields[n]).merkle_root; + else if (typeid(cryptonote::tx_extra_mysterious_minergate) == fields[n].type()) std::cout << "extra minergate custom: " << epee::string_tools::buff_to_hex_nodelimer(boost::get<cryptonote::tx_extra_mysterious_minergate>(fields[n]).data); + else std::cout << "unknown"; + std::cout << std::endl; + } +} + int main(int argc, char* argv[]) { uint32_t log_level = 0; @@ -160,24 +176,18 @@ int main(int argc, char* argv[]) if (!fields.empty()) { - std::cout << "tx_extra has " << fields.size() << " field(s)" << std::endl; - for (size_t n = 0; n < fields.size(); ++n) - { - std::cout << "field " << n << ": "; - if (typeid(cryptonote::tx_extra_padding) == fields[n].type()) std::cout << "extra padding: " << boost::get<cryptonote::tx_extra_padding>(fields[n]).size << " bytes"; - else if (typeid(cryptonote::tx_extra_pub_key) == fields[n].type()) std::cout << "extra pub key: " << boost::get<cryptonote::tx_extra_pub_key>(fields[n]).pub_key; - else if (typeid(cryptonote::tx_extra_nonce) == fields[n].type()) std::cout << "extra nonce: " << epee::string_tools::buff_to_hex_nodelimer(boost::get<cryptonote::tx_extra_nonce>(fields[n]).nonce); - else if (typeid(cryptonote::tx_extra_merge_mining_tag) == fields[n].type()) std::cout << "extra merge mining tag: depth " << boost::get<cryptonote::tx_extra_merge_mining_tag>(fields[n]).depth << ", merkle root " << boost::get<cryptonote::tx_extra_merge_mining_tag>(fields[n]).merkle_root; - else if (typeid(cryptonote::tx_extra_mysterious_minergate) == fields[n].type()) std::cout << "extra minergate custom: " << epee::string_tools::buff_to_hex_nodelimer(boost::get<cryptonote::tx_extra_mysterious_minergate>(fields[n]).data); - else std::cout << "unknown"; - std::cout << std::endl; - } + print_extra_fields(fields); } else { std::cout << "No fields were found in tx_extra" << std::endl; } } + else if (cryptonote::parse_tx_extra(std::vector<uint8_t>(blob.begin(), blob.end()), fields) && !fields.empty()) + { + std::cout << "Parsed tx_extra:" << std::endl; + print_extra_fields(fields); + } else { std::cerr << "Not a recognized CN type" << std::endl; diff --git a/src/p2p/net_node.cpp b/src/p2p/net_node.cpp index 121e72392..170b79984 100644 --- a/src/p2p/net_node.cpp +++ b/src/p2p/net_node.cpp @@ -34,15 +34,16 @@ namespace nodetool { const command_line::arg_descriptor<std::string> arg_p2p_bind_ip = {"p2p-bind-ip", "Interface for p2p network protocol", "0.0.0.0"}; - const command_line::arg_descriptor<std::string> arg_p2p_bind_port = { + const command_line::arg_descriptor<std::string, false, true> arg_p2p_bind_port = { "p2p-bind-port" , "Port for p2p network protocol" , std::to_string(config::P2P_DEFAULT_PORT) - }; - const command_line::arg_descriptor<std::string> arg_testnet_p2p_bind_port = { - "testnet-p2p-bind-port" - , "Port for testnet p2p network protocol" - , std::to_string(config::testnet::P2P_DEFAULT_PORT) + , cryptonote::arg_testnet_on + , [](bool testnet, bool defaulted, std::string val) { + if (testnet && defaulted) + return std::to_string(config::testnet::P2P_DEFAULT_PORT); + return val; + } }; const command_line::arg_descriptor<uint32_t> arg_p2p_external_port = {"p2p-external-port", "External port for p2p network protocol (if port forwarding used with NAT)", 0}; const command_line::arg_descriptor<bool> arg_p2p_allow_local_ip = {"allow-local-ip", "Allow local ip add to peer list, mostly in debug purposes"}; @@ -55,6 +56,7 @@ namespace nodetool const command_line::arg_descriptor<bool> arg_no_igd = {"no-igd", "Disable UPnP port mapping"}; const command_line::arg_descriptor<int64_t> arg_out_peers = {"out-peers", "set max number of out peers", -1}; + const command_line::arg_descriptor<int64_t> arg_in_peers = {"in-peers", "set max number of in peers", -1}; const command_line::arg_descriptor<int> arg_tos_flag = {"tos-flag", "set TOS flag", -1}; const command_line::arg_descriptor<int64_t> arg_limit_rate_up = {"limit-rate-up", "set limit-rate-up [kB/s]", -1}; diff --git a/src/p2p/net_node.h b/src/p2p/net_node.h index 20520f83c..54c474665 100644 --- a/src/p2p/net_node.h +++ b/src/p2p/net_node.h @@ -81,6 +81,7 @@ namespace nodetool node_server(t_payload_net_handler& payload_handler) :m_payload_handler(payload_handler), m_current_number_of_out_peers(0), + m_current_number_of_in_peers(0), m_allow_local_ip(false), m_hide_my_port(false), m_no_igd(false), @@ -117,8 +118,10 @@ namespace nodetool bool log_connections(); virtual uint64_t get_connections_count(); size_t get_outgoing_connections_count(); + size_t get_incoming_connections_count(); peerlist_manager& get_peerlist_manager(){return m_peerlist;} - void delete_connections(size_t count); + void delete_out_connections(size_t count); + void delete_in_connections(size_t count); virtual bool block_host(const epee::net_utils::network_address &adress, time_t seconds = P2P_IP_BLOCKTIME); virtual bool unblock_host(const epee::net_utils::network_address &address); virtual std::map<std::string, time_t> get_blocked_hosts() { CRITICAL_REGION_LOCAL(m_blocked_hosts_lock); return m_blocked_hosts; } @@ -214,7 +217,7 @@ namespace nodetool void add_upnp_port_mapping(uint32_t port); void delete_upnp_port_mapping(uint32_t port); template<class t_callback> - bool try_ping(basic_node_data& node_data, p2p_connection_context& context, t_callback cb); + bool try_ping(basic_node_data& node_data, p2p_connection_context& context, const t_callback &cb); bool try_get_support_flags(const p2p_connection_context& context, std::function<void(p2p_connection_context&, const uint32_t&)> f); bool make_expected_connections_count(PeerType peer_type, size_t expected_connections); void cache_connect_fail_info(const epee::net_utils::network_address& addr); @@ -230,6 +233,7 @@ namespace nodetool bool parse_peers_and_add_to_container(const boost::program_options::variables_map& vm, const command_line::arg_descriptor<std::vector<std::string> > & arg, Container& container); bool set_max_out_peers(const boost::program_options::variables_map& vm, int64_t max); + bool set_max_in_peers(const boost::program_options::variables_map& vm, int64_t max); bool set_tos_flag(const boost::program_options::variables_map& vm, int limit); bool set_rate_up_limit(const boost::program_options::variables_map& vm, int64_t limit); @@ -271,6 +275,7 @@ namespace nodetool public: config m_config; // TODO was private, add getters? std::atomic<unsigned int> m_current_number_of_out_peers; + std::atomic<unsigned int> m_current_number_of_in_peers; void set_save_graph(bool save_graph) { @@ -332,8 +337,7 @@ namespace nodetool const int64_t default_limit_up = 2048; const int64_t default_limit_down = 8192; extern const command_line::arg_descriptor<std::string> arg_p2p_bind_ip; - extern const command_line::arg_descriptor<std::string> arg_p2p_bind_port; - extern const command_line::arg_descriptor<std::string> arg_testnet_p2p_bind_port; + extern const command_line::arg_descriptor<std::string, false, true> arg_p2p_bind_port; extern const command_line::arg_descriptor<uint32_t> arg_p2p_external_port; extern const command_line::arg_descriptor<bool> arg_p2p_allow_local_ip; extern const command_line::arg_descriptor<std::vector<std::string> > arg_p2p_add_peer; @@ -345,6 +349,7 @@ namespace nodetool extern const command_line::arg_descriptor<bool> arg_no_igd; extern const command_line::arg_descriptor<bool> arg_offline; extern const command_line::arg_descriptor<int64_t> arg_out_peers; + extern const command_line::arg_descriptor<int64_t> arg_in_peers; extern const command_line::arg_descriptor<int> arg_tos_flag; extern const command_line::arg_descriptor<int64_t> arg_limit_rate_up; diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl index 152dba942..c1de21f22 100644 --- a/src/p2p/net_node.inl +++ b/src/p2p/net_node.inl @@ -75,7 +75,6 @@ namespace nodetool { command_line::add_arg(desc, arg_p2p_bind_ip); command_line::add_arg(desc, arg_p2p_bind_port, false); - command_line::add_arg(desc, arg_testnet_p2p_bind_port, false); command_line::add_arg(desc, arg_p2p_external_port); command_line::add_arg(desc, arg_p2p_allow_local_ip); command_line::add_arg(desc, arg_p2p_add_peer); @@ -85,6 +84,7 @@ namespace nodetool command_line::add_arg(desc, arg_p2p_hide_my_port); command_line::add_arg(desc, arg_no_igd); command_line::add_arg(desc, arg_out_peers); + command_line::add_arg(desc, arg_in_peers); command_line::add_arg(desc, arg_tos_flag); command_line::add_arg(desc, arg_limit_rate_up); command_line::add_arg(desc, arg_limit_rate_down); @@ -262,15 +262,12 @@ namespace nodetool const boost::program_options::variables_map& vm ) { - auto p2p_bind_arg = m_testnet ? arg_testnet_p2p_bind_port : arg_p2p_bind_port; - m_bind_ip = command_line::get_arg(vm, arg_p2p_bind_ip); - m_port = command_line::get_arg(vm, p2p_bind_arg); + m_port = command_line::get_arg(vm, arg_p2p_bind_port); m_external_port = command_line::get_arg(vm, arg_p2p_external_port); m_allow_local_ip = command_line::get_arg(vm, arg_p2p_allow_local_ip); m_no_igd = command_line::get_arg(vm, arg_no_igd); m_offline = command_line::get_arg(vm, cryptonote::arg_offline); - m_testnet = command_line::get_arg(vm, cryptonote::arg_testnet_on); if (command_line::has_arg(vm, arg_p2p_add_peer)) { @@ -315,6 +312,9 @@ namespace nodetool if ( !set_max_out_peers(vm, command_line::get_arg(vm, arg_out_peers) ) ) return false; + if ( !set_max_in_peers(vm, command_line::get_arg(vm, arg_in_peers) ) ) + return false; + if ( !set_tos_flag(vm, command_line::get_arg(vm, arg_tos_flag) ) ) return false; @@ -499,8 +499,7 @@ namespace nodetool } MDEBUG("Number of seed nodes: " << m_seed_nodes.size()); - auto config_arg = m_testnet ? cryptonote::arg_testnet_data_dir : cryptonote::arg_data_dir; - m_config_folder = command_line::get_arg(vm, config_arg); + m_config_folder = command_line::get_arg(vm, cryptonote::arg_data_dir); if ((!m_testnet && m_port != std::to_string(::config::P2P_DEFAULT_PORT)) || (m_testnet && m_port != std::to_string(::config::testnet::P2P_DEFAULT_PORT))) { @@ -565,14 +564,23 @@ namespace nodetool while (!is_closing && !m_net_server.is_stop_signal_sent()) { // main loop of thread //number_of_peers = m_net_server.get_config_object().get_connections_count(); - unsigned int number_of_peers = 0; + unsigned int number_of_in_peers = 0; + unsigned int number_of_out_peers = 0; m_net_server.get_config_object().foreach_connection([&](const p2p_connection_context& cntxt) { - if (!cntxt.m_is_income) ++number_of_peers; + if (cntxt.m_is_income) + { + ++number_of_in_peers; + } + else + { + ++number_of_out_peers; + } return true; }); // lambda - m_current_number_of_out_peers = number_of_peers; + m_current_number_of_in_peers = number_of_in_peers; + m_current_number_of_out_peers = number_of_out_peers; boost::this_thread::sleep_for(boost::chrono::seconds(1)); } // main loop of thread @@ -871,11 +879,11 @@ namespace nodetool template<class t_payload_net_handler> bool node_server<t_payload_net_handler>::try_to_connect_and_handshake_with_new_peer(const epee::net_utils::network_address& na, bool just_take_peerlist, uint64_t last_seen_stamp, PeerType peer_type, uint64_t first_seen_stamp) { - if (m_current_number_of_out_peers == m_config.m_net_config.connections_count) // out peers limit + if (m_current_number_of_out_peers == m_config.m_net_config.max_out_connection_count) // out peers limit { return false; } - else if (m_current_number_of_out_peers > m_config.m_net_config.connections_count) + else if (m_current_number_of_out_peers > m_config.m_net_config.max_out_connection_count) { m_net_server.get_config_object().del_out_connections(1); m_current_number_of_out_peers --; // atomic variable, update time = 1s @@ -1151,6 +1159,7 @@ namespace nodetool template<class t_payload_net_handler> bool node_server<t_payload_net_handler>::connections_maker() { + if (m_offline) return true; if (!connect_to_peerlist(m_exclusive_peers)) return false; if (!m_exclusive_peers.empty()) return true; @@ -1164,10 +1173,10 @@ namespace nodetool if (!connect_to_peerlist(m_priority_peers)) return false; - size_t expected_white_connections = (m_config.m_net_config.connections_count*P2P_DEFAULT_WHITELIST_CONNECTIONS_PERCENT)/100; + size_t expected_white_connections = (m_config.m_net_config.max_out_connection_count*P2P_DEFAULT_WHITELIST_CONNECTIONS_PERCENT)/100; size_t conn_count = get_outgoing_connections_count(); - if(conn_count < m_config.m_net_config.connections_count) + if(conn_count < m_config.m_net_config.max_out_connection_count) { if(conn_count < expected_white_connections) { @@ -1178,20 +1187,20 @@ namespace nodetool if(!make_expected_connections_count(white, expected_white_connections)) return false; //then do grey list - if(!make_expected_connections_count(gray, m_config.m_net_config.connections_count)) + if(!make_expected_connections_count(gray, m_config.m_net_config.max_out_connection_count)) return false; }else { //start from grey list - if(!make_expected_connections_count(gray, m_config.m_net_config.connections_count)) + if(!make_expected_connections_count(gray, m_config.m_net_config.max_out_connection_count)) return false; //and then do white list - if(!make_expected_connections_count(white, m_config.m_net_config.connections_count)) + if(!make_expected_connections_count(white, m_config.m_net_config.max_out_connection_count)) return false; } } - if (start_conn_count == get_outgoing_connections_count() && start_conn_count < m_config.m_net_config.connections_count) + if (start_conn_count == get_outgoing_connections_count() && start_conn_count < m_config.m_net_config.max_out_connection_count) { MINFO("Failed to connect to any, trying seeds"); if (!connect_to_seed()) @@ -1253,6 +1262,20 @@ namespace nodetool } //----------------------------------------------------------------------------------- template<class t_payload_net_handler> + size_t node_server<t_payload_net_handler>::get_incoming_connections_count() + { + size_t count = 0; + m_net_server.get_config_object().foreach_connection([&](const p2p_connection_context& cntxt) + { + if(cntxt.m_is_income) + ++count; + return true; + }); + + return count; + } + //----------------------------------------------------------------------------------- + template<class t_payload_net_handler> bool node_server<t_payload_net_handler>::idle_worker() { m_peer_handshake_idle_maker_interval.do_call(boost::bind(&node_server<t_payload_net_handler>::peer_sync_idle_maker, this)); @@ -1477,7 +1500,7 @@ namespace nodetool } //----------------------------------------------------------------------------------- template<class t_payload_net_handler> template<class t_callback> - bool node_server<t_payload_net_handler>::try_ping(basic_node_data& node_data, p2p_connection_context& context, t_callback cb) + bool node_server<t_payload_net_handler>::try_ping(basic_node_data& node_data, p2p_connection_context& context, const t_callback &cb) { if(!node_data.my_port) return false; @@ -1618,6 +1641,13 @@ namespace nodetool return 1; } + if (m_current_number_of_in_peers >= m_config.m_net_config.max_in_connection_count) // in peers limit + { + LOG_WARNING_CC(context, "COMMAND_HANDSHAKE came, but already have max incoming connections, so dropping this one."); + drop_connection(context); + return 1; + } + if(!m_payload_handler.process_payload_sync_data(arg.payload_data, context, true)) { LOG_WARNING_CC(context, "COMMAND_HANDSHAKE came, but process_payload_sync_data returned false, dropping connection."); @@ -1779,20 +1809,37 @@ namespace nodetool bool node_server<t_payload_net_handler>::set_max_out_peers(const boost::program_options::variables_map& vm, int64_t max) { if(max == -1) { - m_config.m_net_config.connections_count = P2P_DEFAULT_CONNECTIONS_COUNT; + m_config.m_net_config.max_out_connection_count = P2P_DEFAULT_CONNECTIONS_COUNT; + return true; + } + m_config.m_net_config.max_out_connection_count = max; + return true; + } + + template<class t_payload_net_handler> + bool node_server<t_payload_net_handler>::set_max_in_peers(const boost::program_options::variables_map& vm, int64_t max) + { + if(max == -1) { + m_config.m_net_config.max_in_connection_count = -1; return true; } - m_config.m_net_config.connections_count = max; + m_config.m_net_config.max_in_connection_count = max; return true; } template<class t_payload_net_handler> - void node_server<t_payload_net_handler>::delete_connections(size_t count) + void node_server<t_payload_net_handler>::delete_out_connections(size_t count) { m_net_server.get_config_object().del_out_connections(count); } template<class t_payload_net_handler> + void node_server<t_payload_net_handler>::delete_in_connections(size_t count) + { + m_net_server.get_config_object().del_in_connections(count); + } + + template<class t_payload_net_handler> bool node_server<t_payload_net_handler>::set_tos_flag(const boost::program_options::variables_map& vm, int flag) { if(flag==-1){ @@ -1884,6 +1931,7 @@ namespace nodetool template<class t_payload_net_handler> bool node_server<t_payload_net_handler>::gray_peerlist_housekeeping() { + if (m_offline) return true; if (!m_exclusive_peers.empty()) return true; peerlist_entry pe = AUTO_VAL_INIT(pe); diff --git a/src/p2p/p2p_protocol_defs.h b/src/p2p/p2p_protocol_defs.h index 348a8b978..e793e19b6 100644 --- a/src/p2p/p2p_protocol_defs.h +++ b/src/p2p/p2p_protocol_defs.h @@ -131,13 +131,15 @@ namespace nodetool struct network_config { BEGIN_KV_SERIALIZE_MAP() - KV_SERIALIZE(connections_count) + KV_SERIALIZE(max_out_connection_count) + KV_SERIALIZE(max_in_connection_count) KV_SERIALIZE(handshake_interval) KV_SERIALIZE(packet_max_size) KV_SERIALIZE(config_id) END_KV_SERIALIZE_MAP() - uint32_t connections_count; + uint32_t max_out_connection_count; + uint32_t max_in_connection_count; uint32_t connection_timeout; uint32_t ping_connection_timeout; uint32_t handshake_interval; diff --git a/src/ringct/bulletproofs.cc b/src/ringct/bulletproofs.cc index 67e877326..fd15ffbc4 100644 --- a/src/ringct/bulletproofs.cc +++ b/src/ringct/bulletproofs.cc @@ -297,6 +297,39 @@ static rct::keyV slice(const rct::keyV &a, size_t start, size_t stop) return res; } +static rct::key hash_cache_mash(rct::key &hash_cache, const rct::key &mash0, const rct::key &mash1) +{ + rct::keyV data; + data.reserve(3); + data.push_back(hash_cache); + data.push_back(mash0); + data.push_back(mash1); + return hash_cache = rct::hash_to_scalar(data); +} + +static rct::key hash_cache_mash(rct::key &hash_cache, const rct::key &mash0, const rct::key &mash1, const rct::key &mash2) +{ + rct::keyV data; + data.reserve(4); + data.push_back(hash_cache); + data.push_back(mash0); + data.push_back(mash1); + data.push_back(mash2); + return hash_cache = rct::hash_to_scalar(data); +} + +static rct::key hash_cache_mash(rct::key &hash_cache, const rct::key &mash0, const rct::key &mash1, const rct::key &mash2, const rct::key &mash3) +{ + rct::keyV data; + data.reserve(5); + data.push_back(hash_cache); + data.push_back(mash0); + data.push_back(mash1); + data.push_back(mash2); + data.push_back(mash3); + return hash_cache = rct::hash_to_scalar(data); +} + /* Given a value v (0..2^N-1) and a mask gamma, construct a range proof */ Bulletproof bulletproof_PROVE(const rct::key &sv, const rct::key &gamma) { @@ -329,6 +362,7 @@ Bulletproof bulletproof_PROVE(const rct::key &sv, const rct::key &gamma) } PERF_TIMER_STOP(PROVE_aLaR); + rct::key hash_cache = rct::hash_to_scalar(V); // DEBUG: Test to ensure this recovers the value #ifdef DEBUG_BP @@ -361,11 +395,8 @@ Bulletproof bulletproof_PROVE(const rct::key &sv, const rct::key &gamma) rct::addKeys(S, ve, rct::scalarmultBase(rho)); // PAPER LINES 43-45 - rct::keyV hashed; - hashed.push_back(A); - hashed.push_back(S); - rct::key y = rct::hash_to_scalar(hashed); - rct::key z = rct::hash_to_scalar(y); + rct::key y = hash_cache_mash(hash_cache, A, S); + rct::key z = hash_cache = rct::hash_to_scalar(y); // Polynomial construction before PAPER LINE 46 rct::key t0 = rct::zero(); @@ -427,11 +458,7 @@ Bulletproof bulletproof_PROVE(const rct::key &sv, const rct::key &gamma) rct::key T2 = rct::addKeys(rct::scalarmultKey(rct::H, t2), rct::scalarmultBase(tau2)); // PAPER LINES 49-51 - hashed.clear(); - hashed.push_back(z); - hashed.push_back(T1); - hashed.push_back(T2); - rct::key x = rct::hash_to_scalar(hashed); + rct::key x = hash_cache_mash(hash_cache, z, T1, T2); // PAPER LINES 52-53 rct::key taux = rct::zero(); @@ -460,12 +487,7 @@ Bulletproof bulletproof_PROVE(const rct::key &sv, const rct::key &gamma) #endif // PAPER LINES 32-33 - hashed.clear(); - hashed.push_back(x); - hashed.push_back(taux); - hashed.push_back(mu); - hashed.push_back(t); - rct::key x_ip = rct::hash_to_scalar(hashed); + rct::key x_ip = hash_cache_mash(hash_cache, x, taux, mu, t); // These are used in the inner product rounds size_t nprime = N; @@ -509,20 +531,7 @@ Bulletproof bulletproof_PROVE(const rct::key &sv, const rct::key &gamma) rct::addKeys(R[round], R[round], rct::scalarmultKey(rct::H, tmp)); // PAPER LINES 21-22 - hashed.clear(); - if (round == 0) - { - hashed.push_back(L[0]); - hashed.push_back(R[0]); - w[0] = rct::hash_to_scalar(hashed); - } - else - { - hashed.push_back(w[round - 1]); - hashed.push_back(L[round]); - hashed.push_back(R[round]); - w[round] = rct::hash_to_scalar(hashed); - } + w[round] = hash_cache_mash(hash_cache, L[round], R[round]); // PAPER LINES 24-25 const rct::key winv = invert(w[round]); @@ -563,6 +572,7 @@ bool bulletproof_VERIFY(const Bulletproof &proof) { init_exponents(); + CHECK_AND_ASSERT_MES(proof.V.size() == 1, false, "V does not have exactly one element"); CHECK_AND_ASSERT_MES(proof.L.size() == proof.R.size(), false, "Mismatched L and R sizes"); CHECK_AND_ASSERT_MES(proof.L.size() > 0, false, "Empty proof"); CHECK_AND_ASSERT_MES(proof.L.size() == 6, false, "Proof is not for 64 bits"); @@ -573,26 +583,15 @@ bool bulletproof_VERIFY(const Bulletproof &proof) // Reconstruct the challenges PERF_TIMER_START_BP(VERIFY); PERF_TIMER_START_BP(VERIFY_start); - rct::keyV hashed; - hashed.push_back(proof.A); - hashed.push_back(proof.S); - rct::key y = rct::hash_to_scalar(hashed); - rct::key z = rct::hash_to_scalar(y); - hashed.clear(); - hashed.push_back(z); - hashed.push_back(proof.T1); - hashed.push_back(proof.T2); - rct::key x = rct::hash_to_scalar(hashed); + rct::key hash_cache = rct::hash_to_scalar(proof.V[0]); + rct::key y = hash_cache_mash(hash_cache, proof.A, proof.S); + rct::key z = hash_cache = rct::hash_to_scalar(y); + rct::key x = hash_cache_mash(hash_cache, z, proof.T1, proof.T2); PERF_TIMER_STOP(VERIFY_start); PERF_TIMER_START_BP(VERIFY_line_60); // Reconstruct the challenges - hashed.clear(); - hashed.push_back(x); - hashed.push_back(proof.taux); - hashed.push_back(proof.mu); - hashed.push_back(proof.t); - rct::key x_ip = hash_to_scalar(hashed); + rct::key x_ip = hash_cache_mash(hash_cache, x, proof.taux, proof.mu, proof.t); PERF_TIMER_STOP(VERIFY_line_60); PERF_TIMER_START_BP(VERIFY_line_61); @@ -647,17 +646,9 @@ bool bulletproof_VERIFY(const Bulletproof &proof) // PAPER LINES 21-22 // The inner product challenges are computed per round rct::keyV w(rounds); - hashed.clear(); - hashed.push_back(proof.L[0]); - hashed.push_back(proof.R[0]); - w[0] = rct::hash_to_scalar(hashed); - for (size_t i = 1; i < rounds; ++i) + for (size_t i = 0; i < rounds; ++i) { - hashed.clear(); - hashed.push_back(w[i-1]); - hashed.push_back(proof.L[i]); - hashed.push_back(proof.R[i]); - w[i] = rct::hash_to_scalar(hashed); + w[i] = hash_cache_mash(hash_cache, proof.L[i], proof.R[i]); } PERF_TIMER_STOP(VERIFY_line_21_22); diff --git a/src/ringct/rctSigs.cpp b/src/ringct/rctSigs.cpp index 3c34a5637..0c2be5add 100644 --- a/src/ringct/rctSigs.cpp +++ b/src/ringct/rctSigs.cpp @@ -43,6 +43,30 @@ using namespace std; #define MONERO_DEFAULT_LOG_CATEGORY "ringct" namespace rct { + bool is_simple(int type) + { + switch (type) + { + case RCTTypeSimple: + case RCTTypeSimpleBulletproof: + return true; + default: + return false; + } + } + + bool is_bulletproof(int type) + { + switch (type) + { + case RCTTypeSimpleBulletproof: + case RCTTypeFullBulletproof: + return true; + default: + return false; + } + } + Bulletproof proveRangeBulletproof(key &C, key &mask, uint64_t amount) { mask = rct::skGen(); @@ -357,7 +381,8 @@ namespace rct { std::stringstream ss; binary_archive<true> ba(ss); - const size_t inputs = rv.pseudoOuts.size(); + CHECK_AND_ASSERT_THROW_MES(!rv.mixRing.empty(), "Empty mixRing"); + const size_t inputs = is_simple(rv.type) ? rv.mixRing.size() : rv.mixRing[0].size(); const size_t outputs = rv.ecdhInfo.size(); CHECK_AND_ASSERT_THROW_MES(const_cast<rctSig&>(rv).serialize_rctsig_base(ba, inputs, outputs), "Failed to serialize rctSigBase"); @@ -750,25 +775,26 @@ namespace rct { // TODO: unused ?? // key txnFeeKey = scalarmultH(d2h(rv.txnFee)); rv.mixRing = mixRing; - rv.pseudoOuts.resize(inamounts.size()); + keyV &pseudoOuts = bulletproof ? rv.p.pseudoOuts : rv.pseudoOuts; + pseudoOuts.resize(inamounts.size()); rv.p.MGs.resize(inamounts.size()); key sumpouts = zero(); //sum pseudoOut masks keyV a(inamounts.size()); for (i = 0 ; i < inamounts.size() - 1; i++) { skGen(a[i]); sc_add(sumpouts.bytes, a[i].bytes, sumpouts.bytes); - genC(rv.pseudoOuts[i], a[i], inamounts[i]); + genC(pseudoOuts[i], a[i], inamounts[i]); } rv.mixRing = mixRing; sc_sub(a[i].bytes, sumout.bytes, sumpouts.bytes); - genC(rv.pseudoOuts[i], a[i], inamounts[i]); - DP(rv.pseudoOuts[i]); + genC(pseudoOuts[i], a[i], inamounts[i]); + DP(pseudoOuts[i]); key full_message = get_pre_mlsag_hash(rv); if (msout) msout->c.resize(inamounts.size()); for (i = 0 ; i < inamounts.size(); i++) { - rv.p.MGs[i] = proveRctMGSimple(full_message, rv.mixRing[i], inSk[i], a[i], rv.pseudoOuts[i], kLRki ? &(*kLRki)[i]: NULL, msout ? &msout->c[i] : NULL, index[i]); + rv.p.MGs[i] = proveRctMGSimple(full_message, rv.mixRing[i], inSk[i], a[i], pseudoOuts[i], kLRki ? &(*kLRki)[i]: NULL, msout ? &msout->c[i] : NULL, index[i]); } return rv; } @@ -876,16 +902,26 @@ namespace rct { if (semantics) { if (rv.type == RCTTypeSimpleBulletproof) + { CHECK_AND_ASSERT_MES(rv.outPk.size() == rv.p.bulletproofs.size(), false, "Mismatched sizes of outPk and rv.p.bulletproofs"); + CHECK_AND_ASSERT_MES(rv.p.pseudoOuts.size() == rv.p.MGs.size(), false, "Mismatched sizes of rv.p.pseudoOuts and rv.p.MGs"); + CHECK_AND_ASSERT_MES(rv.pseudoOuts.empty(), false, "rv.pseudoOuts is not empty"); + } else + { CHECK_AND_ASSERT_MES(rv.outPk.size() == rv.p.rangeSigs.size(), false, "Mismatched sizes of outPk and rv.p.rangeSigs"); + CHECK_AND_ASSERT_MES(rv.pseudoOuts.size() == rv.p.MGs.size(), false, "Mismatched sizes of rv.pseudoOuts and rv.p.MGs"); + CHECK_AND_ASSERT_MES(rv.p.pseudoOuts.empty(), false, "rv.p.pseudoOuts is not empty"); + } CHECK_AND_ASSERT_MES(rv.outPk.size() == rv.ecdhInfo.size(), false, "Mismatched sizes of outPk and rv.ecdhInfo"); - CHECK_AND_ASSERT_MES(rv.pseudoOuts.size() == rv.p.MGs.size(), false, "Mismatched sizes of rv.pseudoOuts and rv.p.MGs"); } else { // semantics check is early, and mixRing/MGs aren't resolved yet - CHECK_AND_ASSERT_MES(rv.pseudoOuts.size() == rv.mixRing.size(), false, "Mismatched sizes of rv.pseudoOuts and mixRing"); + if (rv.type == RCTTypeSimpleBulletproof) + CHECK_AND_ASSERT_MES(rv.p.pseudoOuts.size() == rv.mixRing.size(), false, "Mismatched sizes of rv.p.pseudoOuts and mixRing"); + else + CHECK_AND_ASSERT_MES(rv.pseudoOuts.size() == rv.mixRing.size(), false, "Mismatched sizes of rv.pseudoOuts and mixRing"); } const size_t threads = std::max(rv.outPk.size(), rv.mixRing.size()); @@ -894,6 +930,8 @@ namespace rct { tools::threadpool& tpool = tools::threadpool::getInstance(); tools::threadpool::waiter waiter; + const keyV &pseudoOuts = is_bulletproof(rv.type) ? rv.p.pseudoOuts : rv.pseudoOuts; + if (semantics) { key sumOutpks = identity(); for (size_t i = 0; i < rv.outPk.size(); i++) { @@ -904,8 +942,8 @@ namespace rct { addKeys(sumOutpks, txnFeeKey, sumOutpks); key sumPseudoOuts = identity(); - for (size_t i = 0 ; i < rv.pseudoOuts.size() ; i++) { - addKeys(sumPseudoOuts, sumPseudoOuts, rv.pseudoOuts[i]); + for (size_t i = 0 ; i < pseudoOuts.size() ; i++) { + addKeys(sumPseudoOuts, sumPseudoOuts, pseudoOuts[i]); } DP(sumPseudoOuts); @@ -941,7 +979,7 @@ namespace rct { results.resize(rv.mixRing.size()); for (size_t i = 0 ; i < rv.mixRing.size() ; i++) { tpool.submit(&waiter, [&, i] { - results[i] = verRctMGSimple(message, rv.p.MGs[i], rv.mixRing[i], rv.pseudoOuts[i]); + results[i] = verRctMGSimple(message, rv.p.MGs[i], rv.mixRing[i], pseudoOuts[i]); }); } waiter.wait(); diff --git a/src/ringct/rctTypes.cpp b/src/ringct/rctTypes.cpp index 1526dcf7c..5650b3ba1 100644 --- a/src/ringct/rctTypes.cpp +++ b/src/ringct/rctTypes.cpp @@ -178,6 +178,7 @@ namespace rct { } while (i < 8 * (j + 1)) { amountb2[i] = 0; + i++; } } } diff --git a/src/ringct/rctTypes.h b/src/ringct/rctTypes.h index 2df797360..eba1e3d93 100644 --- a/src/ringct/rctTypes.h +++ b/src/ringct/rctTypes.h @@ -246,7 +246,7 @@ namespace rct { // inputs/outputs not saved, only here for serialization help // FIELD(message) - not serialized, it can be reconstructed // FIELD(mixRing) - not serialized, it can be reconstructed - if (type == RCTTypeSimple || type == RCTTypeSimpleBulletproof) + if (type == RCTTypeSimple) // moved to prunable with bulletproofs { ar.tag("pseudoOuts"); ar.begin_array(); @@ -294,6 +294,7 @@ namespace rct { std::vector<rangeSig> rangeSigs; std::vector<Bulletproof> bulletproofs; std::vector<mgSig> MGs; // simple rct has N, full has 1 + keyV pseudoOuts; //C - for simple rct template<bool W, template <bool> class Archive> bool serialize_rctsig_prunable(Archive<W> &ar, uint8_t type, size_t inputs, size_t outputs, size_t mixin) @@ -381,6 +382,21 @@ namespace rct { ar.delimit_array(); } ar.end_array(); + if (type == RCTTypeSimpleBulletproof) + { + ar.tag("pseudoOuts"); + ar.begin_array(); + PREPARE_CUSTOM_VECTOR_SERIALIZATION(inputs, pseudoOuts); + if (pseudoOuts.size() != inputs) + return false; + for (size_t i = 0; i < inputs; ++i) + { + FIELDS(pseudoOuts[i]) + if (inputs - i > 1) + ar.delimit_array(); + } + ar.end_array(); + } return true; } diff --git a/src/rpc/core_rpc_server.cpp b/src/rpc/core_rpc_server.cpp index 140094faa..a8d801ac7 100644 --- a/src/rpc/core_rpc_server.cpp +++ b/src/rpc/core_rpc_server.cpp @@ -42,6 +42,7 @@ using namespace epee; #include "cryptonote_basic/account.h" #include "cryptonote_basic/cryptonote_basic_impl.h" #include "misc_language.h" +#include "storages/http_abstract_invoke.h" #include "crypto/hash.h" #include "rpc/rpc_args.h" #include "core_rpc_server_error_codes.h" @@ -72,9 +73,9 @@ namespace cryptonote { command_line::add_arg(desc, arg_rpc_bind_port); command_line::add_arg(desc, arg_rpc_restricted_bind_port); - command_line::add_arg(desc, arg_testnet_rpc_bind_port); - command_line::add_arg(desc, arg_testnet_rpc_restricted_bind_port); command_line::add_arg(desc, arg_restricted_rpc); + command_line::add_arg(desc, arg_bootstrap_daemon_address); + command_line::add_arg(desc, arg_bootstrap_daemon_login); cryptonote::rpc_args::init_options(desc); } //------------------------------------------------------------------------------------------------------------------------------ @@ -101,6 +102,30 @@ namespace cryptonote if (!rpc_config) return false; + m_bootstrap_daemon_address = command_line::get_arg(vm, arg_bootstrap_daemon_address); + if (!m_bootstrap_daemon_address.empty()) + { + const std::string &bootstrap_daemon_login = command_line::get_arg(vm, arg_bootstrap_daemon_login); + const auto loc = bootstrap_daemon_login.find(':'); + if (!bootstrap_daemon_login.empty() && loc != std::string::npos) + { + epee::net_utils::http::login login; + login.username = bootstrap_daemon_login.substr(0, loc); + login.password = bootstrap_daemon_login.substr(loc + 1); + m_http_client.set_server(m_bootstrap_daemon_address, login, false); + } + else + { + m_http_client.set_server(m_bootstrap_daemon_address, boost::none, false); + } + m_should_use_bootstrap_daemon = true; + } + else + { + m_should_use_bootstrap_daemon = false; + } + m_was_bootstrap_ever_used = false; + boost::optional<epee::net_utils::http::login> http_login{}; if (rpc_config->login) @@ -126,6 +151,10 @@ namespace cryptonote bool core_rpc_server::on_get_height(const COMMAND_RPC_GET_HEIGHT::request& req, COMMAND_RPC_GET_HEIGHT::response& res) { PERF_TIMER(on_get_height); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_HEIGHT>(invoke_http_mode::JON, "/getheight", req, res, r)) + return r; + res.height = m_core.get_current_blockchain_height(); res.status = CORE_RPC_STATUS_OK; return true; @@ -134,6 +163,17 @@ namespace cryptonote bool core_rpc_server::on_get_info(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res) { PERF_TIMER(on_get_info); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_INFO>(invoke_http_mode::JON, "/getinfo", req, res, r)) + { + res.bootstrap_daemon_address = m_bootstrap_daemon_address; + crypto::hash top_hash; + m_core.get_blockchain_top(res.height_without_bootstrap, top_hash); + ++res.height_without_bootstrap; // turn top block height into blockchain height + res.was_bootstrap_ever_used = true; + return r; + } + crypto::hash top_hash; m_core.get_blockchain_top(res.height, top_hash); ++res.height; // turn top block height into blockchain height @@ -158,6 +198,12 @@ namespace cryptonote res.start_time = (uint64_t)m_core.get_start_time(); res.free_space = m_restricted ? std::numeric_limits<uint64_t>::max() : m_core.get_free_space(); res.offline = m_core.offline(); + res.bootstrap_daemon_address = m_bootstrap_daemon_address; + res.height_without_bootstrap = res.height; + { + boost::shared_lock<boost::shared_mutex> lock(m_bootstrap_daemon_mutex); + res.was_bootstrap_ever_used = m_was_bootstrap_ever_used; + } return true; } //------------------------------------------------------------------------------------------------------------------------------ @@ -181,6 +227,10 @@ namespace cryptonote bool core_rpc_server::on_get_blocks(const COMMAND_RPC_GET_BLOCKS_FAST::request& req, COMMAND_RPC_GET_BLOCKS_FAST::response& res) { PERF_TIMER(on_get_blocks); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCKS_FAST>(invoke_http_mode::BIN, "/getblocks.bin", req, res, r)) + return r; + std::list<std::pair<cryptonote::blobdata, std::list<cryptonote::blobdata> > > bs; if(!m_core.find_blockchain_supplement(req.start_height, req.block_ids, bs, res.current_height, res.start_height, COMMAND_RPC_GET_BLOCKS_FAST_MAX_COUNT)) @@ -240,6 +290,10 @@ namespace cryptonote bool core_rpc_server::on_get_alt_blocks_hashes(const COMMAND_RPC_GET_ALT_BLOCKS_HASHES::request& req, COMMAND_RPC_GET_ALT_BLOCKS_HASHES::response& res) { PERF_TIMER(on_get_alt_blocks_hashes); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_ALT_BLOCKS_HASHES>(invoke_http_mode::JON, "/get_alt_blocks_hashes", req, res, r)) + return r; + std::list<block> blks; if(!m_core.get_alternative_blocks(blks)) @@ -263,6 +317,10 @@ namespace cryptonote bool core_rpc_server::on_get_blocks_by_height(const COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::request& req, COMMAND_RPC_GET_BLOCKS_BY_HEIGHT::response& res) { PERF_TIMER(on_get_blocks_by_height); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCKS_BY_HEIGHT>(invoke_http_mode::BIN, "/getblocks_by_height.bin", req, res, r)) + return r; + res.status = "Failed"; res.blocks.clear(); res.blocks.reserve(req.heights.size()); @@ -293,6 +351,10 @@ namespace cryptonote bool core_rpc_server::on_get_hashes(const COMMAND_RPC_GET_HASHES_FAST::request& req, COMMAND_RPC_GET_HASHES_FAST::response& res) { PERF_TIMER(on_get_hashes); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_HASHES_FAST>(invoke_http_mode::BIN, "/gethashes.bin", req, res, r)) + return r; + NOTIFY_RESPONSE_CHAIN_ENTRY::request resp; resp.start_height = req.start_height; @@ -312,6 +374,10 @@ namespace cryptonote bool core_rpc_server::on_get_random_outs(const COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS::request& req, COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS::response& res) { PERF_TIMER(on_get_random_outs); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS>(invoke_http_mode::BIN, "/getrandom_outs.bin", req, res, r)) + return r; + res.status = "Failed"; if (m_restricted) @@ -351,6 +417,10 @@ namespace cryptonote bool core_rpc_server::on_get_outs_bin(const COMMAND_RPC_GET_OUTPUTS_BIN::request& req, COMMAND_RPC_GET_OUTPUTS_BIN::response& res) { PERF_TIMER(on_get_outs_bin); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_OUTPUTS_BIN>(invoke_http_mode::BIN, "/get_outs.bin", req, res, r)) + return r; + res.status = "Failed"; if (m_restricted) @@ -374,6 +444,10 @@ namespace cryptonote bool core_rpc_server::on_get_outs(const COMMAND_RPC_GET_OUTPUTS::request& req, COMMAND_RPC_GET_OUTPUTS::response& res) { PERF_TIMER(on_get_outs); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_OUTPUTS>(invoke_http_mode::JON, "/get_outs", req, res, r)) + return r; + res.status = "Failed"; if (m_restricted) @@ -412,6 +486,10 @@ namespace cryptonote bool core_rpc_server::on_get_random_rct_outs(const COMMAND_RPC_GET_RANDOM_RCT_OUTPUTS::request& req, COMMAND_RPC_GET_RANDOM_RCT_OUTPUTS::response& res) { PERF_TIMER(on_get_random_rct_outs); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_RANDOM_RCT_OUTPUTS>(invoke_http_mode::BIN, "/getrandom_rctouts.bin", req, res, r)) + return r; + res.status = "Failed"; if(!m_core.get_random_rct_outs(req, res)) { @@ -436,6 +514,10 @@ namespace cryptonote bool core_rpc_server::on_get_indexes(const COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::request& req, COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES::response& res) { PERF_TIMER(on_get_indexes); + bool ok; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TX_GLOBAL_OUTPUTS_INDEXES>(invoke_http_mode::BIN, "/get_o_indexes.bin", req, res, ok)) + return ok; + bool r = m_core.get_tx_outputs_gindexs(req.txid, res.o_indexes); if(!r) { @@ -450,6 +532,10 @@ namespace cryptonote bool core_rpc_server::on_get_transactions(const COMMAND_RPC_GET_TRANSACTIONS::request& req, COMMAND_RPC_GET_TRANSACTIONS::response& res) { PERF_TIMER(on_get_transactions); + bool ok; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TRANSACTIONS>(invoke_http_mode::JON, "/gettransactions", req, res, ok)) + return ok; + std::vector<crypto::hash> vh; for(const auto& tx_hex_str: req.txs_hashes) { @@ -600,6 +686,10 @@ namespace cryptonote bool core_rpc_server::on_is_key_image_spent(const COMMAND_RPC_IS_KEY_IMAGE_SPENT::request& req, COMMAND_RPC_IS_KEY_IMAGE_SPENT::response& res, bool request_has_rpc_origin) { PERF_TIMER(on_is_key_image_spent); + bool ok; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_IS_KEY_IMAGE_SPENT>(invoke_http_mode::JON, "/is_key_image_spent", req, res, ok)) + return ok; + std::vector<crypto::key_image> key_images; for(const auto& ki_hex_str: req.key_images) { @@ -663,6 +753,10 @@ namespace cryptonote bool core_rpc_server::on_send_raw_tx(const COMMAND_RPC_SEND_RAW_TX::request& req, COMMAND_RPC_SEND_RAW_TX::response& res) { PERF_TIMER(on_send_raw_tx); + bool ok; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_SEND_RAW_TX>(invoke_http_mode::JON, "/sendrawtransaction", req, res, ok)) + return ok; + CHECK_CORE_READY(); std::string tx_blob; @@ -886,6 +980,10 @@ namespace cryptonote bool core_rpc_server::on_get_transaction_pool(const COMMAND_RPC_GET_TRANSACTION_POOL::request& req, COMMAND_RPC_GET_TRANSACTION_POOL::response& res, bool request_has_rpc_origin) { PERF_TIMER(on_get_transaction_pool); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TRANSACTION_POOL>(invoke_http_mode::JON, "/get_transaction_pool", req, res, r)) + return r; + m_core.get_pool_transactions_and_spent_keys_info(res.transactions, res.spent_key_images, !request_has_rpc_origin || !m_restricted); res.status = CORE_RPC_STATUS_OK; return true; @@ -894,6 +992,10 @@ namespace cryptonote bool core_rpc_server::on_get_transaction_pool_hashes(const COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::request& req, COMMAND_RPC_GET_TRANSACTION_POOL_HASHES::response& res, bool request_has_rpc_origin) { PERF_TIMER(on_get_transaction_pool_hashes); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TRANSACTION_POOL_HASHES>(invoke_http_mode::JON, "/get_transaction_pool_hashes.bin", req, res, r)) + return r; + m_core.get_pool_transaction_hashes(res.tx_hashes, !request_has_rpc_origin || !m_restricted); res.status = CORE_RPC_STATUS_OK; return true; @@ -902,6 +1004,10 @@ namespace cryptonote bool core_rpc_server::on_get_transaction_pool_stats(const COMMAND_RPC_GET_TRANSACTION_POOL_STATS::request& req, COMMAND_RPC_GET_TRANSACTION_POOL_STATS::response& res, bool request_has_rpc_origin) { PERF_TIMER(on_get_transaction_pool_stats); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TRANSACTION_POOL_STATS>(invoke_http_mode::JON, "/get_transaction_pool_stats", req, res, r)) + return r; + m_core.get_pool_transaction_stats(res.pool_stats, !request_has_rpc_origin || !m_restricted); res.status = CORE_RPC_STATUS_OK; return true; @@ -920,6 +1026,14 @@ namespace cryptonote bool core_rpc_server::on_getblockcount(const COMMAND_RPC_GETBLOCKCOUNT::request& req, COMMAND_RPC_GETBLOCKCOUNT::response& res) { PERF_TIMER(on_getblockcount); + { + boost::shared_lock<boost::shared_mutex> lock(m_bootstrap_daemon_mutex); + if (m_should_use_bootstrap_daemon) + { + res.status = "This command is unsupported for bootstrap daemon"; + return false; + } + } res.count = m_core.get_current_blockchain_height(); res.status = CORE_RPC_STATUS_OK; return true; @@ -928,6 +1042,14 @@ namespace cryptonote bool core_rpc_server::on_getblockhash(const COMMAND_RPC_GETBLOCKHASH::request& req, COMMAND_RPC_GETBLOCKHASH::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_getblockhash); + { + boost::shared_lock<boost::shared_mutex> lock(m_bootstrap_daemon_mutex); + if (m_should_use_bootstrap_daemon) + { + res = "This command is unsupported for bootstrap daemon"; + return false; + } + } if(req.size() != 1) { error_resp.code = CORE_RPC_ERROR_CODE_WRONG_PARAM; @@ -964,6 +1086,10 @@ namespace cryptonote bool core_rpc_server::on_getblocktemplate(const COMMAND_RPC_GETBLOCKTEMPLATE::request& req, COMMAND_RPC_GETBLOCKTEMPLATE::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_getblocktemplate); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GETBLOCKTEMPLATE>(invoke_http_mode::JON_RPC, "getblocktemplate", req, res, r)) + return r; + if(!check_core_ready()) { error_resp.code = CORE_RPC_ERROR_CODE_CORE_BUSY; @@ -1039,6 +1165,14 @@ namespace cryptonote bool core_rpc_server::on_submitblock(const COMMAND_RPC_SUBMITBLOCK::request& req, COMMAND_RPC_SUBMITBLOCK::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_submitblock); + { + boost::shared_lock<boost::shared_mutex> lock(m_bootstrap_daemon_mutex); + if (m_should_use_bootstrap_daemon) + { + res.status = "This command is unsupported for bootstrap daemon"; + return false; + } + } CHECK_CORE_READY(); if(req.size()!=1) { @@ -1112,9 +1246,80 @@ namespace cryptonote return true; } //------------------------------------------------------------------------------------------------------------------------------ + template <typename COMMAND_TYPE> + bool core_rpc_server::use_bootstrap_daemon_if_necessary(const invoke_http_mode &mode, const std::string &command_name, const typename COMMAND_TYPE::request& req, typename COMMAND_TYPE::response& res, bool &r) + { + res.untrusted = false; + if (m_bootstrap_daemon_address.empty()) + return false; + + boost::unique_lock<boost::shared_mutex> lock(m_bootstrap_daemon_mutex); + if (!m_should_use_bootstrap_daemon) + { + MINFO("The local daemon is fully synced. Not switching back to the bootstrap daemon"); + return false; + } + + auto current_time = std::chrono::system_clock::now(); + if (current_time - m_bootstrap_height_check_time > std::chrono::seconds(30)) // update every 30s + { + m_bootstrap_height_check_time = current_time; + + uint64_t top_height; + crypto::hash top_hash; + m_core.get_blockchain_top(top_height, top_hash); + ++top_height; // turn top block height into blockchain height + + // query bootstrap daemon's height + cryptonote::COMMAND_RPC_GET_HEIGHT::request getheight_req; + cryptonote::COMMAND_RPC_GET_HEIGHT::response getheight_res; + bool ok = epee::net_utils::invoke_http_json("/getheight", getheight_req, getheight_res, m_http_client); + ok = ok && getheight_res.status == CORE_RPC_STATUS_OK; + + m_should_use_bootstrap_daemon = ok && top_height + 10 < getheight_res.height; + MINFO((m_should_use_bootstrap_daemon ? "Using" : "Not using") << " the bootstrap daemon (our height: " << top_height << ", bootstrap daemon's height: " << getheight_res.height << ")"); + } + if (!m_should_use_bootstrap_daemon) + return false; + + if (mode == invoke_http_mode::JON) + { + r = epee::net_utils::invoke_http_json(command_name, req, res, m_http_client); + } + else if (mode == invoke_http_mode::BIN) + { + r = epee::net_utils::invoke_http_bin(command_name, req, res, m_http_client); + } + else if (mode == invoke_http_mode::JON_RPC) + { + epee::json_rpc::request<typename COMMAND_TYPE::request> json_req = AUTO_VAL_INIT(json_req); + epee::json_rpc::response<typename COMMAND_TYPE::response, std::string> json_resp = AUTO_VAL_INIT(json_resp); + json_req.jsonrpc = "2.0"; + json_req.id = epee::serialization::storage_entry(0); + json_req.method = command_name; + json_req.params = req; + r = net_utils::invoke_http_json("/json_rpc", json_req, json_resp, m_http_client); + if (r) + res = json_resp.result; + } + else + { + MERROR("Unknown invoke_http_mode: " << mode); + return false; + } + m_was_bootstrap_ever_used = true; + r = r && res.status == CORE_RPC_STATUS_OK; + res.untrusted = true; + return true; + } + //------------------------------------------------------------------------------------------------------------------------------ bool core_rpc_server::on_get_last_block_header(const COMMAND_RPC_GET_LAST_BLOCK_HEADER::request& req, COMMAND_RPC_GET_LAST_BLOCK_HEADER::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_get_last_block_header); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_LAST_BLOCK_HEADER>(invoke_http_mode::JON_RPC, "getlastblockheader", req, res, r)) + return r; + CHECK_CORE_READY(); uint64_t last_block_height; crypto::hash last_block_hash; @@ -1140,6 +1345,10 @@ namespace cryptonote //------------------------------------------------------------------------------------------------------------------------------ bool core_rpc_server::on_get_block_header_by_hash(const COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::request& req, COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH::response& res, epee::json_rpc::error& error_resp){ PERF_TIMER(on_get_block_header_by_hash); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK_HEADER_BY_HASH>(invoke_http_mode::JON_RPC, "getblockheaderbyhash", req, res, r)) + return r; + crypto::hash block_hash; bool hash_parsed = parse_hash256(req.hash, block_hash); if(!hash_parsed) @@ -1177,6 +1386,10 @@ namespace cryptonote //------------------------------------------------------------------------------------------------------------------------------ bool core_rpc_server::on_get_block_headers_range(const COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::request& req, COMMAND_RPC_GET_BLOCK_HEADERS_RANGE::response& res, epee::json_rpc::error& error_resp){ PERF_TIMER(on_get_block_headers_range); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK_HEADERS_RANGE>(invoke_http_mode::JON_RPC, "getblockheadersrange", req, res, r)) + return r; + const uint64_t bc_height = m_core.get_current_blockchain_height(); if (req.start_height >= bc_height || req.end_height >= bc_height || req.start_height > req.end_height) { @@ -1223,6 +1436,10 @@ namespace cryptonote //------------------------------------------------------------------------------------------------------------------------------ bool core_rpc_server::on_get_block_header_by_height(const COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::request& req, COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT::response& res, epee::json_rpc::error& error_resp){ PERF_TIMER(on_get_block_header_by_height); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK_HEADER_BY_HEIGHT>(invoke_http_mode::JON_RPC, "getblockheaderbyheight", req, res, r)) + return r; + if(m_core.get_current_blockchain_height() <= req.height) { error_resp.code = CORE_RPC_ERROR_CODE_TOO_BIG_HEIGHT; @@ -1251,6 +1468,10 @@ namespace cryptonote //------------------------------------------------------------------------------------------------------------------------------ bool core_rpc_server::on_get_block(const COMMAND_RPC_GET_BLOCK::request& req, COMMAND_RPC_GET_BLOCK::response& res, epee::json_rpc::error& error_resp){ PERF_TIMER(on_get_block); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_BLOCK>(invoke_http_mode::JON_RPC, "getblock", req, res, r)) + return r; + crypto::hash block_hash; if (!req.hash.empty()) { @@ -1320,6 +1541,16 @@ namespace cryptonote bool core_rpc_server::on_get_info_json(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_get_info_json); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_INFO>(invoke_http_mode::JON_RPC, "get_info", req, res, r)) + { + res.bootstrap_daemon_address = m_bootstrap_daemon_address; + crypto::hash top_hash; + m_core.get_blockchain_top(res.height_without_bootstrap, top_hash); + ++res.height_without_bootstrap; // turn top block height into blockchain height + res.was_bootstrap_ever_used = true; + return r; + } crypto::hash top_hash; m_core.get_blockchain_top(res.height, top_hash); @@ -1345,12 +1576,21 @@ namespace cryptonote res.start_time = (uint64_t)m_core.get_start_time(); res.free_space = m_restricted ? std::numeric_limits<uint64_t>::max() : m_core.get_free_space(); res.offline = m_core.offline(); + res.bootstrap_daemon_address = m_bootstrap_daemon_address; + res.height_without_bootstrap = res.height; + { + boost::shared_lock<boost::shared_mutex> lock(m_bootstrap_daemon_mutex); + res.was_bootstrap_ever_used = m_was_bootstrap_ever_used; + } return true; } //------------------------------------------------------------------------------------------------------------------------------ bool core_rpc_server::on_hard_fork_info(const COMMAND_RPC_HARD_FORK_INFO::request& req, COMMAND_RPC_HARD_FORK_INFO::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_hard_fork_info); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_HARD_FORK_INFO>(invoke_http_mode::JON_RPC, "hard_fork_info", req, res, r)) + return r; const Blockchain &blockchain = m_core.get_blockchain_storage(); uint8_t version = req.version > 0 ? req.version : blockchain.get_next_hard_fork_version(); @@ -1473,6 +1713,9 @@ namespace cryptonote bool core_rpc_server::on_get_output_histogram(const COMMAND_RPC_GET_OUTPUT_HISTOGRAM::request& req, COMMAND_RPC_GET_OUTPUT_HISTOGRAM::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_get_output_histogram); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_OUTPUT_HISTOGRAM>(invoke_http_mode::JON_RPC, "get_output_histogram", req, res, r)) + return r; std::map<uint64_t, std::tuple<uint64_t, uint64_t, uint64_t>> histogram; try @@ -1500,6 +1743,10 @@ namespace cryptonote bool core_rpc_server::on_get_version(const COMMAND_RPC_GET_VERSION::request& req, COMMAND_RPC_GET_VERSION::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_get_version); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_VERSION>(invoke_http_mode::JON_RPC, "get_version", req, res, r)) + return r; + res.version = CORE_RPC_VERSION; res.status = CORE_RPC_STATUS_OK; return true; @@ -1518,6 +1765,10 @@ namespace cryptonote bool core_rpc_server::on_get_per_kb_fee_estimate(const COMMAND_RPC_GET_PER_KB_FEE_ESTIMATE::request& req, COMMAND_RPC_GET_PER_KB_FEE_ESTIMATE::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_get_per_kb_fee_estimate); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_PER_KB_FEE_ESTIMATE>(invoke_http_mode::JON_RPC, "get_fee_estimate", req, res, r)) + return r; + res.fee = m_core.get_blockchain_storage().get_dynamic_per_kb_fee_estimate(req.grace_blocks); res.status = CORE_RPC_STATUS_OK; return true; @@ -1545,6 +1796,10 @@ namespace cryptonote bool core_rpc_server::on_get_limit(const COMMAND_RPC_GET_LIMIT::request& req, COMMAND_RPC_GET_LIMIT::response& res) { PERF_TIMER(on_get_limit); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_LIMIT>(invoke_http_mode::JON, "/get_limit", req, res, r)) + return r; + res.limit_down = epee::net_utils::connection_basic::get_rate_down_limit(); res.limit_up = epee::net_utils::connection_basic::get_rate_up_limit(); res.status = CORE_RPC_STATUS_OK; @@ -1596,9 +1851,21 @@ namespace cryptonote PERF_TIMER(on_out_peers); size_t n_connections = m_p2p.get_outgoing_connections_count(); size_t n_delete = (n_connections > req.out_peers) ? n_connections - req.out_peers : 0; - m_p2p.m_config.m_net_config.connections_count = req.out_peers; + m_p2p.m_config.m_net_config.max_out_connection_count = req.out_peers; + if (n_delete) + m_p2p.delete_out_connections(n_delete); + res.status = CORE_RPC_STATUS_OK; + return true; + } + //------------------------------------------------------------------------------------------------------------------------------ + bool core_rpc_server::on_in_peers(const COMMAND_RPC_IN_PEERS::request& req, COMMAND_RPC_IN_PEERS::response& res) + { + PERF_TIMER(on_in_peers); + size_t n_connections = m_p2p.get_incoming_connections_count(); + size_t n_delete = (n_connections > req.in_peers) ? n_connections - req.in_peers : 0; + m_p2p.m_config.m_net_config.max_in_connection_count = req.in_peers; if (n_delete) - m_p2p.delete_connections(n_delete); + m_p2p.delete_in_connections(n_delete); res.status = CORE_RPC_STATUS_OK; return true; } @@ -1790,6 +2057,9 @@ namespace cryptonote bool core_rpc_server::on_get_txpool_backlog(const COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::request& req, COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG::response& res, epee::json_rpc::error& error_resp) { PERF_TIMER(on_get_txpool_backlog); + bool r; + if (use_bootstrap_daemon_if_necessary<COMMAND_RPC_GET_TRANSACTION_POOL_BACKLOG>(invoke_http_mode::JON_RPC, "get_txpool_backlog", req, res, r)) + return r; if (!m_core.get_txpool_backlog(res.backlog)) { @@ -1803,10 +2073,16 @@ namespace cryptonote } //------------------------------------------------------------------------------------------------------------------------------ - const command_line::arg_descriptor<std::string> core_rpc_server::arg_rpc_bind_port = { + const command_line::arg_descriptor<std::string, false, true> core_rpc_server::arg_rpc_bind_port = { "rpc-bind-port" , "Port for RPC server" , std::to_string(config::RPC_DEFAULT_PORT) + , cryptonote::arg_testnet_on + , [](bool testnet, bool defaulted, std::string val) { + if (testnet && defaulted) + return std::to_string(config::testnet::RPC_DEFAULT_PORT); + return val; + } }; const command_line::arg_descriptor<std::string> core_rpc_server::arg_rpc_restricted_bind_port = { @@ -1815,21 +2091,21 @@ namespace cryptonote , "" }; - const command_line::arg_descriptor<std::string> core_rpc_server::arg_testnet_rpc_bind_port = { - "testnet-rpc-bind-port" - , "Port for testnet RPC server" - , std::to_string(config::testnet::RPC_DEFAULT_PORT) + const command_line::arg_descriptor<bool> core_rpc_server::arg_restricted_rpc = { + "restricted-rpc" + , "Restrict RPC to view only commands and do not return privacy sensitive data in RPC calls" + , false }; - const command_line::arg_descriptor<std::string> core_rpc_server::arg_testnet_rpc_restricted_bind_port = { - "testnet-rpc-restricted-bind-port" - , "Port for testnet restricted RPC server" + const command_line::arg_descriptor<std::string> core_rpc_server::arg_bootstrap_daemon_address = { + "bootstrap-daemon-address" + , "URL of a 'bootstrap' remote daemon that the connected wallets can use while this daemon is still not fully synced" , "" }; - const command_line::arg_descriptor<bool> core_rpc_server::arg_restricted_rpc = { - "restricted-rpc" - , "Restrict RPC to view only commands and do not return privacy sensitive data in RPC calls" - , false + const command_line::arg_descriptor<std::string> core_rpc_server::arg_bootstrap_daemon_login = { + "bootstrap-daemon-login" + , "Specify username:password for the bootstrap daemon login" + , "" }; } // namespace cryptonote diff --git a/src/rpc/core_rpc_server.h b/src/rpc/core_rpc_server.h index 0c7028719..3c57a6016 100644 --- a/src/rpc/core_rpc_server.h +++ b/src/rpc/core_rpc_server.h @@ -34,6 +34,7 @@ #include <boost/program_options/variables_map.hpp> #include "net/http_server_impl_base.h" +#include "net/http_client.h" #include "core_rpc_server_commands_defs.h" #include "cryptonote_core/cryptonote_core.h" #include "p2p/net_node.h" @@ -52,11 +53,11 @@ namespace cryptonote { public: - static const command_line::arg_descriptor<std::string> arg_rpc_bind_port; + static const command_line::arg_descriptor<std::string, false, true> arg_rpc_bind_port; static const command_line::arg_descriptor<std::string> arg_rpc_restricted_bind_port; - static const command_line::arg_descriptor<std::string> arg_testnet_rpc_bind_port; - static const command_line::arg_descriptor<std::string> arg_testnet_rpc_restricted_bind_port; static const command_line::arg_descriptor<bool> arg_restricted_rpc; + static const command_line::arg_descriptor<std::string> arg_bootstrap_daemon_address; + static const command_line::arg_descriptor<std::string> arg_bootstrap_daemon_login; typedef epee::net_utils::connection_context_base connection_context; @@ -114,6 +115,7 @@ namespace cryptonote MAP_URI_AUTO_JON2("/get_limit", on_get_limit, COMMAND_RPC_GET_LIMIT) MAP_URI_AUTO_JON2_IF("/set_limit", on_set_limit, COMMAND_RPC_SET_LIMIT, !m_restricted) MAP_URI_AUTO_JON2_IF("/out_peers", on_out_peers, COMMAND_RPC_OUT_PEERS, !m_restricted) + MAP_URI_AUTO_JON2_IF("/in_peers", on_in_peers, COMMAND_RPC_IN_PEERS, !m_restricted) MAP_URI_AUTO_JON2_IF("/start_save_graph", on_start_save_graph, COMMAND_RPC_START_SAVE_GRAPH, !m_restricted) MAP_URI_AUTO_JON2_IF("/stop_save_graph", on_stop_save_graph, COMMAND_RPC_STOP_SAVE_GRAPH, !m_restricted) MAP_URI_AUTO_JON2("/get_outs", on_get_outs, COMMAND_RPC_GET_OUTPUTS) @@ -170,7 +172,7 @@ namespace cryptonote bool on_get_outs_bin(const COMMAND_RPC_GET_OUTPUTS_BIN::request& req, COMMAND_RPC_GET_OUTPUTS_BIN::response& res); bool on_get_outs(const COMMAND_RPC_GET_OUTPUTS::request& req, COMMAND_RPC_GET_OUTPUTS::response& res); bool on_get_random_rct_outs(const COMMAND_RPC_GET_RANDOM_RCT_OUTPUTS::request& req, COMMAND_RPC_GET_RANDOM_RCT_OUTPUTS::response& res); - bool on_get_info(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res); + bool on_get_info(const COMMAND_RPC_GET_INFO::request& req, COMMAND_RPC_GET_INFO::response& res); bool on_save_bc(const COMMAND_RPC_SAVE_BC::request& req, COMMAND_RPC_SAVE_BC::response& res); bool on_get_peer_list(const COMMAND_RPC_GET_PEER_LIST::request& req, COMMAND_RPC_GET_PEER_LIST::response& res); bool on_set_log_hash_rate(const COMMAND_RPC_SET_LOG_HASH_RATE::request& req, COMMAND_RPC_SET_LOG_HASH_RATE::response& res); @@ -183,6 +185,7 @@ namespace cryptonote bool on_get_limit(const COMMAND_RPC_GET_LIMIT::request& req, COMMAND_RPC_GET_LIMIT::response& res); bool on_set_limit(const COMMAND_RPC_SET_LIMIT::request& req, COMMAND_RPC_SET_LIMIT::response& res); bool on_out_peers(const COMMAND_RPC_OUT_PEERS::request& req, COMMAND_RPC_OUT_PEERS::response& res); + bool on_in_peers(const COMMAND_RPC_IN_PEERS::request& req, COMMAND_RPC_IN_PEERS::response& res); bool on_start_save_graph(const COMMAND_RPC_START_SAVE_GRAPH::request& req, COMMAND_RPC_START_SAVE_GRAPH::response& res); bool on_stop_save_graph(const COMMAND_RPC_STOP_SAVE_GRAPH::request& req, COMMAND_RPC_STOP_SAVE_GRAPH::response& res); bool on_update(const COMMAND_RPC_UPDATE::request& req, COMMAND_RPC_UPDATE::response& res); @@ -220,9 +223,18 @@ private: //utils uint64_t get_block_reward(const block& blk); bool fill_block_header_response(const block& blk, bool orphan_status, uint64_t height, const crypto::hash& hash, block_header_response& response); + enum invoke_http_mode { JON, BIN, JON_RPC }; + template <typename COMMAND_TYPE> + bool use_bootstrap_daemon_if_necessary(const invoke_http_mode &mode, const std::string &command_name, const typename COMMAND_TYPE::request& req, typename COMMAND_TYPE::response& res, bool &r); core& m_core; nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<cryptonote::core> >& m_p2p; + std::string m_bootstrap_daemon_address; + epee::net_utils::http::http_simple_client m_http_client; + boost::shared_mutex m_bootstrap_daemon_mutex; + bool m_should_use_bootstrap_daemon; + std::chrono::system_clock::time_point m_bootstrap_height_check_time; + bool m_was_bootstrap_ever_used; bool m_testnet; bool m_restricted; }; diff --git a/src/rpc/core_rpc_server_commands_defs.h b/src/rpc/core_rpc_server_commands_defs.h index 9b9a8f949..64a97f8a3 100644 --- a/src/rpc/core_rpc_server_commands_defs.h +++ b/src/rpc/core_rpc_server_commands_defs.h @@ -65,10 +65,12 @@ namespace cryptonote { uint64_t height; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(height) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -113,6 +115,7 @@ namespace cryptonote uint64_t current_height; std::string status; std::vector<block_output_indices> output_indices; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(blocks) @@ -120,6 +123,7 @@ namespace cryptonote KV_SERIALIZE(current_height) KV_SERIALIZE(status) KV_SERIALIZE(output_indices) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -138,10 +142,12 @@ namespace cryptonote { std::vector<block_complete_entry> blocks; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(blocks) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -158,10 +164,12 @@ namespace cryptonote { std::vector<std::string> blks_hashes; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(blks_hashes) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -184,12 +192,14 @@ namespace cryptonote uint64_t start_height; uint64_t current_height; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE_CONTAINER_POD_AS_BLOB(m_block_ids) KV_SERIALIZE(start_height) KV_SERIALIZE(current_height) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -595,6 +605,7 @@ namespace cryptonote // new style std::vector<entry> txs; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(txs_as_hex) @@ -602,6 +613,7 @@ namespace cryptonote KV_SERIALIZE(txs) KV_SERIALIZE(missed_tx) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -629,10 +641,12 @@ namespace cryptonote { std::vector<int> spent_status; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(spent_status) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -653,9 +667,11 @@ namespace cryptonote { std::vector<uint64_t> o_indexes; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(o_indexes) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -695,9 +711,11 @@ namespace cryptonote { std::vector<outs_for_amount> outs; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(outs) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -745,10 +763,12 @@ namespace cryptonote { std::vector<outkey> outs; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(outs) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -785,10 +805,12 @@ namespace cryptonote { std::vector<outkey> outs; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(outs) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -817,9 +839,11 @@ namespace cryptonote { std::list<out_entry> outs; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE_CONTAINER_POD_AS_BLOB(outs) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -854,6 +878,7 @@ namespace cryptonote bool overspend; bool fee_too_low; bool not_rct; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) @@ -867,6 +892,7 @@ namespace cryptonote KV_SERIALIZE(overspend) KV_SERIALIZE(fee_too_low) KV_SERIALIZE(not_rct) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -930,6 +956,10 @@ namespace cryptonote uint64_t start_time; uint64_t free_space; bool offline; + bool untrusted; + std::string bootstrap_daemon_address; + uint64_t height_without_bootstrap; + bool was_bootstrap_ever_used; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) @@ -953,6 +983,10 @@ namespace cryptonote KV_SERIALIZE(start_time) KV_SERIALIZE(free_space) KV_SERIALIZE(offline) + KV_SERIALIZE(untrusted) + KV_SERIALIZE(bootstrap_daemon_address) + KV_SERIALIZE(height_without_bootstrap) + KV_SERIALIZE(was_bootstrap_ever_used) END_KV_SERIALIZE_MAP() }; }; @@ -1080,6 +1114,7 @@ namespace cryptonote blobdata blocktemplate_blob; blobdata blockhashing_blob; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(difficulty) @@ -1090,6 +1125,7 @@ namespace cryptonote KV_SERIALIZE(blocktemplate_blob) KV_SERIALIZE(blockhashing_blob) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1153,10 +1189,12 @@ namespace cryptonote { std::string status; block_header_response block_header; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(block_header) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; @@ -1177,10 +1215,12 @@ namespace cryptonote { std::string status; block_header_response block_header; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(block_header) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; @@ -1201,10 +1241,12 @@ namespace cryptonote { std::string status; block_header_response block_header; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(block_header) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; @@ -1231,6 +1273,7 @@ namespace cryptonote std::vector<std::string> tx_hashes; std::string blob; std::string json; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(block_header) @@ -1239,6 +1282,7 @@ namespace cryptonote KV_SERIALIZE(status) KV_SERIALIZE(blob) KV_SERIALIZE(json) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; @@ -1415,11 +1459,13 @@ namespace cryptonote std::string status; std::vector<tx_info> transactions; std::vector<spent_key_image_info> spent_key_images; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE(transactions) KV_SERIALIZE(spent_key_images) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1436,10 +1482,12 @@ namespace cryptonote { std::string status; std::vector<crypto::hash> tx_hashes; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE_CONTAINER_POD_AS_BLOB(tx_hashes) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1463,10 +1511,12 @@ namespace cryptonote { std::string status; std::vector<tx_backlog_entry> backlog; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE_CONTAINER_POD_AS_BLOB(backlog) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1527,10 +1577,12 @@ namespace cryptonote { std::string status; txpool_stats pool_stats; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE(pool_stats) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1573,10 +1625,12 @@ namespace cryptonote { std::string status; std::vector<block_header_response> headers; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE(headers) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1630,11 +1684,13 @@ namespace cryptonote std::string status; uint64_t limit_up; uint64_t limit_down; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE(limit_up) KV_SERIALIZE(limit_down) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1678,8 +1734,28 @@ namespace cryptonote struct response { - std::string status; - + std::string status; + + BEGIN_KV_SERIALIZE_MAP() + KV_SERIALIZE(status) + END_KV_SERIALIZE_MAP() + }; + }; + + struct COMMAND_RPC_IN_PEERS + { + struct request + { + uint64_t in_peers; + BEGIN_KV_SERIALIZE_MAP() + KV_SERIALIZE(in_peers) + END_KV_SERIALIZE_MAP() + }; + + struct response + { + std::string status; + BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) END_KV_SERIALIZE_MAP() @@ -1744,6 +1820,7 @@ namespace cryptonote uint32_t state; uint64_t earliest_height; std::string status; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(version) @@ -1755,6 +1832,7 @@ namespace cryptonote KV_SERIALIZE(state) KV_SERIALIZE(earliest_height) KV_SERIALIZE(status) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1891,10 +1969,12 @@ namespace cryptonote { std::string status; std::vector<entry> histogram; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE(histogram) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1911,10 +1991,12 @@ namespace cryptonote { std::string status; uint32_t version; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE(version) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; @@ -1961,10 +2043,12 @@ namespace cryptonote { std::string status; uint64_t fee; + bool untrusted; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) KV_SERIALIZE(fee) + KV_SERIALIZE(untrusted) END_KV_SERIALIZE_MAP() }; }; diff --git a/src/rpc/rpc_args.cpp b/src/rpc/rpc_args.cpp index 6559db9b2..d4a6138ba 100644 --- a/src/rpc/rpc_args.cpp +++ b/src/rpc/rpc_args.cpp @@ -37,7 +37,7 @@ namespace cryptonote { rpc_args::descriptors::descriptors() - : rpc_bind_ip({"rpc-bind-ip", rpc_args::tr("Specify ip to bind rpc server"), "127.0.0.1"}) + : rpc_bind_ip({"rpc-bind-ip", rpc_args::tr("Specify IP to bind RPC server"), "127.0.0.1"}) , rpc_login({"rpc-login", rpc_args::tr("Specify username[:password] required for RPC server"), "", true}) , confirm_external_bind({"confirm-external-bind", rpc_args::tr("Confirm rpc-bind-ip value is NOT a loopback (local) IP")}) , rpc_access_control_origins({"rpc-access-control-origins", rpc_args::tr("Specify a comma separated list of origins to allow cross origin resource sharing"), ""}) diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index a6cef1bb9..150c6333c 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -158,7 +158,7 @@ namespace boost::optional<tools::password_container> default_password_prompter(bool verify) { - return password_prompter(verify ? tr("Enter new wallet password") : tr("Wallet password"), verify); + return password_prompter(verify ? tr("Enter a new password for the wallet") : tr("Wallet password"), verify); } inline std::string interpret_rpc_response(bool ok, const std::string& status) @@ -397,6 +397,7 @@ namespace { writer << "\n" << tr("output amount") << " = " << print_money(outs_for_amount.first) << ", " << tr("found outputs to use") << " = " << outs_for_amount.second; } + writer << tr("Please use sweep_unmixable."); } catch (const tools::error::tx_not_constructed&) { @@ -638,6 +639,8 @@ bool simple_wallet::change_password(const std::vector<std::string> &args) // prompts for a new password, pass true to verify the password const auto pwd_container = default_password_prompter(true); + if(!pwd_container) + return true; try { @@ -816,7 +819,11 @@ bool simple_wallet::make_multisig(const std::vector<std::string> &args) } uint32_t total; - m_wallet->multisig(NULL, &threshold, &total); + if (!m_wallet->multisig(NULL, &threshold, &total)) + { + fail_msg_writer() << tr("Error creating multisig: new wallet is not multisig"); + return true; + } success_msg_writer() << std::to_string(threshold) << "/" << total << tr(" multisig address: ") << m_wallet->get_account().get_public_address_str(m_wallet->testnet()); @@ -1293,7 +1300,7 @@ bool simple_wallet::set_default_priority(const std::vector<std::string> &args/* priority = boost::lexical_cast<int>(args[1]); if (priority < 1 || priority > 4) { - fail_msg_writer() << tr("priority must be 0, 1, 2, 3,or 4"); + fail_msg_writer() << tr("priority must be 0, 1, 2, 3, or 4"); return true; } } @@ -1308,7 +1315,7 @@ bool simple_wallet::set_default_priority(const std::vector<std::string> &args/* } catch(const boost::bad_lexical_cast &) { - fail_msg_writer() << tr("priority must be 0, 1, 2 3,or 4"); + fail_msg_writer() << tr("priority must be 0, 1, 2, 3, or 4"); return true; } catch(...) @@ -1589,14 +1596,14 @@ simple_wallet::simple_wallet() m_cmd_binder.set_handler("transfer_original", boost::bind(&simple_wallet::transfer, this, _1), tr("transfer_original [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]"), - tr("Transfer <amount> to <address> using an older transaction building algorithm. If the parameter \"index=<N1>[,<N2>,...]\" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the fee of the transaction. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command \"set priority\") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)")); + tr("Transfer <amount> to <address> using an older transaction building algorithm. If the parameter \"index=<N1>[,<N2>,...]\" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command \"set priority\") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)")); m_cmd_binder.set_handler("transfer", boost::bind(&simple_wallet::transfer_new, this, _1), tr("transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]"), - tr("Transfer <amount> to <address>. If the parameter \"index=<N1>[,<N2>,...]\" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the fee of the transaction. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command \"set priority\") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)")); + tr("Transfer <amount> to <address>. If the parameter \"index=<N1>[,<N2>,...]\" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command \"set priority\") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)")); m_cmd_binder.set_handler("locked_transfer", boost::bind(&simple_wallet::locked_transfer, this, _1), tr("locked_transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <addr> <amount> <lockblocks> [<payment_id>]"), - tr("Transfer <amount> to <address> and lock it for <lockblocks> (max. 1000000). If the parameter \"index=<N1>[,<N2>,...]\" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the fee of the transaction. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command \"set priority\") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)")); + tr("Transfer <amount> to <address> and lock it for <lockblocks> (max. 1000000). If the parameter \"index=<N1>[,<N2>,...]\" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command \"set priority\") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)")); m_cmd_binder.set_handler("sweep_unmixable", boost::bind(&simple_wallet::sweep_unmixable, this, _1), tr("Send all unmixable outputs to yourself with ring_size 1")); @@ -2474,7 +2481,7 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm) r = new_wallet(vm, m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, old_language); CHECK_AND_ASSERT_MES(r, false, tr("account creation failed")); } - if (!m_restore_height && m_restoring) + if (!m_wallet->explicit_refresh_from_block_height() && m_restoring) { uint32_t version; bool connected = try_connect_to_daemon(false, &version); @@ -2672,12 +2679,12 @@ std::string simple_wallet::get_mnemonic_language() if (!((language_number >= 0) && (static_cast<unsigned int>(language_number) < language_list.size()))) { language_number = -1; - fail_msg_writer() << tr("invalid language choice passed. Please try again.\n"); + fail_msg_writer() << tr("invalid language choice entered. Please try again.\n"); } } catch (const std::exception &e) { - fail_msg_writer() << tr("invalid language choice passed. Please try again.\n"); + fail_msg_writer() << tr("invalid language choice entered. Please try again.\n"); } } return language_list[language_number]; @@ -3434,7 +3441,7 @@ bool simple_wallet::show_payments(const std::vector<std::string> &args) { if(args.empty()) { - fail_msg_writer() << tr("expected at least one payment_id"); + fail_msg_writer() << tr("expected at least one payment ID"); return true; } @@ -4578,7 +4585,7 @@ bool simple_wallet::sweep_below(const std::vector<std::string> &args_) uint64_t below = 0; if (args_.size() < 1) { - fail_msg_writer() << tr("missing amount threshold"); + fail_msg_writer() << tr("missing threshold amount"); return true; } if (!cryptonote::parse_amount(below, args_[0])) @@ -6806,6 +6813,11 @@ int main(int argc, char* argv[]) else { tools::signal_handler::install([&w](int type) { + if (tools::password_container::is_prompting.load()) + { + // must be prompting for password so return and let the signal stop prompt + return; + } #ifdef WIN32 if (type == CTRL_C_EVENT) #else diff --git a/src/wallet/api/address_book.cpp b/src/wallet/api/address_book.cpp index 8089a6a05..38c34a912 100644 --- a/src/wallet/api/address_book.cpp +++ b/src/wallet/api/address_book.cpp @@ -74,7 +74,7 @@ bool AddressBookImpl::addRow(const std::string &dst_addr , const std::string &pa // integrated + long payment id provided if(has_long_pid && info.has_payment_id) { - m_errorString = tr("Integrated address and long payment id can't be used at the same time"); + m_errorString = tr("Integrated address and long payment ID can't be used at the same time"); m_errorCode = Invalid_Payment_Id; return false; } diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp index 82948081e..5ce8ede8d 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -626,7 +626,7 @@ bool WalletImpl::close(bool store) if (status() != Status_Critical) m_wallet->store(); else - LOG_ERROR("Status_Critical - not storing wallet"); + LOG_ERROR("Status_Critical - not saving wallet"); LOG_PRINT_L1("wallet::store done"); } LOG_PRINT_L1("Calling wallet::stop..."); @@ -732,7 +732,7 @@ bool WalletImpl::store(const std::string &path) m_wallet->store_to(path, m_password); } } catch (const std::exception &e) { - LOG_ERROR("Error storing wallet: " << e.what()); + LOG_ERROR("Error saving wallet: " << e.what()); m_status = Status_Error; m_errorString = e.what(); } @@ -1198,6 +1198,7 @@ PendingTransaction *WalletImpl::createTransaction(const string &dst_addr, const for (const std::pair<uint64_t, uint64_t> outs_for_amount : e.scanty_outs()) { writer << "\n" << tr("output amount") << " = " << print_money(outs_for_amount.first) << ", " << tr("found outputs to use") << " = " << outs_for_amount.second; } + writer << "\n" << tr("Please sweep unmixable outputs."); m_errorString = writer.str(); m_status = Status_Error; } catch (const tools::error::tx_not_constructed&) { diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 1ed0d2b57..87577d2fd 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -223,7 +223,7 @@ boost::optional<tools::password_container> get_password(const boost::program_opt THROW_WALLET_EXCEPTION_IF(!password_prompter, tools::error::wallet_internal_error, tools::wallet2::tr("no password specified; use --prompt-for-password to prompt for a password")); - return password_prompter(verify ? tr("Enter new wallet password") : tr("Wallet password"), verify); + return password_prompter(verify ? tr("Enter a new password for the wallet") : tr("Wallet password"), verify); } std::unique_ptr<tools::wallet2> generate_from_json(const std::string& json_file, const boost::program_options::variables_map& vm, const options& opts, const std::function<boost::optional<tools::password_container>(const char *, bool)> &password_prompter) @@ -361,6 +361,7 @@ std::unique_ptr<tools::wallet2> generate_from_json(const std::string& json_file, wallet.reset(make_basic(vm, opts, password_prompter).release()); wallet->set_refresh_from_block_height(field_scan_from_height); + wallet->explicit_refresh_from_block_height(field_scan_from_height_found); try { @@ -532,12 +533,9 @@ size_t estimate_tx_size(bool use_rct, int n_inputs, int mixin, int n_outputs, si return n_inputs * (mixin+1) * APPROXIMATE_INPUT_BYTES + extra_size; } -uint8_t get_bulletproof_fork(bool testnet) +uint8_t get_bulletproof_fork() { - if (testnet) - return 7; - else - return 255; // TODO + return 8; } crypto::hash8 get_short_payment_id(const tools::wallet2::pending_tx &ptx) @@ -604,6 +602,7 @@ wallet2::wallet2(bool testnet, bool restricted): m_refresh_type(RefreshOptimizeCoinbase), m_auto_refresh(true), m_refresh_from_block_height(0), + m_explicit_refresh_from_block_height(true), m_confirm_missing_payment_id(true), m_ask_password(true), m_min_output_count(0), @@ -1216,7 +1215,7 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote td.m_rct = false; } set_unspent(m_transfers.size()-1); - if (!m_multisig) + if (!m_multisig && !m_watch_only) m_key_images[td.m_key_image] = m_transfers.size()-1; m_pub_keys[tx_scan_info[o].in_ephemeral.pub] = m_transfers.size()-1; if (m_multisig) @@ -1310,11 +1309,21 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote uint64_t amount = boost::get<cryptonote::txin_to_key>(in).amount; if (amount > 0) { - THROW_WALLET_EXCEPTION_IF(amount != td.amount(), error::wallet_internal_error, - std::string("Inconsistent amount in tx input: got ") + print_money(amount) + - std::string(", expected ") + print_money(td.amount())); + if(amount != td.amount()) + { + MERROR("Inconsistent amount in tx input: got " << print_money(amount) << + ", expected " << print_money(td.amount())); + // this means: + // 1) the same output pub key was used as destination multiple times, + // 2) the wallet set the highest amount among them to transfer_details::m_amount, and + // 3) the wallet somehow spent that output with an amount smaller than the above amount, causing inconsistency + td.m_amount = amount; + } + } + else + { + amount = td.amount(); } - amount = td.amount(); tx_money_spent_in_ins += amount; if (subaddr_account && *subaddr_account != td.m_subaddr_index.major) LOG_ERROR("spent funds are from different subaddress accounts; count of incoming/outgoing payments will be incorrect"); @@ -6637,7 +6646,7 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_2(std::vector<cryp uint64_t needed_fee, available_for_fee = 0; uint64_t upper_transaction_size_limit = get_upper_transaction_size_limit(); const bool use_rct = use_fork_rules(4, 0); - const bool bulletproof = use_fork_rules(get_bulletproof_fork(m_testnet), 0); + const bool bulletproof = use_fork_rules(get_bulletproof_fork(), 0); const uint64_t fee_per_kb = get_per_kb_fee(); const uint64_t fee_multiplier = get_fee_multiplier(priority, get_fee_algorithm()); @@ -7146,7 +7155,7 @@ std::vector<wallet2::pending_tx> wallet2::create_transactions_from(const crypton std::vector<std::vector<get_outs_entry>> outs; const bool use_rct = fake_outs_count > 0 && use_fork_rules(4, 0); - const bool bulletproof = use_fork_rules(get_bulletproof_fork(m_testnet), 0); + const bool bulletproof = use_fork_rules(get_bulletproof_fork(), 0); const uint64_t fee_per_kb = get_per_kb_fee(); const uint64_t fee_multiplier = get_fee_multiplier(priority, get_fee_algorithm()); @@ -8349,8 +8358,9 @@ uint64_t wallet2::get_approximate_blockchain_height() const // Calculated blockchain height uint64_t approx_blockchain_height = fork_block + (time(NULL) - fork_time)/seconds_per_block; // testnet got some huge rollbacks, so the estimation is way off - if (m_testnet && approx_blockchain_height > 105000) - approx_blockchain_height -= 105000; + static const uint64_t approximate_testnet_rolled_back_blocks = 148540; + if (m_testnet && approx_blockchain_height > approximate_testnet_rolled_back_blocks) + approx_blockchain_height -= approximate_testnet_rolled_back_blocks; LOG_PRINT_L2("Calculated blockchain height: " << approx_blockchain_height); return approx_blockchain_height; } diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index 71302be09..28289842b 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -561,6 +561,9 @@ namespace tools void set_refresh_from_block_height(uint64_t height) {m_refresh_from_block_height = height;} uint64_t get_refresh_from_block_height() const {return m_refresh_from_block_height;} + void explicit_refresh_from_block_height(bool expl) {m_explicit_refresh_from_block_height = expl;} + bool explicit_refresh_from_block_height() const {return m_explicit_refresh_from_block_height;} + // upper_transaction_size_limit as defined below is set to // approximately 125% of the fixed minimum allowable penalty // free block size. TODO: fix this so that it actually takes @@ -1118,6 +1121,9 @@ namespace tools RefreshType m_refresh_type; bool m_auto_refresh; uint64_t m_refresh_from_block_height; + // If m_refresh_from_block_height is explicitly set to zero we need this to differentiate it from the case that + // m_refresh_from_block_height was defaulted to zero.*/ + bool m_explicit_refresh_from_block_height; bool m_confirm_missing_payment_id; bool m_ask_password; uint32_t m_min_output_count; diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp index 97faf0b56..6d5419521 100644 --- a/src/wallet/wallet_rpc_server.cpp +++ b/src/wallet/wallet_rpc_server.cpp @@ -39,6 +39,7 @@ using namespace epee; #include "wallet/wallet_args.h" #include "common/command_line.h" #include "common/i18n.h" +#include "cryptonote_config.h" #include "cryptonote_basic/cryptonote_format_utils.h" #include "cryptonote_basic/account.h" #include "multisig/multisig.h" @@ -1803,11 +1804,11 @@ namespace tools return false; } - uint64_t min_height = 0, max_height = (uint64_t)-1; + uint64_t min_height = 0, max_height = CRYPTONOTE_MAX_BLOCK_NUMBER; if (req.filter_by_height) { min_height = req.min_height; - max_height = req.max_height; + max_height = req.max_height <= max_height ? req.max_height : max_height; } if (req.in) @@ -1889,8 +1890,15 @@ namespace tools return false; } + if (req.account_index >= m_wallet->get_num_subaddress_accounts()) + { + er.code = WALLET_RPC_ERROR_CODE_ACCOUNT_INDEX_OUT_OF_BOUNDS; + er.message = "Account index is out of bound"; + return false; + } + std::list<std::pair<crypto::hash, tools::wallet2::payment_details>> payments; - m_wallet->get_payments(payments, 0); + m_wallet->get_payments(payments, 0, (uint64_t)-1, req.account_index); for (std::list<std::pair<crypto::hash, tools::wallet2::payment_details>>::const_iterator i = payments.begin(); i != payments.end(); ++i) { if (i->second.m_tx_hash == txid) { @@ -1900,7 +1908,7 @@ namespace tools } std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>> payments_out; - m_wallet->get_payments_out(payments_out, 0); + m_wallet->get_payments_out(payments_out, 0, (uint64_t)-1, req.account_index); for (std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>>::const_iterator i = payments_out.begin(); i != payments_out.end(); ++i) { if (i->first == txid) { @@ -1910,7 +1918,7 @@ namespace tools } std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>> upayments; - m_wallet->get_unconfirmed_payments_out(upayments); + m_wallet->get_unconfirmed_payments_out(upayments, req.account_index); for (std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>>::const_iterator i = upayments.begin(); i != upayments.end(); ++i) { if (i->first == txid) { @@ -1922,7 +1930,7 @@ namespace tools m_wallet->update_pool_state(); std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>> pool_payments; - m_wallet->get_unconfirmed_payments(pool_payments); + m_wallet->get_unconfirmed_payments(pool_payments, req.account_index); for (std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>>::const_iterator i = pool_payments.begin(); i != pool_payments.end(); ++i) { if (i->second.m_pd.m_tx_hash == txid) { @@ -2397,6 +2405,11 @@ namespace tools { std::rethrow_exception(e); } + catch (const tools::error::no_connection_to_daemon& e) + { + er.code = WALLET_RPC_ERROR_CODE_NO_DAEMON_CONNECTION; + er.message = e.what(); + } catch (const tools::error::daemon_busy& e) { er.code = WALLET_RPC_ERROR_CODE_DAEMON_IS_BUSY; @@ -2412,6 +2425,11 @@ namespace tools er.code = WALLET_RPC_ERROR_CODE_NOT_ENOUGH_MONEY; er.message = e.what(); } + catch (const tools::error::not_enough_unlocked_money& e) + { + er.code = WALLET_RPC_ERROR_CODE_NOT_ENOUGH_UNLOCKED_MONEY; + er.message = e.what(); + } catch (const tools::error::tx_not_possible& e) { er.code = WALLET_RPC_ERROR_CODE_TX_NOT_POSSIBLE; @@ -2425,7 +2443,7 @@ namespace tools catch (const tools::error::not_enough_outs_to_mix& e) { er.code = WALLET_RPC_ERROR_CODE_NOT_ENOUGH_OUTS_TO_MIX; - er.message = e.what(); + er.message = e.what() + std::string(" Please use sweep_dust."); } catch (const error::file_exists& e) { @@ -2439,12 +2457,12 @@ namespace tools } catch (const error::account_index_outofbound& e) { - er.code = WALLET_RPC_ERROR_CODE_ACCOUNT_INDEX_OUTOFBOUND; + er.code = WALLET_RPC_ERROR_CODE_ACCOUNT_INDEX_OUT_OF_BOUNDS; er.message = e.what(); } catch (const error::address_index_outofbound& e) { - er.code = WALLET_RPC_ERROR_CODE_ADDRESS_INDEX_OUTOFBOUND; + er.code = WALLET_RPC_ERROR_CODE_ADDRESS_INDEX_OUT_OF_BOUNDS; er.message = e.what(); } catch (const std::exception& e) @@ -2922,12 +2940,12 @@ int main(int argc, char** argv) { // if we ^C during potentially length load/refresh, there's no server loop yet if (quit) { - MINFO(tools::wallet_rpc_server::tr("Storing wallet...")); + MINFO(tools::wallet_rpc_server::tr("Saving wallet...")); wal->store(); - MINFO(tools::wallet_rpc_server::tr("Stored ok")); + MINFO(tools::wallet_rpc_server::tr("Successfully saved")); return 1; } - MINFO(tools::wallet_rpc_server::tr("Loaded ok")); + MINFO(tools::wallet_rpc_server::tr("Successfully loaded")); } catch (const std::exception& e) { @@ -2938,11 +2956,11 @@ just_dir: tools::wallet_rpc_server wrpc; if (wal) wrpc.set_wallet(wal.release()); bool r = wrpc.init(&(vm.get())); - CHECK_AND_ASSERT_MES(r, 1, tools::wallet_rpc_server::tr("Failed to initialize wallet rpc server")); + CHECK_AND_ASSERT_MES(r, 1, tools::wallet_rpc_server::tr("Failed to initialize wallet RPC server")); tools::signal_handler::install([&wrpc](int) { wrpc.send_stop_signal(); }); - LOG_PRINT_L0(tools::wallet_rpc_server::tr("Starting wallet rpc server")); + LOG_PRINT_L0(tools::wallet_rpc_server::tr("Starting wallet RPC server")); try { wrpc.run(); @@ -2952,16 +2970,16 @@ just_dir: LOG_ERROR(tools::wallet_rpc_server::tr("Failed to run wallet: ") << e.what()); return 1; } - LOG_PRINT_L0(tools::wallet_rpc_server::tr("Stopped wallet rpc server")); + LOG_PRINT_L0(tools::wallet_rpc_server::tr("Stopped wallet RPC server")); try { - LOG_PRINT_L0(tools::wallet_rpc_server::tr("Storing wallet...")); + LOG_PRINT_L0(tools::wallet_rpc_server::tr("Saving wallet...")); wrpc.stop(); - LOG_PRINT_L0(tools::wallet_rpc_server::tr("Stored ok")); + LOG_PRINT_L0(tools::wallet_rpc_server::tr("Successfully saved")); } catch (const std::exception& e) { - LOG_ERROR(tools::wallet_rpc_server::tr("Failed to store wallet: ") << e.what()); + LOG_ERROR(tools::wallet_rpc_server::tr("Failed to save wallet: ") << e.what()); return 1; } return 0; diff --git a/src/wallet/wallet_rpc_server_commands_defs.h b/src/wallet/wallet_rpc_server_commands_defs.h index e9f112b63..e38cba5a5 100644 --- a/src/wallet/wallet_rpc_server_commands_defs.h +++ b/src/wallet/wallet_rpc_server_commands_defs.h @@ -29,6 +29,7 @@ // Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers #pragma once +#include "cryptonote_config.h" #include "cryptonote_protocol/cryptonote_protocol_defs.h" #include "cryptonote_basic/cryptonote_basic.h" #include "cryptonote_basic/subaddress_index.h" @@ -1262,7 +1263,7 @@ namespace wallet_rpc KV_SERIALIZE(pool); KV_SERIALIZE(filter_by_height); KV_SERIALIZE(min_height); - KV_SERIALIZE(max_height); + KV_SERIALIZE_OPT(max_height, (uint64_t)CRYPTONOTE_MAX_BLOCK_NUMBER); KV_SERIALIZE(account_index); KV_SERIALIZE(subaddr_indices); END_KV_SERIALIZE_MAP() @@ -1291,9 +1292,11 @@ namespace wallet_rpc struct request { std::string txid; + uint32_t account_index; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(txid); + KV_SERIALIZE_OPT(account_index, (uint32_t)0) END_KV_SERIALIZE_MAP() }; diff --git a/src/wallet/wallet_rpc_server_error_codes.h b/src/wallet/wallet_rpc_server_error_codes.h index 311556657..d47467940 100644 --- a/src/wallet/wallet_rpc_server_error_codes.h +++ b/src/wallet/wallet_rpc_server_error_codes.h @@ -44,8 +44,8 @@ #define WALLET_RPC_ERROR_CODE_WRONG_URI -11 #define WALLET_RPC_ERROR_CODE_WRONG_INDEX -12 #define WALLET_RPC_ERROR_CODE_NOT_OPEN -13 -#define WALLET_RPC_ERROR_CODE_ACCOUNT_INDEX_OUTOFBOUND -14 -#define WALLET_RPC_ERROR_CODE_ADDRESS_INDEX_OUTOFBOUND -15 +#define WALLET_RPC_ERROR_CODE_ACCOUNT_INDEX_OUT_OF_BOUNDS -14 +#define WALLET_RPC_ERROR_CODE_ADDRESS_INDEX_OUT_OF_BOUNDS -15 #define WALLET_RPC_ERROR_CODE_TX_NOT_POSSIBLE -16 #define WALLET_RPC_ERROR_CODE_NOT_ENOUGH_MONEY -17 #define WALLET_RPC_ERROR_CODE_TX_TOO_LARGE -18 @@ -67,3 +67,5 @@ #define WALLET_RPC_ERROR_CODE_BAD_MULTISIG_TX_DATA -34 #define WALLET_RPC_ERROR_CODE_MULTISIG_SIGNATURE -35 #define WALLET_RPC_ERROR_CODE_MULTISIG_SUBMISSION -36 +#define WALLET_RPC_ERROR_CODE_NOT_ENOUGH_UNLOCKED_MONEY -37 +#define WALLET_RPC_ERROR_CODE_NO_DAEMON_CONNECTION -38 diff --git a/tests/core_proxy/core_proxy.cpp b/tests/core_proxy/core_proxy.cpp index 8c9340318..f0a1eb5ce 100644 --- a/tests/core_proxy/core_proxy.cpp +++ b/tests/core_proxy/core_proxy.cpp @@ -80,8 +80,7 @@ int main(int argc, char* argv[]) po::options_description desc("Allowed options"); - // tools::get_default_data_dir() can't be called during static initialization - command_line::add_arg(desc, cryptonote::arg_data_dir, tools::get_default_data_dir()); + command_line::add_arg(desc, cryptonote::arg_data_dir); nodetool::node_server<cryptonote::t_cryptonote_protocol_handler<tests::proxy_core> >::init_options(desc); po::variables_map vm; diff --git a/tests/core_tests/block_validation.cpp b/tests/core_tests/block_validation.cpp index b9818d2c5..598cd4098 100644 --- a/tests/core_tests/block_validation.cpp +++ b/tests/core_tests/block_validation.cpp @@ -38,7 +38,7 @@ namespace { bool lift_up_difficulty(std::vector<test_event_entry>& events, std::vector<uint64_t>& timestamps, std::vector<difficulty_type>& cummulative_difficulties, test_generator& generator, - size_t new_block_count, const block blk_last, const account_base& miner_account) + size_t new_block_count, const block &blk_last, const account_base& miner_account) { difficulty_type commulative_diffic = cummulative_difficulties.empty() ? 0 : cummulative_difficulties.back(); block blk_prev = blk_last; diff --git a/tests/fuzz/levin.cpp b/tests/fuzz/levin.cpp index 2c3971470..6a164dda9 100644 --- a/tests/fuzz/levin.cpp +++ b/tests/fuzz/levin.cpp @@ -299,7 +299,7 @@ int LevinFuzzer::run(const std::string &filename) { std::string s; -// +#if 0 epee::levin::bucket_head2 req_head; req_head.m_signature = LEVIN_SIGNATURE; req_head.m_cb = 0; @@ -307,10 +307,11 @@ int LevinFuzzer::run(const std::string &filename) req_head.m_command = 2000; req_head.m_flags = LEVIN_PACKET_REQUEST; req_head.m_protocol_version = LEVIN_PROTOCOL_VER_1; + req_head.m_return_code = 0; FILE *f=fopen("/tmp/out.levin", "w"); fwrite(&req_head,sizeof(req_head),1, f); fclose(f); -// +#endif if (!epee::file_io_utils::load_file_to_string(filename, s)) { std::cout << "Error: failed to load file " << filename << std::endl; diff --git a/tests/performance_tests/main.cpp b/tests/performance_tests/main.cpp index d1b79d026..902bd89c0 100644 --- a/tests/performance_tests/main.cpp +++ b/tests/performance_tests/main.cpp @@ -75,6 +75,7 @@ std::string glob_to_regex(const std::string &val) int main(int argc, char** argv) { + TRY_ENTRY(); tools::on_startup(); set_process_affinity(1); set_thread_high_priority(); @@ -84,7 +85,7 @@ int main(int argc, char** argv) po::options_description desc_options("Command line options"); const command_line::arg_descriptor<std::string> arg_filter = { "filter", "Regular expression filter for which tests to run" }; - command_line::add_arg(desc_options, arg_filter, ""); + command_line::add_arg(desc_options, arg_filter); po::variables_map vm; bool r = command_line::handle_error_helper(desc_options, [&]() @@ -172,4 +173,5 @@ int main(int argc, char** argv) std::cout << "Tests finished. Elapsed time: " << timer.elapsed_ms() / 1000 << " sec" << std::endl; return 0; + CATCH_ENTRY_L0("main", 1); } diff --git a/tests/unit_tests/dns_resolver.cpp b/tests/unit_tests/dns_resolver.cpp index c3807315e..2b3627f02 100644 --- a/tests/unit_tests/dns_resolver.cpp +++ b/tests/unit_tests/dns_resolver.cpp @@ -158,16 +158,18 @@ TEST(DNSResolver, GetTXTRecord) EXPECT_STREQ("donate.getmonero.org", addr.c_str()); } -TEST(DNS_PUBLIC, empty) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("").c_str()); } -TEST(DNS_PUBLIC, default) { EXPECT_STREQ("8.8.4.4", tools::dns_utils::parse_dns_public("tcp").c_str()); } -TEST(DNS_PUBLIC, invalid_scheme) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("invalid").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_alpha) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://invalid").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_num1) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://3").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_num3) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://3.4.5").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_num4_extra) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://3.4.5.6x").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_num4_range) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://3.4.542.6").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_dot) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://3.4.5.6.").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_num5) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://3.4.5.6.7").c_str()); } -TEST(DNS_PUBLIC, invalid_ip_4_missing) { EXPECT_STREQ("", tools::dns_utils::parse_dns_public("tcp://3.4..7").c_str()); } -TEST(DNS_PUBLIC, valid_ip_lo) { EXPECT_STREQ("127.0.0.1", tools::dns_utils::parse_dns_public("tcp://127.0.0.1").c_str()); } -TEST(DNS_PUBLIC, valid_ip) { EXPECT_STREQ("3.4.5.6", tools::dns_utils::parse_dns_public("tcp://3.4.5.6").c_str()); } +bool is_equal(const char *s, const std::vector<std::string> &v) { return v.size() == 1 && v[0] == s; } + +TEST(DNS_PUBLIC, empty) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("").empty()); } +TEST(DNS_PUBLIC, default) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp").size() > 0); } +TEST(DNS_PUBLIC, invalid_scheme) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("invalid").empty()); } +TEST(DNS_PUBLIC, invalid_ip_alpha) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://invalid").empty()); } +TEST(DNS_PUBLIC, invalid_ip_num1) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://3").empty()); } +TEST(DNS_PUBLIC, invalid_ip_num3) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://3.4.5").empty()); } +TEST(DNS_PUBLIC, invalid_ip_num4_extra) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://3.4.5.6x").empty()); } +TEST(DNS_PUBLIC, invalid_ip_num4_range) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://3.4.542.6").empty()); } +TEST(DNS_PUBLIC, invalid_ip_dot) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://3.4.5.6.").empty()); } +TEST(DNS_PUBLIC, invalid_ip_num5) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://3.4.5.6.7").empty()); } +TEST(DNS_PUBLIC, invalid_ip_4_missing) { EXPECT_TRUE(tools::dns_utils::parse_dns_public("tcp://3.4..7").empty()); } +TEST(DNS_PUBLIC, valid_ip_lo) { EXPECT_TRUE(is_equal("127.0.0.1", tools::dns_utils::parse_dns_public("tcp://127.0.0.1"))); } +TEST(DNS_PUBLIC, valid_ip) { EXPECT_TRUE(is_equal("3.4.5.6", tools::dns_utils::parse_dns_public("tcp://3.4.5.6"))); } diff --git a/translations/monero.ts b/translations/monero.ts index 27f5e1c52..c768d69c5 100644 --- a/translations/monero.ts +++ b/translations/monero.ts @@ -4,23 +4,23 @@ <context> <name>Monero::AddressBookImpl</name> <message> - <location filename="../src/wallet/api/address_book.cpp" line="55"/> + <location filename="../src/wallet/api/address_book.cpp" line="53"/> <source>Invalid destination address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="65"/> + <location filename="../src/wallet/api/address_book.cpp" line="63"/> <source>Invalid payment ID. Short payment ID should only be used in an integrated address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="72"/> + <location filename="../src/wallet/api/address_book.cpp" line="70"/> <source>Invalid payment ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="79"/> - <source>Integrated address and long payment id can't be used at the same time</source> + <location filename="../src/wallet/api/address_book.cpp" line="77"/> + <source>Integrated address and long payment ID can't be used at the same time</source> <translation type="unfinished"></translation> </message> </context> @@ -37,32 +37,32 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="114"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="115"/> <source>daemon is busy. Please try again later.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="117"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="118"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="121"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="122"/> <source>transaction %s was rejected by daemon with status: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="126"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="127"/> <source>. Reason: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="128"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="129"/> <source>Unknown exception: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="131"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="132"/> <source>Unhandled exception</source> <translation type="unfinished"></translation> </message> @@ -81,323 +81,324 @@ <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="135"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="168"/> <source>Claimed change does not go to a paid address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="141"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="174"/> <source>Claimed change is larger than payment to the change address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="151"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="184"/> <source>Change goes to more than one address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="164"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="197"/> <source>sending %s to %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="170"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="203"/> <source>with no destinations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="176"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="209"/> <source>%s change to %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="179"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="212"/> <source>no change</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="181"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %s</source> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="214"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu. %s</source> <translation type="unfinished"></translation> </message> </context> <context> <name>Monero::WalletImpl</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="942"/> + <location filename="../src/wallet/api/wallet.cpp" line="1111"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="952"/> + <location filename="../src/wallet/api/wallet.cpp" line="1121"/> <source>Failed to add short payment id: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="978"/> - <location filename="../src/wallet/api/wallet.cpp" line="1072"/> + <location filename="../src/wallet/api/wallet.cpp" line="1154"/> + <location filename="../src/wallet/api/wallet.cpp" line="1258"/> <source>daemon is busy. Please try again later.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="981"/> - <location filename="../src/wallet/api/wallet.cpp" line="1075"/> + <location filename="../src/wallet/api/wallet.cpp" line="1157"/> + <location filename="../src/wallet/api/wallet.cpp" line="1261"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="984"/> - <location filename="../src/wallet/api/wallet.cpp" line="1078"/> + <location filename="../src/wallet/api/wallet.cpp" line="1160"/> + <location filename="../src/wallet/api/wallet.cpp" line="1264"/> <source>RPC error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1081"/> + <location filename="../src/wallet/api/wallet.cpp" line="1197"/> + <location filename="../src/wallet/api/wallet.cpp" line="1301"/> + <source>not enough outputs for specified ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> + <source>found outputs to use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1201"/> + <source>Please sweep unmixable outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1267"/> <source>failed to get random outputs to mix</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="994"/> - <location filename="../src/wallet/api/wallet.cpp" line="1088"/> + <location filename="../src/wallet/api/wallet.cpp" line="1170"/> + <location filename="../src/wallet/api/wallet.cpp" line="1274"/> <source>not enough money to transfer, available only %s, sent amount %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="403"/> + <location filename="../src/wallet/api/wallet.cpp" line="474"/> <source>failed to parse address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="415"/> + <location filename="../src/wallet/api/wallet.cpp" line="486"/> <source>failed to parse secret spend key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="425"/> + <location filename="../src/wallet/api/wallet.cpp" line="496"/> <source>No view key supplied, cancelled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="432"/> + <location filename="../src/wallet/api/wallet.cpp" line="503"/> <source>failed to parse secret view key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="442"/> + <location filename="../src/wallet/api/wallet.cpp" line="513"/> <source>failed to verify secret spend key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="447"/> + <location filename="../src/wallet/api/wallet.cpp" line="518"/> <source>spend key does not match address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="453"/> + <location filename="../src/wallet/api/wallet.cpp" line="524"/> <source>failed to verify secret view key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="458"/> + <location filename="../src/wallet/api/wallet.cpp" line="529"/> <source>view key does not match address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="477"/> + <location filename="../src/wallet/api/wallet.cpp" line="548"/> <source>failed to generate new wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="799"/> + <location filename="../src/wallet/api/wallet.cpp" line="773"/> + <source>Failed to send import wallet request</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="919"/> <source>Failed to load unsigned transactions</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="820"/> + <location filename="../src/wallet/api/wallet.cpp" line="940"/> <source>Failed to load transaction from file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="838"/> + <location filename="../src/wallet/api/wallet.cpp" line="958"/> <source>Wallet is view only</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="847"/> + <location filename="../src/wallet/api/wallet.cpp" line="967"/> <source>failed to save file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="874"/> + <location filename="../src/wallet/api/wallet.cpp" line="986"/> + <source>Key images can only be imported with a trusted daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="999"/> <source>Failed to import key images: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="987"/> - <source>failed to get random outputs to mix: %s</source> + <location filename="../src/wallet/api/wallet.cpp" line="1032"/> + <source>Failed to get subaddress label: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1003"/> - <location filename="../src/wallet/api/wallet.cpp" line="1097"/> - <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> + <location filename="../src/wallet/api/wallet.cpp" line="1046"/> + <source>Failed to set subaddress label: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1012"/> - <location filename="../src/wallet/api/wallet.cpp" line="1106"/> - <source>not enough outputs for specified mixin_count</source> + <location filename="../src/wallet/api/wallet.cpp" line="1163"/> + <source>failed to get random outputs to mix: %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> - <source>output amount</source> + <location filename="../src/wallet/api/wallet.cpp" line="1179"/> + <location filename="../src/wallet/api/wallet.cpp" line="1283"/> + <source>not enough money to transfer, overall balance only %s, sent amount %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1188"/> + <location filename="../src/wallet/api/wallet.cpp" line="1292"/> + <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> - <source>found outputs to mix</source> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> + <source>output amount</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1019"/> - <location filename="../src/wallet/api/wallet.cpp" line="1113"/> + <location filename="../src/wallet/api/wallet.cpp" line="1205"/> + <location filename="../src/wallet/api/wallet.cpp" line="1308"/> <source>transaction was not constructed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1023"/> - <location filename="../src/wallet/api/wallet.cpp" line="1117"/> + <location filename="../src/wallet/api/wallet.cpp" line="1209"/> + <location filename="../src/wallet/api/wallet.cpp" line="1312"/> <source>transaction %s was rejected by daemon with status: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1030"/> - <location filename="../src/wallet/api/wallet.cpp" line="1124"/> + <location filename="../src/wallet/api/wallet.cpp" line="1216"/> + <location filename="../src/wallet/api/wallet.cpp" line="1319"/> <source>one of destinations is zero</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1033"/> - <location filename="../src/wallet/api/wallet.cpp" line="1127"/> + <location filename="../src/wallet/api/wallet.cpp" line="1219"/> + <location filename="../src/wallet/api/wallet.cpp" line="1322"/> <source>failed to find a suitable way to split transactions</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1036"/> - <location filename="../src/wallet/api/wallet.cpp" line="1130"/> + <location filename="../src/wallet/api/wallet.cpp" line="1222"/> + <location filename="../src/wallet/api/wallet.cpp" line="1325"/> <source>unknown transfer error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1039"/> - <location filename="../src/wallet/api/wallet.cpp" line="1133"/> + <location filename="../src/wallet/api/wallet.cpp" line="1225"/> + <location filename="../src/wallet/api/wallet.cpp" line="1328"/> <source>internal error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1042"/> - <location filename="../src/wallet/api/wallet.cpp" line="1136"/> + <location filename="../src/wallet/api/wallet.cpp" line="1228"/> + <location filename="../src/wallet/api/wallet.cpp" line="1331"/> <source>unexpected error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1045"/> - <location filename="../src/wallet/api/wallet.cpp" line="1139"/> + <location filename="../src/wallet/api/wallet.cpp" line="1231"/> + <location filename="../src/wallet/api/wallet.cpp" line="1334"/> <source>unknown error</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1419"/> - <source>Rescan spent can only be used with a trusted daemon</source> - <translation type="unfinished"></translation> - </message> -</context> -<context> - <name>Monero::WalletManagerImpl</name> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="192"/> - <source>failed to parse txid</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="199"/> - <location filename="../src/wallet/api/wallet_manager.cpp" line="206"/> - <source>failed to parse tx key</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="217"/> - <source>failed to parse address</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="227"/> - <source>failed to get transaction from daemon</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="238"/> - <source>failed to parse transaction from daemon</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="245"/> - <source>failed to validate transaction from daemon</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="250"/> - <source>failed to get the right transaction from daemon</source> + <location filename="../src/wallet/api/wallet.cpp" line="1412"/> + <location filename="../src/wallet/api/wallet.cpp" line="1441"/> + <location filename="../src/wallet/api/wallet.cpp" line="1494"/> + <location filename="../src/wallet/api/wallet.cpp" line="1525"/> + <location filename="../src/wallet/api/wallet.cpp" line="1556"/> + <location filename="../src/wallet/api/wallet.cpp" line="1579"/> + <source>Failed to parse txid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="257"/> - <source>failed to generate key derivation from supplied parameters</source> + <location filename="../src/wallet/api/wallet.cpp" line="1430"/> + <source>no tx keys found for this txid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="313"/> - <source>error: </source> + <location filename="../src/wallet/api/wallet.cpp" line="1450"/> + <location filename="../src/wallet/api/wallet.cpp" line="1460"/> + <source>Failed to parse tx key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>received</source> + <location filename="../src/wallet/api/wallet.cpp" line="1470"/> + <location filename="../src/wallet/api/wallet.cpp" line="1502"/> + <location filename="../src/wallet/api/wallet.cpp" line="1533"/> + <location filename="../src/wallet/api/wallet.cpp" line="1621"/> + <source>Failed to parse address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>in txid</source> + <location filename="../src/wallet/api/wallet.cpp" line="1627"/> + <source>Address must not be a subaddress</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="323"/> - <source>received nothing in txid</source> + <location filename="../src/wallet/api/wallet.cpp" line="1849"/> + <source>Rescan spent can only be used with a trusted daemon</source> <translation type="unfinished"></translation> </message> </context> <context> <name>Wallet</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="212"/> + <location filename="../src/wallet/api/wallet.cpp" line="246"/> <source>Failed to parse address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="219"/> + <location filename="../src/wallet/api/wallet.cpp" line="253"/> <source>Failed to parse key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="227"/> + <location filename="../src/wallet/api/wallet.cpp" line="261"/> <source>failed to verify key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="237"/> + <location filename="../src/wallet/api/wallet.cpp" line="271"/> <source>key does not match address</source> <translation type="unfinished"></translation> </message> @@ -405,2193 +406,3467 @@ <context> <name>command_line</name> <message> - <location filename="../src/common/command_line.cpp" line="76"/> + <location filename="../src/common/command_line.cpp" line="57"/> <source>yes</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../src/common/command_line.cpp" line="71"/> + <source>no</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::rpc_args</name> <message> - <location filename="../src/rpc/rpc_args.cpp" line="38"/> - <source>Specify ip to bind rpc server</source> + <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <source>Specify IP to bind RPC server</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="39"/> + <location filename="../src/rpc/rpc_args.cpp" line="41"/> <source>Specify username[:password] required for RPC server</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <location filename="../src/rpc/rpc_args.cpp" line="42"/> <source>Confirm rpc-bind-ip value is NOT a loopback (local) IP</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="66"/> + <location filename="../src/rpc/rpc_args.cpp" line="43"/> + <source>Specify a comma separated list of origins to allow cross origin resource sharing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="70"/> <source>Invalid IP address given for --</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="74"/> + <location filename="../src/rpc/rpc_args.cpp" line="78"/> <source> permits inbound unencrypted external connections. Consider SSH tunnel or SSL proxy instead. Override with --</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> <source>Username specified with --</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> <source> cannot be empty</source> <translation type="unfinished"></translation> </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> + <source> requires RFC server password --</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::simple_wallet</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="290"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="479"/> <source>Commands: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> <source>failed to read wallet password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1325"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2699"/> <source>invalid password</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="697"/> - <source>start_mining [<number_of_threads>] - Start mining in daemon</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="698"/> - <source>Stop mining in daemon</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="699"/> - <source>Save current blockchain data</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="701"/> - <source>Show current wallet balance</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="704"/> - <source>Show blockchain height</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> - <source>Show current wallet public address</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="744"/> - <source>Show this help</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="788"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1905"/> <source>set seed: needs an argument. available options: language</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="811"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1933"/> <source>set: unrecognized argument(s)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1442"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2869"/> <source>wallet file path not valid: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="863"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1987"/> <source>Attempting to generate or restore wallet, but specified file(s) exist. Exiting to not risk overwriting.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="416"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="662"/> <source>usage: payment_id</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="710"/> - <source>sweep_below <amount_threshold> [mixin] address [payment_id] - Send all unlocked outputs below the threshold to an address</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="743"/> - <source>Generate a new random full size payment id - these will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="774"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1891"/> <source>needs an argument</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="797"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="798"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="799"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="801"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="804"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="805"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1914"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1921"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1922"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1927"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1931"/> <source>0 or 1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="800"/> - <source>integer >= 2</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="803"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1920"/> <source>0, 1, 2, 3, or 4</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1924"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1928"/> <source>unsigned integer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="912"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2041"/> <source>NOTE: the following 25 words can be used to recover access to your wallet. Write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="958"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2092"/> <source>--restore-deterministic-wallet uses --generate-new-wallet, not --wallet-file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="973"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2121"/> <source>specify a recovery parameter with the --electrum-seed="words list here"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2471"/> <source>specify a wallet path with --generate-new-wallet (not --wallet-file)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1261"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2635"/> <source>wallet failed to connect to daemon: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1269"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2643"/> <source>Daemon uses a different RPC major version (%u) than the wallet (%u): %s. Either update one of them, or use --allow-mismatched-daemon-version.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1288"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2662"/> <source>List of available languages for your wallet's seed:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1297"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2671"/> <source>Enter the number corresponding to the language of your choice: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1354"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2737"/> <source>You had been using a deprecated version of the wallet. Please use the new seed that we provide. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1368"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1425"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2751"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> <source>Generated new wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1374"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2757"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> <source>failed to generate new wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2887"/> <source>Opened watch-only wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2891"/> <source>Opened wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1466"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2901"/> <source>You had been using a deprecated version of the wallet. Please proceed to upgrade your wallet. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2916"/> <source>You had been using a deprecated version of the wallet. Your wallet file format is being upgraded now. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1489"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2924"/> <source>failed to load wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1497"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2941"/> <source>Use the "help" command to see the list of available commands. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2986"/> <source>Wallet data saved</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3072"/> <source>Mining started in daemon</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1615"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3074"/> <source>mining has NOT been started: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1634"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3093"/> <source>Mining stopped in daemon</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3095"/> <source>mining has NOT been stopped: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1655"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> <source>Blockchain saved</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1687"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1699"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3165"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3196"/> <source>Height </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1671"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1688"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3197"/> <source>transaction </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1672"/> - <source>received </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1689"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3185"/> <source>spent </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3198"/> <source>unsupported transaction format</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1718"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3219"/> <source>Starting refresh...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3232"/> <source>Refresh done, blocks received: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2186"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3758"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2201"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3773"/> <source>bad locked_blocks parameter:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2228"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2726"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3801"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4462"/> <source>a single transaction cannot use more than one payment id: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2237"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2735"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3810"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4257"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4470"/> <source>failed to set up payment id, though it was decoded correctly</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2262"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2355"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2533"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2749"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3835"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3987"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4271"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4329"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4484"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4527"/> <source>transaction cancelled.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3895"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Is this okay anyway? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3900"/> + <source>There is currently a %u block backlog at that fee level. Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Failed to check for backlog: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3946"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4302"/> + <source> +Transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4307"/> + <source>Spending from address index %d +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3953"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4309"/> + <source>WARNING: Outputs of multiple addresses are being used together, which might potentially compromise your privacy. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3955"/> <source>Sending %s. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2326"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3958"/> <source>Your transaction needs to be split into %llu transactions. This will result in a transaction fee being applied to each transaction, for a total fee of %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3964"/> <source>The transaction fee is %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2335"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3967"/> <source>, of which %s is dust from change</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>A total of %s from dust change will be sent to dust address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2341"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3973"/> <source>. This transaction will unlock on block %llu, in approximately %s days (assuming 2 minutes per block)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2367"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2544"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2805"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3999"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4011"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4340"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4352"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4537"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4549"/> <source>Failed to write transaction(s) to file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2371"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2548"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4003"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4015"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4111"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4344"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4356"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4553"/> <source>Unsigned transaction(s) successfully written to file: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2406"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2583"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2844"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3157"/> - <source>Not enough money in unlocked balance</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4066"/> + <source>No unmixable outputs found</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2415"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2592"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> - <source>Failed to find a way to create transactions. This is usually due to dust which is so small it cannot pay for itself in fees, or trying to send more money than the unlocked balance, or not leaving enough for fees</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4149"/> + <source>No address given</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2435"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2612"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2873"/> - <source>Reason: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4424"/> + <source>failed to parse Payment ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2447"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2624"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2885"/> - <source>failed to find a suitable way to split transactions</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4440"/> + <source>usage: sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2503"/> - <source>No unmixable outputs found</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4447"/> + <source>failed to parse key image</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2709"/> - <source>No address given</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4499"/> + <source>No outputs found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4504"/> + <source>Multiple transactions are created, which is not supposed to happen</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2921"/> - <source>missing amount threshold</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4509"/> + <source>The transaction uses multiple or no inputs, which is not supposed to happen</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4586"/> + <source>missing threshold amount</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4591"/> <source>invalid amount threshold</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4601"/> + <source>donations are not enabled on the testnet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4608"/> + <source>usage: donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4702"/> <source>Claimed change does not go to a paid address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3013"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4707"/> <source>Claimed change is larger than payment to the change address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3035"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4738"/> <source>sending %s to %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3041"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4748"/> + <source> dummy output(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4751"/> <source>with no destinations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3088"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4763"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu, %s. %sIs this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4787"/> + <source>This is a multisig wallet, it can only sign with sign_multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4797"/> + <source>usage: sign_transfer [export]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4809"/> <source>Failed to sign transaction</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4815"/> <source>Failed to sign transaction: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3120"/> - <source>Failed to load transaction from file</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4836"/> + <source>Transaction raw hex data exported to </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3137"/> - <source>daemon is busy. Please try later</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4852"/> + <source>Failed to load transaction from file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1745"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1995"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2395"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2572"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2833"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3146"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3551"/> <source>RPC error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="522"/> <source>wallet is watch-only and has no spend key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="390"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="780"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="848"/> <source>Your original password was incorrect.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="404"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="650"/> <source>Error with wallet rewrite: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="513"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1289"/> <source>priority must be 0, 1, 2, 3, or 4 </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="525"/> - <source>priority must be 0, 1, 2, 3,or 4</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="540"/> - <source>priority must be 0, 1, 2 3,or 4</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1301"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1316"/> + <source>priority must be 0, 1, 2, 3, or 4</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="623"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1404"/> <source>invalid unit</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="641"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1422"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1484"/> <source>invalid count: must be an unsigned integer</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="659"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1440"/> <source>invalid value</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="705"/> - <source>Same as transfer, but using an older transaction building algorithm</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1942"/> + <source>usage: set_log <log_level_number_0-4> | <categories></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2013"/> + <source>(Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2509"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2536"/> + <source>bad m_restore_height parameter: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2514"/> + <source>date format must be YYYY-MM-DD</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2527"/> + <source>Restore height is: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2528"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3980"/> + <source>Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2575"/> + <source>Daemon is local, assuming trusted</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3004"/> + <source>Password for new watch-only wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3063"/> + <source>invalid arguments. Please use start_mining [<number_of_threads>] [do_bg_mining] [ignore_battery], <number_of_threads> should be from 1 to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> + <source>internal error: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3263"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3556"/> + <source>unexpected error: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3561"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4138"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4371"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4570"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4865"/> + <source>unknown error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> + <source>refresh failed: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> + <source>Blocks received: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3304"/> + <source>unlocked balance: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1925"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>amount</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="709"/> - <source>sweep_all [mixin] address [payment_id] - Send all unlocked balance to an address</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="219"/> + <source>false</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="711"/> - <source>donate [<mixin_count>] <amount> [payment_id] - Donate <amount> to the development team (donate.getmonero.org)</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="493"/> + <source>Unknown command: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="714"/> - <source>set_log <level>|<categories> - Change current log detail (level must be <0-4>)</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="500"/> + <source>Command usage: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="503"/> + <source>Command description: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="551"/> + <source>wallet is multisig but not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="567"/> + <source>Enter optional seed encryption passphrase, empty to see raw seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="584"/> + <source>Failed to retrieve seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="603"/> + <source>wallet is multisig and has no seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="674"/> + <source>Cannot connect to daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="679"/> + <source>Current fee is %s monero per kB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="695"/> + <source>Error: failed to estimate backlog array size: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> + <source>Error: bad estimated backlog array size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> + <source> (current)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> + <source>%u block (%u minutes) backlog at priority %u%s</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="717"/> - <source>address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)] - Print all entries in the address book, optionally adding/deleting an entry to/from it</source> + <source>%u to %u block (%u to %u minutes) backlog at priority %u</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> + <source>No backlog at priority </source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="729"/> - <source>show_transfers [in|out|pending|failed|pool] [<min_height> [<max_height>]] - Show incoming/outgoing transfers within an optional height range</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="762"/> + <source>This wallet is already multisig</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="741"/> - <source>Show information about a transfer to/from this address</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="767"/> + <source>wallet is watch-only and cannot be made multisig</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="742"/> - <source>Change wallet password</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="773"/> + <source>This wallet has been used before, please use a new wallet to create a multisig wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="820"/> - <source>usage: set_log <log_level_number_0-4> | <categories></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="747"/> + <source>Your password is incorrect.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="886"/> - <source>(Y/Yes/N/No): </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="753"/> + <source>Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1157"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1184"/> - <source>bad m_restore_height parameter: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="754"/> + <source>This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1162"/> - <source>date format must be YYYY-MM-DD</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="786"/> + <source>usage: make_multisig <threshold> <multisiginfo1> [<multisiginfo2>...]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1175"/> - <source>Restore height is: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="794"/> + <source>Invalid threshold</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <source>Another step is needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <source>Send this multisig info to all other participants, then use finalize_multisig <info1> [<info2>...] with others' multisig info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="815"/> + <source>Error creating multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="822"/> + <source>Error creating multisig: new wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="825"/> + <source> multisig address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="836"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="927"/> + <source>This wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="841"/> + <source>This wallet is already finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="854"/> + <source>usage: finalize_multisig <multisiginfo1> [<multisiginfo2>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="862"/> + <source>Failed to finalize multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <source>Failed to finalize multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="885"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="932"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1006"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1074"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1136"/> + <source>This multisig wallet is not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="890"/> + <source>usage: export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="913"/> + <source>Error exporting multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="917"/> + <source>Multisig info exported to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> + <source>usage: import_multisig_info <filename1> [<filename2>...] - one for each other participant</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="965"/> + <source>Multisig info imported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="969"/> + <source>Failed to import multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="980"/> + <source>Failed to update spent status after importing multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="985"/> + <source>Untrusted daemon, spent status may be incorrect. Use a trusted daemon and run "rescan_spent"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1131"/> + <source>This is not a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> + <source>usage: sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1024"/> + <source>Failed to sign multisig transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1030"/> + <source>Multisig error: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1035"/> + <source>Failed to sign multisig transaction: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1058"/> + <source>It may be relayed to the network with submit_multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <source>usage: submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1155"/> + <source>Failed to load multisig transaction from file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1160"/> + <source>Multisig transaction signed by only %u signers, needs %u more signatures</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1108"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6750"/> + <source>Transaction successfully submitted, transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1109"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6751"/> + <source>You can check its status by using the `show_transfers` command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1141"/> + <source>usage: export_raw_multisig <filename></source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="1176"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2348"/> - <source>Is this okay? (Y/Yes/N/No): </source> + <source>Failed to export multisig transaction to file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1212"/> - <source>Daemon is local, assuming trusted</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1180"/> + <source>Saved exported multisig transaction file(s): </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1553"/> - <source>Password for new watch-only wallet</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1252"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1258"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1272"/> + <source>ring size must be an integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1277"/> + <source>could not change default ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <source>Invalid height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1564"/> + <source>start_mining [<number_of_threads>] [bg_mining] [ignore_battery]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1565"/> + <source>Start mining in the daemon (bg_mining and ignore_battery are optional booleans).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1568"/> + <source>Stop mining in the daemon.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1571"/> + <source>set_daemon <host>[:<port>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1572"/> + <source>Set another daemon to connect to.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1575"/> + <source>Save the current blockchain data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1578"/> + <source>Synchronize the transactions and balance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1581"/> + <source>balance [detail]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1582"/> + <source>Show the wallet's balance of the currently selected account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1585"/> + <source>incoming_transfers [available|unavailable] [verbose] [index=<N1>[,<N2>[,...]]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1586"/> + <source>Show the incoming transfers, all or filtered by availability and address index.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1589"/> + <source>payments <PID_1> [<PID_2> ... <PID_N>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1590"/> + <source>Show the payments for the given payment IDs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1593"/> + <source>Show the blockchain height.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1596"/> + <source>transfer_original [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1597"/> + <source>Transfer <amount> to <address> using an older transaction building algorithm. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1599"/> + <source>transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1600"/> + <source>Transfer <amount> to <address>. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1603"/> + <source>locked_transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <addr> <amount> <lockblocks> [<payment_id>]</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="1604"/> - <source>invalid arguments. Please use start_mining [<number_of_threads>] [do_bg_mining] [ignore_battery], <number_of_threads> should be from 1 to </source> + <source>Transfer <amount> to <address> and lock it for <lockblocks> (max. 1000000). If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1755"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2457"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2634"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2895"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3205"/> - <source>internal error: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1607"/> + <source>Send all unmixable outputs to yourself with ring_size 1</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2000"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2462"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2639"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2900"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3210"/> - <source>unexpected error: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1609"/> + <source>sweep_all [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1610"/> + <source>Send all unlocked balance to an address. If the parameter "index<N1>[,<N2>,...]" is specified, the wallet sweeps outputs received by those address indices. If omitted, the wallet randomly chooses an address index to be used.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <source>sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1614"/> + <source>Send all unlocked outputs below the threshold to an address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1617"/> + <source>sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1618"/> + <source>Send a single output of the given key image to an address without change.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1621"/> + <source>donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1622"/> + <source>Donate <amount> to the development team (donate.getmonero.org).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1625"/> + <source>sign_transfer <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> + <source>Sign a transaction from a <file>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1629"/> + <source>Submit a signed transaction from a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1632"/> + <source>set_log <level>|{+,-,}<categories></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1633"/> + <source>Change the current log detail (level must be <0-4>).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <source>account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1643"/> + <source>If no arguments are specified, the wallet shows all the existing accounts along with their balances. +If the "new" argument is specified, the wallet creates a new account with its label initialized by the provided label text (which can be empty). +If the "switch" argument is specified, the wallet switches to the account specified by <index>. +If the "label" argument is specified, the wallet sets the label of the account specified by <index> to the provided label text. +If the "tag" argument is specified, a tag <tag_name> is assigned to the specified accounts <account_index_1>, <account_index_2>, .... +If the "untag" argument is specified, the tags assigned to the specified accounts <account_index_1>, <account_index_2> ..., are removed. +If the "tag_description" argument is specified, the tag <tag_name> is assigned an arbitrary text <description>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1652"/> + <source>address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1653"/> + <source>If no arguments are specified or <index> is specified, the wallet shows the default or specified address. If "all" is specified, the walllet shows all the existing addresses in the currently selected account. If "new " is specified, the wallet creates a new address with the provided label text (which can be empty). If "label" is specified, the wallet sets the label of the address specified by <index> to the provided label text.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1656"/> + <source>integrated_address [<payment_id> | <address>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <source>Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1660"/> + <source>address_book [(add ((<address> [pid <id>])|<integrated address>) [<description possibly with whitespaces>])|(delete <index>)]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1661"/> + <source>Print all entries in the address book, optionally adding/deleting an entry to/from it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1664"/> + <source>Save the wallet data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1667"/> + <source>Save a watch-only keys file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> + <source>Display the private view key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1673"/> + <source>Display the private spend key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1676"/> + <source>Display the Electrum-style mnemonic seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1679"/> + <source>set <option> [<value>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1680"/> + <source>Available options: + seed language + Set the wallet's seed language. + always-confirm-transfers <1|0> + Whether to confirm unsplit txes. + print-ring-members <1|0> + Whether to print detailed information about ring members during confirmation. + store-tx-info <1|0> + Whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference. + default-ring-size <n> + Set the default ring size (default and minimum is 5). + auto-refresh <1|0> + Whether to automatically synchronize new blocks from the daemon. + refresh-type <full|optimize-coinbase|no-coinbase|default> + Set the wallet's refresh behaviour. + priority [0|1|2|3|4] + Set the fee too default/unimportant/normal/elevated/priority. + confirm-missing-payment-id <1|0> + ask-password <1|0> + unit <monero|millinero|micronero|nanonero|piconero> + Set the default monero (sub-)unit. + min-outputs-count [n] + Try to keep at least that many outputs of value at least min-outputs-value. + min-outputs-value [n] + Try to keep at least min-outputs-count outputs of at least that value. + merge-destinations <1|0> + Whether to merge multiple payments to the same destination address. + confirm-backlog <1|0> + Whether to warn if there is transaction backlog. + confirm-backlog-threshold [n] + Set a threshold for confirm-backlog to only warn if the transaction backlog is greater than n blocks. + refresh-from-block-height [n] + Set the height before which to ignore blocks. + auto-low-priority <1|0> + Whether to automatically use the low priority fee level when it's safe to do so.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1717"/> + <source>Display the encrypted Electrum-style mnemonic seed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1720"/> + <source>Rescan the blockchain for spent outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1723"/> + <source>get_tx_key <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1724"/> + <source>Get the transaction key (r) for a given <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1727"/> + <source>check_tx_key <txid> <txkey> <address></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1728"/> + <source>Check the amount going to <address> in <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <source>get_tx_proof <txid> <address> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1732"/> + <source>Generate a signature proving funds sent to <address> in <txid>, optionally with a challenge string <message>, using either the transaction secret key (when <address> is not your wallet's address) or the view secret key (otherwise), which does not disclose the secret key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1735"/> + <source>check_tx_proof <txid> <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> + <source>Check the proof for funds going to <address> in <txid> with the challenge string <message> if any.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1739"/> + <source>get_spend_proof <txid> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> + <source>Generate a signature proving that you generated <txid> using the spend secret key, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1743"/> + <source>check_spend_proof <txid> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1744"/> + <source>Check a signature proving that the signer generated <txid>, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1747"/> + <source>get_reserve_proof (all|<amount>) [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1748"/> + <source>Generate a signature proving that you own at least this much, optionally with a challenge string <message>. +If 'all' is specified, you prove the entire sum of all of your existing accounts' balances. +Otherwise, you prove the reserve of the smallest possible amount above <amount> available in your current account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1753"/> + <source>check_reserve_proof <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1754"/> + <source>Check a signature proving that the owner of <address> holds at least this much, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1757"/> + <source>show_transfers [in|out|pending|failed|pool] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1758"/> + <source>Show the incoming/outgoing transfers within an optional height range.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1761"/> + <source>unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1762"/> + <source>Show the unspent outputs of a specified address within an optional amount range.</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="1765"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2005"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2467"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2644"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2905"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3215"/> - <source>unknown error</source> + <source>Rescan the blockchain from scratch.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> - <source>refresh failed: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1768"/> + <source>set_tx_note <txid> [free text note]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> - <source>Blocks received: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1769"/> + <source>Set an arbitrary string note for a <txid>.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1795"/> - <source>unlocked balance: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1772"/> + <source>get_tx_note <txid></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="808"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> - <source>amount</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1773"/> + <source>Get a string note for a txid.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <source>spent</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1776"/> + <source>set_description [free text note]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <source>global index</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1777"/> + <source>Set an arbitrary description for the wallet.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <source>tx id</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1780"/> + <source>Get the description of the wallet.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1868"/> - <source>No incoming transfers</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1783"/> + <source>Show the wallet's status.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1872"/> - <source>No incoming available transfers</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1786"/> + <source>Show the wallet's information.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1876"/> - <source>No incoming unavailable transfers</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1789"/> + <source>sign <file></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1887"/> - <source>expected at least one payment_id</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1790"/> + <source>Sign the contents of a file.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> - <source>payment</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1793"/> + <source>verify <filename> <address> <signature></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> - <source>transaction</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <source>Verify a signature on the contents of a file.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> - <source>height</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1797"/> + <source>export_key_images <file></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> - <source>unlock time</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1798"/> + <source>Export a signed set of key images to a <file>.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1908"/> - <source>No payments with id </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1801"/> + <source>import_key_images <file></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1960"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2026"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2280"/> - <source>failed to get blockchain height: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1802"/> + <source>Import a signed key images list and verify their spent status.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2016"/> - <source>failed to connect to the daemon</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1805"/> + <source>export_outputs <file></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2034"/> - <source> -Transaction %llu/%llu: txid=%s</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1806"/> + <source>Export a set of outputs owned by this wallet.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2044"/> - <source> -Input %llu/%llu: amount=%s</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1809"/> + <source>import_outputs <file></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2060"/> - <source>failed to get output: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1810"/> + <source>Import a set of outputs owned by this wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1813"/> + <source>show_transfer <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1814"/> + <source>Show information about a transfer to/from this address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1817"/> + <source>Change the wallet's password.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1820"/> + <source>Generate a new random full size payment id. These will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1823"/> + <source>Print the information about the current fee and transaction backlog.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1825"/> + <source>Export data needed to create a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1827"/> + <source>make_multisig <threshold> <string1> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1828"/> + <source>Turn this wallet into a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1831"/> + <source>finalize_multisig <string> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1832"/> + <source>Turn this wallet into a multisig wallet, extra step for N-1/N wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1835"/> + <source>export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1836"/> + <source>Export multisig info for other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1839"/> + <source>import_multisig_info <filename> [<filename>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1840"/> + <source>Import multisig info from other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1843"/> + <source>sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1844"/> + <source>Sign a multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1847"/> + <source>submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1848"/> + <source>Submit a signed multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1851"/> + <source>export_raw_multisig_tx <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1852"/> + <source>Export a signed multisig transaction to a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <source>help [<command>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <source>Show the help section or the documentation about a <command>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1917"/> + <source>integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1930"/> + <source>block height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2012"/> + <source>No wallet found with that name. Confirm creation of new wallet named: </source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="2068"/> - <source>output key's originating block height shouldn't be higher than the blockchain height</source> + <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-spend-key="wallet_name", --generate-from-keys="wallet_name", --generate-from-multisig-keys="wallet_name" and --generate-from-json="jsonfilename"</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2072"/> - <source> -Originating block heights: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="2084"/> + <source>can't specify both --restore-deterministic-wallet or --restore-multisig-wallet and --non-deterministic</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> - <source> -|</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="2090"/> + <source>--restore-multisig-wallet uses --generate-new-wallet, not --wallet-file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> - <source>| + <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> + <source>specify a recovery parameter with the --electrum-seed="multisig seed here"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2133"/> + <source>Multisig seed failed verification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2149"/> + <source>Enter seed encryption passphrase, empty if none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2259"/> + <source>This address is a subaddress which cannot be used here.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2337"/> + <source>Error: expected M/N, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2342"/> + <source>Error: expected N > 1 and N <= M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2347"/> + <source>Error: M/N is currently unsupported. </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2350"/> + <source>Generating master wallet from %u of %u multisig wallet keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2379"/> + <source>failed to parse secret view key</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2388"/> + <source>failed to verify secret view key</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2408"/> + <source>Secret spend key (%u of %u):</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> + <source>Error: M/N is currently unsupported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2550"/> + <source>Restore height </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2551"/> + <source>Still apply restore height? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2582"/> + <source>Warning: using an untrusted daemon at %s, privacy will be lessened</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2636"/> + <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or change the daemon address using the 'set_daemon' command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2768"/> + <source>Your wallet has been generated! +To start synchronizing with the daemon, use the "refresh" command. +Use the "help" command to see the list of available commands. +Use "help <command>" to see a command's documentation. +Always use the "exit" command when closing monero-wallet-cli to save +your current session's state. Otherwise, you might need to synchronize +your wallet again (your wallet keys are NOT at risk in any case). </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2104"/> - <source> -Warning: Some input keys being spent are from </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="2850"/> + <source>failed to generate new mutlisig wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> - <source>, which can break the anonymity of ring signature. Make sure this is intentional!</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> + <source>Generated new %u/%u multisig wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2152"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2937"/> - <source>wrong number of arguments</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="2889"/> + <source>Opened %u/%u multisig wallet%s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2257"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2744"/> - <source>No payment id is included with this transaction. Is this okay? (Y/Yes/N/No): </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="2942"/> + <source>Use "help <command>" to see a command's documentation. +</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2298"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2762"/> - <source>No outputs found, or daemon is not ready</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3000"/> + <source>wallet is multisig and cannot save a watch-only version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2399"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2576"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2837"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> - <source>failed to get random outputs to mix: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> + <source>missing daemon URL argument</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2518"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2779"/> - <source>Sweeping %s in %llu transactions for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3116"/> + <source>Unexpected array length - Exited simple_wallet::set_daemon()</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2524"/> - <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3130"/> + <source>This does not seem to be a valid daemon URL.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2969"/> - <source>Donating </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3184"/> + <source>txid </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3053"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %sIs this okay? (Y/Yes/N/No): </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3186"/> + <source>idx </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3077"/> - <source>This is a watch only wallet</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3299"/> + <source> (Some owned outputs have partial key images - import_multisig_info needed)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4443"/> - <source>usage: show_transfer <txid></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>Currently selected account: [</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4557"/> - <source>Transaction ID not found</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>] </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="237"/> - <source>true</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>Tag: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="266"/> - <source>failed to parse refresh type</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>(No tag assigned)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="330"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="362"/> - <source>wallet is watch-only and has no seed</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3309"/> + <source>Balance per address:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="353"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="367"/> - <source>wallet is non-deterministic and has no seed</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="450"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="467"/> - <source>wallet is watch-only and cannot transfer</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Balance</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="474"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="480"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="496"/> - <source>mixin must be an integer >= 2</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Unlocked balance</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="501"/> - <source>could not change default mixin</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Outputs</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="545"/> - <source>could not change default priority</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Label</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> - <source>Synchronize transactions and balance</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3318"/> + <source>%8u %6s %21s %21s %7u %21s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="702"/> - <source>incoming_transfers [available|unavailable] - Show incoming transfers, all or filtered by availability</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3327"/> + <source>usage: balance [detail]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="703"/> - <source>payments <PID_1> [<PID_2> ... <PID_N>] - Show payments for given payment ID[s]</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3381"/> + <source>usage: incoming_transfers [available|unavailable] [verbose] [index=<N>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="706"/> - <source>transfer [<priority>] [<mixin_count>] <address> <amount> [<payment_id>] - Transfer <amount> to <address>. <priority> is the priority of the transaction. The higher the priority, the higher the fee of the transaction. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <mixin_count> is the number of extra inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <source>spent</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="707"/> - <source>locked_transfer [<mixin_count>] <addr> <amount> <lockblocks>(Number of blocks to lock the transaction for, max 1000000) [<payment_id>]</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <source>global index</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="708"/> - <source>Send all unmixable outputs to yourself with mixin 0</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <source>tx id</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> - <source>Sign a transaction from a file</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>addr index</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="713"/> - <source>Submit a signed transaction from a file</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> + <source>No incoming transfers</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="716"/> - <source>integrated_address [PID] - Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3427"/> + <source>No incoming available transfers</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="718"/> - <source>Save wallet data</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3431"/> + <source>No incoming unavailable transfers</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="719"/> - <source>Save a watch-only keys file</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3442"/> + <source>expected at least one payment ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> - <source>Display private view key</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>payment</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="721"/> - <source>Display private spend key</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>transaction</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="722"/> - <source>Display Electrum-style mnemonic seed</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>height</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="723"/> - <source>Available options: seed language - set wallet seed language; always-confirm-transfers <1|0> - whether to confirm unsplit txes; print-ring-members <1|0> - whether to print detailed information about ring members during confirmation; store-tx-info <1|0> - whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference; default-mixin <n> - set default mixin (default is 4); auto-refresh <1|0> - whether to automatically sync new blocks from the daemon; refresh-type <full|optimize-coinbase|no-coinbase|default> - set wallet refresh behaviour; priority [0|1|2|3|4] - default/unimportant/normal/elevated/priority fee; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - set default monero (sub-)unit; min-outputs-count [n] - try to keep at least that many outputs of value at least min-outputs-value; min-outputs-value [n] - try to keep at least min-outputs-count outputs of at least that value; merge-destinations <1|0> - whether to merge multiple payments to the same destination address</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>unlock time</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="724"/> - <source>Rescan blockchain for spent outputs</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3463"/> + <source>No payments with id </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="725"/> - <source>Get transaction key (r) for a given <txid></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3516"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3582"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3853"/> + <source>failed to get blockchain height: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="726"/> - <source>Check amount going to <address> in <txid></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3572"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5136"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5259"/> + <source>failed to connect to the daemon</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="727"/> - <source>Generate a signature to prove payment to <address> in <txid> using the transaction secret key (r) without revealing it</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3590"/> + <source> +Transaction %llu/%llu: txid=%s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="728"/> - <source>Check tx proof for payment going to <address> in <txid></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3600"/> + <source> +Input %llu/%llu: amount=%s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="730"/> - <source>unspent_outputs [<min_amount> <max_amount>] - Show unspent outputs within an optional amount range</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3616"/> + <source>failed to get output: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="731"/> - <source>Rescan blockchain from scratch</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3624"/> + <source>output key's originating block height shouldn't be higher than the blockchain height</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="732"/> - <source>Set an arbitrary string note for a txid</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3628"/> + <source> +Originating block heights: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="733"/> - <source>Get a string note for a txid</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> + <source> +|</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> - <source>Show wallet status information</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> + <source>| +</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="735"/> - <source>Sign the contents of a file</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3660"/> + <source> +Warning: Some input keys being spent are from </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="736"/> - <source>Verify a signature on the contents of a file</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3662"/> + <source>, which can break the anonymity of ring signature. Make sure this is intentional!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="737"/> - <source>Export a signed set of key images</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3705"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4184"/> + <source>Ring size must not be 0</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="738"/> - <source>Import signed key images list and verify their spent status</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3717"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4196"/> + <source>ring size %u is too small, minimum is %u</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="739"/> - <source>Export a set of outputs owned by this wallet</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3724"/> + <source>wrong number of arguments</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> - <source>Import set of outputs owned by this wallet</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3830"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4479"/> + <source>No payment id is included with this transaction. Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3872"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4286"/> + <source>No outputs found, or daemon is not ready</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <source>Transaction successfully saved to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>, txid </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>Failed to save transaction to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4081"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4314"/> + <source>Sweeping %s in %llu transactions for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4087"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4320"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4519"/> + <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4630"/> + <source>Donating </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4792"/> + <source>This is a watch only wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="802"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6571"/> + <source>usage: show_transfer <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6673"/> + <source>Double spend seen on the network: this transaction may or may not end up being mined</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6708"/> + <source>Transaction ID not found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="214"/> + <source>true</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="267"/> + <source>failed to parse refresh type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="608"/> + <source>wallet is watch-only and has no seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="613"/> + <source>wallet is non-deterministic and has no seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1245"/> + <source>wallet is watch-only and cannot transfer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1321"/> + <source>could not change default priority</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1919"/> <source>full (slowest, no assumptions); optimize-coinbase (fast, assumes the whole coinbase is paid to a single address); no-coinbase (fastest, assumes we receive no coinbase transaction), default (same as optimize-coinbase)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="806"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1923"/> <source>monero, millinero, micronero, nanonero, piconero</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="851"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1975"/> <source>Wallet name not valid. Please try again or use Ctrl-C to quit.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1992"/> <source>Wallet and key files found, loading...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="874"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1998"/> <source>Key file found but not wallet file. Regenerating...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2004"/> <source>Key file not found. Failed to open wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="894"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2023"/> <source>Generating new wallet...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> - <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-json="jsonfilename" and --generate-from-keys="wallet_name"</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="953"/> - <source>can't specify both --restore-deterministic-wallet and --non-deterministic</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="982"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2141"/> <source>Electrum-style word list failed verification</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="994"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1046"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1063"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2194"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2229"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2284"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2357"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2373"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2413"/> <source>No data supplied, cancelled</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1002"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1054"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2220"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2718"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3276"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3378"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3530"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4048"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2254"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2363"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3791"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4240"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4454"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4994"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5058"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6106"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6353"/> <source>failed to parse address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1017"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2200"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2290"/> <source>failed to parse view key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1027"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1103"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2210"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2308"/> <source>failed to verify view key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1031"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2214"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2393"/> <source>view key does not match standard address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1036"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1111"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1128"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2238"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2316"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2480"/> <source>account creation failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2234"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2274"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2418"/> <source>failed to parse spend key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1095"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2300"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2439"/> <source>failed to verify spend key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2304"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2444"/> <source>spend key does not match standard address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1199"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2562"/> <source>failed to open account</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1203"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1579"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1647"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3348"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2566"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3142"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4962"/> <source>wallet is null</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1262"/> - <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1306"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1311"/> - <source>invalid language choice passed. Please try again. + <location filename="../src/simplewallet/simplewallet.cpp" line="2680"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2685"/> + <source>invalid language choice entered. Please try again. </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1370"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2753"/> <source>View key: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1385"/> - <source>Your wallet has been generated! -To start synchronizing with the daemon, use the "refresh" command. -Use the "help" command to see the list of available commands. -Always use the "exit" command when closing monero-wallet-cli to save -your current session's state. Otherwise, you might need to synchronize -your wallet again (your wallet keys are NOT at risk in any case). -</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1492"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2935"/> <source>You may want to remove the file "%s" and try again</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2963"/> <source>failed to deinitialize wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1570"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3021"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3524"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6410"/> <source>this command requires a trusted daemon. Enable with --trusted-daemon</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3152"/> <source>blockchain can't be saved: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1982"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2386"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2563"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2824"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3538"/> <source>daemon is busy. Please try again later.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1986"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2390"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2567"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2828"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3243"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3542"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1750"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3253"/> <source>refresh error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3303"/> <source>Balance: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>pubkey</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>key image</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>unlocked</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>ringct</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>T</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>F</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>locked</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>RingCT</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>-</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> <source>payment ID has invalid format, expected 16 or 64 character hex string: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3546"/> <source>failed to get spent status</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>the same transaction</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>blocks that are temporally very close</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2206"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3778"/> <source>Locked blocks too high, max 1000000 (˜4 yrs)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> - <source>usage: get_tx_proof <txid> <dest_address> [<tx_key>]</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5077"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5188"/> + <source>Good signature</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3289"/> - <source>failed to parse tx_key</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5293"/> + <source>Bad signature</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3298"/> - <source>Tx secret key was found for the given txid, but you've also provided another tx secret key which doesn't match the found one.</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6046"/> + <source>usage: integrated_address [payment ID]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3306"/> - <source>Tx secret key wasn't found in the wallet file. Provide it as the optional third parameter if you have it elsewhere.</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> + <source>Standard address: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3330"/> - <source>Signature: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6087"/> + <source>failed to parse payment ID or address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3508"/> - <source>usage: check_tx_proof <txid> <address> <signature></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6098"/> + <source>usage: address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3539"/> - <source>Signature header check error</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6128"/> + <source>failed to parse payment ID</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3550"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3560"/> - <source>Signature decoding error</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6146"/> + <source>failed to parse index</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3602"/> - <source>Tx pubkey was not found</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6154"/> + <source>Address book is empty.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3609"/> - <source>Good signature</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6160"/> + <source>Index: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3613"/> - <source>Bad signature</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6161"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6287"/> + <source>Address: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3621"/> - <source>failed to generate key derivation</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6162"/> + <source>Payment ID: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3994"/> - <source>usage: integrated_address [payment ID]</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6163"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6286"/> + <source>Description: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4017"/> - <source>Integrated address: account %s, payment ID %s</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6173"/> + <source>usage: set_tx_note [txid] free text note</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4022"/> - <source>Standard address: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6201"/> + <source>usage: get_tx_note [txid]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4027"/> - <source>failed to parse payment ID or address</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6304"/> + <source>usage: sign <filename></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4038"/> - <source>usage: address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)]</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6309"/> + <source>wallet is watch-only and cannot sign</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4070"/> - <source>failed to parse payment ID</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6346"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6501"/> + <source>failed to read file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4088"/> - <source>failed to parse index</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5039"/> + <source>usage: check_tx_proof <txid> <address> <signature_file> [<message>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> - <source>Address book is empty.</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5066"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5181"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5278"/> + <source>failed to load signature file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4102"/> - <source>Index: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5117"/> + <source>usage: get_spend_proof <txid> [<message>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4103"/> - <source>Address: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5123"/> + <source>wallet is watch-only and cannot generate the proof</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4104"/> - <source>Payment ID: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5161"/> + <source>usage: check_spend_proof <txid> <signature_file> [<message>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4105"/> - <source>Description: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5202"/> + <source>usage: get_reserve_proof (all|<amount>) [<message>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4115"/> - <source>usage: set_tx_note [txid] free text note</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5208"/> + <source>The reserve proof can be generated only by a full wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4143"/> - <source>usage: get_tx_note [txid]</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5253"/> + <source>usage: check_reserve_proof <address> <signature_file> [<message>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4193"/> - <source>usage: sign <filename></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5271"/> + <source>Address must not be a subaddress</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4198"/> - <source>wallet is watch-only and cannot sign</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5289"/> + <source>Good signature -- total: %s, spent: %s, unspent: %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4207"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4374"/> - <source>failed to read file </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5353"/> + <source>usage: show_transfers [in|out|all|pending|failed] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4219"/> - <source>usage: verify <filename> <address> <signature></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5490"/> + <source>[Double spend seen on the network: this transaction may or may not end up being mined] </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4246"/> - <source>Bad signature from </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5526"/> + <source>usage: unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4250"/> - <source>Good signature from </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5586"/> + <source>There is no unspent output in the specified address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4259"/> - <source>usage: export_key_images <filename></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5699"/> + <source> (no daemon)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4264"/> - <source>wallet is watch-only and cannot export key images</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5701"/> + <source> (out of sync)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4274"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4346"/> - <source>failed to save file </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5758"/> + <source>(Untitled account)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4285"/> - <source>Signed key images exported to </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5771"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5789"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5837"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6013"/> + <source>failed to parse index: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4293"/> - <source>usage: import_key_images <filename></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5776"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5995"/> + <source>specify an index between 0 and </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4323"/> - <source>usage: export_outputs <filename></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5873"/> + <source>usage: + account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4357"/> - <source>Outputs exported to </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source> +Grand total: + Balance: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4365"/> - <source>usage: import_outputs <filename></source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source>, unlocked balance: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2246"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3818"/> - <source>amount is wrong: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5909"/> + <source>Untagged accounts:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2247"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> - <source>expected number from 0 to </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5915"/> + <source>Tag %s is unregistered.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2378"/> - <source>Money successfully sent, transaction </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5918"/> + <source>Accounts with tag: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3141"/> - <source>no connection to daemon. Please, make sure daemon is running.</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5919"/> + <source>Tag's description: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2597"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3171"/> - <source>not enough outputs for specified mixin_count</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Account</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>output amount</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5927"/> + <source> %c%8u %6s %21s %21s %21s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>found outputs to mix</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5937"/> + <source>----------------------------------------------------------------------------------</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2428"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2605"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2866"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3179"/> - <source>transaction was not constructed</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5938"/> + <source>%15s %21s %21s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2609"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2870"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> - <source>transaction %s was rejected by daemon with status: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>Primary address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2443"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2620"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2881"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3191"/> - <source>one of destinations is zero</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>(used)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3195"/> - <source>Failed to find a suitable way to split transactions</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="5982"/> + <source>(Untitled address)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2452"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2629"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2890"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3200"/> - <source>unknown transfer error: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6022"/> + <source><index_min> is already out of bound</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2516"/> - <source>Sweeping </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6027"/> + <source><index_max> exceeds the bound</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6035"/> + <source>usage: address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed> ]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6053"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6065"/> + <source>Integrated addresses can only be created for account 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6077"/> + <source>Integrated address: %s, payment ID: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> + <source>Subaddress: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6242"/> + <source>usage: get_description</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6248"/> + <source>no description found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6250"/> + <source>description found: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6285"/> + <source>Filename: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6290"/> + <source>Watch only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6292"/> + <source>%u/%u multisig%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6294"/> + <source>Normal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6295"/> + <source>Type: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Testnet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Yes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>No</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6314"/> + <source>This wallet is multisig and cannot sign</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6335"/> + <source>usage: verify <filename> <address> <signature></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6360"/> + <source>Bad signature from </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6364"/> + <source>Good signature from </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6373"/> + <source>usage: export_key_images <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6378"/> + <source>wallet is watch-only and cannot export key images</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="906"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6391"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6473"/> + <source>failed to save file </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6402"/> + <source>Signed key images exported to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6416"/> + <source>usage: import_key_images <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6447"/> + <source>usage: export_outputs <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6484"/> + <source>Outputs exported to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6492"/> + <source>usage: import_outputs <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5545"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5553"/> + <source>amount is wrong: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3820"/> + <source>expected number from 0 to </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2785"/> - <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No)</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4079"/> + <source>Sweeping </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2816"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3129"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4559"/> <source>Money successfully sent, transaction: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3022"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4716"/> <source>Change goes to more than one address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3047"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4757"/> <source>%s change to %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3050"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4760"/> <source>no change</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1044"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1057"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4826"/> <source>Transaction successfully signed to file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4876"/> <source>usage: get_tx_key <txid></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3234"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3266"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3354"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3519"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4122"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4150"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4884"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5050"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5130"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6208"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6578"/> <source>failed to parse txid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3245"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4898"/> <source>Tx key: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3250"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4903"/> <source>no tx keys found for this txid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> - <source>usage: check_tx_key <txid> <txkey> <address></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3361"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3368"/> - <source>failed to parse tx key</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3573"/> - <source>failed to get transaction from daemon</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4912"/> + <source>usage: get_tx_proof <txid> <address> [<message>]</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3584"/> - <source>failed to parse transaction from daemon</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4937"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5147"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5239"/> + <source>signature file saved to: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3418"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3591"/> - <source>failed to validate transaction from daemon</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4939"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5149"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5241"/> + <source>failed to save signature file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3596"/> - <source>failed to get the right transaction from daemon</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4953"/> + <source>usage: check_tx_key <txid> <txkey> <address></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3385"/> - <source>failed to generate key derivation from supplied parameters</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4976"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4985"/> + <source>failed to parse tx key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3471"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4943"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5031"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5109"/> <source>error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>received</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>in txid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5026"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5099"/> <source>received nothing in txid</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5010"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5083"/> <source>WARNING: this transaction is not yet included in the blockchain!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3494"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5016"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5089"/> <source>This transaction has %u confirmations</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3498"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5020"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5093"/> <source>WARNING: failed to determine number of confirmations!</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> - <source>usage: show_transfers [in|out|all|pending|failed] [<min_height> [<max_height>]]</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5401"/> <source>bad min_height parameter:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3712"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5413"/> <source>bad max_height parameter:</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> <source>in</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>out</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>failed</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>pending</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3809"/> - <source>usage: unspent_outputs [<min_amount> <max_amount>]</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3824"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5560"/> <source><min_amount> should be smaller than <max_amount></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source> Amount: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source>, number of keys: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3861"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5597"/> <source> </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3866"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5602"/> <source> Min block height: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3867"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5603"/> <source> Max block height: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5604"/> <source> Min amount found: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3869"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5605"/> <source> Max amount found: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3870"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5606"/> <source> Total count: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3910"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5646"/> <source> Bin size: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3911"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5647"/> <source> Outputs per *: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3913"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5649"/> <source>count ^ </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> <source> |</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> <source> +</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> <source>+--> block height </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source> ^</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source>^ </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5655"/> <source> </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3969"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5696"/> <source>wallet</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4000"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="666"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6057"/> <source>Random payment ID: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6058"/> <source>Matching integrated address: </source> <translation type="unfinished"></translation> </message> </context> <context> + <name>genms</name> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="70"/> + <source>Base filename (-1, -2, etc suffixes will be appended as needed)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="71"/> + <source>Give threshold and participants at once as M/N</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="72"/> + <source>How many participants wil share parts of the multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="73"/> + <source>How many signers are required to sign a valid transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="74"/> + <source>Create testnet multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="81"/> + <source>Generating %u %u/%u multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="138"/> + <source>Error verifying multisig extra info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="146"/> + <source>Error finalizing multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="153"/> + <source>Generated multisig wallets for address </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="157"/> + <source>Error creating multisig wallets: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="176"/> + <source>This program generates a set of multisig wallets - use this simpler scheme only if all the participants trust each other</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="194"/> + <source>Error: expected N/M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="202"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="211"/> + <source>Error: either --scheme or both of --threshold and --participants may be given</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="218"/> + <source>Error: expected N > 1 and N <= M, but got N==%u and M==%d</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="227"/> + <source>Error: --filename-base is required</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="233"/> + <source>Error: unsupported scheme: only N/N and N-1/N are supported</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>sw</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="115"/> <source>Generate new wallet and save it to <arg></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> <source>Generate incoming-only wallet from view key</source> <translation type="unfinished"></translation> </message> <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <source>Generate deterministic wallet from spend key</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../src/simplewallet/simplewallet.cpp" line="118"/> <source>Generate wallet from private keys</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="120"/> - <source>Specify Electrum seed for wallet recovery/creation</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="119"/> + <source>Generate a master wallet from multisig wallet keys</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="121"/> - <source>Recover wallet using Electrum-style mnemonic seed</source> + <source>Language for mnemonic</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="122"/> - <source>Generate non-deterministic view and spend keys</source> + <source>Specify Electrum seed for wallet recovery/creation</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="123"/> - <source>Enable commands which rely on a trusted daemon</source> + <source>Recover wallet using Electrum-style mnemonic seed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="124"/> - <source>Allow communicating with a daemon that uses a different RPC version</source> + <source>Recover multisig wallet using Electrum-style mnemonic seed</source> <translation type="unfinished"></translation> </message> <message> <location filename="../src/simplewallet/simplewallet.cpp" line="125"/> - <source>Restore from specific blockchain height</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="136"/> - <source>daemon is busy. Please try again later.</source> + <source>Generate non-deterministic view and spend keys</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="145"/> - <source>possibly lost connection to daemon</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="126"/> + <source>Enable commands which rely on a trusted daemon</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="226"/> - <source>Error: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="127"/> + <source>Allow communicating with a daemon that uses a different RPC version</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4614"/> - <source>Failed to initialize wallet</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="128"/> + <source>Restore from specific blockchain height</source> <translation type="unfinished"></translation> </message> -</context> -<context> - <name>tools::dns_utils</name> <message> - <location filename="../src/common/dns_utils.cpp" line="430"/> - <source>DNSSEC validation passed</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="129"/> + <source>The newly created transaction will not be relayed to the monero network</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="434"/> - <source>WARNING: DNSSEC validation was unsuccessful, this address may not be correct!</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="171"/> + <source>daemon is busy. Please try again later.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="437"/> - <source>For URL: </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="180"/> + <source>possibly lost connection to daemon</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="439"/> - <source> Monero Address = </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="197"/> + <source>Error: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="441"/> - <source>Is this OK? (Y/n) </source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6787"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="451"/> - <source>you have cancelled the transfer request</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="6801"/> + <source>Failed to initialize wallet</source> <translation type="unfinished"></translation> </message> </context> <context> <name>tools::wallet2</name> <message> - <location filename="../src/wallet/wallet2.cpp" line="106"/> + <location filename="../src/wallet/wallet2.cpp" line="113"/> <source>Use daemon instance at <host>:<port></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="107"/> + <location filename="../src/wallet/wallet2.cpp" line="114"/> <source>Use daemon instance at host <arg> instead of localhost</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Wallet password</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="109"/> + <location filename="../src/wallet/wallet2.cpp" line="116"/> <source>Wallet password file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="110"/> + <location filename="../src/wallet/wallet2.cpp" line="117"/> <source>Use daemon instance at port <arg> instead of 18081</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="112"/> + <location filename="../src/wallet/wallet2.cpp" line="119"/> <source>For testnet. Daemon must also be launched with --testnet flag</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="113"/> + <location filename="../src/wallet/wallet2.cpp" line="120"/> <source>Restricts to view-only commands</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="152"/> + <location filename="../src/wallet/wallet2.cpp" line="168"/> <source>can't specify daemon host or port more than once</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="188"/> + <location filename="../src/wallet/wallet2.cpp" line="204"/> <source>can't specify more than one of --password and --password-file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="204"/> + <location filename="../src/wallet/wallet2.cpp" line="217"/> <source>the password file specified could not be read</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Enter new wallet password</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="464"/> - <source>failed to read wallet password</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="227"/> + <location filename="../src/wallet/wallet2.cpp" line="240"/> <source>Failed to load file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="108"/> + <location filename="../src/wallet/wallet2.cpp" line="115"/> <source>Wallet password (escape/quote as needed)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="111"/> + <location filename="../src/wallet/wallet2.cpp" line="118"/> <source>Specify username[:password] for daemon RPC client</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="233"/> + <location filename="../src/wallet/wallet2.cpp" line="224"/> + <source>no password specified; use --prompt-for-password to prompt for a password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="246"/> <source>Failed to parse JSON</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="240"/> + <location filename="../src/wallet/wallet2.cpp" line="253"/> <source>Version %u too new, we can only grok up to %u</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="258"/> + <location filename="../src/wallet/wallet2.cpp" line="269"/> <source>failed to parse view key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="264"/> - <location filename="../src/wallet/wallet2.cpp" line="331"/> - <location filename="../src/wallet/wallet2.cpp" line="373"/> + <location filename="../src/wallet/wallet2.cpp" line="274"/> + <location filename="../src/wallet/wallet2.cpp" line="339"/> + <location filename="../src/wallet/wallet2.cpp" line="380"/> <source>failed to verify view key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="276"/> + <location filename="../src/wallet/wallet2.cpp" line="285"/> <source>failed to parse spend key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="282"/> - <location filename="../src/wallet/wallet2.cpp" line="343"/> - <location filename="../src/wallet/wallet2.cpp" line="394"/> + <location filename="../src/wallet/wallet2.cpp" line="290"/> + <location filename="../src/wallet/wallet2.cpp" line="349"/> + <location filename="../src/wallet/wallet2.cpp" line="405"/> <source>failed to verify spend key secret key</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="295"/> + <location filename="../src/wallet/wallet2.cpp" line="302"/> <source>Electrum-style word list failed verification</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="306"/> - <source>At least one of Electrum-style word list and private view key must be specified</source> + <location filename="../src/wallet/wallet2.cpp" line="319"/> + <source>At least one of Electrum-style word list and private view key and private spend key must be specified</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="311"/> + <location filename="../src/wallet/wallet2.cpp" line="323"/> <source>Both Electrum-style word list and private key(s) specified</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="324"/> + <location filename="../src/wallet/wallet2.cpp" line="333"/> <source>invalid address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="335"/> + <location filename="../src/wallet/wallet2.cpp" line="342"/> <source>view key does not match standard address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="347"/> + <location filename="../src/wallet/wallet2.cpp" line="352"/> <source>spend key does not match standard address</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="356"/> + <location filename="../src/wallet/wallet2.cpp" line="360"/> <source>Cannot generate deprecated wallets from JSON</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="403"/> + <location filename="../src/wallet/wallet2.cpp" line="392"/> + <source>failed to parse address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="398"/> + <source>Address must be specified in order to create watch-only wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="413"/> <source>failed to generate new wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="5205"/> + <location filename="../src/wallet/wallet2.cpp" line="2813"/> + <location filename="../src/wallet/wallet2.cpp" line="2873"/> + <location filename="../src/wallet/wallet2.cpp" line="2952"/> + <location filename="../src/wallet/wallet2.cpp" line="2998"/> + <location filename="../src/wallet/wallet2.cpp" line="3089"/> + <location filename="../src/wallet/wallet2.cpp" line="3189"/> + <location filename="../src/wallet/wallet2.cpp" line="3599"/> + <location filename="../src/wallet/wallet2.cpp" line="3955"/> + <source>Primary account</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="7914"/> + <source>No funds received in this tx.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="8607"/> <source>failed to read file </source> <translation type="unfinished"></translation> </message> @@ -2599,153 +3874,191 @@ Outputs per *: </source> <context> <name>tools::wallet_rpc_server</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="151"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="160"/> <source>Daemon is local, assuming trusted</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="175"/> + <source>Failed to create directory </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="177"/> + <source>Failed to create directory %s: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source>Cannot specify --</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source> and --</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>Failed to create file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>. Check permissions or remove file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="209"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="217"/> <source>Error writing to file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="212"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="220"/> <source>RPC username/password is stored in file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1748"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="443"/> + <source>Tag %s is unregistered.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2435"/> + <source>Transaction not possible. Available only %s, transaction amount %s = %s + %s (fee)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2870"/> + <source>This is the RPC monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2893"/> <source>Can't specify more than one of --wallet-file and --generate-from-json</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2905"/> <source>Must specify --wallet-file or --generate-from-json or --wallet-dir</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1764"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2909"/> <source>Loading wallet...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1789"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1814"/> - <source>Storing wallet...</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2942"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2975"/> + <source>Saving wallet...</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1791"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1816"/> - <source>Stored ok</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2944"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2977"/> + <source>Successfully saved</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1794"/> - <source>Loaded ok</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2947"/> + <source>Successfully loaded</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1798"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2951"/> <source>Wallet initialization failed: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1805"/> - <source>Failed to initialize wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2958"/> + <source>Failed to initialize wallet RPC server</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1809"/> - <source>Starting wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2962"/> + <source>Starting wallet RPC server</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1811"/> - <source>Stopped wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2969"/> + <source>Failed to run wallet: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1820"/> - <source>Failed to store wallet: </source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2972"/> + <source>Stopped wallet RPC server</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2981"/> + <source>Failed to save wallet: </source> <translation type="unfinished"></translation> </message> </context> <context> <name>wallet_args</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1715"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4580"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2856"/> <source>Wallet options</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="59"/> + <location filename="../src/wallet/wallet_args.cpp" line="73"/> <source>Generate wallet from JSON format file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="63"/> + <location filename="../src/wallet/wallet_args.cpp" line="77"/> <source>Use wallet <arg></source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="87"/> + <location filename="../src/wallet/wallet_args.cpp" line="104"/> <source>Max number of threads to use for a parallel job</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="88"/> + <location filename="../src/wallet/wallet_args.cpp" line="105"/> <source>Specify log file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="89"/> + <location filename="../src/wallet/wallet_args.cpp" line="106"/> <source>Config file</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="98"/> + <location filename="../src/wallet/wallet_args.cpp" line="115"/> <source>General options</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="128"/> + <location filename="../src/wallet/wallet_args.cpp" line="138"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_args.cpp" line="161"/> <source>Can't find config file </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="172"/> + <location filename="../src/wallet/wallet_args.cpp" line="195"/> <source>Logging to: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="173"/> + <location filename="../src/wallet/wallet_args.cpp" line="197"/> <source>Logging to %s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="153"/> + <location filename="../src/wallet/wallet_args.cpp" line="140"/> <source>Usage:</source> <translation type="unfinished"></translation> </message> diff --git a/translations/monero_fr.ts b/translations/monero_fr.ts index 5cef15a92..37d7d5928 100644 --- a/translations/monero_fr.ts +++ b/translations/monero_fr.ts @@ -4,24 +4,24 @@ <context> <name>Monero::AddressBookImpl</name> <message> - <location filename="../src/wallet/api/address_book.cpp" line="55"/> + <location filename="../src/wallet/api/address_book.cpp" line="53"/> <source>Invalid destination address</source> <translation>Adresse de destination invalide</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="65"/> + <location filename="../src/wallet/api/address_book.cpp" line="63"/> <source>Invalid payment ID. Short payment ID should only be used in an integrated address</source> <translation>ID de paiement invalide. L'identifiant de paiement court devrait seulement être utilisé dans une adresse intégrée</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="72"/> + <location filename="../src/wallet/api/address_book.cpp" line="70"/> <source>Invalid payment ID</source> <translation>ID de paiement invalide</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="79"/> - <source>Integrated address and long payment id can't be used at the same time</source> - <translation>Une adresse intégrée et un identifiant de paiement long ne peuvent pas être utilisés en même temps</translation> + <location filename="../src/wallet/api/address_book.cpp" line="77"/> + <source>Integrated address and long payment ID can't be used at the same time</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -37,32 +37,32 @@ <translation>Échec de l'écriture de(s) transaction(s) dans le fichier</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="114"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="115"/> <source>daemon is busy. Please try again later.</source> <translation>le démon est occupé. Veuillez réessayer plus tard.</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="117"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="118"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>pas de connexion au démon. Veuillez vous assurer que le démon fonctionne.</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="121"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="122"/> <source>transaction %s was rejected by daemon with status: </source> <translation>la transaction %s a été rejetée par le démon avec le statut : </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="126"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="127"/> <source>. Reason: </source> <translation>. Raison : </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="128"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="129"/> <source>Unknown exception: </source> <translation>Exception inconnue : </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="131"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="132"/> <source>Unhandled exception</source> <translation>Exception non gérée</translation> </message> @@ -81,323 +81,324 @@ <translation>Échec de signature de transaction</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="135"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="168"/> <source>Claimed change does not go to a paid address</source> <translation>La monnaie réclamée ne va pas à une adresse payée</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="141"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="174"/> <source>Claimed change is larger than payment to the change address</source> <translation>La monnaie réclamée est supérieure au paiement à l'adresse de monnaie</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="151"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="184"/> <source>Change goes to more than one address</source> <translation>La monnaie rendue va à plus d'une adresse</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="164"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="197"/> <source>sending %s to %s</source> <translation>envoi de %s à %s</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="170"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="203"/> <source>with no destinations</source> <translation>sans destination</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="176"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="209"/> <source>%s change to %s</source> <translation>%s de monnaie rendue à %s</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="179"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="212"/> <source>no change</source> <translation>sans monnaie rendue</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="181"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %s</source> - <translation>%lu transactions chargées, pour %s, %s de frais, %s, %s, avec mixin minimum de %lu, %s</translation> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="214"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu. %s</source> + <translation type="unfinished"></translation> </message> </context> <context> <name>Monero::WalletImpl</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="942"/> + <location filename="../src/wallet/api/wallet.cpp" line="1111"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation>format d'identifiant de paiement invalide, 16 ou 64 caractères hexadécimaux attendus : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="952"/> + <location filename="../src/wallet/api/wallet.cpp" line="1121"/> <source>Failed to add short payment id: </source> <translation>Échec de l'ajout de l'ID de paiement court : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="978"/> - <location filename="../src/wallet/api/wallet.cpp" line="1072"/> + <location filename="../src/wallet/api/wallet.cpp" line="1154"/> + <location filename="../src/wallet/api/wallet.cpp" line="1258"/> <source>daemon is busy. Please try again later.</source> <translation>le démon est occupé. Veuillez réessayer plus tard.</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="981"/> - <location filename="../src/wallet/api/wallet.cpp" line="1075"/> + <location filename="../src/wallet/api/wallet.cpp" line="1157"/> + <location filename="../src/wallet/api/wallet.cpp" line="1261"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>pas de connexion au démon. Veuillez vous assurer que le démon fonctionne.</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="984"/> - <location filename="../src/wallet/api/wallet.cpp" line="1078"/> + <location filename="../src/wallet/api/wallet.cpp" line="1160"/> + <location filename="../src/wallet/api/wallet.cpp" line="1264"/> <source>RPC error: </source> <translation>Erreur RPC : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1081"/> + <location filename="../src/wallet/api/wallet.cpp" line="1197"/> + <location filename="../src/wallet/api/wallet.cpp" line="1301"/> + <source>not enough outputs for specified ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> + <source>found outputs to use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1201"/> + <source>Please sweep unmixable outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1267"/> <source>failed to get random outputs to mix</source> <translation>échec de la récupération de sorties aléatoires à mélanger</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="994"/> - <location filename="../src/wallet/api/wallet.cpp" line="1088"/> + <location filename="../src/wallet/api/wallet.cpp" line="1170"/> + <location filename="../src/wallet/api/wallet.cpp" line="1274"/> <source>not enough money to transfer, available only %s, sent amount %s</source> <translation>pas assez de fonds pour le transfert, montant disponible %s, montant envoyé %s</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="403"/> + <location filename="../src/wallet/api/wallet.cpp" line="474"/> <source>failed to parse address</source> <translation>échec de l'analyse de l'adresse</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="415"/> + <location filename="../src/wallet/api/wallet.cpp" line="486"/> <source>failed to parse secret spend key</source> <translation>échec de l'analyse de la clé secrète de dépense</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="425"/> + <location filename="../src/wallet/api/wallet.cpp" line="496"/> <source>No view key supplied, cancelled</source> <translation>Pas de clé d'audit fournie, annulation</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="432"/> + <location filename="../src/wallet/api/wallet.cpp" line="503"/> <source>failed to parse secret view key</source> <translation>échec de l'analyse de la clé secrète d'audit</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="442"/> + <location filename="../src/wallet/api/wallet.cpp" line="513"/> <source>failed to verify secret spend key</source> <translation>échec de la vérification de la clé secrète de dépense</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="447"/> + <location filename="../src/wallet/api/wallet.cpp" line="518"/> <source>spend key does not match address</source> <translation>la clé de dépense ne correspond pas à l'adresse</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="453"/> + <location filename="../src/wallet/api/wallet.cpp" line="524"/> <source>failed to verify secret view key</source> <translation>échec de la vérification de la clé secrète d'audit</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="458"/> + <location filename="../src/wallet/api/wallet.cpp" line="529"/> <source>view key does not match address</source> <translation>la clé d'audit ne correspond pas à l'adresse</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="477"/> + <location filename="../src/wallet/api/wallet.cpp" line="548"/> <source>failed to generate new wallet: </source> <translation>échec de la génération du nouveau portefeuille : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="799"/> + <location filename="../src/wallet/api/wallet.cpp" line="773"/> + <source>Failed to send import wallet request</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="919"/> <source>Failed to load unsigned transactions</source> <translation>Échec du chargement des transaction non signées</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="820"/> + <location filename="../src/wallet/api/wallet.cpp" line="940"/> <source>Failed to load transaction from file</source> <translation>Échec du chargement de la transaction du fichier</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="838"/> + <location filename="../src/wallet/api/wallet.cpp" line="958"/> <source>Wallet is view only</source> <translation>Portefeuille d'audit uniquement</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="847"/> + <location filename="../src/wallet/api/wallet.cpp" line="967"/> <source>failed to save file </source> <translation>échec de l'enregistrement du fichier </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="874"/> + <location filename="../src/wallet/api/wallet.cpp" line="986"/> + <source>Key images can only be imported with a trusted daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="999"/> <source>Failed to import key images: </source> <translation>Échec de l'importation des images de clé : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="987"/> + <location filename="../src/wallet/api/wallet.cpp" line="1032"/> + <source>Failed to get subaddress label: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1046"/> + <source>Failed to set subaddress label: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1163"/> <source>failed to get random outputs to mix: %s</source> <translation>échec de la récupération de sorties aléatoires à mélanger : %s</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1003"/> - <location filename="../src/wallet/api/wallet.cpp" line="1097"/> - <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> - <translation>pas assez de fonds pour le transfert, montant disponible %s, montant envoyé %s = %s + %s (frais)</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1179"/> + <location filename="../src/wallet/api/wallet.cpp" line="1283"/> + <source>not enough money to transfer, overall balance only %s, sent amount %s</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1012"/> - <location filename="../src/wallet/api/wallet.cpp" line="1106"/> - <source>not enough outputs for specified mixin_count</source> - <translation>pas assez de sorties pour le mixin spécifié</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1188"/> + <location filename="../src/wallet/api/wallet.cpp" line="1292"/> + <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> + <translation>pas assez de fonds pour le transfert, montant disponible %s, montant envoyé %s = %s + %s (frais)</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> <source>output amount</source> <translation>montant de la sortie</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> - <source>found outputs to mix</source> - <translation>sorties à mélanger trouvées</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet.cpp" line="1019"/> - <location filename="../src/wallet/api/wallet.cpp" line="1113"/> + <location filename="../src/wallet/api/wallet.cpp" line="1205"/> + <location filename="../src/wallet/api/wallet.cpp" line="1308"/> <source>transaction was not constructed</source> <translation>la transaction n'a pas été construite</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1023"/> - <location filename="../src/wallet/api/wallet.cpp" line="1117"/> + <location filename="../src/wallet/api/wallet.cpp" line="1209"/> + <location filename="../src/wallet/api/wallet.cpp" line="1312"/> <source>transaction %s was rejected by daemon with status: </source> <translation>la transaction %s a été rejetée par le démon avec le statut : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1030"/> - <location filename="../src/wallet/api/wallet.cpp" line="1124"/> + <location filename="../src/wallet/api/wallet.cpp" line="1216"/> + <location filename="../src/wallet/api/wallet.cpp" line="1319"/> <source>one of destinations is zero</source> <translation>une des destinations est zéro</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1033"/> - <location filename="../src/wallet/api/wallet.cpp" line="1127"/> + <location filename="../src/wallet/api/wallet.cpp" line="1219"/> + <location filename="../src/wallet/api/wallet.cpp" line="1322"/> <source>failed to find a suitable way to split transactions</source> <translation>échec de la recherche d'une façon adéquate de scinder les transactions</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1036"/> - <location filename="../src/wallet/api/wallet.cpp" line="1130"/> + <location filename="../src/wallet/api/wallet.cpp" line="1222"/> + <location filename="../src/wallet/api/wallet.cpp" line="1325"/> <source>unknown transfer error: </source> <translation>erreur de transfert inconnue : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1039"/> - <location filename="../src/wallet/api/wallet.cpp" line="1133"/> + <location filename="../src/wallet/api/wallet.cpp" line="1225"/> + <location filename="../src/wallet/api/wallet.cpp" line="1328"/> <source>internal error: </source> <translation>erreur interne : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1042"/> - <location filename="../src/wallet/api/wallet.cpp" line="1136"/> + <location filename="../src/wallet/api/wallet.cpp" line="1228"/> + <location filename="../src/wallet/api/wallet.cpp" line="1331"/> <source>unexpected error: </source> <translation>erreur inattendue : </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1045"/> - <location filename="../src/wallet/api/wallet.cpp" line="1139"/> + <location filename="../src/wallet/api/wallet.cpp" line="1231"/> + <location filename="../src/wallet/api/wallet.cpp" line="1334"/> <source>unknown error</source> <translation>erreur inconnue</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1419"/> - <source>Rescan spent can only be used with a trusted daemon</source> - <translation>Réexaminer les dépenses ne peut se faire qu'avec un démon de confiance</translation> - </message> -</context> -<context> - <name>Monero::WalletManagerImpl</name> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="192"/> - <source>failed to parse txid</source> - <translation>échec de l'analyse de l'ID de transaction</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="199"/> - <location filename="../src/wallet/api/wallet_manager.cpp" line="206"/> - <source>failed to parse tx key</source> - <translation>échec de l'analyse de la clé de transaction</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="217"/> - <source>failed to parse address</source> - <translation>échec de l'analyse de l'adresse</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="227"/> - <source>failed to get transaction from daemon</source> - <translation>échec de la récupération de la transaction du démon</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="238"/> - <source>failed to parse transaction from daemon</source> - <translation>échec de l'analyse de la transaction du démon</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="245"/> - <source>failed to validate transaction from daemon</source> - <translation>échec de la validation de la transaction du démon</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="250"/> - <source>failed to get the right transaction from daemon</source> - <translation>échec de la récupération de la bonne transaction du démon</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1412"/> + <location filename="../src/wallet/api/wallet.cpp" line="1441"/> + <location filename="../src/wallet/api/wallet.cpp" line="1494"/> + <location filename="../src/wallet/api/wallet.cpp" line="1525"/> + <location filename="../src/wallet/api/wallet.cpp" line="1556"/> + <location filename="../src/wallet/api/wallet.cpp" line="1579"/> + <source>Failed to parse txid</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="257"/> - <source>failed to generate key derivation from supplied parameters</source> - <translation>échec de la génération de la dérivation de clé à partir des paramètres fournis</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1430"/> + <source>no tx keys found for this txid</source> + <translation type="unfinished">aucune clé de transaction trouvée pour cet ID de transaction</translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="313"/> - <source>error: </source> - <translation>erreur : </translation> + <location filename="../src/wallet/api/wallet.cpp" line="1450"/> + <location filename="../src/wallet/api/wallet.cpp" line="1460"/> + <source>Failed to parse tx key</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>received</source> - <translation>a reçu</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1470"/> + <location filename="../src/wallet/api/wallet.cpp" line="1502"/> + <location filename="../src/wallet/api/wallet.cpp" line="1533"/> + <location filename="../src/wallet/api/wallet.cpp" line="1621"/> + <source>Failed to parse address</source> + <translation type="unfinished">Échec de l'analyse de l'adresse</translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>in txid</source> - <translation>dans la transaction</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1627"/> + <source>Address must not be a subaddress</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="323"/> - <source>received nothing in txid</source> - <translation>n'a rien reçu dans la transaction</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1849"/> + <source>Rescan spent can only be used with a trusted daemon</source> + <translation>Réexaminer les dépenses ne peut se faire qu'avec un démon de confiance</translation> </message> </context> <context> <name>Wallet</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="212"/> + <location filename="../src/wallet/api/wallet.cpp" line="246"/> <source>Failed to parse address</source> <translation>Échec de l'analyse de l'adresse</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="219"/> + <location filename="../src/wallet/api/wallet.cpp" line="253"/> <source>Failed to parse key</source> <translation>Échec de l'analyse de la clé</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="227"/> + <location filename="../src/wallet/api/wallet.cpp" line="261"/> <source>failed to verify key</source> <translation>Échec de la vérification de la clé</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="237"/> + <location filename="../src/wallet/api/wallet.cpp" line="271"/> <source>key does not match address</source> <translation>la clé ne correspond pas à l'adresse</translation> </message> @@ -405,1931 +406,3081 @@ <context> <name>command_line</name> <message> - <location filename="../src/common/command_line.cpp" line="76"/> + <location filename="../src/common/command_line.cpp" line="57"/> <source>yes</source> <translation>oui</translation> </message> + <message> + <location filename="../src/common/command_line.cpp" line="71"/> + <source>no</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::rpc_args</name> <message> - <location filename="../src/rpc/rpc_args.cpp" line="38"/> - <source>Specify ip to bind rpc server</source> + <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <source>Specify IP to bind RPC server</source> <translation>Spécifier l'IP à laquelle lier le serveur RPC</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="39"/> + <location filename="../src/rpc/rpc_args.cpp" line="41"/> <source>Specify username[:password] required for RPC server</source> <translation>Spécifier le nom_utilisateur[:mot_de_passe] requis pour le serveur RPC</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <location filename="../src/rpc/rpc_args.cpp" line="42"/> <source>Confirm rpc-bind-ip value is NOT a loopback (local) IP</source> <translation>Confirmer que la valeur de rpc-bind-ip n'est PAS une IP de bouclage (locale)</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="66"/> + <location filename="../src/rpc/rpc_args.cpp" line="43"/> + <source>Specify a comma separated list of origins to allow cross origin resource sharing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="70"/> <source>Invalid IP address given for --</source> <translation>Adresse IP invalide fournie pour --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="74"/> + <location filename="../src/rpc/rpc_args.cpp" line="78"/> <source> permits inbound unencrypted external connections. Consider SSH tunnel or SSL proxy instead. Override with --</source> <translation> autorise les connexions entrantes non cryptées venant de l'extérieur. Considérez plutôt un tunnel SSH ou un proxy SSL. Outrepasser avec --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> <source>Username specified with --</source> <translation>Le nom d'utilisateur spécifié avec --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> <source> cannot be empty</source> <translation> ne peut pas être vide</translation> </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> + <source> requires RFC server password --</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::simple_wallet</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="290"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="479"/> <source>Commands: </source> <translation>Commandes : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> <source>failed to read wallet password</source> <translation>échec de la lecture du mot de passe du portefeuille</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1325"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2699"/> <source>invalid password</source> <translation>mot de passe invalide</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="697"/> - <source>start_mining [<number_of_threads>] - Start mining in daemon</source> - <translation>start_mining [<nombre_de_threads>] - Démarrer l'extraction minière dans le démon</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="698"/> - <source>Stop mining in daemon</source> - <translation>Stopper l'extraction minière dans le démon</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="699"/> - <source>Save current blockchain data</source> - <translation>Sauvegarder les données actuelles de la chaîne de blocs</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="701"/> - <source>Show current wallet balance</source> - <translation>Afficher le solde actuel du portefeuille</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="704"/> - <source>Show blockchain height</source> - <translation>Afficher la hauteur de la chaîne de blocs</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> - <source>Show current wallet public address</source> - <translation>Afficher l'adresse publique du portefeuille actuel</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="744"/> - <source>Show this help</source> - <translation>Afficher cette aide</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="788"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1905"/> <source>set seed: needs an argument. available options: language</source> <translation>set seed : requiert un argument. options disponibles : language</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="811"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1933"/> <source>set: unrecognized argument(s)</source> <translation>set : argument(s) non reconnu(s)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1442"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2869"/> <source>wallet file path not valid: </source> <translation>chemin du fichier portefeuille non valide : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="863"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1987"/> <source>Attempting to generate or restore wallet, but specified file(s) exist. Exiting to not risk overwriting.</source> <translation>Tentative de génération ou de restauration d'un portefeuille, mais le fichier spécifié existe déjà. Sortie pour ne pas risquer de l'écraser.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="416"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="662"/> <source>usage: payment_id</source> <translation>usage : payment_id</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="710"/> - <source>sweep_below <amount_threshold> [mixin] address [payment_id] - Send all unlocked outputs below the threshold to an address</source> - <translation>sweep_below <montant_seuil> [mixin] adresse [ID_paiement] - Envoyer toutes les sorties débloquées sous le seuil vers une adresse</translation> - </message> - <message> - <source>Available options: seed language - set wallet seed language; always-confirm-transfers <1|0> - whether to confirm unsplit txes; print-ring-members <1|0> - whether to print detailed information about ring members during confirmation; store-tx-info <1|0> - whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference; default-mixin <n> - set default mixin (default is 4); auto-refresh <1|0> - whether to automatically sync new blocks from the daemon; refresh-type <full|optimize-coinbase|no-coinbase|default> - set wallet refresh behaviour; priority [0|1|2|3|4] - default/unimportant/normal/elevated/priority fee; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - set default monero (sub-)unit; min-outputs-count [n] - try to keep at least that many outputs of value at least min-outputs-value; min-outputs-value [n] - try to keep at least min-outputs-count outputs of at least that value - merge-destinations <1|0> - whether to merge multiple payments to the same destination address</source> - <translation type="obsolete">Options disponibles : seed language - définir la langue de la graine du portefeuille; always-confirm-transfers <1|0> - confirmer ou non les transactions non scindées; print-ring-members <1|0> - afficher ou non des informations détaillées sur les membres du cercle pendant la confirmation; store-tx-info <1|0> - sauvegarder ou non les informations des transactions sortantes (adresse de destination, ID de paiement, clé secrète de transaction) pour référence future; default-mixin <n> - définir le mixin par défaut (4 par défaut); auto-refresh <1|0> - synchroniser automatiquement ou non les nouveau blocs du démon; refresh-type <full|optimize-coinbase|no-coinbase|default> - définir le comportement du rafraîchissement du portefeuille; priority [0|1|2|3|4] - frais de transaction par défault/peu important/normal/élevé/prioritaire; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - définir la (sous-)unité monero par défaut; min-outputs-count [n] - essayer de garder au moins ce nombre de sortie d'une valeur d'au moins min-outputs-value; min-outputs-value [n] - essayer de garder au moins min-outputs-count sorties d'une valeur d'au moins ce montant; merge-destinations <1|0> - fusionner ou non de multiples paiements à une même adresse de destination</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="743"/> - <source>Generate a new random full size payment id - these will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids</source> - <translation>Générer un nouvel ID de paiement long aléatoire - ceux-ci seront non cryptés dans la chaîne de blocs, voir integrated_address pour les IDs de paiement courts cryptés</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="774"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1891"/> <source>needs an argument</source> <translation>requiert un argument</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="797"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="798"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="799"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="801"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="804"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="805"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1914"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1921"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1922"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1927"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1931"/> <source>0 or 1</source> <translation>0 ou 1</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="800"/> - <source>integer >= 2</source> - <translation>entier >= 2</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="803"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1920"/> <source>0, 1, 2, 3, or 4</source> <translation>0, 1, 2, 3 ou 4</translation> </message> <message> - <source>monero, millinero, micronero, nanop, piconero</source> - <translation type="obsolete">monero, millinero, micronero, nanonero, piconero</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1924"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1928"/> <source>unsigned integer</source> <translation>entier non signé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="912"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2041"/> <source>NOTE: the following 25 words can be used to recover access to your wallet. Write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control. </source> <translation>VEUILLEZ NOTER : les 25 mots suivants peuvent être utilisés pour restaurer votre portefeuille. Veuillez les écrire sur papier et les garder dans un endroit sûr. Ne les gardez pas dans un courriel ou dans un service de stockage de fichiers hors de votre contrôle. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="958"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2092"/> <source>--restore-deterministic-wallet uses --generate-new-wallet, not --wallet-file</source> <translation>--restore-deterministic-wallet utilise --generate-new-wallet, pas --wallet-file</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="973"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2121"/> <source>specify a recovery parameter with the --electrum-seed="words list here"</source> <translation>spécifiez un paramètre de récupération avec --electrum-seed="liste de mots ici"</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2471"/> <source>specify a wallet path with --generate-new-wallet (not --wallet-file)</source> <translation>spécifiez un chemin de portefeuille avec --generate-new-wallet (pas --wallet-file)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1261"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2635"/> <source>wallet failed to connect to daemon: </source> <translation>échec de la connexion du portefeuille au démon : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1269"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2643"/> <source>Daemon uses a different RPC major version (%u) than the wallet (%u): %s. Either update one of them, or use --allow-mismatched-daemon-version.</source> <translation>Le démon utilise une version majeure de RPC (%u) différente de celle du portefeuille (%u) : %s. Mettez l'un des deux à jour, ou utilisez --allow-mismatched-daemon-version.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1288"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2662"/> <source>List of available languages for your wallet's seed:</source> <translation>Liste des langues disponibles pour la graine de votre portefeuille :</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1297"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2671"/> <source>Enter the number corresponding to the language of your choice: </source> <translation>Entrez le nombre correspondant à la langue de votre choix : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1354"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2737"/> <source>You had been using a deprecated version of the wallet. Please use the new seed that we provide. </source> <translation>Vous avez utilisé une version obsolète du portefeuille. Veuillez dorénavant utiliser la nouvelle graine que nous fournissons. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1368"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1425"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2751"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> <source>Generated new wallet: </source> <translation>Nouveau portefeuille généré : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1374"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2757"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> <source>failed to generate new wallet: </source> <translation>échec de la génération du nouveau portefeuille : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2887"/> <source>Opened watch-only wallet</source> <translation>Ouverture du portefeuille d'audit</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2891"/> <source>Opened wallet</source> <translation>Ouverture du portefeuille</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1466"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2901"/> <source>You had been using a deprecated version of the wallet. Please proceed to upgrade your wallet. </source> <translation>Vous avez utilisé une version obsolète du portefeuille. Veuillez procéder à la mise à jour de votre portefeuille. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2916"/> <source>You had been using a deprecated version of the wallet. Your wallet file format is being upgraded now. </source> <translation>Vous avez utilisé une version obsolète du portefeuille. Le format de votre fichier portefeuille est en cours de mise à jour. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1489"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2924"/> <source>failed to load wallet: </source> <translation>échec du chargement du portefeuille : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1497"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2941"/> <source>Use the "help" command to see the list of available commands. </source> <translation>Utilisez la commande "help" pour voir la liste des commandes disponibles. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2986"/> <source>Wallet data saved</source> <translation>Données du portefeuille sauvegardées</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3072"/> <source>Mining started in daemon</source> <translation>L'extraction minière dans le démon a démarré</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1615"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3074"/> <source>mining has NOT been started: </source> <translation>l'extraction minière n'a PAS démarré : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1634"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3093"/> <source>Mining stopped in daemon</source> <translation>L'extraction minière dans le démon a été stoppée</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3095"/> <source>mining has NOT been stopped: </source> <translation>l'extraction minière n'a PAS été stoppée : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1655"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> <source>Blockchain saved</source> <translation>Chaîne de blocs sauvegardée</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1687"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1699"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3165"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3196"/> <source>Height </source> <translation>Hauteur </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1671"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1688"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3197"/> <source>transaction </source> <translation>transaction </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1672"/> - <source>received </source> - <translation>reçu </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1689"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3185"/> <source>spent </source> <translation>dépensé </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3198"/> <source>unsupported transaction format</source> <translation>format de transaction non supporté</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1718"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3219"/> <source>Starting refresh...</source> <translation>Démarrage du rafraîchissement...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3232"/> <source>Refresh done, blocks received: </source> <translation>Rafraîchissement effectué, blocs reçus : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2186"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3758"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation>format d'identifiant de paiement invalide, 16 ou 64 caractères hexadécimaux attendus : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2201"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3773"/> <source>bad locked_blocks parameter:</source> <translation>mauvais paramètre locked_blocks :</translation> </message> <message> - <source>Locked blocks too high, max 1000000 (Ë4 yrs)</source> - <translation type="vanished" variants="yes"> - <lengthvariant>Blocs vérrouillés trop élevé, 1000000 maximum (Ë</lengthvariant> - <lengthvariant>4 ans)</lengthvariant> - </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2228"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2726"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3801"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4462"/> <source>a single transaction cannot use more than one payment id: </source> <translation>une unique transaction ne peut pas utiliser plus d'un ID de paiement : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2237"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2735"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3810"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4257"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4470"/> <source>failed to set up payment id, though it was decoded correctly</source> <translation>échec de la définition de l'ID de paiement, bien qu'il ait été décodé correctement</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2262"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2355"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2533"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2749"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3835"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3987"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4271"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4329"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4484"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4527"/> <source>transaction cancelled.</source> <translation>transaction annulée.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3895"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Is this okay anyway? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3900"/> + <source>There is currently a %u block backlog at that fee level. Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Failed to check for backlog: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3946"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4302"/> + <source> +Transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4307"/> + <source>Spending from address index %d +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3953"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4309"/> + <source>WARNING: Outputs of multiple addresses are being used together, which might potentially compromise your privacy. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3955"/> <source>Sending %s. </source> <translation>Envoi de %s. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2326"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3958"/> <source>Your transaction needs to be split into %llu transactions. This will result in a transaction fee being applied to each transaction, for a total fee of %s</source> <translation>Votre transaction doit être scindée en %llu transactions. Il en résulte que des frais de transaction doivent être appliqués à chaque transaction, pour un total de %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3964"/> <source>The transaction fee is %s</source> <translation>Les frais de transaction sont de %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2335"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3967"/> <source>, of which %s is dust from change</source> <translation>, dont %s est de la poussière de monnaie rendue</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>.</source> <translation>.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>A total of %s from dust change will be sent to dust address</source> <translation>Un total de %s de poussière de monnaie rendue sera envoyé à une adresse de poussière</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2341"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3973"/> <source>. This transaction will unlock on block %llu, in approximately %s days (assuming 2 minutes per block)</source> <translation>. Cette transaction sera déverrouillée au bloc %llu, dans approximativement %s jours (en supposant 2 minutes par bloc)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2367"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2544"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2805"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3999"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4011"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4340"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4352"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4537"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4549"/> <source>Failed to write transaction(s) to file</source> <translation>Échec de l'écriture de(s) transaction(s) dans le fichier</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2371"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2548"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4003"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4015"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4111"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4344"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4356"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4553"/> <source>Unsigned transaction(s) successfully written to file: </source> <translation>Transaction(s) non signée(s) écrite(s) dans le fichier avec succès : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2406"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2583"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2844"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3157"/> - <source>Not enough money in unlocked balance</source> - <translation>Pas assez de fonds dans le solde débloqué</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4066"/> + <source>No unmixable outputs found</source> + <translation>Aucune sortie non mélangeable trouvée</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2415"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2592"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> - <source>Failed to find a way to create transactions. This is usually due to dust which is so small it cannot pay for itself in fees, or trying to send more money than the unlocked balance, or not leaving enough for fees</source> - <translation>Échec de la recherche d'une façon de créer les transactions. Ceci est généralement dû à de la poussière si petite qu'elle de peut pas payer ses propre frais, à une tentative d'envoi d'un montant supérieur au solde débloqué, ou parce qu'il n'en reste pas assez pour les frais de transaction</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4149"/> + <source>No address given</source> + <translation>Aucune adresse fournie</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2435"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2612"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2873"/> - <source>Reason: </source> - <translation>Raison : </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4424"/> + <source>failed to parse Payment ID</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2447"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2624"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2885"/> - <source>failed to find a suitable way to split transactions</source> - <translation>échec de la recherche d'une façon adéquate de scinder les transactions</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4440"/> + <source>usage: sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2503"/> - <source>No unmixable outputs found</source> - <translation>Aucune sortie non mélangeable trouvée</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4447"/> + <source>failed to parse key image</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2709"/> - <source>No address given</source> - <translation>Aucune adresse fournie</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4499"/> + <source>No outputs found</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2921"/> - <source>missing amount threshold</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="4504"/> + <source>Multiple transactions are created, which is not supposed to happen</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4509"/> + <source>The transaction uses multiple or no inputs, which is not supposed to happen</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4586"/> + <source>missing threshold amount</source> <translation>montant seuil manquant</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4591"/> <source>invalid amount threshold</source> <translation>montant seuil invalide</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4601"/> + <source>donations are not enabled on the testnet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4608"/> + <source>usage: donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4702"/> <source>Claimed change does not go to a paid address</source> <translation>La monnaie réclamée ne va pas à une adresse payée</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3013"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4707"/> <source>Claimed change is larger than payment to the change address</source> <translation>La monnaie réclamée est supérieure au paiement à l'adresse de monnaie</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3035"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4738"/> <source>sending %s to %s</source> <translation>envoi de %s à %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3041"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4748"/> + <source> dummy output(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4751"/> <source>with no destinations</source> <translation>sans destination</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3088"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4763"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu, %s. %sIs this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4787"/> + <source>This is a multisig wallet, it can only sign with sign_multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4797"/> + <source>usage: sign_transfer [export]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4809"/> <source>Failed to sign transaction</source> <translation>Échec de signature de transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4815"/> <source>Failed to sign transaction: </source> <translation>Échec de signature de transaction : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3120"/> - <source>Failed to load transaction from file</source> - <translation>Échec du chargement de la transaction du fichier</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4836"/> + <source>Transaction raw hex data exported to </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3137"/> - <source>daemon is busy. Please try later</source> - <translation>le démon est occupé. Veuillez réessayer plus tard</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4852"/> + <source>Failed to load transaction from file</source> + <translation>Échec du chargement de la transaction du fichier</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1745"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1995"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2395"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2572"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2833"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3146"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3551"/> <source>RPC error: </source> <translation>Erreur RPC : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="522"/> <source>wallet is watch-only and has no spend key</source> <translation>c'est un portefeuille d'audit et il n'a pas de clé de dépense</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="390"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="780"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="848"/> <source>Your original password was incorrect.</source> <translation>Votre mot de passe original est incorrect.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="404"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="650"/> <source>Error with wallet rewrite: </source> <translation>Erreur avec la réécriture du portefeuille : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="513"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1289"/> <source>priority must be 0, 1, 2, 3, or 4 </source> <translation>la priorité doit être 0, 1, 2, 3 ou 4 </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="525"/> - <source>priority must be 0, 1, 2, 3,or 4</source> - <translation>la priorité doit être 0, 1, 2, 3 ou 4</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="540"/> - <source>priority must be 0, 1, 2 3,or 4</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="1301"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1316"/> + <source>priority must be 0, 1, 2, 3, or 4</source> <translation>la priorité doit être 0, 1, 2, 3 ou 4</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="623"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1404"/> <source>invalid unit</source> <translation>unité invalide</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="641"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1422"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1484"/> <source>invalid count: must be an unsigned integer</source> <translation>nombre invalide : un entier non signé est attendu</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="659"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1440"/> <source>invalid value</source> <translation>valeur invalide</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="705"/> - <source>Same as transfer, but using an older transaction building algorithm</source> - <translation>Comme transfer, mais utilise an algorithme de construction de transaction plus ancien</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="709"/> - <source>sweep_all [mixin] address [payment_id] - Send all unlocked balance to an address</source> - <translation>sweep_all [mixin] adresse [ID_paiement] - Envoyer tout le solde débloqué à une adresse</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="711"/> - <source>donate [<mixin_count>] <amount> [payment_id] - Donate <amount> to the development team (donate.getmonero.org)</source> - <translation>donate [<mixin>] <montant> [ID_paiement] - Donner <montant> à l'équipe de développement (donate.getmonero.org)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="714"/> - <source>set_log <level>|<categories> - Change current log detail (level must be <0-4>)</source> - <translation>set_log <niveau>|<catégories> - Changer les détails du journal (niveau entre <0-4>)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="717"/> - <source>address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)] - Print all entries in the address book, optionally adding/deleting an entry to/from it</source> - <translation>address_book [(add (<adresse> [pid <ID de paiement long ou court>])|<adresse integrée> [<description avec des espaces possible>])|(delete <index>)] - Afficher toutes les entrées du carnet d'adresses, éventuellement en y ajoutant/supprimant une entrée</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="729"/> - <source>show_transfers [in|out|pending|failed|pool] [<min_height> [<max_height>]] - Show incoming/outgoing transfers within an optional height range</source> - <translation>show_transfers [in|out|pending|failed|pool] [<hauteur_minimum> [<hauteur_maximum>]] - Afficher les transferts entrants/sortants en précisant éventuellement un intervalle de hauteurs</translation> - </message> - <message> - <source>unspent_outputs [<min_amount> <max_amount>] - Show unspent outputs within an optional amount range)</source> - <translation type="obsolete">unspent_outputs [<montant_minimum> <montant_maximum>] - Afficher les sorties non dépensées en précisant éventuellement un intervalle de montants</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="741"/> - <source>Show information about a transfer to/from this address</source> - <translation>Afficher les informations à propos d'un transfert vers/de cette adresse</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="742"/> - <source>Change wallet password</source> - <translation>Changer le mot de passe du portefeuille</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="820"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1942"/> <source>usage: set_log <log_level_number_0-4> | <categories></source> <translation>usage : set_log <niveau_de_journalisation_0-4> | <catégories></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="886"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2013"/> <source>(Y/Yes/N/No): </source> <translation>(Y/Yes/Oui/N/No/Non) : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1157"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1184"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2509"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2536"/> <source>bad m_restore_height parameter: </source> <translation>mauvais paramètre m_restore_height : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1162"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2514"/> <source>date format must be YYYY-MM-DD</source> <translation>le format de date doit être AAAA-MM-JJ</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1175"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2527"/> <source>Restore height is: </source> <translation>La hauteur de restauration est : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1176"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2348"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2528"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3980"/> <source>Is this okay? (Y/Yes/N/No): </source> <translation>Est-ce correct ? (Y/Yes/Oui/N/No/Non) : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1212"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2575"/> <source>Daemon is local, assuming trusted</source> <translation>Le démon est local, supposons qu'il est de confiance</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1553"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3004"/> <source>Password for new watch-only wallet</source> <translation>Mot de passe pour le nouveau portefeuille d'audit</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1604"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3063"/> <source>invalid arguments. Please use start_mining [<number_of_threads>] [do_bg_mining] [ignore_battery], <number_of_threads> should be from 1 to </source> <translation>arguments invalides. Veuillez utiliser start_mining [<nombre_de_threads>] [mine_en_arrière_plan] [ignorer_batterie], <nombre_de_threads> devrait être entre 1 et </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1755"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2457"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2634"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2895"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3205"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> <source>internal error: </source> <translation>erreur interne : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2000"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2462"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2639"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2900"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3210"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3263"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3556"/> <source>unexpected error: </source> <translation>erreur inattendue : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1765"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2005"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2467"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2644"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2905"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3215"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3561"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4138"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4371"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4570"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4865"/> <source>unknown error</source> <translation>erreur inconnue</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> <source>refresh failed: </source> <translation>échec du rafraîchissement : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> <source>Blocks received: </source> <translation>Blocs reçus : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1795"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3304"/> <source>unlocked balance: </source> <translation>solde débloqué : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="808"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1925"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>amount</source> <translation>montant</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="219"/> + <source>false</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="493"/> + <source>Unknown command: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="500"/> + <source>Command usage: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="503"/> + <source>Command description: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="551"/> + <source>wallet is multisig but not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="567"/> + <source>Enter optional seed encryption passphrase, empty to see raw seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="584"/> + <source>Failed to retrieve seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="603"/> + <source>wallet is multisig and has no seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="674"/> + <source>Cannot connect to daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="679"/> + <source>Current fee is %s monero per kB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="695"/> + <source>Error: failed to estimate backlog array size: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> + <source>Error: bad estimated backlog array size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> + <source> (current)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> + <source>%u block (%u minutes) backlog at priority %u%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="717"/> + <source>%u to %u block (%u to %u minutes) backlog at priority %u</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> + <source>No backlog at priority </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="729"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="762"/> + <source>This wallet is already multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="767"/> + <source>wallet is watch-only and cannot be made multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="773"/> + <source>This wallet has been used before, please use a new wallet to create a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="747"/> + <source>Your password is incorrect.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="753"/> + <source>Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="754"/> + <source>This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="786"/> + <source>usage: make_multisig <threshold> <multisiginfo1> [<multisiginfo2>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="794"/> + <source>Invalid threshold</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <source>Another step is needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <source>Send this multisig info to all other participants, then use finalize_multisig <info1> [<info2>...] with others' multisig info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="815"/> + <source>Error creating multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="822"/> + <source>Error creating multisig: new wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="825"/> + <source> multisig address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="836"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="927"/> + <source>This wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="841"/> + <source>This wallet is already finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="854"/> + <source>usage: finalize_multisig <multisiginfo1> [<multisiginfo2>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="862"/> + <source>Failed to finalize multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <source>Failed to finalize multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="885"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="932"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1006"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1074"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1136"/> + <source>This multisig wallet is not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="890"/> + <source>usage: export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="913"/> + <source>Error exporting multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="917"/> + <source>Multisig info exported to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> + <source>usage: import_multisig_info <filename1> [<filename2>...] - one for each other participant</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="965"/> + <source>Multisig info imported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="969"/> + <source>Failed to import multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="980"/> + <source>Failed to update spent status after importing multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="985"/> + <source>Untrusted daemon, spent status may be incorrect. Use a trusted daemon and run "rescan_spent"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1131"/> + <source>This is not a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> + <source>usage: sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1024"/> + <source>Failed to sign multisig transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1030"/> + <source>Multisig error: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1035"/> + <source>Failed to sign multisig transaction: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1058"/> + <source>It may be relayed to the network with submit_multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <source>usage: submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1155"/> + <source>Failed to load multisig transaction from file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1160"/> + <source>Multisig transaction signed by only %u signers, needs %u more signatures</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1108"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6750"/> + <source>Transaction successfully submitted, transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1109"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6751"/> + <source>You can check its status by using the `show_transfers` command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1141"/> + <source>usage: export_raw_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1176"/> + <source>Failed to export multisig transaction to file </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1180"/> + <source>Saved exported multisig transaction file(s): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1252"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1258"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1272"/> + <source>ring size must be an integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1277"/> + <source>could not change default ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <source>Invalid height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1564"/> + <source>start_mining [<number_of_threads>] [bg_mining] [ignore_battery]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1565"/> + <source>Start mining in the daemon (bg_mining and ignore_battery are optional booleans).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1568"/> + <source>Stop mining in the daemon.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1571"/> + <source>set_daemon <host>[:<port>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1572"/> + <source>Set another daemon to connect to.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1575"/> + <source>Save the current blockchain data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1578"/> + <source>Synchronize the transactions and balance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1581"/> + <source>balance [detail]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1582"/> + <source>Show the wallet's balance of the currently selected account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1585"/> + <source>incoming_transfers [available|unavailable] [verbose] [index=<N1>[,<N2>[,...]]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1586"/> + <source>Show the incoming transfers, all or filtered by availability and address index.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1589"/> + <source>payments <PID_1> [<PID_2> ... <PID_N>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1590"/> + <source>Show the payments for the given payment IDs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1593"/> + <source>Show the blockchain height.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1596"/> + <source>transfer_original [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1597"/> + <source>Transfer <amount> to <address> using an older transaction building algorithm. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1599"/> + <source>transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1600"/> + <source>Transfer <amount> to <address>. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1603"/> + <source>locked_transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <addr> <amount> <lockblocks> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1604"/> + <source>Transfer <amount> to <address> and lock it for <lockblocks> (max. 1000000). If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1607"/> + <source>Send all unmixable outputs to yourself with ring_size 1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1609"/> + <source>sweep_all [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1610"/> + <source>Send all unlocked balance to an address. If the parameter "index<N1>[,<N2>,...]" is specified, the wallet sweeps outputs received by those address indices. If omitted, the wallet randomly chooses an address index to be used.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <source>sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1614"/> + <source>Send all unlocked outputs below the threshold to an address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1617"/> + <source>sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1618"/> + <source>Send a single output of the given key image to an address without change.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1621"/> + <source>donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1622"/> + <source>Donate <amount> to the development team (donate.getmonero.org).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1625"/> + <source>sign_transfer <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> + <source>Sign a transaction from a <file>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1629"/> + <source>Submit a signed transaction from a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1632"/> + <source>set_log <level>|{+,-,}<categories></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1633"/> + <source>Change the current log detail (level must be <0-4>).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <source>account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1643"/> + <source>If no arguments are specified, the wallet shows all the existing accounts along with their balances. +If the "new" argument is specified, the wallet creates a new account with its label initialized by the provided label text (which can be empty). +If the "switch" argument is specified, the wallet switches to the account specified by <index>. +If the "label" argument is specified, the wallet sets the label of the account specified by <index> to the provided label text. +If the "tag" argument is specified, a tag <tag_name> is assigned to the specified accounts <account_index_1>, <account_index_2>, .... +If the "untag" argument is specified, the tags assigned to the specified accounts <account_index_1>, <account_index_2> ..., are removed. +If the "tag_description" argument is specified, the tag <tag_name> is assigned an arbitrary text <description>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1652"/> + <source>address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1653"/> + <source>If no arguments are specified or <index> is specified, the wallet shows the default or specified address. If "all" is specified, the walllet shows all the existing addresses in the currently selected account. If "new " is specified, the wallet creates a new address with the provided label text (which can be empty). If "label" is specified, the wallet sets the label of the address specified by <index> to the provided label text.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1656"/> + <source>integrated_address [<payment_id> | <address>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <source>Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1660"/> + <source>address_book [(add ((<address> [pid <id>])|<integrated address>) [<description possibly with whitespaces>])|(delete <index>)]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1661"/> + <source>Print all entries in the address book, optionally adding/deleting an entry to/from it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1664"/> + <source>Save the wallet data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1667"/> + <source>Save a watch-only keys file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> + <source>Display the private view key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1673"/> + <source>Display the private spend key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1676"/> + <source>Display the Electrum-style mnemonic seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1679"/> + <source>set <option> [<value>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1680"/> + <source>Available options: + seed language + Set the wallet's seed language. + always-confirm-transfers <1|0> + Whether to confirm unsplit txes. + print-ring-members <1|0> + Whether to print detailed information about ring members during confirmation. + store-tx-info <1|0> + Whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference. + default-ring-size <n> + Set the default ring size (default and minimum is 5). + auto-refresh <1|0> + Whether to automatically synchronize new blocks from the daemon. + refresh-type <full|optimize-coinbase|no-coinbase|default> + Set the wallet's refresh behaviour. + priority [0|1|2|3|4] + Set the fee too default/unimportant/normal/elevated/priority. + confirm-missing-payment-id <1|0> + ask-password <1|0> + unit <monero|millinero|micronero|nanonero|piconero> + Set the default monero (sub-)unit. + min-outputs-count [n] + Try to keep at least that many outputs of value at least min-outputs-value. + min-outputs-value [n] + Try to keep at least min-outputs-count outputs of at least that value. + merge-destinations <1|0> + Whether to merge multiple payments to the same destination address. + confirm-backlog <1|0> + Whether to warn if there is transaction backlog. + confirm-backlog-threshold [n] + Set a threshold for confirm-backlog to only warn if the transaction backlog is greater than n blocks. + refresh-from-block-height [n] + Set the height before which to ignore blocks. + auto-low-priority <1|0> + Whether to automatically use the low priority fee level when it's safe to do so.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1717"/> + <source>Display the encrypted Electrum-style mnemonic seed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1720"/> + <source>Rescan the blockchain for spent outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1723"/> + <source>get_tx_key <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1724"/> + <source>Get the transaction key (r) for a given <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1727"/> + <source>check_tx_key <txid> <txkey> <address></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1728"/> + <source>Check the amount going to <address> in <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <source>get_tx_proof <txid> <address> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1732"/> + <source>Generate a signature proving funds sent to <address> in <txid>, optionally with a challenge string <message>, using either the transaction secret key (when <address> is not your wallet's address) or the view secret key (otherwise), which does not disclose the secret key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1735"/> + <source>check_tx_proof <txid> <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> + <source>Check the proof for funds going to <address> in <txid> with the challenge string <message> if any.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1739"/> + <source>get_spend_proof <txid> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> + <source>Generate a signature proving that you generated <txid> using the spend secret key, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1743"/> + <source>check_spend_proof <txid> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1744"/> + <source>Check a signature proving that the signer generated <txid>, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1747"/> + <source>get_reserve_proof (all|<amount>) [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1748"/> + <source>Generate a signature proving that you own at least this much, optionally with a challenge string <message>. +If 'all' is specified, you prove the entire sum of all of your existing accounts' balances. +Otherwise, you prove the reserve of the smallest possible amount above <amount> available in your current account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1753"/> + <source>check_reserve_proof <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1754"/> + <source>Check a signature proving that the owner of <address> holds at least this much, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1757"/> + <source>show_transfers [in|out|pending|failed|pool] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1758"/> + <source>Show the incoming/outgoing transfers within an optional height range.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1761"/> + <source>unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1762"/> + <source>Show the unspent outputs of a specified address within an optional amount range.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1765"/> + <source>Rescan the blockchain from scratch.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1768"/> + <source>set_tx_note <txid> [free text note]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1769"/> + <source>Set an arbitrary string note for a <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1772"/> + <source>get_tx_note <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1773"/> + <source>Get a string note for a txid.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1776"/> + <source>set_description [free text note]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1777"/> + <source>Set an arbitrary description for the wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1780"/> + <source>Get the description of the wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1783"/> + <source>Show the wallet's status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1786"/> + <source>Show the wallet's information.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1789"/> + <source>sign <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1790"/> + <source>Sign the contents of a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1793"/> + <source>verify <filename> <address> <signature></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <source>Verify a signature on the contents of a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1797"/> + <source>export_key_images <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1798"/> + <source>Export a signed set of key images to a <file>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1801"/> + <source>import_key_images <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1802"/> + <source>Import a signed key images list and verify their spent status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1805"/> + <source>export_outputs <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1806"/> + <source>Export a set of outputs owned by this wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1809"/> + <source>import_outputs <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1810"/> + <source>Import a set of outputs owned by this wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1813"/> + <source>show_transfer <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1814"/> + <source>Show information about a transfer to/from this address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1817"/> + <source>Change the wallet's password.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1820"/> + <source>Generate a new random full size payment id. These will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1823"/> + <source>Print the information about the current fee and transaction backlog.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1825"/> + <source>Export data needed to create a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1827"/> + <source>make_multisig <threshold> <string1> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1828"/> + <source>Turn this wallet into a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1831"/> + <source>finalize_multisig <string> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1832"/> + <source>Turn this wallet into a multisig wallet, extra step for N-1/N wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1835"/> + <source>export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1836"/> + <source>Export multisig info for other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1839"/> + <source>import_multisig_info <filename> [<filename>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1840"/> + <source>Import multisig info from other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1843"/> + <source>sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1844"/> + <source>Sign a multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1847"/> + <source>submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1848"/> + <source>Submit a signed multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1851"/> + <source>export_raw_multisig_tx <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1852"/> + <source>Export a signed multisig transaction to a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <source>help [<command>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <source>Show the help section or the documentation about a <command>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1917"/> + <source>integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1930"/> + <source>block height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2012"/> + <source>No wallet found with that name. Confirm creation of new wallet named: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2068"/> + <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-spend-key="wallet_name", --generate-from-keys="wallet_name", --generate-from-multisig-keys="wallet_name" and --generate-from-json="jsonfilename"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2084"/> + <source>can't specify both --restore-deterministic-wallet or --restore-multisig-wallet and --non-deterministic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2090"/> + <source>--restore-multisig-wallet uses --generate-new-wallet, not --wallet-file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> + <source>specify a recovery parameter with the --electrum-seed="multisig seed here"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2133"/> + <source>Multisig seed failed verification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2149"/> + <source>Enter seed encryption passphrase, empty if none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2259"/> + <source>This address is a subaddress which cannot be used here.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2337"/> + <source>Error: expected M/N, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2342"/> + <source>Error: expected N > 1 and N <= M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2347"/> + <source>Error: M/N is currently unsupported. </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2350"/> + <source>Generating master wallet from %u of %u multisig wallet keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2379"/> + <source>failed to parse secret view key</source> + <translation type="unfinished">échec de l'analyse de la clé secrète d'audit</translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2388"/> + <source>failed to verify secret view key</source> + <translation type="unfinished">échec de la vérification de la clé secrète d'audit</translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2408"/> + <source>Secret spend key (%u of %u):</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> + <source>Error: M/N is currently unsupported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2550"/> + <source>Restore height </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2551"/> + <source>Still apply restore height? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2582"/> + <source>Warning: using an untrusted daemon at %s, privacy will be lessened</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2636"/> + <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or change the daemon address using the 'set_daemon' command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2768"/> + <source>Your wallet has been generated! +To start synchronizing with the daemon, use the "refresh" command. +Use the "help" command to see the list of available commands. +Use "help <command>" to see a command's documentation. +Always use the "exit" command when closing monero-wallet-cli to save +your current session's state. Otherwise, you might need to synchronize +your wallet again (your wallet keys are NOT at risk in any case). +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2850"/> + <source>failed to generate new mutlisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> + <source>Generated new %u/%u multisig wallet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2889"/> + <source>Opened %u/%u multisig wallet%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2942"/> + <source>Use "help <command>" to see a command's documentation. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3000"/> + <source>wallet is multisig and cannot save a watch-only version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> + <source>missing daemon URL argument</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3116"/> + <source>Unexpected array length - Exited simple_wallet::set_daemon()</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3130"/> + <source>This does not seem to be a valid daemon URL.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3184"/> + <source>txid </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3186"/> + <source>idx </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3299"/> + <source> (Some owned outputs have partial key images - import_multisig_info needed)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>Currently selected account: [</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>] </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>Tag: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>(No tag assigned)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3309"/> + <source>Balance per address:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Balance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Unlocked balance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Outputs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Label</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3318"/> + <source>%8u %6s %21s %21s %7u %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3327"/> + <source>usage: balance [detail]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3381"/> + <source>usage: incoming_transfers [available|unavailable] [verbose] [index=<N>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>spent</source> <translation>dépensé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>global index</source> <translation>index global</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>tx id</source> <translation>ID de transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>addr index</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> <source>No incoming transfers</source> <translation>Aucun transfert entrant</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1872"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3427"/> <source>No incoming available transfers</source> <translation>Aucun transfert entrant disponible</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1876"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3431"/> <source>No incoming unavailable transfers</source> <translation>Aucun transfert entrant non disponible</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1887"/> - <source>expected at least one payment_id</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="3442"/> + <source>expected at least one payment ID</source> <translation>au moins un ID de paiement attendu</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>payment</source> <translation>paiement</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>transaction</source> <translation>transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>height</source> <translation>hauteur</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>unlock time</source> <translation>durée de déverrouillage</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1908"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3463"/> <source>No payments with id </source> <translation>Aucun paiement avec l'ID </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1960"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2026"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2280"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3516"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3582"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3853"/> <source>failed to get blockchain height: </source> <translation>échec de la récupération de la hauteur de la chaîne de blocs : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2016"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3572"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5136"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5259"/> <source>failed to connect to the daemon</source> <translation>échec de la connexion au démon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2034"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3590"/> <source> Transaction %llu/%llu: txid=%s</source> <translation> Transaction %llu/%llu : ID=%s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2044"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3600"/> <source> Input %llu/%llu: amount=%s</source> <translation> Entrée %llu/%llu : montant=%s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2060"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3616"/> <source>failed to get output: </source> <translation>échec de la récupération de la sortie : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2068"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3624"/> <source>output key's originating block height shouldn't be higher than the blockchain height</source> <translation>la hauteur du bloc d'origine de la clé de la sortie ne devrait pas être supérieure à celle de la chaîne de blocs</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2072"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3628"/> <source> Originating block heights: </source> <translation> Hauteurs des blocs d'origine : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> <source> |</source> <translation> |</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> <source>| </source> <translation>| </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3660"/> <source> Warning: Some input keys being spent are from </source> <translation> Attention : Certaines clés d'entrées étant dépensées sont issues de </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3662"/> <source>, which can break the anonymity of ring signature. Make sure this is intentional!</source> <translation>, ce qui peut casser l'anonymat du cercle de signature. Assurez-vous que c'est intentionnel !</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2152"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2937"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3705"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4184"/> + <source>Ring size must not be 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3717"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4196"/> + <source>ring size %u is too small, minimum is %u</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3724"/> <source>wrong number of arguments</source> <translation>mauvais nombre d'arguments</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2257"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2744"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3830"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4479"/> <source>No payment id is included with this transaction. Is this okay? (Y/Yes/N/No): </source> <translation>Aucun ID de paiement n'est inclus dans cette transaction. Est-ce correct ? (Y/Yes/Oui/N/No/Non) : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2298"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2762"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3872"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4286"/> <source>No outputs found, or daemon is not ready</source> <translation>Aucune sortie trouvée, ou le démon n'est pas prêt</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2399"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2576"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2837"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> - <source>failed to get random outputs to mix: </source> - <translation>échec de la récupération de sorties aléatoires à mélanger : </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <source>Transaction successfully saved to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>, txid </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>Failed to save transaction to </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2518"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2779"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4081"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4314"/> <source>Sweeping %s in %llu transactions for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> <translation>Balayage de %s dans %llu transactions pour des frais totaux de %s. Est-ce correct ? (Y/Yes/Oui/N/No/Non) : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2524"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4087"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4320"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4519"/> <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> <translation>Balayage de %s pour des frais totaux de %s. Est-ce correct ? (Y/Yes/Oui/N/No/Non) : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2969"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4630"/> <source>Donating </source> <translation>Don de </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3053"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %sIs this okay? (Y/Yes/N/No): </source> - <translation>Chargement de %lu transactions, pour %s, %s de frais, %s. %s, avec mixin minimum de %lu. %sEst-ce correct ? (Y/Yes/Oui/N/No/Non) : </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3077"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4792"/> <source>This is a watch only wallet</source> <translation>Ceci est un portefeuille d'audit</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4443"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6571"/> <source>usage: show_transfer <txid></source> <translation>usage : show_transfer <ID_de_transaction></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6673"/> + <source>Double spend seen on the network: this transaction may or may not end up being mined</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6708"/> <source>Transaction ID not found</source> <translation>ID de transaction non trouvé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="237"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="214"/> <source>true</source> <translation>vrai</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="267"/> <source>failed to parse refresh type</source> <translation>échec de l'analyse du type de rafraîchissement</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="330"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="362"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="608"/> <source>wallet is watch-only and has no seed</source> <translation>c'est un portefeuille d'audit et il n'a pas de graine</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="353"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="367"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="613"/> <source>wallet is non-deterministic and has no seed</source> <translation>c'est un portefeuille non déterministe et il n'a pas de graine</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="450"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="467"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1245"/> <source>wallet is watch-only and cannot transfer</source> <translation>c'est un portefeuille d'audit et il ne peut pas transférer</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="474"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="480"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="496"/> - <source>mixin must be an integer >= 2</source> - <translation>mixin doit être un entier >= 2</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="501"/> - <source>could not change default mixin</source> - <translation>échec du changement du mixin par défaut</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="545"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1321"/> <source>could not change default priority</source> <translation>échec du changement de la priorité par défaut</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> - <source>Synchronize transactions and balance</source> - <translation>Synchroniser les transactions et le solde</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="702"/> - <source>incoming_transfers [available|unavailable] - Show incoming transfers, all or filtered by availability</source> - <translation>incoming_transfers [available|unavailable] - Afficher les transferts entrants, soit tous soit filtrés par disponibilité</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="703"/> - <source>payments <PID_1> [<PID_2> ... <PID_N>] - Show payments for given payment ID[s]</source> - <translation>payments <PID_1> [<PID_2> ... <PID_N>] - Affichier les paiements pour certains ID de paiement donnés</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="706"/> - <source>transfer [<priority>] [<mixin_count>] <address> <amount> [<payment_id>] - Transfer <amount> to <address>. <priority> is the priority of the transaction. The higher the priority, the higher the fee of the transaction. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <mixin_count> is the number of extra inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> - <translation>transfer [<priorité>] [<mixin>] <adresse> <montant> [<ID_paiement>] - Transférer <montant> à <adresse>. <priorité> est la priorité de la transaction. Plus la priorité est élevée, plues les frais de transaction seront élévés. Les valeurs de priorité valies sont dans l'ordre (de la plus basse à la plus élevée) : unimportant, normal, elevated, priority. Si ce paramètre est omis, la valeur par défaut (voir la commande "set priority") est utilisée. <mixin> est le nombre d'entrées supplémentaires à inclure pour l'intraçabilité. De multiples paiements peuvent être effectués d'un coup en ajoutant <adresse_2> <montant_2> et cetera (avant l'ID de paiement, s'il est inclus)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="707"/> - <source>locked_transfer [<mixin_count>] <addr> <amount> <lockblocks>(Number of blocks to lock the transaction for, max 1000000) [<payment_id>]</source> - <translation>locked_transfer [<mixin>] <adresse> <montant> <blocs_vérrous>(Nombre de blocs pendant lequel vérrouiller la transaction, maximum 1000000) [<ID_paiement>]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="708"/> - <source>Send all unmixable outputs to yourself with mixin 0</source> - <translation>Envoyer toutes les sorties non méleangeables à vous-même avec un mixin de 0</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> - <source>Sign a transaction from a file</source> - <translation>Signer une transaction d'un fichier</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="713"/> - <source>Submit a signed transaction from a file</source> - <translation>Soumettre une transaction signée d'un fichier</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="716"/> - <source>integrated_address [PID] - Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> - <translation>integrated_address [PID] - Encoder un ID de paiement dans une adresse intégrée pour l'adresse publique du portefeuille actuel (sans argument un ID de paiement aléatoire est utilisé), ou décoder une adresse intégrée en une adresse standard et un ID de paiement</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="718"/> - <source>Save wallet data</source> - <translation>Sauvegarder les données du portefeuille</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="719"/> - <source>Save a watch-only keys file</source> - <translation>Sauvegarder un fichier de clés d'audit</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> - <source>Display private view key</source> - <translation>Afficher la clé privée d'audit</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="721"/> - <source>Display private spend key</source> - <translation>Afficher la clé privée de dépense</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="722"/> - <source>Display Electrum-style mnemonic seed</source> - <translation>Afficher la graine mnémonique de style Electrum</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="723"/> - <source>Available options: seed language - set wallet seed language; always-confirm-transfers <1|0> - whether to confirm unsplit txes; print-ring-members <1|0> - whether to print detailed information about ring members during confirmation; store-tx-info <1|0> - whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference; default-mixin <n> - set default mixin (default is 4); auto-refresh <1|0> - whether to automatically sync new blocks from the daemon; refresh-type <full|optimize-coinbase|no-coinbase|default> - set wallet refresh behaviour; priority [0|1|2|3|4] - default/unimportant/normal/elevated/priority fee; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - set default monero (sub-)unit; min-outputs-count [n] - try to keep at least that many outputs of value at least min-outputs-value; min-outputs-value [n] - try to keep at least min-outputs-count outputs of at least that value; merge-destinations <1|0> - whether to merge multiple payments to the same destination address</source> - <translation>Options disponibles : seed language - définir la langue de la graine du portefeuille; always-confirm-transfers <1|0> - confirmer ou non les transactions non scindées; print-ring-members <1|0> - afficher ou non des informations détaillées sur les membres du cercle pendant la confirmation; store-tx-info <1|0> - sauvegarder ou non les informations des transactions sortantes (adresse de destination, ID de paiement, clé secrète de transaction) pour référence future; default-mixin <n> - définir le mixin par défaut (4 par défaut); auto-refresh <1|0> - synchroniser automatiquement ou non les nouveau blocs du démon; refresh-type <full|optimize-coinbase|no-coinbase|default> - définir le comportement du rafraîchissement du portefeuille; priority [0|1|2|3|4] - frais de transaction par défault/peu important/normal/élevé/prioritaire; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - définir la (sous-)unité monero par défaut; min-outputs-count [n] - essayer de garder au moins ce nombre de sortie d'une valeur d'au moins min-outputs-value; min-outputs-value [n] - essayer de garder au moins min-outputs-count sorties d'une valeur d'au moins ce montant; merge-destinations <1|0> - fusionner ou non de multiples paiements à une même adresse de destination</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="724"/> - <source>Rescan blockchain for spent outputs</source> - <translation>Réexaminer la chaîne de blocs pour trouver les sorties dépensées</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="725"/> - <source>Get transaction key (r) for a given <txid></source> - <translation>Obtenir la clé de transaction (r) pour un <ID_de_transaction> donné</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="726"/> - <source>Check amount going to <address> in <txid></source> - <translation>Vérifier le montant allant à <adresse> dans <ID_de_transaction></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="727"/> - <source>Generate a signature to prove payment to <address> in <txid> using the transaction secret key (r) without revealing it</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="728"/> - <source>Check tx proof for payment going to <address> in <txid></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="730"/> - <source>unspent_outputs [<min_amount> <max_amount>] - Show unspent outputs within an optional amount range</source> - <translation>unspent_outputs [<montant_minimum> <montant_maximum>] - Afficher les sorties non dépensées en précisant éventuellement un intervalle de montants</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="731"/> - <source>Rescan blockchain from scratch</source> - <translation>Réexaminer la chaîne de blocs depuis le début</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="732"/> - <source>Set an arbitrary string note for a txid</source> - <translation>Définir une note arbitraire pour un ID de transaction</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="733"/> - <source>Get a string note for a txid</source> - <translation>Obtenir une note pour un ID de transaction</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> - <source>Show wallet status information</source> - <translation>Afficher les informations sur le statut du portefuille</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="735"/> - <source>Sign the contents of a file</source> - <translation>Signer le contenu d'un fichier</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="736"/> - <source>Verify a signature on the contents of a file</source> - <translation>Vérifier une signature du contenu d'un fichier</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="737"/> - <source>Export a signed set of key images</source> - <translation>Exporter un ensemble signé d'images de clé</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="738"/> - <source>Import signed key images list and verify their spent status</source> - <translation>Importer un ensemble signé d'images de clé et vérifier leurs statuts de dépense</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="739"/> - <source>Export a set of outputs owned by this wallet</source> - <translation>Exporter un ensemble de sorties possédées par ce portefeuille</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> - <source>Import set of outputs owned by this wallet</source> - <translation>Importer un ensemble de sorties possédées par ce portefeuille</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="802"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1919"/> <source>full (slowest, no assumptions); optimize-coinbase (fast, assumes the whole coinbase is paid to a single address); no-coinbase (fastest, assumes we receive no coinbase transaction), default (same as optimize-coinbase)</source> <translation>full (le plus lent, aucune supposition); optimize-coinbase (rapide, suppose que la récompense de bloc est payée à une unique adresse); no-coinbase (le plus rapide, suppose que l'on ne reçoit aucune récompense de bloc), default (comme optimize-coinbase)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="806"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1923"/> <source>monero, millinero, micronero, nanonero, piconero</source> <translation>monero, millinero, micronero, nanonero, piconero</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="851"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1975"/> <source>Wallet name not valid. Please try again or use Ctrl-C to quit.</source> <translation>Nom de portefeuille non valide. Veuillez réessayer ou utilisez Ctrl-C pour quitter.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1992"/> <source>Wallet and key files found, loading...</source> <translation>Fichier portefeuille et fichier de clés trouvés, chargement...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="874"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1998"/> <source>Key file found but not wallet file. Regenerating...</source> <translation>Fichier de clés trouvé mais pas le fichier portefeuille. Régénération...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2004"/> <source>Key file not found. Failed to open wallet: </source> <translation>Fichier de clés non trouvé. Échec de l'ouverture du portefeuille : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="894"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2023"/> <source>Generating new wallet...</source> <translation>Génération du nouveau portefeuille...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> - <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-json="jsonfilename" and --generate-from-keys="wallet_name"</source> - <translation>impossible de spécifier plus d'une option parmis --generate-new-wallet="nom_du_portefeuille", --wallet-file="nom_du_portefeuille", --generate-from-view-key="nom_du_portefeuille", --generate-from-json="nom_du_fichier_json" et --generate-from-keys="nom_du_portefeuille"</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="953"/> - <source>can't specify both --restore-deterministic-wallet and --non-deterministic</source> - <translation>impossible de spécifier à la fois --restore-deterministic-wallet et --non-deterministic</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="982"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2141"/> <source>Electrum-style word list failed verification</source> <translation>Échec de la vérification de la liste de mots de style Electrum</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="994"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1046"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1063"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2194"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2229"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2284"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2357"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2373"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2413"/> <source>No data supplied, cancelled</source> <translation>Pas de données fournies, annulation</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1002"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1054"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2220"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2718"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3276"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3378"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3530"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4048"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2254"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2363"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3791"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4240"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4454"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4994"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5058"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6106"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6353"/> <source>failed to parse address</source> <translation>échec de l'analyse de l'adresse</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1017"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2200"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2290"/> <source>failed to parse view key secret key</source> <translation>échec de l'analyse de la clé secrète d'audit</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1027"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1103"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2210"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2308"/> <source>failed to verify view key secret key</source> <translation>échec de la vérification de la clé secrète d'audit</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1031"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2214"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2393"/> <source>view key does not match standard address</source> <translation>la clé d'audit ne correspond pas à l'adresse standard</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1036"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1111"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1128"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2238"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2316"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2480"/> <source>account creation failed</source> <translation>échec de la création du compte</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2234"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2274"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2418"/> <source>failed to parse spend key secret key</source> <translation>échec de l'analyse de la clé secrète de dépense</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1095"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2300"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2439"/> <source>failed to verify spend key secret key</source> <translation>échec de la vérification de la clé secrète de dépense</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2304"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2444"/> <source>spend key does not match standard address</source> <translation>la clé de dépense ne correspond pas à l'adresse standard</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1199"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2562"/> <source>failed to open account</source> <translation>échec de l'ouverture du compte</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1203"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1579"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1647"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3348"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2566"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3142"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4962"/> <source>wallet is null</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1262"/> - <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address.</source> - <translation>Le démon n'est pas démarré ou un mauvais port a été passé. Veuillez vous assurer que le démon fonctionne ou redémarrez le portefeuille avec l'adresse de démon correcte.</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1306"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1311"/> - <source>invalid language choice passed. Please try again. + <location filename="../src/simplewallet/simplewallet.cpp" line="2680"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2685"/> + <source>invalid language choice entered. Please try again. </source> <translation>choix de langue passé invalide. Veuillez réessayer. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1370"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2753"/> <source>View key: </source> <translation>Clé d'audit : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1385"/> - <source>Your wallet has been generated! -To start synchronizing with the daemon, use the "refresh" command. -Use the "help" command to see the list of available commands. -Always use the "exit" command when closing monero-wallet-cli to save -your current session's state. Otherwise, you might need to synchronize -your wallet again (your wallet keys are NOT at risk in any case). -</source> - <translation>Votre portefeuille a été généré ! -Pour commencer la synchronisation avec le démon, utilisez la commande "refresh". -Utilisez la commande "help" pour voir la liste des commandes disponibles. -Utilisez toujours la commande "exit" pour fermer monero-wallet-cli afin de sauvegarder -l'état actuel de votre session. Sinon vous pourriez avoir besoin de synchroniser -votre portefeuille à nouveau (mais les clés de votre portefeuille ne risquent rien). -</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1492"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2935"/> <source>You may want to remove the file "%s" and try again</source> <translation>Vous pourriez vouloir supprimer le fichier "%s" et réessayer</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2963"/> <source>failed to deinitialize wallet</source> <translation>échec de la désinitialisation du portefeuille</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1570"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3021"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3524"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6410"/> <source>this command requires a trusted daemon. Enable with --trusted-daemon</source> <translation>cette commande requiert un démon de confiance. Activer avec --trusted-daemon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3152"/> <source>blockchain can't be saved: </source> <translation>la chaîne de blocs ne peut pas être sauvegardée : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1982"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2386"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2563"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2824"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3538"/> <source>daemon is busy. Please try again later.</source> <translation>le démon est occupé. Veuillez réessayer plus tard.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1986"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2390"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2567"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2828"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3243"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3542"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>pas de connexion au démon. Veuillez vous assurer que le démon fonctionne.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1750"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3253"/> <source>refresh error: </source> <translation>erreur du rafraîchissement : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3303"/> <source>Balance: </source> <translation>Solde : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>pubkey</source> <translation>clé publique</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>key image</source> <translation>image de clé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>unlocked</source> <translation>déverrouillé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>ringct</source> <translation>ringct</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>T</source> <translation>V</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>F</source> <translation>F</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>locked</source> <translation>vérrouillé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>RingCT</source> <translation>RingCT</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>-</source> <translation>-</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> <source>payment ID has invalid format, expected 16 or 64 character hex string: </source> <translation>format d'identifiant de paiement invalide, 16 ou 64 caractères hexadécimaux attendus : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3546"/> <source>failed to get spent status</source> <translation>échec de la récupération du statut de dépense</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>the same transaction</source> <translation>la même transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>blocks that are temporally very close</source> <translation>blocs très proches dans le temps</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2206"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3778"/> <source>Locked blocks too high, max 1000000 (˜4 yrs)</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> - <source>usage: get_tx_proof <txid> <dest_address> [<tx_key>]</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3289"/> - <source>failed to parse tx_key</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3298"/> - <source>Tx secret key was found for the given txid, but you've also provided another tx secret key which doesn't match the found one.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3306"/> - <source>Tx secret key wasn't found in the wallet file. Provide it as the optional third parameter if you have it elsewhere.</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3330"/> - <source>Signature: </source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3508"/> - <source>usage: check_tx_proof <txid> <address> <signature></source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3539"/> - <source>Signature header check error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3550"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3560"/> - <source>Signature decoding error</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3602"/> - <source>Tx pubkey was not found</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3609"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5077"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5188"/> <source>Good signature</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3613"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5293"/> <source>Bad signature</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3621"/> - <source>failed to generate key derivation</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3994"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6046"/> <source>usage: integrated_address [payment ID]</source> <translation>usage : integrated_address [ID paiement]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4017"/> - <source>Integrated address: account %s, payment ID %s</source> - <translation>Adresse intégrée : compte %s, ID de paiement %s</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4022"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> <source>Standard address: </source> <translation>Adresse standard : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4027"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6087"/> <source>failed to parse payment ID or address</source> <translation>échec de l'analyse de l'ID de paiement ou de l'adresse</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4038"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6098"/> <source>usage: address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)]</source> <translation>usage : address_book [(add (<adresse> [pid <ID de paiement long ou court>])|<adresse integrée> [<description avec des espaces possible>])|(delete <index>)]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4070"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6128"/> <source>failed to parse payment ID</source> <translation>échec de l'analyse de l'ID de paiement</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4088"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6146"/> <source>failed to parse index</source> <translation>échec de l'analyse de l'index</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6154"/> <source>Address book is empty.</source> <translation>Le carnet d'adresses est vide.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4102"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6160"/> <source>Index: </source> <translation>Index : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4103"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6161"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6287"/> <source>Address: </source> <translation>Adresse : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6162"/> <source>Payment ID: </source> <translation>ID de paiement : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6163"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6286"/> <source>Description: </source> <translation>Description : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4115"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6173"/> <source>usage: set_tx_note [txid] free text note</source> <translation>usage : set_tx_note [ID transaction] note de texte libre</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4143"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6201"/> <source>usage: get_tx_note [txid]</source> <translation>usage : get_tx_note [ID transaction]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4193"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6304"/> <source>usage: sign <filename></source> <translation>usage : sign <fichier></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4198"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6309"/> <source>wallet is watch-only and cannot sign</source> <translation>c'est un portefeuille d'audit et il ne peut pas signer</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4207"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4374"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6346"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6501"/> <source>failed to read file </source> <translation>échec de la lecture du fichier </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5039"/> + <source>usage: check_tx_proof <txid> <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5066"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5181"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5278"/> + <source>failed to load signature file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5117"/> + <source>usage: get_spend_proof <txid> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5123"/> + <source>wallet is watch-only and cannot generate the proof</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5161"/> + <source>usage: check_spend_proof <txid> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5202"/> + <source>usage: get_reserve_proof (all|<amount>) [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5208"/> + <source>The reserve proof can be generated only by a full wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5253"/> + <source>usage: check_reserve_proof <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5271"/> + <source>Address must not be a subaddress</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5289"/> + <source>Good signature -- total: %s, spent: %s, unspent: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5353"/> + <source>usage: show_transfers [in|out|all|pending|failed] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5490"/> + <source>[Double spend seen on the network: this transaction may or may not end up being mined] </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5526"/> + <source>usage: unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5586"/> + <source>There is no unspent output in the specified address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5699"/> + <source> (no daemon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5701"/> + <source> (out of sync)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5758"/> + <source>(Untitled account)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5771"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5789"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5837"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6013"/> + <source>failed to parse index: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5776"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5995"/> + <source>specify an index between 0 and </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5873"/> + <source>usage: + account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source> +Grand total: + Balance: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source>, unlocked balance: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5909"/> + <source>Untagged accounts:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5915"/> + <source>Tag %s is unregistered.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5918"/> + <source>Accounts with tag: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5919"/> + <source>Tag's description: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Account</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5927"/> + <source> %c%8u %6s %21s %21s %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5937"/> + <source>----------------------------------------------------------------------------------</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5938"/> + <source>%15s %21s %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>Primary address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>(used)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5982"/> + <source>(Untitled address)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6022"/> + <source><index_min> is already out of bound</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6027"/> + <source><index_max> exceeds the bound</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6035"/> + <source>usage: address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed> ]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6053"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6065"/> + <source>Integrated addresses can only be created for account 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6077"/> + <source>Integrated address: %s, payment ID: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> + <source>Subaddress: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6242"/> + <source>usage: get_description</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6248"/> + <source>no description found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6250"/> + <source>description found: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6285"/> + <source>Filename: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6290"/> + <source>Watch only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6292"/> + <source>%u/%u multisig%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6294"/> + <source>Normal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6295"/> + <source>Type: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Testnet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Yes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>No</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6314"/> + <source>This wallet is multisig and cannot sign</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6335"/> <source>usage: verify <filename> <address> <signature></source> <translation>usage : verify <fichier> <adresse> <signature></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4246"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6360"/> <source>Bad signature from </source> <translation>Mauvaise signature de </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4250"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6364"/> <source>Good signature from </source> <translation>Bonne signature de </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4259"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6373"/> <source>usage: export_key_images <filename></source> <translation>usage : export_key_images <fichier></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4264"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6378"/> <source>wallet is watch-only and cannot export key images</source> <translation>c'est un portefeuille d'audit et il ne peut pas exporter les images de clé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4274"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4346"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="906"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6391"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6473"/> <source>failed to save file </source> <translation>échec de l'enregistrement du fichier </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4285"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6402"/> <source>Signed key images exported to </source> <translation>Images de clé signées exportées vers </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4293"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6416"/> <source>usage: import_key_images <filename></source> <translation>usage : import_key_images <fichier></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6447"/> <source>usage: export_outputs <filename></source> <translation>usage : export_outputs <fichier></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4357"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6484"/> <source>Outputs exported to </source> <translation>Sorties exportées vers </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4365"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6492"/> <source>usage: import_outputs <filename></source> <translation>usage : import_outputs <fichier></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2246"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3818"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5545"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5553"/> <source>amount is wrong: </source> <translation>montant erroné : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2247"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3820"/> <source>expected number from 0 to </source> <translation>attend un nombre de 0 à </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2378"/> - <source>Money successfully sent, transaction </source> - <translation>Fonds envoyés avec succès, transaction </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3141"/> - <source>no connection to daemon. Please, make sure daemon is running.</source> - <translation>pas de connexion au démon. Veuillez vous assurer que le démon fonctionne.</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2597"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3171"/> - <source>not enough outputs for specified mixin_count</source> - <translation>pas assez de sorties pour le mixin spécifié</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>output amount</source> - <translation>montant de la sortie</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>found outputs to mix</source> - <translation>sorties à mélanger trouvées</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2428"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2605"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2866"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3179"/> - <source>transaction was not constructed</source> - <translation>la transaction n'a pas été construite</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2609"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2870"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> - <source>transaction %s was rejected by daemon with status: </source> - <translation>la transaction %s a été rejetée par le démon avec le statut : </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2443"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2620"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2881"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3191"/> - <source>one of destinations is zero</source> - <translation>une des destinations est zéro</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3195"/> - <source>Failed to find a suitable way to split transactions</source> - <translation>Échec de la recherche d'une façon adéquate de scinder les transactions</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2452"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2629"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2890"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3200"/> - <source>unknown transfer error: </source> - <translation>erreur de transfert inconnue : </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2516"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4079"/> <source>Sweeping </source> <translation>Balayage de </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2785"/> - <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No)</source> - <translation>Balayage de %s pour des frais totaux de %s. Est-ce correct ? (Y/Yes/Oui/N/No/Non)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2816"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3129"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4559"/> <source>Money successfully sent, transaction: </source> <translation>Fonds envoyés avec succès, transaction : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3022"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4716"/> <source>Change goes to more than one address</source> <translation>La monnaie rendue va à plus d'une adresse</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3047"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4757"/> <source>%s change to %s</source> <translation>%s de monnaie rendue à %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3050"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4760"/> <source>no change</source> <translation>sans monnaie rendue</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1044"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1057"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4826"/> <source>Transaction successfully signed to file </source> <translation>Transaction signée avec succès dans le fichier </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4876"/> <source>usage: get_tx_key <txid></source> <translation>usage : get_tx_key <ID transaction></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3234"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3266"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3354"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3519"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4122"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4150"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4884"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5050"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5130"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6208"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6578"/> <source>failed to parse txid</source> <translation>échec de l'analyse de l'ID de transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3245"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4898"/> <source>Tx key: </source> <translation>Clé de transaction : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3250"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4903"/> <source>no tx keys found for this txid</source> <translation>aucune clé de transaction trouvée pour cet ID de transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> - <source>usage: check_tx_key <txid> <txkey> <address></source> - <translation>usage : check_tx_key <ID transaction> <clé transaction> <adresse></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3361"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3368"/> - <source>failed to parse tx key</source> - <translation>échec de l'analyse de la clé de transaction</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3573"/> - <source>failed to get transaction from daemon</source> - <translation>échec de la récupération de la transaction du démon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4912"/> + <source>usage: get_tx_proof <txid> <address> [<message>]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3584"/> - <source>failed to parse transaction from daemon</source> - <translation>échec de l'analyse de la transaction du démon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4937"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5147"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5239"/> + <source>signature file saved to: </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3418"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3591"/> - <source>failed to validate transaction from daemon</source> - <translation>échec de la validation de la transaction du démon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4939"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5149"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5241"/> + <source>failed to save signature file</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3596"/> - <source>failed to get the right transaction from daemon</source> - <translation>échec de la récupération de la bonne transaction du démon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4953"/> + <source>usage: check_tx_key <txid> <txkey> <address></source> + <translation>usage : check_tx_key <ID transaction> <clé transaction> <adresse></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3385"/> - <source>failed to generate key derivation from supplied parameters</source> - <translation>échec de la génération de la dérivation de clé à partir des paramètres fournis</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4976"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4985"/> + <source>failed to parse tx key</source> + <translation>échec de l'analyse de la clé de transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3471"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4943"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5031"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5109"/> <source>error: </source> <translation>erreur : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>received</source> <translation>a reçu</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>in txid</source> <translation>dans la transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5026"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5099"/> <source>received nothing in txid</source> <translation>n'a rien reçu dans la transaction</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5010"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5083"/> <source>WARNING: this transaction is not yet included in the blockchain!</source> <translation>ATTENTION : cette transaction n'est pas encore inclue dans la chaîne de blocs !</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3494"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5016"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5089"/> <source>This transaction has %u confirmations</source> <translation>Cette transaction a %u confirmations</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3498"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5020"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5093"/> <source>WARNING: failed to determine number of confirmations!</source> <translation>ATTENTION : échec de la détermination du nombre de confirmations !</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> - <source>usage: show_transfers [in|out|all|pending|failed] [<min_height> [<max_height>]]</source> - <translation>usage : show_transfers [in|out|all|pending|failed] [<hauteur_minimum> [<hauteur_maximum>]]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5401"/> <source>bad min_height parameter:</source> <translation>mauvais paramètre hauteur_minimum :</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3712"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5413"/> <source>bad max_height parameter:</source> <translation>mauvais paramètre hauteur_maximum :</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> <source>in</source> <translation>reçu</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>out</source> <translation>payé</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>failed</source> <translation>échoué</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>pending</source> <translation>en attente</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3809"/> - <source>usage: unspent_outputs [<min_amount> <max_amount>]</source> - <translation>usage : unspent_outputs [<montant_minimum> <montant_maximum>]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3824"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5560"/> <source><min_amount> should be smaller than <max_amount></source> <translation><montant_minimum> doit être inférieur à <montant_maximum></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source> Amount: </source> <translation> Montant : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source>, number of keys: </source> <translation>, nombre de clés : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3861"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5597"/> <source> </source> <translation> </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3866"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5602"/> <source> Min block height: </source> <translation> Hauteur de bloc minimum : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3867"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5603"/> <source> Max block height: </source> <translation> Hauteur de bloc maximum : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5604"/> <source> Min amount found: </source> <translation> Montant minimum trouvé : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3869"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5605"/> <source> Max amount found: </source> <translation> Montant maximum trouvé : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3870"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5606"/> <source> Total count: </source> <translation> Compte total : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3910"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5646"/> <source> Bin size: </source> <translation> Taille de classe : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3911"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5647"/> <source> Outputs per *: </source> <translation> Sorties par * : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3913"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5649"/> <source>count ^ </source> @@ -2338,310 +3489,409 @@ Sorties par * : </translation> </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> <source> |</source> <translation> |</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> <source> +</source> <translation> +</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> <source>+--> block height </source> <translation>+--> hauteur de bloc </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source> ^</source> <translation> ^</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source>^ </source> <translation>^ </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5655"/> <source> </source> <translation> </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3969"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5696"/> <source>wallet</source> <translation>portefeuille</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4000"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="666"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6057"/> <source>Random payment ID: </source> <translation>ID de paiement aléatoire : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6058"/> <source>Matching integrated address: </source> <translation>Adresse intégrée correspondante : </translation> </message> </context> <context> + <name>genms</name> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="70"/> + <source>Base filename (-1, -2, etc suffixes will be appended as needed)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="71"/> + <source>Give threshold and participants at once as M/N</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="72"/> + <source>How many participants wil share parts of the multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="73"/> + <source>How many signers are required to sign a valid transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="74"/> + <source>Create testnet multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="81"/> + <source>Generating %u %u/%u multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="138"/> + <source>Error verifying multisig extra info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="146"/> + <source>Error finalizing multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="153"/> + <source>Generated multisig wallets for address </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="157"/> + <source>Error creating multisig wallets: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="176"/> + <source>This program generates a set of multisig wallets - use this simpler scheme only if all the participants trust each other</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="194"/> + <source>Error: expected N/M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="202"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="211"/> + <source>Error: either --scheme or both of --threshold and --participants may be given</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="218"/> + <source>Error: expected N > 1 and N <= M, but got N==%u and M==%d</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="227"/> + <source>Error: --filename-base is required</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="233"/> + <source>Error: unsupported scheme: only N/N and N-1/N are supported</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>sw</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="115"/> <source>Generate new wallet and save it to <arg></source> <translation>Générer un nouveau portefeuille et le sauvegarder dans <arg></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> <source>Generate incoming-only wallet from view key</source> <translation>Générer un portefeuille d'audit à partir d'une clé d'audit</translation> </message> <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <source>Generate deterministic wallet from spend key</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../src/simplewallet/simplewallet.cpp" line="118"/> <source>Generate wallet from private keys</source> <translation>Générer un portefeuille à partir de clés privées</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="120"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="119"/> + <source>Generate a master wallet from multisig wallet keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="121"/> + <source>Language for mnemonic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="122"/> <source>Specify Electrum seed for wallet recovery/creation</source> <translation>Spécifier la graine Electrum pour la récupération/création d'un portefeuille</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="121"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="123"/> <source>Recover wallet using Electrum-style mnemonic seed</source> <translation>Récupérer un portefeuille en utilisant une graine mnémonique de style Electrum</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="122"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="124"/> + <source>Recover multisig wallet using Electrum-style mnemonic seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="125"/> <source>Generate non-deterministic view and spend keys</source> <translation>Générer des clés d'audit et de dépense non déterministes</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="126"/> <source>Enable commands which rely on a trusted daemon</source> <translation>Activer les commandes qui dépendent d'un démon de confiance</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="124"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="127"/> <source>Allow communicating with a daemon that uses a different RPC version</source> <translation>Autoriser la communication avec un démon utilisant une version de RPC différente</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="125"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="128"/> <source>Restore from specific blockchain height</source> <translation>Restaurer à partir d'une hauteur de bloc spécifique</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="136"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="129"/> + <source>The newly created transaction will not be relayed to the monero network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="171"/> <source>daemon is busy. Please try again later.</source> <translation>le démon est occupé. Veuillez réessayer plus tard.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="145"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="180"/> <source>possibly lost connection to daemon</source> <translation>connexion avec le démon peut-être perdue</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="197"/> <source>Error: </source> <translation>Erreur : </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4614"/> - <source>Failed to initialize wallet</source> - <translation>Échec de l'initialisation du portefeuille</translation> - </message> -</context> -<context> - <name>tools::dns_utils</name> - <message> - <location filename="../src/common/dns_utils.cpp" line="430"/> - <source>DNSSEC validation passed</source> - <translation>validation DNSSEC réussie</translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="434"/> - <source>WARNING: DNSSEC validation was unsuccessful, this address may not be correct!</source> - <translation>ATTENTION : validation DNSSEC échouée, cette adresse pourrait ne pas être correcte !</translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="437"/> - <source>For URL: </source> - <translation>Pour l'URL : </translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="439"/> - <source> Monero Address = </source> - <translation> Adresse Monero = </translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="441"/> - <source>Is this OK? (Y/n) </source> - <translation>Est-ce correct ? (Y/n) </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6787"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="451"/> - <source>you have cancelled the transfer request</source> - <translation>vous avez annulé la requête de transfert</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6801"/> + <source>Failed to initialize wallet</source> + <translation>Échec de l'initialisation du portefeuille</translation> </message> </context> <context> <name>tools::wallet2</name> <message> - <location filename="../src/wallet/wallet2.cpp" line="106"/> + <location filename="../src/wallet/wallet2.cpp" line="113"/> <source>Use daemon instance at <host>:<port></source> <translation>Utiliser l'instance de démon située à <hôte>:<port></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="107"/> + <location filename="../src/wallet/wallet2.cpp" line="114"/> <source>Use daemon instance at host <arg> instead of localhost</source> <translation>Utiliser l'instance de démon située à l'hôte <arg> au lieu de localhost</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Wallet password</source> - <translation>Mot de passe du portefeuille</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="109"/> + <location filename="../src/wallet/wallet2.cpp" line="116"/> <source>Wallet password file</source> <translation>Fichier mot de passe du portefeuille</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="110"/> + <location filename="../src/wallet/wallet2.cpp" line="117"/> <source>Use daemon instance at port <arg> instead of 18081</source> <translation>Utiliser l'instance de démon située au port <arg> au lieu de 18081</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="112"/> + <location filename="../src/wallet/wallet2.cpp" line="119"/> <source>For testnet. Daemon must also be launched with --testnet flag</source> <translation>Pour testnet, le démon doit aussi être lancé avec l'option --testnet</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="113"/> + <location filename="../src/wallet/wallet2.cpp" line="120"/> <source>Restricts to view-only commands</source> <translation>Restreindre aux commandes en lecture-seule</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="152"/> + <location filename="../src/wallet/wallet2.cpp" line="168"/> <source>can't specify daemon host or port more than once</source> <translation>impossible de spécifier l'hôte ou le port du démon plus d'une fois</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="188"/> + <location filename="../src/wallet/wallet2.cpp" line="204"/> <source>can't specify more than one of --password and --password-file</source> <translation>impossible de spécifier plus d'une option parmis --password et --password-file</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="204"/> + <location filename="../src/wallet/wallet2.cpp" line="217"/> <source>the password file specified could not be read</source> <translation>le fichier mot de passe spécifié n'a pas pu être lu</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Enter new wallet password</source> - <translation>Entrez le mot de passe du portefeuille</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="464"/> - <source>failed to read wallet password</source> - <translation>échec de la lecture du mot de passe du portefeuille</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="227"/> + <location filename="../src/wallet/wallet2.cpp" line="240"/> <source>Failed to load file </source> <translation>Échec du chargement du fichier </translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="108"/> + <location filename="../src/wallet/wallet2.cpp" line="115"/> <source>Wallet password (escape/quote as needed)</source> <translation>Mot de passe du portefeuille (échapper/citer si nécessaire)</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="111"/> + <location filename="../src/wallet/wallet2.cpp" line="118"/> <source>Specify username[:password] for daemon RPC client</source> <translation>Spécifier le nom_utilisateur:[mot_de_passe] pour le client RPC du démon</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="233"/> + <location filename="../src/wallet/wallet2.cpp" line="224"/> + <source>no password specified; use --prompt-for-password to prompt for a password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="246"/> <source>Failed to parse JSON</source> <translation>Échec de l'analyse JSON</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="240"/> + <location filename="../src/wallet/wallet2.cpp" line="253"/> <source>Version %u too new, we can only grok up to %u</source> <translation>Version %u trop récente, on comprend au mieux %u</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="258"/> + <location filename="../src/wallet/wallet2.cpp" line="269"/> <source>failed to parse view key secret key</source> <translation>échec de l'analyse de la clé secrète d'audit</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="264"/> - <location filename="../src/wallet/wallet2.cpp" line="331"/> - <location filename="../src/wallet/wallet2.cpp" line="373"/> + <location filename="../src/wallet/wallet2.cpp" line="274"/> + <location filename="../src/wallet/wallet2.cpp" line="339"/> + <location filename="../src/wallet/wallet2.cpp" line="380"/> <source>failed to verify view key secret key</source> <translation>échec de la vérification de la clé secrète d'audit</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="276"/> + <location filename="../src/wallet/wallet2.cpp" line="285"/> <source>failed to parse spend key secret key</source> <translation>échec de l'analyse de la clé secrète de dépense</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="282"/> - <location filename="../src/wallet/wallet2.cpp" line="343"/> - <location filename="../src/wallet/wallet2.cpp" line="394"/> + <location filename="../src/wallet/wallet2.cpp" line="290"/> + <location filename="../src/wallet/wallet2.cpp" line="349"/> + <location filename="../src/wallet/wallet2.cpp" line="405"/> <source>failed to verify spend key secret key</source> <translation>échec de la vérification de la clé secrète de dépense</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="295"/> + <location filename="../src/wallet/wallet2.cpp" line="302"/> <source>Electrum-style word list failed verification</source> <translation>Échec de la vérification de la liste de mots de style Electrum</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="306"/> - <source>At least one of Electrum-style word list and private view key must be specified</source> - <translation>Au moins une des listes de mots de style Electrum ou clé privée d'audit doit être spécifiée</translation> + <location filename="../src/wallet/wallet2.cpp" line="319"/> + <source>At least one of Electrum-style word list and private view key and private spend key must be specified</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="311"/> + <location filename="../src/wallet/wallet2.cpp" line="323"/> <source>Both Electrum-style word list and private key(s) specified</source> <translation>Liste de mots de style Electrum et clé privée spécifiées en même temps</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="324"/> + <location filename="../src/wallet/wallet2.cpp" line="333"/> <source>invalid address</source> <translation>adresse invalide</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="335"/> + <location filename="../src/wallet/wallet2.cpp" line="342"/> <source>view key does not match standard address</source> <translation>la clé d'audit ne correspond pas à l'adresse standard</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="347"/> + <location filename="../src/wallet/wallet2.cpp" line="352"/> <source>spend key does not match standard address</source> <translation>la clé de dépense ne correspond pas à l'adresse standard</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="356"/> + <location filename="../src/wallet/wallet2.cpp" line="360"/> <source>Cannot generate deprecated wallets from JSON</source> <translation>Impossible de générer un portefeuille obsolète à partir de JSON</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="403"/> + <location filename="../src/wallet/wallet2.cpp" line="392"/> + <source>failed to parse address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="398"/> + <source>Address must be specified in order to create watch-only wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="413"/> <source>failed to generate new wallet: </source> <translation>échec de la génération du nouveau portefeuille : </translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="5205"/> + <location filename="../src/wallet/wallet2.cpp" line="2813"/> + <location filename="../src/wallet/wallet2.cpp" line="2873"/> + <location filename="../src/wallet/wallet2.cpp" line="2952"/> + <location filename="../src/wallet/wallet2.cpp" line="2998"/> + <location filename="../src/wallet/wallet2.cpp" line="3089"/> + <location filename="../src/wallet/wallet2.cpp" line="3189"/> + <location filename="../src/wallet/wallet2.cpp" line="3599"/> + <location filename="../src/wallet/wallet2.cpp" line="3955"/> + <source>Primary account</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="7914"/> + <source>No funds received in this tx.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="8607"/> <source>failed to read file </source> <translation>échec de la lecture du fichier </translation> </message> @@ -2649,153 +3899,191 @@ Sorties par * : </translation> <context> <name>tools::wallet_rpc_server</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="151"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="160"/> <source>Daemon is local, assuming trusted</source> <translation>Le démon est local, supposons qu'il est de confiance</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="175"/> + <source>Failed to create directory </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="177"/> + <source>Failed to create directory %s: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source>Cannot specify --</source> <translation>Impossible de spécifier --</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source> and --</source> <translation> et --</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>Failed to create file </source> <translation>Échec de la création du fichier </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>. Check permissions or remove file</source> <translation>. Vérifiez les permissions ou supprimez le fichier</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="209"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="217"/> <source>Error writing to file </source> <translation>Erreur d'écriture dans le fichier </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="212"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="220"/> <source>RPC username/password is stored in file </source> <translation>nom_utilisateur/mot_de_passe RPC sauvegardé dans le fichier </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1748"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="443"/> + <source>Tag %s is unregistered.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2435"/> + <source>Transaction not possible. Available only %s, transaction amount %s = %s + %s (fee)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2870"/> + <source>This is the RPC monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2893"/> <source>Can't specify more than one of --wallet-file and --generate-from-json</source> <translation>Impossible de spécifier plus d'une option parmis --wallet-file et --generate-from-json</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2905"/> <source>Must specify --wallet-file or --generate-from-json or --wallet-dir</source> <translation>--wallet-file, --generate-from-json ou --wallet-dir doit être spécifié</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1764"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2909"/> <source>Loading wallet...</source> <translation>Chargement du portefeuille...</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1789"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1814"/> - <source>Storing wallet...</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2942"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2975"/> + <source>Saving wallet...</source> <translation>Sauvegarde du portefeuille...</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1791"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1816"/> - <source>Stored ok</source> - <translation>Sauvegarde OK</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2944"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2977"/> + <source>Successfully saved</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1794"/> - <source>Loaded ok</source> - <translation>Chargement OK</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2947"/> + <source>Successfully loaded</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1798"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2951"/> <source>Wallet initialization failed: </source> <translation>Échec de l'initialisation du portefeuille : </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1805"/> - <source>Failed to initialize wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2958"/> + <source>Failed to initialize wallet RPC server</source> <translation>Échec de l'initialisation du serveur RPC du portefeuille</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1809"/> - <source>Starting wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2962"/> + <source>Starting wallet RPC server</source> <translation>Démarrage du serveur RPC du portefeuille</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1811"/> - <source>Stopped wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2969"/> + <source>Failed to run wallet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2972"/> + <source>Stopped wallet RPC server</source> <translation>Arrêt du serveur RPC du portefeuille</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1820"/> - <source>Failed to store wallet: </source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2981"/> + <source>Failed to save wallet: </source> <translation>Échec de la sauvegarde du portefeuille : </translation> </message> </context> <context> <name>wallet_args</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1715"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4580"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2856"/> <source>Wallet options</source> <translation>Options du portefeuille</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="59"/> + <location filename="../src/wallet/wallet_args.cpp" line="73"/> <source>Generate wallet from JSON format file</source> <translation>Générer un portefeuille à partir d'un fichier au format JSON</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="63"/> + <location filename="../src/wallet/wallet_args.cpp" line="77"/> <source>Use wallet <arg></source> <translation>Utiliser le portefeuille <arg></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="87"/> + <location filename="../src/wallet/wallet_args.cpp" line="104"/> <source>Max number of threads to use for a parallel job</source> <translation>Nombre maximum de threads à utiliser pour les travaux en parallèle</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="88"/> + <location filename="../src/wallet/wallet_args.cpp" line="105"/> <source>Specify log file</source> <translation>Spécifier le fichier journal</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="89"/> + <location filename="../src/wallet/wallet_args.cpp" line="106"/> <source>Config file</source> <translation>Fichier de configuration</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="98"/> + <location filename="../src/wallet/wallet_args.cpp" line="115"/> <source>General options</source> <translation>Options générales</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="128"/> + <location filename="../src/wallet/wallet_args.cpp" line="138"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_args.cpp" line="161"/> <source>Can't find config file </source> <translation>Impossible de trouver le fichier de configuration </translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="172"/> + <location filename="../src/wallet/wallet_args.cpp" line="195"/> <source>Logging to: </source> <translation>Journalisation dans : </translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="173"/> + <location filename="../src/wallet/wallet_args.cpp" line="197"/> <source>Logging to %s</source> <translation>Journalisation dans %s</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="153"/> + <location filename="../src/wallet/wallet_args.cpp" line="140"/> <source>Usage:</source> <translation>Usage :</translation> </message> diff --git a/translations/monero_it.ts b/translations/monero_it.ts index 3674b2a32..9a00f9d51 100644 --- a/translations/monero_it.ts +++ b/translations/monero_it.ts @@ -4,24 +4,24 @@ <context> <name>Monero::AddressBookImpl</name> <message> - <location filename="../src/wallet/api/address_book.cpp" line="55"/> + <location filename="../src/wallet/api/address_book.cpp" line="53"/> <source>Invalid destination address</source> <translation>Indirizzo destinatario non valido</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="65"/> + <location filename="../src/wallet/api/address_book.cpp" line="63"/> <source>Invalid payment ID. Short payment ID should only be used in an integrated address</source> <translation>ID pagamento non valido. Il pagamento ID corto dovrebbe essere usato solo in un indirizzo integrato</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="72"/> + <location filename="../src/wallet/api/address_book.cpp" line="70"/> <source>Invalid payment ID</source> <translation>ID pagamento non valido</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="79"/> - <source>Integrated address and long payment id can't be used at the same time</source> - <translation>Indirizzo integrato e ID pagamento lungo non possono essere usati nello stesso momento</translation> + <location filename="../src/wallet/api/address_book.cpp" line="77"/> + <source>Integrated address and long payment ID can't be used at the same time</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -37,32 +37,32 @@ <translation>Impossibile scrivere transazione/i su file</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="114"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="115"/> <source>daemon is busy. Please try again later.</source> <translation>Il daemon è impegnato. Prova più tardi.</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="117"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="118"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>Nessuna connessione con il daemon. Controlla che sia operativo.</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="121"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="122"/> <source>transaction %s was rejected by daemon with status: </source> <translation>La transazione %s è stata respinta dal daemon con status: </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="126"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="127"/> <source>. Reason: </source> <translation>. Motivo: </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="128"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="129"/> <source>Unknown exception: </source> <translation>Eccezione sconosciuta: </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="131"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="132"/> <source>Unhandled exception</source> <translation>Eccezione non gestita</translation> </message> @@ -81,323 +81,324 @@ <translation>Firma transazione fallita</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="135"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="168"/> <source>Claimed change does not go to a paid address</source> <translation>Il cambiamento richiesto non porta a un indirizzo pagato</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="141"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="174"/> <source>Claimed change is larger than payment to the change address</source> <translation>Il cambiamento richiesto è più largo del pagamento all'indirizzo di cambio</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="151"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="184"/> <source>Change goes to more than one address</source> <translation>Il cambiamento ha effetto su più di un indirizzo</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="164"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="197"/> <source>sending %s to %s</source> <translation>inviando %s a %s</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="170"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="203"/> <source>with no destinations</source> <translation>senza destinazioni</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="176"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="209"/> <source>%s change to %s</source> <translation>%s cambia in %s</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="179"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="212"/> <source>no change</source> <translation>nessuna modifica</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="181"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %s</source> - <translation>Caricato %lu transazioni, per %s, commissione %s, %s, %s, %s, con mixin %lu. %s</translation> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="214"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu. %s</source> + <translation type="unfinished"></translation> </message> </context> <context> <name>Monero::WalletImpl</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="942"/> + <location filename="../src/wallet/api/wallet.cpp" line="1111"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation>L'id pagamento è in un formato invalido, dovrebbe essere una stringa hex di 16 o 64 caratteri: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="952"/> + <location filename="../src/wallet/api/wallet.cpp" line="1121"/> <source>Failed to add short payment id: </source> <translation>Impossibile aggiungere id pagamento corto</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="978"/> - <location filename="../src/wallet/api/wallet.cpp" line="1072"/> + <location filename="../src/wallet/api/wallet.cpp" line="1154"/> + <location filename="../src/wallet/api/wallet.cpp" line="1258"/> <source>daemon is busy. Please try again later.</source> <translation>il daemon è impegnato. Prova più tardi</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="981"/> - <location filename="../src/wallet/api/wallet.cpp" line="1075"/> + <location filename="../src/wallet/api/wallet.cpp" line="1157"/> + <location filename="../src/wallet/api/wallet.cpp" line="1261"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>nessuna connessione con il daemon. Accertati che sia operativo</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="984"/> - <location filename="../src/wallet/api/wallet.cpp" line="1078"/> + <location filename="../src/wallet/api/wallet.cpp" line="1160"/> + <location filename="../src/wallet/api/wallet.cpp" line="1264"/> <source>RPC error: </source> <translation>errore RPC: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1081"/> + <location filename="../src/wallet/api/wallet.cpp" line="1197"/> + <location filename="../src/wallet/api/wallet.cpp" line="1301"/> + <source>not enough outputs for specified ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> + <source>found outputs to use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1201"/> + <source>Please sweep unmixable outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1267"/> <source>failed to get random outputs to mix</source> <translation>impossibile recuperare outputs random da mixare</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="994"/> - <location filename="../src/wallet/api/wallet.cpp" line="1088"/> + <location filename="../src/wallet/api/wallet.cpp" line="1170"/> + <location filename="../src/wallet/api/wallet.cpp" line="1274"/> <source>not enough money to transfer, available only %s, sent amount %s</source> <translation>non hai abbastanza fondi da trasferire, sono disponibili solo %s, ammontare inviato %s</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="403"/> + <location filename="../src/wallet/api/wallet.cpp" line="474"/> <source>failed to parse address</source> <translation>parsing indirizzo fallito</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="415"/> + <location filename="../src/wallet/api/wallet.cpp" line="486"/> <source>failed to parse secret spend key</source> <translation>impossibile fare il parsing della chiave segreta di spesa</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="425"/> + <location filename="../src/wallet/api/wallet.cpp" line="496"/> <source>No view key supplied, cancelled</source> <translation>Non è stata fornita nessuna chiave di visualizzazione</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="432"/> + <location filename="../src/wallet/api/wallet.cpp" line="503"/> <source>failed to parse secret view key</source> <translation>impossibile fare il parsing della chiave segreta di visualizzazione</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="442"/> + <location filename="../src/wallet/api/wallet.cpp" line="513"/> <source>failed to verify secret spend key</source> <translation>impossibile verificare chiave segreta di spesa</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="447"/> + <location filename="../src/wallet/api/wallet.cpp" line="518"/> <source>spend key does not match address</source> <translation>la chiave di spesa non corrisponde all'indirizzo</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="453"/> + <location filename="../src/wallet/api/wallet.cpp" line="524"/> <source>failed to verify secret view key</source> <translation>verifica chiave segreta di visualizzazione fallita</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="458"/> + <location filename="../src/wallet/api/wallet.cpp" line="529"/> <source>view key does not match address</source> <translation>la chiave di visualizzazione non corrisponde all'indirizzo</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="477"/> + <location filename="../src/wallet/api/wallet.cpp" line="548"/> <source>failed to generate new wallet: </source> <translation>impossibile generare nuovo portafoglio: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="799"/> + <location filename="../src/wallet/api/wallet.cpp" line="773"/> + <source>Failed to send import wallet request</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="919"/> <source>Failed to load unsigned transactions</source> <translation>Caricamento transazioni non firmate fallito</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="820"/> + <location filename="../src/wallet/api/wallet.cpp" line="940"/> <source>Failed to load transaction from file</source> <translation>Caricamento transazione da file fallito</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="838"/> + <location filename="../src/wallet/api/wallet.cpp" line="958"/> <source>Wallet is view only</source> <translation>Il portafoglio è di tipo solo visualizzazione</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="847"/> + <location filename="../src/wallet/api/wallet.cpp" line="967"/> <source>failed to save file </source> <translation>impossibile salvare il file </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="874"/> + <location filename="../src/wallet/api/wallet.cpp" line="986"/> + <source>Key images can only be imported with a trusted daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="999"/> <source>Failed to import key images: </source> <translation>Impossibile importare immagini chiave: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="987"/> + <location filename="../src/wallet/api/wallet.cpp" line="1032"/> + <source>Failed to get subaddress label: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1046"/> + <source>Failed to set subaddress label: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1163"/> <source>failed to get random outputs to mix: %s</source> <translation>impossibile recuperare outputs casuali da mixare: %s</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1003"/> - <location filename="../src/wallet/api/wallet.cpp" line="1097"/> - <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> - <translation>non hai abbastanza fondi da trasferire, disponibili solo %s, ammontare transazione %s = %s + %s (commissione)</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1179"/> + <location filename="../src/wallet/api/wallet.cpp" line="1283"/> + <source>not enough money to transfer, overall balance only %s, sent amount %s</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1012"/> - <location filename="../src/wallet/api/wallet.cpp" line="1106"/> - <source>not enough outputs for specified mixin_count</source> - <translation>outputs insufficienti per il numero di mixaggi specificato </translation> + <location filename="../src/wallet/api/wallet.cpp" line="1188"/> + <location filename="../src/wallet/api/wallet.cpp" line="1292"/> + <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> + <translation>non hai abbastanza fondi da trasferire, disponibili solo %s, ammontare transazione %s = %s + %s (commissione)</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> <source>output amount</source> <translation>ammontare output</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> - <source>found outputs to mix</source> - <translation>trovati outputs da mixare</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet.cpp" line="1019"/> - <location filename="../src/wallet/api/wallet.cpp" line="1113"/> + <location filename="../src/wallet/api/wallet.cpp" line="1205"/> + <location filename="../src/wallet/api/wallet.cpp" line="1308"/> <source>transaction was not constructed</source> <translation>transazione non costruita</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1023"/> - <location filename="../src/wallet/api/wallet.cpp" line="1117"/> + <location filename="../src/wallet/api/wallet.cpp" line="1209"/> + <location filename="../src/wallet/api/wallet.cpp" line="1312"/> <source>transaction %s was rejected by daemon with status: </source> <translation>la transazione %s è stata rifiutata dal daemon con status: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1030"/> - <location filename="../src/wallet/api/wallet.cpp" line="1124"/> + <location filename="../src/wallet/api/wallet.cpp" line="1216"/> + <location filename="../src/wallet/api/wallet.cpp" line="1319"/> <source>one of destinations is zero</source> <translation>una delle destinazioni è zero</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1033"/> - <location filename="../src/wallet/api/wallet.cpp" line="1127"/> + <location filename="../src/wallet/api/wallet.cpp" line="1219"/> + <location filename="../src/wallet/api/wallet.cpp" line="1322"/> <source>failed to find a suitable way to split transactions</source> <translation>impossibile trovare un modo per dividere le transazioni</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1036"/> - <location filename="../src/wallet/api/wallet.cpp" line="1130"/> + <location filename="../src/wallet/api/wallet.cpp" line="1222"/> + <location filename="../src/wallet/api/wallet.cpp" line="1325"/> <source>unknown transfer error: </source> <translation>errore trasferimento sconosciuto: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1039"/> - <location filename="../src/wallet/api/wallet.cpp" line="1133"/> + <location filename="../src/wallet/api/wallet.cpp" line="1225"/> + <location filename="../src/wallet/api/wallet.cpp" line="1328"/> <source>internal error: </source> <translation>errore interno: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1042"/> - <location filename="../src/wallet/api/wallet.cpp" line="1136"/> + <location filename="../src/wallet/api/wallet.cpp" line="1228"/> + <location filename="../src/wallet/api/wallet.cpp" line="1331"/> <source>unexpected error: </source> <translation>errore inaspettato: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1045"/> - <location filename="../src/wallet/api/wallet.cpp" line="1139"/> + <location filename="../src/wallet/api/wallet.cpp" line="1231"/> + <location filename="../src/wallet/api/wallet.cpp" line="1334"/> <source>unknown error</source> <translation>errore sconosciuto</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1419"/> - <source>Rescan spent can only be used with a trusted daemon</source> - <translation>"Riscannerizza spesi" può essere utilizzato solo da un daemon fidato</translation> - </message> -</context> -<context> - <name>Monero::WalletManagerImpl</name> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="192"/> - <source>failed to parse txid</source> - <translation>analisi txid fallita</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="199"/> - <location filename="../src/wallet/api/wallet_manager.cpp" line="206"/> - <source>failed to parse tx key</source> - <translation>parsing chiave tx fallito</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="217"/> - <source>failed to parse address</source> - <translation>parsing indirizzo fallito</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="227"/> - <source>failed to get transaction from daemon</source> - <translation>impossibile recuperare la transazione dal daemon</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="238"/> - <source>failed to parse transaction from daemon</source> - <translation>impossibile fare il parsing della transazione dal daemon</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="245"/> - <source>failed to validate transaction from daemon</source> - <translation>convalida transazione dal daemon fallita</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="250"/> - <source>failed to get the right transaction from daemon</source> - <translation>impossibile recuperare la giusta transazione dal daemon</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1412"/> + <location filename="../src/wallet/api/wallet.cpp" line="1441"/> + <location filename="../src/wallet/api/wallet.cpp" line="1494"/> + <location filename="../src/wallet/api/wallet.cpp" line="1525"/> + <location filename="../src/wallet/api/wallet.cpp" line="1556"/> + <location filename="../src/wallet/api/wallet.cpp" line="1579"/> + <source>Failed to parse txid</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="257"/> - <source>failed to generate key derivation from supplied parameters</source> - <translation>impossibile generare derivazione chiave dai parametri forniti</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1430"/> + <source>no tx keys found for this txid</source> + <translation type="unfinished">nessuna chiave tx trovata per questo txid</translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="313"/> - <source>error: </source> - <translation>errore: </translation> + <location filename="../src/wallet/api/wallet.cpp" line="1450"/> + <location filename="../src/wallet/api/wallet.cpp" line="1460"/> + <source>Failed to parse tx key</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>received</source> - <translation>ricevuto</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1470"/> + <location filename="../src/wallet/api/wallet.cpp" line="1502"/> + <location filename="../src/wallet/api/wallet.cpp" line="1533"/> + <location filename="../src/wallet/api/wallet.cpp" line="1621"/> + <source>Failed to parse address</source> + <translation type="unfinished">Parsing indirizzo fallito</translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>in txid</source> - <translation>in txid</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1627"/> + <source>Address must not be a subaddress</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="323"/> - <source>received nothing in txid</source> - <translation>nulla ricevuto in txid</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1849"/> + <source>Rescan spent can only be used with a trusted daemon</source> + <translation>"Riscannerizza spesi" può essere utilizzato solo da un daemon fidato</translation> </message> </context> <context> <name>Wallet</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="212"/> + <location filename="../src/wallet/api/wallet.cpp" line="246"/> <source>Failed to parse address</source> <translation>Parsing indirizzo fallito</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="219"/> + <location filename="../src/wallet/api/wallet.cpp" line="253"/> <source>Failed to parse key</source> <translation>Parsing chiave fallito</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="227"/> + <location filename="../src/wallet/api/wallet.cpp" line="261"/> <source>failed to verify key</source> <translation>verifica chiave fallita</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="237"/> + <location filename="../src/wallet/api/wallet.cpp" line="271"/> <source>key does not match address</source> <translation>la chiave non corrisponde all'indirizzo</translation> </message> @@ -405,2212 +406,3481 @@ <context> <name>command_line</name> <message> - <location filename="../src/common/command_line.cpp" line="76"/> + <location filename="../src/common/command_line.cpp" line="57"/> <source>yes</source> <translation>sì</translation> </message> + <message> + <location filename="../src/common/command_line.cpp" line="71"/> + <source>no</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::rpc_args</name> <message> - <location filename="../src/rpc/rpc_args.cpp" line="38"/> - <source>Specify ip to bind rpc server</source> - <translation>Specificare ip da associare al server rpc</translation> + <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <source>Specify IP to bind RPC server</source> + <translation>Specificare IP da associare al server RPC</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="39"/> + <location filename="../src/rpc/rpc_args.cpp" line="41"/> <source>Specify username[:password] required for RPC server</source> <translation>Specifica username[:password] richiesta per server RPC</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <location filename="../src/rpc/rpc_args.cpp" line="42"/> <source>Confirm rpc-bind-ip value is NOT a loopback (local) IP</source> <translation>Conferma valore rpc-bind-ip NON è un loopback IP (locale)</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="66"/> + <location filename="../src/rpc/rpc_args.cpp" line="43"/> + <source>Specify a comma separated list of origins to allow cross origin resource sharing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="70"/> <source>Invalid IP address given for --</source> <translation>Indirizzo IP non valido dato per --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="74"/> + <location filename="../src/rpc/rpc_args.cpp" line="78"/> <source> permits inbound unencrypted external connections. Consider SSH tunnel or SSL proxy instead. Override with --</source> <translation>permette connessioni esterne non criptate in entrata. Considera in alternativa un tunnel SSH o un proxy SSL. Sovrascrivi con --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> <source>Username specified with --</source> <translation>Nome utente specificato con --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> <source> cannot be empty</source> <translation> non può essere vuoto</translation> </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> + <source> requires RFC server password --</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::simple_wallet</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="290"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="479"/> <source>Commands: </source> <translation>Comandi: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> <source>failed to read wallet password</source> <translation>impossibile leggere la password del portafoglio</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1325"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2699"/> <source>invalid password</source> <translation>password non valida</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="697"/> - <source>start_mining [<number_of_threads>] - Start mining in daemon</source> - <translation>start_mining [<number_of_threads>] - Avvia mining nel daemon</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="698"/> - <source>Stop mining in daemon</source> - <translation>Interrompi mining nel daemon</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="699"/> - <source>Save current blockchain data</source> - <translation>Salva dati correnti blockchain</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="701"/> - <source>Show current wallet balance</source> - <translation>Mostra bilancio portafoglio attuale</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="704"/> - <source>Show blockchain height</source> - <translation>Mostra "altezza" blockchain</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> - <source>Show current wallet public address</source> - <translation>Mostra indirizzo pubblico del portafoglio corrente</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="744"/> - <source>Show this help</source> - <translation>Mostra questo aiuto</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="788"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1905"/> <source>set seed: needs an argument. available options: language</source> <translation>imposta seed: richiede una definizione. opzioni disponibili: lingua</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="811"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1933"/> <source>set: unrecognized argument(s)</source> <translation>imposta: definizione/i non riconosciuta/e</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1442"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2869"/> <source>wallet file path not valid: </source> <translation>percorso file portafoglio non valido: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="863"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1987"/> <source>Attempting to generate or restore wallet, but specified file(s) exist. Exiting to not risk overwriting.</source> <translation>Sto tentando di generare o ripristinare il portafoglio, ma i(l) file specificato/i esiste/esistono già. Sto uscendo per non rischiare di sovrascrivere.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="416"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="662"/> <source>usage: payment_id</source> <translation>uso: payment_id</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="710"/> - <source>sweep_below <amount_threshold> [mixin] address [payment_id] - Send all unlocked outputs below the threshold to an address</source> - <translation>sweep_below <amount_threshold> [mixin] address [payment_id] - Invia tutti gli outputs sbloccati sotto la soglia specificata a un indirizzo</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="727"/> - <source>Generate a signature to prove payment to <address> in <txid> using the transaction secret key (r) without revealing it</source> - <translation>Genera una firma per provare un pagamento a <address> in <txid> usando la chiave di transazione (r) senza rivelarla</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="728"/> - <source>Check tx proof for payment going to <address> in <txid></source> - <translation>Verifica prova tx per pagamento inviato a <indirizzo> in <txid></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="743"/> - <source>Generate a new random full size payment id - these will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids</source> - <translation>Genera un nuovo id pagamento casuale di dimensione completa - queste non saranno criptate nel blockchain, considera integrated_address per payment ids corti crittati</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="774"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1891"/> <source>needs an argument</source> <translation>ha bisogno di un argomento</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="797"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="798"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="799"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="801"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="804"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="805"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1914"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1921"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1922"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1927"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1931"/> <source>0 or 1</source> <translation>0 o 1</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="800"/> - <source>integer >= 2</source> - <translation>integrale >= 2</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="803"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1920"/> <source>0, 1, 2, 3, or 4</source> <translation>0, 1, 2, 3, o 4</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1924"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1928"/> <source>unsigned integer</source> <translation>integrale non firmato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="912"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2041"/> <source>NOTE: the following 25 words can be used to recover access to your wallet. Write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control. </source> <translation>ATTENZIONE: le seguenti 25 parole possono essere usate per ripristinare il tuo portafoglio. Scrivile e conservale da qualche parte al sicuro.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="973"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2121"/> <source>specify a recovery parameter with the --electrum-seed="words list here"</source> <translation>specificare un parametro di ripristino con --electrum-seed="lista parole qui"</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1261"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2635"/> <source>wallet failed to connect to daemon: </source> <translation>impossibile connettere il portafoglio al daemon: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1269"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2643"/> <source>Daemon uses a different RPC major version (%u) than the wallet (%u): %s. Either update one of them, or use --allow-mismatched-daemon-version.</source> <translation>Il daemon usa una versione principale RPC (%u) diversa da quella del portafoglio (%u): %s. Aggiorna una delle due, o usa --allow-mismatched-daemon-version.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1288"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2662"/> <source>List of available languages for your wallet's seed:</source> <translation>Lista delle lingue disponibili per il seed del tuo portafoglio:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1297"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2671"/> <source>Enter the number corresponding to the language of your choice: </source> <translation>Inserisci il numero corrispondente al linguaggio da te scelto: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1354"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2737"/> <source>You had been using a deprecated version of the wallet. Please use the new seed that we provide. </source> <translation>Hai usato una versione obsoleta del portafoglio. Per favore usa il nuovo seed che ti abbiamo fornito.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1368"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1425"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2751"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> <source>Generated new wallet: </source> <translation>Nuovo portafoglio generato: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1374"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2757"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> <source>failed to generate new wallet: </source> <translation>impossibile generare nuovo portafoglio: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2887"/> <source>Opened watch-only wallet</source> <translation>Portafoglio solo-vista aperto</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2891"/> <source>Opened wallet</source> <translation>Portafoglio aperto</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1466"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2901"/> <source>You had been using a deprecated version of the wallet. Please proceed to upgrade your wallet. </source> <translation>Stai utilizzando una versione disapprovata del portafoglio. Per favore procedi nell'upgrade del portafoglio.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2916"/> <source>You had been using a deprecated version of the wallet. Your wallet file format is being upgraded now. </source> <translation>Stai utilizzando una versione disapprovata del portafoglio. Il formato del tuo portafoglio sta venendo aggiornato adesso.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1489"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2924"/> <source>failed to load wallet: </source> <translation>impossibile caricare portafoglio: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1497"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2941"/> <source>Use the "help" command to see the list of available commands. </source> <translation>Usa il comando "help" per visualizzare la lista dei comandi disponibili.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2986"/> <source>Wallet data saved</source> <translation>Dati del portafoglio salvati</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3072"/> <source>Mining started in daemon</source> <translation>Mining avviato nel daemon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1615"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3074"/> <source>mining has NOT been started: </source> <translation>il mining NON è stato avviato: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1634"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3093"/> <source>Mining stopped in daemon</source> <translation>Mining nel daemon interrotto</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3095"/> <source>mining has NOT been stopped: </source> <translation>il mining NON è stato interrotto: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1655"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> <source>Blockchain saved</source> <translation>Blockchain salvata</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1687"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1699"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3165"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3196"/> <source>Height </source> <translation>Blocco </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1671"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1688"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3197"/> <source>transaction </source> <translation>transazione </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1672"/> - <source>received </source> - <translation>ricevuto/i </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1689"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3185"/> <source>spent </source> <translation>speso/i </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3198"/> <source>unsupported transaction format</source> <translation>formato transazione non supportato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1718"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3219"/> <source>Starting refresh...</source> <translation>Sto iniziando il refresh...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3232"/> <source>Refresh done, blocks received: </source> <translation>Refresh finito, blocchi ricevuti: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2186"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3758"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation>l'id pagamento ha un formato invalido, dovrebbe essere una stringa hex di 16 o 64 caratteri: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2201"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3773"/> <source>bad locked_blocks parameter:</source> <translation>parametro locked_blocks non corretto:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2228"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2726"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3801"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4462"/> <source>a single transaction cannot use more than one payment id: </source> <translation>una singola transazione non può usare più di un id pagamento: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2237"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2735"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3810"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4257"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4470"/> <source>failed to set up payment id, though it was decoded correctly</source> <translation>impossibile impostare id pagamento, anche se è stato decodificado correttamente</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2262"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2355"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2533"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2749"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3835"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3987"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4271"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4329"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4484"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4527"/> <source>transaction cancelled.</source> <translation>transazione cancellata.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3955"/> <source>Sending %s. </source> <translation>Sto inviando %s. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2326"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3958"/> <source>Your transaction needs to be split into %llu transactions. This will result in a transaction fee being applied to each transaction, for a total fee of %s</source> <translation>La tua transazione deve essere divisa in %llu transazioni. Una commissione verrà applicata per ogni transazione, per un totale di %s commissioni</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3964"/> <source>The transaction fee is %s</source> <translation>La commissione per la transazione è %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2335"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3967"/> <source>, of which %s is dust from change</source> <translation>, della quale %s è polvere dovuta allo scambio</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>.</source> <translation>.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>A total of %s from dust change will be sent to dust address</source> <translation>Un totale di %s in polvere verrà inviato all'indirizzo della polvere</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2341"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3973"/> <source>. This transaction will unlock on block %llu, in approximately %s days (assuming 2 minutes per block)</source> <translation>. Questa transazione verrà sbloccata al blocco %llu, in approssimativamente %s giorni (supponendo 2 minuti per blocco)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2367"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2544"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2805"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3999"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4011"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4340"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4352"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4537"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4549"/> <source>Failed to write transaction(s) to file</source> <translation>Impossibile scrivere transazione/i su file</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2371"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2548"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4003"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4015"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4111"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4344"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4356"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4553"/> <source>Unsigned transaction(s) successfully written to file: </source> <translation>Transazioni/e non firmata/e scritte/a con successo su file: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2406"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2583"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2844"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3157"/> - <source>Not enough money in unlocked balance</source> - <translation>Non hai abbastanza fondi nel bilancio sbloccato</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2415"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2592"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> - <source>Failed to find a way to create transactions. This is usually due to dust which is so small it cannot pay for itself in fees, or trying to send more money than the unlocked balance, or not leaving enough for fees</source> - <translation>Impossibile creare transazioni. Questo succede di solito perchè l'ammontare di polvere è così piccolo da non poter pagare le proprie commissioni, oppure stai provando a mandare più fondi di quelli che possiedi nel bilancio sbloccato, o non hai aggiunto abbastanza commissioni</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2435"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2612"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2873"/> - <source>Reason: </source> - <translation>Motivo: </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2447"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2624"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2885"/> - <source>failed to find a suitable way to split transactions</source> - <translation>impossibile trovare un modo adatto per dividere le transazioni</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2503"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4066"/> <source>No unmixable outputs found</source> <translation>Nessun output non-mixabile trovato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2709"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4149"/> <source>No address given</source> <translation>Non è stato fornito nessun indirizzo</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4702"/> <source>Claimed change does not go to a paid address</source> <translation>Il cambiamento richiesto non porta a un indirizzo pagato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3013"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4707"/> <source>Claimed change is larger than payment to the change address</source> <translation>Il cambiamento richiesto è più largo del pagamento all'indirizzo di cambio</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3035"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4738"/> <source>sending %s to %s</source> <translation>sto mandando %s a %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3041"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4748"/> + <source> dummy output(s)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4751"/> <source>with no destinations</source> <translation>senza destinazioni</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3088"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4763"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu, %s. %sIs this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4787"/> + <source>This is a multisig wallet, it can only sign with sign_multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4797"/> + <source>usage: sign_transfer [export]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4809"/> <source>Failed to sign transaction</source> <translation>Impossibile firmare transazione</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4815"/> <source>Failed to sign transaction: </source> <translation>Impossibile firmare transazione: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3120"/> - <source>Failed to load transaction from file</source> - <translation>Caricamento transazione da file fallito</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4836"/> + <source>Transaction raw hex data exported to </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3137"/> - <source>daemon is busy. Please try later</source> - <translation>il daemon è occupato. Prova più tardi</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4852"/> + <source>Failed to load transaction from file</source> + <translation>Caricamento transazione da file fallito</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1745"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1995"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2395"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2572"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2833"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3146"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3551"/> <source>RPC error: </source> <translation>errore RPC: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="522"/> <source>wallet is watch-only and has no spend key</source> <translation>il portafoglio è solo-vista e non ha una chiave di spesa</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="390"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="780"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="848"/> <source>Your original password was incorrect.</source> <translation>La tua password originale era scorretta</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="404"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="650"/> <source>Error with wallet rewrite: </source> <translation>Errore riscrittura wallet: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="513"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1289"/> <source>priority must be 0, 1, 2, 3, or 4 </source> <translation>la priorità deve essere 0, 1, 2, 3, or 4 </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="525"/> - <source>priority must be 0, 1, 2, 3,or 4</source> - <translation>la priorità deve essere 0, 1, 2, 3,or 4</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="1301"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1316"/> + <source>priority must be 0, 1, 2, 3, or 4</source> + <translation>la priorità deve essere 0, 1, 2, 3, or 4</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="540"/> - <source>priority must be 0, 1, 2 3,or 4</source> - <translation>la priorità deve essere 0, 1, 2 3, or 4</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="623"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1404"/> <source>invalid unit</source> <translation>unità invalida</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="641"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1422"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1484"/> <source>invalid count: must be an unsigned integer</source> <translation>conteggio invalido: deve essere un integrale non firmato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="659"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1440"/> <source>invalid value</source> <translation>valore invalido</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="705"/> - <source>Same as transfer, but using an older transaction building algorithm</source> - <translation>Lo stesso di transfer, ma usando un vecchio algoritmo per costruire la transazione</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="709"/> - <source>sweep_all [mixin] address [payment_id] - Send all unlocked balance to an address</source> - <translation>sweep_all [mixin] address [payment_id] - Manda tutto il bilancio sbloccato ad un indirizzo</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="711"/> - <source>donate [<mixin_count>] <amount> [payment_id] - Donate <amount> to the development team (donate.getmonero.org)</source> - <translation>donate [<mixin_count>] <amount> [payment_id] - Dona <amount> al team di sviluppo (donate.getmonero.org)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="714"/> - <source>set_log <level>|<categories> - Change current log detail (level must be <0-4>)</source> - <translation>set_log <level>|<categories> - Cambia livello dettaglio log (il livello deve essere <0-4>)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="717"/> - <source>address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)] - Print all entries in the address book, optionally adding/deleting an entry to/from it</source> - <translation>address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)] - Mostra tutte le voci nella rubrica, hai l'opzione di aggiungere/eliminare delle voci</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="729"/> - <source>show_transfers [in|out|pending|failed|pool] [<min_height> [<max_height>]] - Show incoming/outgoing transfers within an optional height range</source> - <translation>show_transfers [in|out|pending|failed|pool] [<min_height> [<max_height>]] - Mostra trasferimenti in entrata/uscita entro un altezza del blocco opzionale</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="741"/> - <source>Show information about a transfer to/from this address</source> - <translation>Mostra informazioni riguardo un trasferimento da/per questo indirizzo</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="742"/> - <source>Change wallet password</source> - <translation>Cambia password portafoglio</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="820"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1942"/> <source>usage: set_log <log_level_number_0-4> | <categories></source> <translation>uso: set_log <log_level_number_0-4> | <categories></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="886"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2013"/> <source>(Y/Yes/N/No): </source> <translation>(S/Sì/N/No): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1157"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1184"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2509"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2536"/> <source>bad m_restore_height parameter: </source> <translation>parametro m_restore_height non corretto: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1162"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2514"/> <source>date format must be YYYY-MM-DD</source> <translation>il formato della data deve essere YYYY-MM-DD</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1175"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2527"/> <source>Restore height is: </source> <translation>Ripristina altezza è: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1176"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2348"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2528"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3980"/> <source>Is this okay? (Y/Yes/N/No): </source> <translation>Va bene? (S/Sì/N/No): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1212"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2575"/> <source>Daemon is local, assuming trusted</source> <translation>Il daemon è locale, viene considerato fidato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1553"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3004"/> <source>Password for new watch-only wallet</source> <translation>Password per il nuovo portafoglio solo-vista</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1604"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3063"/> <source>invalid arguments. Please use start_mining [<number_of_threads>] [do_bg_mining] [ignore_battery], <number_of_threads> should be from 1 to </source> <translation>argomenti invalidi. Usa start_mining [<number_of_threads>] [do_bg_mining] [ignore_battery], <number_of_threads> dovrebbe risultare da 1 a </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1755"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2457"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2634"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2895"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3205"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> <source>internal error: </source> <translation>errore interno: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2000"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2462"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2639"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2900"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3210"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3263"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3556"/> <source>unexpected error: </source> <translation>errore inaspettato: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1765"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2005"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2467"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2644"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2905"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3215"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3561"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4138"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4371"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4570"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4865"/> <source>unknown error</source> <translation>errore sconosciuto</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> <source>refresh failed: </source> <translation>refresh fallito: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> <source>Blocks received: </source> <translation>Blocchi ricevuti: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1795"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3304"/> <source>unlocked balance: </source> <translation>bilancio sbloccato: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="808"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1925"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>amount</source> <translation>ammontare</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="219"/> + <source>false</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="493"/> + <source>Unknown command: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="500"/> + <source>Command usage: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="503"/> + <source>Command description: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="551"/> + <source>wallet is multisig but not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="567"/> + <source>Enter optional seed encryption passphrase, empty to see raw seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="584"/> + <source>Failed to retrieve seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="603"/> + <source>wallet is multisig and has no seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="674"/> + <source>Cannot connect to daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="679"/> + <source>Current fee is %s monero per kB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="695"/> + <source>Error: failed to estimate backlog array size: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> + <source>Error: bad estimated backlog array size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> + <source> (current)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> + <source>%u block (%u minutes) backlog at priority %u%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="717"/> + <source>%u to %u block (%u to %u minutes) backlog at priority %u</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> + <source>No backlog at priority </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="729"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="762"/> + <source>This wallet is already multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="767"/> + <source>wallet is watch-only and cannot be made multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="773"/> + <source>This wallet has been used before, please use a new wallet to create a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="747"/> + <source>Your password is incorrect.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="753"/> + <source>Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="754"/> + <source>This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="786"/> + <source>usage: make_multisig <threshold> <multisiginfo1> [<multisiginfo2>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="794"/> + <source>Invalid threshold</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <source>Another step is needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <source>Send this multisig info to all other participants, then use finalize_multisig <info1> [<info2>...] with others' multisig info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="815"/> + <source>Error creating multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="822"/> + <source>Error creating multisig: new wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="825"/> + <source> multisig address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="836"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="927"/> + <source>This wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="841"/> + <source>This wallet is already finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="854"/> + <source>usage: finalize_multisig <multisiginfo1> [<multisiginfo2>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="862"/> + <source>Failed to finalize multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <source>Failed to finalize multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="885"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="932"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1006"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1074"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1136"/> + <source>This multisig wallet is not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="890"/> + <source>usage: export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="913"/> + <source>Error exporting multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="917"/> + <source>Multisig info exported to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> + <source>usage: import_multisig_info <filename1> [<filename2>...] - one for each other participant</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="965"/> + <source>Multisig info imported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="969"/> + <source>Failed to import multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="980"/> + <source>Failed to update spent status after importing multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="985"/> + <source>Untrusted daemon, spent status may be incorrect. Use a trusted daemon and run "rescan_spent"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1131"/> + <source>This is not a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> + <source>usage: sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1024"/> + <source>Failed to sign multisig transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1030"/> + <source>Multisig error: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1035"/> + <source>Failed to sign multisig transaction: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1058"/> + <source>It may be relayed to the network with submit_multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <source>usage: submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1155"/> + <source>Failed to load multisig transaction from file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1160"/> + <source>Multisig transaction signed by only %u signers, needs %u more signatures</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1108"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6750"/> + <source>Transaction successfully submitted, transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1109"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6751"/> + <source>You can check its status by using the `show_transfers` command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1141"/> + <source>usage: export_raw_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1176"/> + <source>Failed to export multisig transaction to file </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1180"/> + <source>Saved exported multisig transaction file(s): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1252"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1258"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1272"/> + <source>ring size must be an integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1277"/> + <source>could not change default ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <source>Invalid height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1564"/> + <source>start_mining [<number_of_threads>] [bg_mining] [ignore_battery]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1565"/> + <source>Start mining in the daemon (bg_mining and ignore_battery are optional booleans).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1568"/> + <source>Stop mining in the daemon.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1571"/> + <source>set_daemon <host>[:<port>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1572"/> + <source>Set another daemon to connect to.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1575"/> + <source>Save the current blockchain data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1578"/> + <source>Synchronize the transactions and balance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1581"/> + <source>balance [detail]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1582"/> + <source>Show the wallet's balance of the currently selected account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1585"/> + <source>incoming_transfers [available|unavailable] [verbose] [index=<N1>[,<N2>[,...]]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1586"/> + <source>Show the incoming transfers, all or filtered by availability and address index.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1589"/> + <source>payments <PID_1> [<PID_2> ... <PID_N>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1590"/> + <source>Show the payments for the given payment IDs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1593"/> + <source>Show the blockchain height.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1596"/> + <source>transfer_original [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1597"/> + <source>Transfer <amount> to <address> using an older transaction building algorithm. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1599"/> + <source>transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1600"/> + <source>Transfer <amount> to <address>. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1603"/> + <source>locked_transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <addr> <amount> <lockblocks> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1604"/> + <source>Transfer <amount> to <address> and lock it for <lockblocks> (max. 1000000). If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1607"/> + <source>Send all unmixable outputs to yourself with ring_size 1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1609"/> + <source>sweep_all [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1610"/> + <source>Send all unlocked balance to an address. If the parameter "index<N1>[,<N2>,...]" is specified, the wallet sweeps outputs received by those address indices. If omitted, the wallet randomly chooses an address index to be used.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <source>sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1614"/> + <source>Send all unlocked outputs below the threshold to an address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1617"/> + <source>sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1618"/> + <source>Send a single output of the given key image to an address without change.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1621"/> + <source>donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1622"/> + <source>Donate <amount> to the development team (donate.getmonero.org).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1625"/> + <source>sign_transfer <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> + <source>Sign a transaction from a <file>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1629"/> + <source>Submit a signed transaction from a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1632"/> + <source>set_log <level>|{+,-,}<categories></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1633"/> + <source>Change the current log detail (level must be <0-4>).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <source>account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1643"/> + <source>If no arguments are specified, the wallet shows all the existing accounts along with their balances. +If the "new" argument is specified, the wallet creates a new account with its label initialized by the provided label text (which can be empty). +If the "switch" argument is specified, the wallet switches to the account specified by <index>. +If the "label" argument is specified, the wallet sets the label of the account specified by <index> to the provided label text. +If the "tag" argument is specified, a tag <tag_name> is assigned to the specified accounts <account_index_1>, <account_index_2>, .... +If the "untag" argument is specified, the tags assigned to the specified accounts <account_index_1>, <account_index_2> ..., are removed. +If the "tag_description" argument is specified, the tag <tag_name> is assigned an arbitrary text <description>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1652"/> + <source>address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1653"/> + <source>If no arguments are specified or <index> is specified, the wallet shows the default or specified address. If "all" is specified, the walllet shows all the existing addresses in the currently selected account. If "new " is specified, the wallet creates a new address with the provided label text (which can be empty). If "label" is specified, the wallet sets the label of the address specified by <index> to the provided label text.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1656"/> + <source>integrated_address [<payment_id> | <address>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <source>Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1660"/> + <source>address_book [(add ((<address> [pid <id>])|<integrated address>) [<description possibly with whitespaces>])|(delete <index>)]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1661"/> + <source>Print all entries in the address book, optionally adding/deleting an entry to/from it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1664"/> + <source>Save the wallet data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1667"/> + <source>Save a watch-only keys file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> + <source>Display the private view key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1673"/> + <source>Display the private spend key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1676"/> + <source>Display the Electrum-style mnemonic seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1679"/> + <source>set <option> [<value>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1680"/> + <source>Available options: + seed language + Set the wallet's seed language. + always-confirm-transfers <1|0> + Whether to confirm unsplit txes. + print-ring-members <1|0> + Whether to print detailed information about ring members during confirmation. + store-tx-info <1|0> + Whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference. + default-ring-size <n> + Set the default ring size (default and minimum is 5). + auto-refresh <1|0> + Whether to automatically synchronize new blocks from the daemon. + refresh-type <full|optimize-coinbase|no-coinbase|default> + Set the wallet's refresh behaviour. + priority [0|1|2|3|4] + Set the fee too default/unimportant/normal/elevated/priority. + confirm-missing-payment-id <1|0> + ask-password <1|0> + unit <monero|millinero|micronero|nanonero|piconero> + Set the default monero (sub-)unit. + min-outputs-count [n] + Try to keep at least that many outputs of value at least min-outputs-value. + min-outputs-value [n] + Try to keep at least min-outputs-count outputs of at least that value. + merge-destinations <1|0> + Whether to merge multiple payments to the same destination address. + confirm-backlog <1|0> + Whether to warn if there is transaction backlog. + confirm-backlog-threshold [n] + Set a threshold for confirm-backlog to only warn if the transaction backlog is greater than n blocks. + refresh-from-block-height [n] + Set the height before which to ignore blocks. + auto-low-priority <1|0> + Whether to automatically use the low priority fee level when it's safe to do so.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1717"/> + <source>Display the encrypted Electrum-style mnemonic seed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1720"/> + <source>Rescan the blockchain for spent outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1723"/> + <source>get_tx_key <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1724"/> + <source>Get the transaction key (r) for a given <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1727"/> + <source>check_tx_key <txid> <txkey> <address></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1728"/> + <source>Check the amount going to <address> in <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <source>get_tx_proof <txid> <address> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1732"/> + <source>Generate a signature proving funds sent to <address> in <txid>, optionally with a challenge string <message>, using either the transaction secret key (when <address> is not your wallet's address) or the view secret key (otherwise), which does not disclose the secret key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1735"/> + <source>check_tx_proof <txid> <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> + <source>Check the proof for funds going to <address> in <txid> with the challenge string <message> if any.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1739"/> + <source>get_spend_proof <txid> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> + <source>Generate a signature proving that you generated <txid> using the spend secret key, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1743"/> + <source>check_spend_proof <txid> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1744"/> + <source>Check a signature proving that the signer generated <txid>, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1747"/> + <source>get_reserve_proof (all|<amount>) [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1748"/> + <source>Generate a signature proving that you own at least this much, optionally with a challenge string <message>. +If 'all' is specified, you prove the entire sum of all of your existing accounts' balances. +Otherwise, you prove the reserve of the smallest possible amount above <amount> available in your current account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1753"/> + <source>check_reserve_proof <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1754"/> + <source>Check a signature proving that the owner of <address> holds at least this much, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1757"/> + <source>show_transfers [in|out|pending|failed|pool] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1758"/> + <source>Show the incoming/outgoing transfers within an optional height range.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1761"/> + <source>unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1762"/> + <source>Show the unspent outputs of a specified address within an optional amount range.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1765"/> + <source>Rescan the blockchain from scratch.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1768"/> + <source>set_tx_note <txid> [free text note]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1769"/> + <source>Set an arbitrary string note for a <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1772"/> + <source>get_tx_note <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1773"/> + <source>Get a string note for a txid.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1776"/> + <source>set_description [free text note]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1777"/> + <source>Set an arbitrary description for the wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1780"/> + <source>Get the description of the wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1783"/> + <source>Show the wallet's status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1786"/> + <source>Show the wallet's information.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1789"/> + <source>sign <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1790"/> + <source>Sign the contents of a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1793"/> + <source>verify <filename> <address> <signature></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <source>Verify a signature on the contents of a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1797"/> + <source>export_key_images <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1798"/> + <source>Export a signed set of key images to a <file>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1801"/> + <source>import_key_images <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1802"/> + <source>Import a signed key images list and verify their spent status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1805"/> + <source>export_outputs <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1806"/> + <source>Export a set of outputs owned by this wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1809"/> + <source>import_outputs <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1810"/> + <source>Import a set of outputs owned by this wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1813"/> + <source>show_transfer <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1814"/> + <source>Show information about a transfer to/from this address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1817"/> + <source>Change the wallet's password.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1820"/> + <source>Generate a new random full size payment id. These will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1823"/> + <source>Print the information about the current fee and transaction backlog.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1825"/> + <source>Export data needed to create a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1827"/> + <source>make_multisig <threshold> <string1> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1828"/> + <source>Turn this wallet into a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1831"/> + <source>finalize_multisig <string> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1832"/> + <source>Turn this wallet into a multisig wallet, extra step for N-1/N wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1835"/> + <source>export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1836"/> + <source>Export multisig info for other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1839"/> + <source>import_multisig_info <filename> [<filename>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1840"/> + <source>Import multisig info from other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1843"/> + <source>sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1844"/> + <source>Sign a multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1847"/> + <source>submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1848"/> + <source>Submit a signed multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1851"/> + <source>export_raw_multisig_tx <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1852"/> + <source>Export a signed multisig transaction to a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <source>help [<command>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <source>Show the help section or the documentation about a <command>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1917"/> + <source>integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1930"/> + <source>block height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2012"/> + <source>No wallet found with that name. Confirm creation of new wallet named: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2068"/> + <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-spend-key="wallet_name", --generate-from-keys="wallet_name", --generate-from-multisig-keys="wallet_name" and --generate-from-json="jsonfilename"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2084"/> + <source>can't specify both --restore-deterministic-wallet or --restore-multisig-wallet and --non-deterministic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2090"/> + <source>--restore-multisig-wallet uses --generate-new-wallet, not --wallet-file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> + <source>specify a recovery parameter with the --electrum-seed="multisig seed here"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2133"/> + <source>Multisig seed failed verification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2149"/> + <source>Enter seed encryption passphrase, empty if none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2259"/> + <source>This address is a subaddress which cannot be used here.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2337"/> + <source>Error: expected M/N, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2342"/> + <source>Error: expected N > 1 and N <= M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2347"/> + <source>Error: M/N is currently unsupported. </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2350"/> + <source>Generating master wallet from %u of %u multisig wallet keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2379"/> + <source>failed to parse secret view key</source> + <translation type="unfinished">impossibile fare il parsing della chiave segreta di visualizzazione</translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2388"/> + <source>failed to verify secret view key</source> + <translation type="unfinished">verifica chiave segreta di visualizzazione fallita</translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2408"/> + <source>Secret spend key (%u of %u):</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> + <source>Error: M/N is currently unsupported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2550"/> + <source>Restore height </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2551"/> + <source>Still apply restore height? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2582"/> + <source>Warning: using an untrusted daemon at %s, privacy will be lessened</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2636"/> + <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or change the daemon address using the 'set_daemon' command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2768"/> + <source>Your wallet has been generated! +To start synchronizing with the daemon, use the "refresh" command. +Use the "help" command to see the list of available commands. +Use "help <command>" to see a command's documentation. +Always use the "exit" command when closing monero-wallet-cli to save +your current session's state. Otherwise, you might need to synchronize +your wallet again (your wallet keys are NOT at risk in any case). +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2850"/> + <source>failed to generate new mutlisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> + <source>Generated new %u/%u multisig wallet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2889"/> + <source>Opened %u/%u multisig wallet%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2942"/> + <source>Use "help <command>" to see a command's documentation. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3000"/> + <source>wallet is multisig and cannot save a watch-only version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> + <source>missing daemon URL argument</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3116"/> + <source>Unexpected array length - Exited simple_wallet::set_daemon()</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3130"/> + <source>This does not seem to be a valid daemon URL.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3184"/> + <source>txid </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3186"/> + <source>idx </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3299"/> + <source> (Some owned outputs have partial key images - import_multisig_info needed)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>Currently selected account: [</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>] </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>Tag: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>(No tag assigned)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3309"/> + <source>Balance per address:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Balance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Unlocked balance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Outputs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Label</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3318"/> + <source>%8u %6s %21s %21s %7u %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3327"/> + <source>usage: balance [detail]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3381"/> + <source>usage: incoming_transfers [available|unavailable] [verbose] [index=<N>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>spent</source> <translation>spesi</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>global index</source> <translation>indice globale</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>tx id</source> <translation>tx id</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>addr index</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> <source>No incoming transfers</source> <translation>Nessun trasferimento in entrata</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1872"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3427"/> <source>No incoming available transfers</source> <translation>Nessun trasferimento in entrata disponibile</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1876"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3431"/> <source>No incoming unavailable transfers</source> <translation>Nessun trasferimento indisponibile in entrata</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1887"/> - <source>expected at least one payment_id</source> - <translation>deve esserci almeno un payment_id</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3442"/> + <source>expected at least one payment ID</source> + <translation>deve esserci almeno un payment ID</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>payment</source> <translation>pagamento</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>transaction</source> <translation>transazione</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>height</source> <translation>altezza</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>unlock time</source> <translation>tempo sbloccato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1908"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3463"/> <source>No payments with id </source> <translation>Nessun pagamento con id </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1960"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2026"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2280"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3516"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3582"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3853"/> <source>failed to get blockchain height: </source> <translation>impossibile recuperare altezza blockchain: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2016"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3572"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5136"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5259"/> <source>failed to connect to the daemon</source> <translation>impossibile connettersi al daemon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2034"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3590"/> <source> Transaction %llu/%llu: txid=%s</source> <translation> Transazione %llu/%llu: txid=%s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2044"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3600"/> <source> Input %llu/%llu: amount=%s</source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2060"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3616"/> <source>failed to get output: </source> <translation>impossibile recuperare output: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2068"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3624"/> <source>output key's originating block height shouldn't be higher than the blockchain height</source> <translation>l'altezza del blocco di origine della chiave di output non dovrebbe essere più alta dell'altezza della blockchain</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2072"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3628"/> <source> Originating block heights: </source> <translation> Originando blocchi: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> <source> |</source> <translation> |</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> <source>| </source> <translation>| </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3660"/> <source> Warning: Some input keys being spent are from </source> <translation> Avviso: alcune chiavi di input spese vengono da </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3662"/> <source>, which can break the anonymity of ring signature. Make sure this is intentional!</source> <translation>, che potrebbe compromettere l'anonimità della ring signature. Assicurati di farlo intenzionalmente!</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2152"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2937"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3705"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4184"/> + <source>Ring size must not be 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3717"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4196"/> + <source>ring size %u is too small, minimum is %u</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3724"/> <source>wrong number of arguments</source> <translation>numero di argomenti errato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2257"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2744"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3830"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4479"/> <source>No payment id is included with this transaction. Is this okay? (Y/Yes/N/No): </source> <translation>Nessun id pagamento è incluso in questa transazione. Questo è corretto? (S/Sì/N/No): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2298"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2762"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3872"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4286"/> <source>No outputs found, or daemon is not ready</source> <translation>Nessun output trovato, o il daemon non è pronto</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2399"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2576"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2837"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> - <source>failed to get random outputs to mix: </source> - <translation>impossibile recuperare output casuali da mixare: </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <source>Transaction successfully saved to </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2518"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2779"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>, txid </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>Failed to save transaction to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4081"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4314"/> <source>Sweeping %s in %llu transactions for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> <translation>Sto eseguendo lo sweep di %s nelle transazioni %llu per un totale commissioni di %s. Va bene? (S/Sì/N/No): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2524"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4087"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4320"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4519"/> <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> <translation>Sto eseguendo lo sweep di %s per un totale commissioni di %s. Va bene? (S/Sì/N/No): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2969"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4630"/> <source>Donating </source> <translation>Donando </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3053"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %sIs this okay? (Y/Yes/N/No): </source> - <translation>Caricate %lu transazioni, per %s, commissioni %s, %s, %s, con mixaggio %lu. %sQuesto è corretto? (S/Sì/N/No): </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3077"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4792"/> <source>This is a watch only wallet</source> <translation>Questo è un portafoglio solo-vista</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4443"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6571"/> <source>usage: show_transfer <txid></source> <translation>uso: show_transfer <txid></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6673"/> + <source>Double spend seen on the network: this transaction may or may not end up being mined</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6708"/> <source>Transaction ID not found</source> <translation>ID transazione non trovato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="237"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="214"/> <source>true</source> <translation>vero</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="267"/> <source>failed to parse refresh type</source> <translation>impossibile fare il parsing del tipo di refresh</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="330"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="362"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="608"/> <source>wallet is watch-only and has no seed</source> <translation>il portafoglio è solo-vista e non possiede un seed</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="353"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="367"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="613"/> <source>wallet is non-deterministic and has no seed</source> <translation>il portafoglio è non-deterministico e non possiede un seed</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="450"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="467"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1245"/> <source>wallet is watch-only and cannot transfer</source> <translation>il portafoglio è solo-vista e non può eseguire trasferimenti</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="474"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="480"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="496"/> - <source>mixin must be an integer >= 2</source> - <translation>mixin deve essere un integrale >= 2</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="501"/> - <source>could not change default mixin</source> - <translation>impossibile cambiare mixin standard</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="545"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1321"/> <source>could not change default priority</source> <translation>impossibile cambiare priorità standard</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> - <source>Synchronize transactions and balance</source> - <translation>Sincronizzare transazioni e bilancio</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="702"/> - <source>incoming_transfers [available|unavailable] - Show incoming transfers, all or filtered by availability</source> - <translation>incoming_transfers [available|unavailable] - Mostra trasferimenti in entrata, tutti o filtrati per disponibilità</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="703"/> - <source>payments <PID_1> [<PID_2> ... <PID_N>] - Show payments for given payment ID[s]</source> - <translation>payments <PID_1> [<PID_2> ... <PID_N>] - Mostra pagamenti per gli/l' ID fornito/i</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="706"/> - <source>transfer [<priority>] [<mixin_count>] <address> <amount> [<payment_id>] - Transfer <amount> to <address>. <priority> is the priority of the transaction. The higher the priority, the higher the fee of the transaction. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <mixin_count> is the number of extra inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> - <translation>transfer [<priority>] [<mixin_count>] <address> <amount> [<payment_id>] - Transfer <amount> to <address>. <priority> è la priorità della transazione. Maggiore è la priorità, maggiori saranno le tasse per la transazione. Valori validi in ordini di priorità (dal più basso al più alto) sono:unimportant, normal, elevated, priority. se omesso, verrà usato il valore standard (vedi il comando "set priority"). <mixin_count> è il numero di inputs extra da inludere per intracciabilità. Puoi eseguire pagamenti multipli in una volta aggiungendo <address_2> <amount_2> etcetera (prima dell' ID pagamento, se incluso)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="707"/> - <source>locked_transfer [<mixin_count>] <addr> <amount> <lockblocks>(Number of blocks to lock the transaction for, max 1000000) [<payment_id>]</source> - <translation>locked_transfer [<mixin_count>] <addr> <amount> <lockblocks>(Numero di blocchi durante i quali bloccare la transazione, max 1000000) [<payment_id>]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="708"/> - <source>Send all unmixable outputs to yourself with mixin 0</source> - <translation>Manda tutti gli outputs non spendibili a te stesso con mixaggio 0</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> - <source>Sign a transaction from a file</source> - <translation>Firma una transazione da file</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="713"/> - <source>Submit a signed transaction from a file</source> - <translation>Invia una transazione firmata da file</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="716"/> - <source>integrated_address [PID] - Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> - <translation>integrated_address [PID] - Codifica un ID pagamento in un indirizzo integrato per l'indirizzo pubblico del portafoglio corrente (nessun parametro usa un payment ID casuale), oppure decodifica un indirizzo integrato in indirizzo standard e payment ID</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="718"/> - <source>Save wallet data</source> - <translation>Salva i dati del portafoglio</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="719"/> - <source>Save a watch-only keys file</source> - <translation>Salva una chiave solo-vista</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> - <source>Display private view key</source> - <translation>Visualizza chiave di visualizzazione privata</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="721"/> - <source>Display private spend key</source> - <translation>Visualizza chiave di spesa privata</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="722"/> - <source>Display Electrum-style mnemonic seed</source> - <translation>Visualizza il seed mnemonico in stile Electrum</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="723"/> - <source>Available options: seed language - set wallet seed language; always-confirm-transfers <1|0> - whether to confirm unsplit txes; print-ring-members <1|0> - whether to print detailed information about ring members during confirmation; store-tx-info <1|0> - whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference; default-mixin <n> - set default mixin (default is 4); auto-refresh <1|0> - whether to automatically sync new blocks from the daemon; refresh-type <full|optimize-coinbase|no-coinbase|default> - set wallet refresh behaviour; priority [0|1|2|3|4] - default/unimportant/normal/elevated/priority fee; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - set default monero (sub-)unit; min-outputs-count [n] - try to keep at least that many outputs of value at least min-outputs-value; min-outputs-value [n] - try to keep at least min-outputs-count outputs of at least that value; merge-destinations <1|0> - whether to merge multiple payments to the same destination address</source> - <translation>Opzioni disponibili: seed language - seleziona lingua del seed per il portafoglio; always-confirm-transfers <1|0> - se confermare unsplit txes; print-ring-members <1|0> - se mostrare informazioni dettagliate sui ring members durante le conferme; store-tx-info <1|0> - se salvare le informazioni tx in uscita (indirizzo di destinazione, payment ID, chiave tx segreta) per riferimento futuro; default-mixin <n> - imposta default mixin (default è 4); auto-refresh <1|0> - se sincronizzare automaticamente i nuovi blocchi dal daemon; refresh-type <full|optimize-coinbase|no-coinbase|default> - imposta modalità wallet refresh; priority [0|1|2|3|4] - default/unimportant/normal/elevated/priority fee; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - imposta default monero (sub-)unit; min-outputs-count [n] - cerca di mantenere come minimo tanti outputs quanti il valore di min-outputs-value; min-outputs-value [n] - cerca di mantenere i min-outputs-count outputs come minimo a questo valore; merge-destinations <1|0> - se fondere pagamenti multipli allo stessp indirizzo di destinazione</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="724"/> - <source>Rescan blockchain for spent outputs</source> - <translation>Riscannerizza blockchain in cerca di outputs spesi</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="725"/> - <source>Get transaction key (r) for a given <txid></source> - <translation>Ricevi una chiave transazione (r) per ogni <txid></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="726"/> - <source>Check amount going to <address> in <txid></source> - <translation>Controlla l'ammontare che va da <address> a <txid></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="730"/> - <source>unspent_outputs [<min_amount> <max_amount>] - Show unspent outputs within an optional amount range</source> - <translation>unspent_outputs [<min_amount> <max_amount>] - Mostra gli outputs non spesi entro un intervallo di valori opzionale</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="731"/> - <source>Rescan blockchain from scratch</source> - <translation>Avvia scansione blockchain dal principio</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="732"/> - <source>Set an arbitrary string note for a txid</source> - <translation>Imposta una stringa arbitraria per un txid</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="733"/> - <source>Get a string note for a txid</source> - <translation>Ricevi una stringa di annotazione per un txid</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> - <source>Show wallet status information</source> - <translation>Visualizza informazioni sulla stato del portafoglio</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="735"/> - <source>Sign the contents of a file</source> - <translation>Firma il contenuto di un file</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="736"/> - <source>Verify a signature on the contents of a file</source> - <translation>Verifica firma sul contesto del file</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="737"/> - <source>Export a signed set of key images</source> - <translation>Esporta un set di chiavi firmate</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="738"/> - <source>Import signed key images list and verify their spent status</source> - <translation>Importa immagine firmata della lista chiavi e verifica lo status degli spesi</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="739"/> - <source>Export a set of outputs owned by this wallet</source> - <translation>Esporta un set di outputs posseduti da questo portafoglio</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> - <source>Import set of outputs owned by this wallet</source> - <translation>Importa un set di outputs posseduti da questo portafoglio</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="802"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1919"/> <source>full (slowest, no assumptions); optimize-coinbase (fast, assumes the whole coinbase is paid to a single address); no-coinbase (fastest, assumes we receive no coinbase transaction), default (same as optimize-coinbase)</source> <translation>completo (più lento, nessuna ipotesi); optimize-coinbase (veloce, ipotizza che l'intero coinbase viene pagato ad un indirizzo singolo); no-coinbase (il più veloce, ipotizza di non ricevere una transazione coinbase), default (come optimize-coinbase)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="806"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1923"/> <source>monero, millinero, micronero, nanonero, piconero</source> <translation>monero, millinero, micronero, nanonero, piconero</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="851"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1975"/> <source>Wallet name not valid. Please try again or use Ctrl-C to quit.</source> <translation>Nome del portafoglio non valido. Prova di nuovo o usa Ctrl-C per uscire</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1992"/> <source>Wallet and key files found, loading...</source> <translation>Portafoglio e chiavi trovate, sto caricando...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="874"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1998"/> <source>Key file found but not wallet file. Regenerating...</source> <translation>Ho trovato la chiave ma non il portafoglio. Sto rigenerando...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2004"/> <source>Key file not found. Failed to open wallet: </source> <translation>Chiave non trovata. Impossibile aprire portafoglio: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="894"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2023"/> <source>Generating new wallet...</source> <translation>Sto generando un nuovo portafoglio...</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> - <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-json="jsonfilename" and --generate-from-keys="wallet_name"</source> - <translation>non puoi specificare più di un --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-json="jsonfilename" e --generate-from-keys="wallet_name"</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="953"/> - <source>can't specify both --restore-deterministic-wallet and --non-deterministic</source> - <translation>impossibile specificare sia --restore-deterministic-wallet che --non-deterministic</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="958"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2092"/> <source>--restore-deterministic-wallet uses --generate-new-wallet, not --wallet-file</source> <translation>--restore-deterministic-wallet usa --generate-new-wallet, non --wallet-file</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="982"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2141"/> <source>Electrum-style word list failed verification</source> <translation>La lista di parole stile Electrum ha fallito la verifica</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="994"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1046"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1063"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2194"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2229"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2284"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2357"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2373"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2413"/> <source>No data supplied, cancelled</source> <translation>Nessun dato fornito, cancellato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1002"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1054"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2220"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2718"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3276"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3378"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3530"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4048"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2254"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2363"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3791"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4240"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4454"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4994"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5058"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6106"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6353"/> <source>failed to parse address</source> <translation>impossibile fare il parsing dell'indirizzo</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1017"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2200"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2290"/> <source>failed to parse view key secret key</source> <translation>impossibile fare il parsing chiave di visualizzazione chiave segreta</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1027"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1103"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2210"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2308"/> <source>failed to verify view key secret key</source> <translation>impossibile verificare chiave di visualizzazione chiave segreta</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1031"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2214"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2393"/> <source>view key does not match standard address</source> <translation>la chiave di visualizzazione non corrisponde all'indirizzo standard</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1036"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1111"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1128"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2238"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2316"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2480"/> <source>account creation failed</source> <translation>creazione dell'account fallita</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2234"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2274"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2418"/> <source>failed to parse spend key secret key</source> <translation>impossibile fare il parsing chiave di spesa chiave segreta</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1095"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2300"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2439"/> <source>failed to verify spend key secret key</source> <translation>impossibile verificare chiave di spesa chiave segreta</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2304"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2444"/> <source>spend key does not match standard address</source> <translation>la chiave di spesa non corrisponde all'indirizzo standard</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2471"/> <source>specify a wallet path with --generate-new-wallet (not --wallet-file)</source> <translation>specifica un percorso per il portafoglio con --generate-new-wallet (non --wallet-file)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1199"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2562"/> <source>failed to open account</source> <translation>impossibile aprire account</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1203"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1579"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1647"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3348"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2566"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3142"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4962"/> <source>wallet is null</source> <translation>il portafoglio è nullo</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1262"/> - <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address.</source> - <translation>Il daemon non è partito o è settato con la porta sbagliata. Assicurati che il daemon stia funzionando o fai ripartire il wallet con l'indirizzo corretto del daemon</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1306"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1311"/> - <source>invalid language choice passed. Please try again. + <location filename="../src/simplewallet/simplewallet.cpp" line="2680"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2685"/> + <source>invalid language choice entered. Please try again. </source> <translation>linguaggio selezionato scorretto. Prova di nuovo.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1370"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2753"/> <source>View key: </source> <translation>Chiave di visualizzazione: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1385"/> - <source>Your wallet has been generated! -To start synchronizing with the daemon, use the "refresh" command. -Use the "help" command to see the list of available commands. -Always use the "exit" command when closing monero-wallet-cli to save -your current session's state. Otherwise, you might need to synchronize -your wallet again (your wallet keys are NOT at risk in any case). -</source> - <translation>Il tuo portafoglio è stato generato! -Per iniziare a sincronizzarlo con il daemon, usa il comando "refresh". -Usa il comando "help" per vedere la lista dei comandi disponibili. -Usa sempre il comando "exit" quando chiudi monero-wallet-cli per salvare -lo stato della tua sessione 's corrente. Altrimenti potresti dover sincronizzare -di nuovo il tuo portafoglio (le chiavi del tuo portafoglio NON sono a rischio in sessun caso).</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1492"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2935"/> <source>You may want to remove the file "%s" and try again</source> <translation>Potresti voler rimuovere il file "%s" e provare di nuovo</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2963"/> <source>failed to deinitialize wallet</source> <translation>deinizializzazione portafoglio fallita</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1570"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3021"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3524"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6410"/> <source>this command requires a trusted daemon. Enable with --trusted-daemon</source> <translation>questo comando richiede un daemon fidato. Abilita questa opzione con --trusted-daemon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3152"/> <source>blockchain can't be saved: </source> <translation>impossibile salvare la blockchain: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1982"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2386"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2563"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2824"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3538"/> <source>daemon is busy. Please try again later.</source> <translation>il daemon è impegnato. Prova più tardi</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1986"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2390"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2567"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2828"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3243"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3542"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>nessuna connessione con il daemon. Assicurati che sia in funzione</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1750"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3253"/> <source>refresh error: </source> <translation>errore refresh: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3303"/> <source>Balance: </source> <translation>Bilancio: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>pubkey</source> <translation>pubkey</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>key image</source> <translation>immagine chiave</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>unlocked</source> <translation>sbloccato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>ringct</source> <translation>ringct</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>T</source> <translation>T</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>F</source> <translation>F</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>locked</source> <translation>bloccato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>RingCT</source> <translation>RingCT</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>-</source> <translation>-</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> <source>payment ID has invalid format, expected 16 or 64 character hex string: </source> <translation>l'id pagamento è in un formato invalido, dovrebbe essere una stringa hex di 16 o 64 caratteri</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3546"/> <source>failed to get spent status</source> <translation>impossibile recuperare status spesi</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>the same transaction</source> <translation>la stessa transazione</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>blocks that are temporally very close</source> <translation>i blocchi che sono temporalmente molto vicini</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2206"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3778"/> <source>Locked blocks too high, max 1000000 (˜4 yrs)</source> <translation>I blocchi bloccati sono troppo alti, max 1000000 (˜4 anni)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2921"/> - <source>missing amount threshold</source> - <translation>manca la soglia massima dell'ammontare</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3895"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Is this okay anyway? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2926"/> - <source>invalid amount threshold</source> - <translation>ammontare soglia invalido</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3900"/> + <source>There is currently a %u block backlog at that fee level. Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3022"/> - <source>Change goes to more than one address</source> - <translation>Il cambiamento va a più di un indirizzo</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Failed to check for backlog: </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> - <source>usage: get_tx_proof <txid> <dest_address> [<tx_key>]</source> - <translation>uso: get_tx_proof <txid> <dest_address> [<tx_key>]</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3946"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4302"/> + <source> +Transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4307"/> + <source>Spending from address index %d +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3953"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4309"/> + <source>WARNING: Outputs of multiple addresses are being used together, which might potentially compromise your privacy. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4424"/> + <source>failed to parse Payment ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4440"/> + <source>usage: sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4447"/> + <source>failed to parse key image</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3289"/> - <source>failed to parse tx_key</source> - <translation>impossibile fare il parsing del tx_key</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4499"/> + <source>No outputs found</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3298"/> - <source>Tx secret key was found for the given txid, but you've also provided another tx secret key which doesn't match the found one.</source> - <translation>Una chiave tx segreta è stata trovata per il txid fornito, ma hai anche fornito un'altra chiave segreta tx che non corrsisponde a quella trovata.</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4504"/> + <source>Multiple transactions are created, which is not supposed to happen</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3306"/> - <source>Tx secret key wasn't found in the wallet file. Provide it as the optional third parameter if you have it elsewhere.</source> - <translation>Chiave segreta tx non trovata nel file del portafoglio. Forniscila come terzo parametro opzionale se la conservi da qualche altra parte.</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4509"/> + <source>The transaction uses multiple or no inputs, which is not supposed to happen</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3330"/> - <source>Signature: </source> - <translation>Firma: </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4586"/> + <source>missing threshold amount</source> + <translation>manca la soglia massima dell'ammontare</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3508"/> - <source>usage: check_tx_proof <txid> <address> <signature></source> - <translation>uso: check_tx_proof <txid> <address> <signature></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4591"/> + <source>invalid amount threshold</source> + <translation>ammontare soglia invalido</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3539"/> - <source>Signature header check error</source> - <translation>Errore controllo firma intestazione</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4601"/> + <source>donations are not enabled on the testnet</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3550"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3560"/> - <source>Signature decoding error</source> - <translation>Errore decodificazione firma</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4608"/> + <source>usage: donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3602"/> - <source>Tx pubkey was not found</source> - <translation>Chiave pubblica tx non trovata</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4716"/> + <source>Change goes to more than one address</source> + <translation>Il cambiamento va a più di un indirizzo</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3609"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5077"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5188"/> <source>Good signature</source> <translation>Firma valida</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3613"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5293"/> <source>Bad signature</source> <translation>Firma invalida</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3621"/> - <source>failed to generate key derivation</source> - <translation>generazione derivazione chiave fallita</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3994"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6046"/> <source>usage: integrated_address [payment ID]</source> <translation>uso: integrated_address [ID pagamento]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4017"/> - <source>Integrated address: account %s, payment ID %s</source> - <translation>Indirizzo integrato: account %s, ID pagamento %s</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4022"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> <source>Standard address: </source> <translation>Indirizzo standard: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4027"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6087"/> <source>failed to parse payment ID or address</source> <translation>impossibile fare il parsing di ID pagamento o indirizzo</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4038"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6098"/> <source>usage: address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)]</source> <translation>uso: address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4070"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6128"/> <source>failed to parse payment ID</source> <translation>impossibile fare il parsing di ID pagamento</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4088"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6146"/> <source>failed to parse index</source> <translation>impossibile fare il parsing dell'indice</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6154"/> <source>Address book is empty.</source> <translation>La rubrica è vuota.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4102"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6160"/> <source>Index: </source> <translation>Indice: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4103"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6161"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6287"/> <source>Address: </source> <translation>Indirizzo: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6162"/> <source>Payment ID: </source> <translation>ID Pagamento: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6163"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6286"/> <source>Description: </source> <translation>Descrizione: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4115"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6173"/> <source>usage: set_tx_note [txid] free text note</source> <translation>uso: set_tx_note [txid] free text note</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4143"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6201"/> <source>usage: get_tx_note [txid]</source> <translation>uso: get_tx_note [txid]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4193"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6304"/> <source>usage: sign <filename></source> <translation>uso: sign <filename></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4198"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6309"/> <source>wallet is watch-only and cannot sign</source> <translation>il portafoglio è solo-vista e non può firmare</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4207"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4374"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6346"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6501"/> <source>failed to read file </source> <translation>impossibile leggere il file </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5039"/> + <source>usage: check_tx_proof <txid> <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5066"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5181"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5278"/> + <source>failed to load signature file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5117"/> + <source>usage: get_spend_proof <txid> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5123"/> + <source>wallet is watch-only and cannot generate the proof</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5161"/> + <source>usage: check_spend_proof <txid> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5202"/> + <source>usage: get_reserve_proof (all|<amount>) [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5208"/> + <source>The reserve proof can be generated only by a full wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5253"/> + <source>usage: check_reserve_proof <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5271"/> + <source>Address must not be a subaddress</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5289"/> + <source>Good signature -- total: %s, spent: %s, unspent: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5353"/> + <source>usage: show_transfers [in|out|all|pending|failed] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5490"/> + <source>[Double spend seen on the network: this transaction may or may not end up being mined] </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5526"/> + <source>usage: unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5586"/> + <source>There is no unspent output in the specified address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5699"/> + <source> (no daemon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5701"/> + <source> (out of sync)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5758"/> + <source>(Untitled account)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5771"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5789"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5837"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6013"/> + <source>failed to parse index: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5776"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5995"/> + <source>specify an index between 0 and </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5873"/> + <source>usage: + account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source> +Grand total: + Balance: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source>, unlocked balance: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5909"/> + <source>Untagged accounts:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5915"/> + <source>Tag %s is unregistered.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5918"/> + <source>Accounts with tag: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5919"/> + <source>Tag's description: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Account</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5927"/> + <source> %c%8u %6s %21s %21s %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5937"/> + <source>----------------------------------------------------------------------------------</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5938"/> + <source>%15s %21s %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>Primary address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>(used)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5982"/> + <source>(Untitled address)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6022"/> + <source><index_min> is already out of bound</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6027"/> + <source><index_max> exceeds the bound</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6035"/> + <source>usage: address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed> ]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6053"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6065"/> + <source>Integrated addresses can only be created for account 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6077"/> + <source>Integrated address: %s, payment ID: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> + <source>Subaddress: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6242"/> + <source>usage: get_description</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6248"/> + <source>no description found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6250"/> + <source>description found: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6285"/> + <source>Filename: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6290"/> + <source>Watch only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6292"/> + <source>%u/%u multisig%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6294"/> + <source>Normal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6295"/> + <source>Type: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Testnet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Yes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>No</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6314"/> + <source>This wallet is multisig and cannot sign</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6335"/> <source>usage: verify <filename> <address> <signature></source> <translation>uso: verify <filename> <address> <signature></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4246"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6360"/> <source>Bad signature from </source> <translation>Firma non valida da </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4250"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6364"/> <source>Good signature from </source> <translation>Firma valida da </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4259"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6373"/> <source>usage: export_key_images <filename></source> <translation>uso: export_key_images <filename></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4264"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6378"/> <source>wallet is watch-only and cannot export key images</source> <translation>il portafoglio è solo-vista e non può esportare immagini chiave</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4274"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4346"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="906"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6391"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6473"/> <source>failed to save file </source> <translation>impossibile salvare file </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4285"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6402"/> <source>Signed key images exported to </source> <translation>Chiave immagine firmata esportata in </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4293"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6416"/> <source>usage: import_key_images <filename></source> <translation>uso: import_key_images <filename></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6447"/> <source>usage: export_outputs <filename></source> <translation>uso: export_outputs <filename></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4357"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6484"/> <source>Outputs exported to </source> <translation>Outputs esportati in </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4365"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6492"/> <source>usage: import_outputs <filename></source> <translation>uso: import_outputs <filename></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2246"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3818"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5545"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5553"/> <source>amount is wrong: </source> <translation>l'ammontare non è corretto: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2247"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3820"/> <source>expected number from 0 to </source> <translation>deve essere un numero da 0 a </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2378"/> - <source>Money successfully sent, transaction </source> - <translation>Fondi inviati con successo, transazione </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3141"/> - <source>no connection to daemon. Please, make sure daemon is running.</source> - <translation>nessuna connessione con il daemon, assicurati che stia funzionando.</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2597"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3171"/> - <source>not enough outputs for specified mixin_count</source> - <translation>non ci sono abbastanza output per lo specificato mixin_count</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>output amount</source> - <translation>ammontare output</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>found outputs to mix</source> - <translation>trovati outputs da mixare</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2428"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2605"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2866"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3179"/> - <source>transaction was not constructed</source> - <translation>la transazione non è stata costruita</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2609"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2870"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> - <source>transaction %s was rejected by daemon with status: </source> - <translation>la transazione %s è stata respinta dal daemon con status: </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2443"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2620"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2881"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3191"/> - <source>one of destinations is zero</source> - <translation>una delle destinazioni è zero</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3195"/> - <source>Failed to find a suitable way to split transactions</source> - <translation>Impossibile trovare un modo corretto per dividere le transazioni</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2452"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2629"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2890"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3200"/> - <source>unknown transfer error: </source> - <translation>errore trasferimento sconosciuto: </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2516"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4079"/> <source>Sweeping </source> <translation>Eseguendo lo sweeping </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2785"/> - <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No)</source> - <translation>Eseguendo lo sweeping di %s per un totale commissioni di %s. Va bene? (S/Sì/N/No)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2816"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3129"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4559"/> <source>Money successfully sent, transaction: </source> <translation>Fondi inviati con successo, transazione: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3047"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4757"/> <source>%s change to %s</source> <translation>%s cambia in %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3050"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4760"/> <source>no change</source> <translation>nessun cambiamento</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1044"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1057"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4826"/> <source>Transaction successfully signed to file </source> <translation>Transazione firmata con successo nel file </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4876"/> <source>usage: get_tx_key <txid></source> <translation>uso: get_tx_key <txid></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3234"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3266"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3354"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3519"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4122"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4150"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4884"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5050"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5130"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6208"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6578"/> <source>failed to parse txid</source> <translation>parsing txid fallito</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3245"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4898"/> <source>Tx key: </source> <translation>Chiave Tx: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3250"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4903"/> <source>no tx keys found for this txid</source> <translation>nessuna chiave tx trovata per questo txid</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> - <source>usage: check_tx_key <txid> <txkey> <address></source> - <translation>uso: check_tx_key <txid> <txkey> <address></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3361"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3368"/> - <source>failed to parse tx key</source> - <translation>impossibile fare il parsing della chiave tx</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3573"/> - <source>failed to get transaction from daemon</source> - <translation>impossibile recuperare transazione dal daemon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4912"/> + <source>usage: get_tx_proof <txid> <address> [<message>]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3584"/> - <source>failed to parse transaction from daemon</source> - <translation>impossibile fare il parsing della transazione dal daemon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4937"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5147"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5239"/> + <source>signature file saved to: </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3418"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3591"/> - <source>failed to validate transaction from daemon</source> - <translation>convalida transazione dal daemon fallita</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4939"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5149"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5241"/> + <source>failed to save signature file</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3596"/> - <source>failed to get the right transaction from daemon</source> - <translation>impossibile recuperare la corretta transazione dal daemon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4953"/> + <source>usage: check_tx_key <txid> <txkey> <address></source> + <translation>uso: check_tx_key <txid> <txkey> <address></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3385"/> - <source>failed to generate key derivation from supplied parameters</source> - <translation>impossibile generare chiave derivazione dai parametri forniti</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4976"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4985"/> + <source>failed to parse tx key</source> + <translation>impossibile fare il parsing della chiave tx</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3471"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4943"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5031"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5109"/> <source>error: </source> <translation>errore: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>received</source> <translation>ricevuto/i</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>in txid</source> <translation>in txid</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5026"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5099"/> <source>received nothing in txid</source> <translation>nulla ricevuto in txid</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5010"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5083"/> <source>WARNING: this transaction is not yet included in the blockchain!</source> <translation>AVVISO: questa transazione non è ancora inclusa nella blockchain!</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3494"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5016"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5089"/> <source>This transaction has %u confirmations</source> <translation>Questa transazione ha %u conferme</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3498"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5020"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5093"/> <source>WARNING: failed to determine number of confirmations!</source> <translation>AVVISO: impossibile determinare il numero di conferme!</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> - <source>usage: show_transfers [in|out|all|pending|failed] [<min_height> [<max_height>]]</source> - <translation>uso: show_transfers [in|out|all|pending|failed] [<min_height> [<max_height>]]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5401"/> <source>bad min_height parameter:</source> <translation>parametro min_height non corretto:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3712"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5413"/> <source>bad max_height parameter:</source> <translation>parametro max_height non corretto:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> <source>in</source> <translation>in</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>out</source> <translation>out</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>failed</source> <translation>fallito</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>pending</source> <translation>in attesa</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3809"/> - <source>usage: unspent_outputs [<min_amount> <max_amount>]</source> - <translation>uso: unspent_outputs [<min_amount> <max_amount>]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3824"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5560"/> <source><min_amount> should be smaller than <max_amount></source> <translation><min_amount> dovrebbe essere più piccolo di <max_amount></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source> Amount: </source> <translation> Ammontare: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source>, number of keys: </source> <translation>, numero di chiavi: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3861"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5597"/> <source> </source> <translation> </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3866"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5602"/> <source> Min block height: </source> <translation> Altezza minima blocco: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3867"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5603"/> <source> Max block height: </source> <translation> Altezza massima blocco: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5604"/> <source> Min amount found: </source> <translation> Ammontare minimo trovato: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3869"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5605"/> <source> Max amount found: </source> <translation> Ammontare massimo trovato: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3870"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5606"/> <source> Total count: </source> <translation> Conto totale: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3910"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5646"/> <source> Bin size: </source> <translation> Dimensione Bin: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3911"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5647"/> <source> Outputs per *: </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3913"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5649"/> <source>count ^ </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> <source> |</source> <translation> |</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> <source> +</source> <translation> +</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> <source>+--> block height </source> <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source> ^</source> <translation> ^</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source>^ </source> <translation>^ </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5655"/> <source> </source> <translation> </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3969"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5696"/> <source>wallet</source> <translation>portafoglio</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4000"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="666"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6057"/> <source>Random payment ID: </source> <translation>ID pagamento casuale: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6058"/> <source>Matching integrated address: </source> <translation>Indirizzo integrato corrispondente: </translation> </message> </context> <context> + <name>genms</name> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="70"/> + <source>Base filename (-1, -2, etc suffixes will be appended as needed)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="71"/> + <source>Give threshold and participants at once as M/N</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="72"/> + <source>How many participants wil share parts of the multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="73"/> + <source>How many signers are required to sign a valid transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="74"/> + <source>Create testnet multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="81"/> + <source>Generating %u %u/%u multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="138"/> + <source>Error verifying multisig extra info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="146"/> + <source>Error finalizing multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="153"/> + <source>Generated multisig wallets for address </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="157"/> + <source>Error creating multisig wallets: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="176"/> + <source>This program generates a set of multisig wallets - use this simpler scheme only if all the participants trust each other</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="194"/> + <source>Error: expected N/M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="202"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="211"/> + <source>Error: either --scheme or both of --threshold and --participants may be given</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="218"/> + <source>Error: expected N > 1 and N <= M, but got N==%u and M==%d</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="227"/> + <source>Error: --filename-base is required</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="233"/> + <source>Error: unsupported scheme: only N/N and N-1/N are supported</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>sw</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="115"/> <source>Generate new wallet and save it to <arg></source> <translation>Genera un nuovo portafoglio e salvalo in <arg></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> <source>Generate incoming-only wallet from view key</source> <translation>Genera un portafoglio solo-ricezione da chiave di visualizzazione</translation> </message> <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <source>Generate deterministic wallet from spend key</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../src/simplewallet/simplewallet.cpp" line="118"/> <source>Generate wallet from private keys</source> <translation>Genera portafoglio da chiavi private</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="120"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="119"/> + <source>Generate a master wallet from multisig wallet keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="121"/> + <source>Language for mnemonic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="122"/> <source>Specify Electrum seed for wallet recovery/creation</source> <translation>Specifica il seed stile Electrum per recuperare/creare il portafoglio</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="121"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="123"/> <source>Recover wallet using Electrum-style mnemonic seed</source> <translation>Recupera portafoglio usando il seed mnemonico stile-Electrum</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="122"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="124"/> + <source>Recover multisig wallet using Electrum-style mnemonic seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="125"/> <source>Generate non-deterministic view and spend keys</source> <translation>Crea chiavi di visualizzione e chiavi di spesa non-deterministiche</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="126"/> <source>Enable commands which rely on a trusted daemon</source> <translation>Abilita comandi dipendenti da un daemon fidato</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="124"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="127"/> <source>Allow communicating with a daemon that uses a different RPC version</source> <translation>Permetti comunicazioni con un daemon che usa una versione RPC differente</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="125"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="128"/> <source>Restore from specific blockchain height</source> <translation>Ripristina da specifico blocco</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="136"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="129"/> + <source>The newly created transaction will not be relayed to the monero network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="171"/> <source>daemon is busy. Please try again later.</source> <translation>il daemon è occupato. Prova più tardi.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="145"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="180"/> <source>possibly lost connection to daemon</source> <translation>possibile perdita di connessione con il daemon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="197"/> <source>Error: </source> <translation>Errore: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4614"/> - <source>Failed to initialize wallet</source> - <translation>Inizializzazione wallet fallita</translation> - </message> -</context> -<context> - <name>tools::dns_utils</name> - <message> - <location filename="../src/common/dns_utils.cpp" line="430"/> - <source>DNSSEC validation passed</source> - <translation>Convalida DNSSEC passata</translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="434"/> - <source>WARNING: DNSSEC validation was unsuccessful, this address may not be correct!</source> - <translation>AVVISO: convalida DNSSEC fallita, questo indirizzo potrebbe non essere corretto!</translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="437"/> - <source>For URL: </source> - <translation>Per URL: </translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="439"/> - <source> Monero Address = </source> - <translation> Indirizzo Monero = </translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="441"/> - <source>Is this OK? (Y/n) </source> - <translation>Va bene? (S/n) </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6787"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="451"/> - <source>you have cancelled the transfer request</source> - <translation>hai cancellato la richiesta di transferimento</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6801"/> + <source>Failed to initialize wallet</source> + <translation>Inizializzazione wallet fallita</translation> </message> </context> <context> <name>tools::wallet2</name> <message> - <location filename="../src/wallet/wallet2.cpp" line="106"/> + <location filename="../src/wallet/wallet2.cpp" line="113"/> <source>Use daemon instance at <host>:<port></source> <translation>Usa instanza daemon in <host>:<port></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="107"/> + <location filename="../src/wallet/wallet2.cpp" line="114"/> <source>Use daemon instance at host <arg> instead of localhost</source> <translation>Usa istanza daemon all'host <arg> invece che localhost</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Wallet password</source> - <translation>Password portafoglio</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="109"/> + <location filename="../src/wallet/wallet2.cpp" line="116"/> <source>Wallet password file</source> <translation>File password portafoglio</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="110"/> + <location filename="../src/wallet/wallet2.cpp" line="117"/> <source>Use daemon instance at port <arg> instead of 18081</source> <translation>Usa istanza daemon alla porta <arg> invece che alla 18081</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="112"/> + <location filename="../src/wallet/wallet2.cpp" line="119"/> <source>For testnet. Daemon must also be launched with --testnet flag</source> <translation>Per testnet. Il daemon può anche essere lanciato con la flag --testnet</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="113"/> + <location filename="../src/wallet/wallet2.cpp" line="120"/> <source>Restricts to view-only commands</source> <translation>Restringi a comandi di tipo solo-vista</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="152"/> + <location filename="../src/wallet/wallet2.cpp" line="168"/> <source>can't specify daemon host or port more than once</source> <translation>non puoi specificare la porta o l'host del daemon più di una volta</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="188"/> + <location filename="../src/wallet/wallet2.cpp" line="204"/> <source>can't specify more than one of --password and --password-file</source> <translation>non puoi specificare più di un --password e --password-file</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="204"/> + <location filename="../src/wallet/wallet2.cpp" line="217"/> <source>the password file specified could not be read</source> <translation>il file password specificato non può essere letto</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Enter new wallet password</source> - <translation>Inserisci una nuova password per il portafoglio</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="464"/> - <source>failed to read wallet password</source> - <translation>impossibile leggere password portafoglio</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="227"/> + <location filename="../src/wallet/wallet2.cpp" line="240"/> <source>Failed to load file </source> <translation>Impossibile caricare file </translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="108"/> + <location filename="../src/wallet/wallet2.cpp" line="115"/> <source>Wallet password (escape/quote as needed)</source> <translation>Wallet password (escape/quote se necessario)</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="111"/> + <location filename="../src/wallet/wallet2.cpp" line="118"/> <source>Specify username[:password] for daemon RPC client</source> <translation>Specificare username[:password] per client del daemon RPC</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="233"/> + <location filename="../src/wallet/wallet2.cpp" line="224"/> + <source>no password specified; use --prompt-for-password to prompt for a password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="246"/> <source>Failed to parse JSON</source> <translation>Impossibile fare il parsing di JSON</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="240"/> + <location filename="../src/wallet/wallet2.cpp" line="253"/> <source>Version %u too new, we can only grok up to %u</source> <translation>La versione %u è troppo recente, possiamo comprendere solo fino alla versione %u</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="258"/> + <location filename="../src/wallet/wallet2.cpp" line="269"/> <source>failed to parse view key secret key</source> <translation>impossibile fare il parsing di chiave di visualizzazione chiave segreta</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="264"/> - <location filename="../src/wallet/wallet2.cpp" line="331"/> - <location filename="../src/wallet/wallet2.cpp" line="373"/> + <location filename="../src/wallet/wallet2.cpp" line="274"/> + <location filename="../src/wallet/wallet2.cpp" line="339"/> + <location filename="../src/wallet/wallet2.cpp" line="380"/> <source>failed to verify view key secret key</source> <translation>impossibile verificare chiave di visualizzazione chiave segreta</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="276"/> + <location filename="../src/wallet/wallet2.cpp" line="285"/> <source>failed to parse spend key secret key</source> <translation>impossibile fare il parsing chiave di spesa chiave segreta</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="282"/> - <location filename="../src/wallet/wallet2.cpp" line="343"/> - <location filename="../src/wallet/wallet2.cpp" line="394"/> + <location filename="../src/wallet/wallet2.cpp" line="290"/> + <location filename="../src/wallet/wallet2.cpp" line="349"/> + <location filename="../src/wallet/wallet2.cpp" line="405"/> <source>failed to verify spend key secret key</source> <translation>impossibile verificare chiave di spesa chiave segreta</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="295"/> + <location filename="../src/wallet/wallet2.cpp" line="302"/> <source>Electrum-style word list failed verification</source> <translation>Verifica lista di parole stile-Electrum fallita</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="306"/> - <source>At least one of Electrum-style word list and private view key must be specified</source> - <translation>Almeno una parola della lista stile-Electrum e una chiave privata di visualizzazione devono essere specificate</translation> + <location filename="../src/wallet/wallet2.cpp" line="319"/> + <source>At least one of Electrum-style word list and private view key and private spend key must be specified</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="311"/> + <location filename="../src/wallet/wallet2.cpp" line="323"/> <source>Both Electrum-style word list and private key(s) specified</source> <translation>Specificate entrambe lista parole stile-Electrum e chiave/i privata/e </translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="324"/> + <location filename="../src/wallet/wallet2.cpp" line="333"/> <source>invalid address</source> <translation>indirizzo invalido</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="335"/> + <location filename="../src/wallet/wallet2.cpp" line="342"/> <source>view key does not match standard address</source> <translation>la chiave di visualizzazione non corrisponde all'indirizzo standard</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="347"/> + <location filename="../src/wallet/wallet2.cpp" line="352"/> <source>spend key does not match standard address</source> <translation>la chiave di spesa non corrisponde all'indirizzo standard</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="356"/> + <location filename="../src/wallet/wallet2.cpp" line="360"/> <source>Cannot generate deprecated wallets from JSON</source> <translation>Impossibile creare portafogli disapprovati da JSON</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="403"/> + <location filename="../src/wallet/wallet2.cpp" line="392"/> + <source>failed to parse address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="398"/> + <source>Address must be specified in order to create watch-only wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="413"/> <source>failed to generate new wallet: </source> <translation>impossibile generare nuovo portafoglio: </translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="5205"/> + <location filename="../src/wallet/wallet2.cpp" line="2813"/> + <location filename="../src/wallet/wallet2.cpp" line="2873"/> + <location filename="../src/wallet/wallet2.cpp" line="2952"/> + <location filename="../src/wallet/wallet2.cpp" line="2998"/> + <location filename="../src/wallet/wallet2.cpp" line="3089"/> + <location filename="../src/wallet/wallet2.cpp" line="3189"/> + <location filename="../src/wallet/wallet2.cpp" line="3599"/> + <location filename="../src/wallet/wallet2.cpp" line="3955"/> + <source>Primary account</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="7914"/> + <source>No funds received in this tx.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="8607"/> <source>failed to read file </source> <translation>lettura file fallita</translation> </message> @@ -2618,153 +3888,191 @@ Outputs per *: </source> <context> <name>tools::wallet_rpc_server</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="151"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="160"/> <source>Daemon is local, assuming trusted</source> <translation>Il daemon è locale, viene considerato fidato</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="175"/> + <source>Failed to create directory </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="177"/> + <source>Failed to create directory %s: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source>Cannot specify --</source> <translation>Impossibile specificare --</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source> and --</source> <translation> e --</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>Failed to create file </source> <translation>Impossibile creare file </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>. Check permissions or remove file</source> <translation>. Controlla permessi o rimuovi il file</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="209"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="217"/> <source>Error writing to file </source> <translation>Errore durante scrittura su file </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="212"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="220"/> <source>RPC username/password is stored in file </source> <translation>Username/password RPC conservato nel file </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1748"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="443"/> + <source>Tag %s is unregistered.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2435"/> + <source>Transaction not possible. Available only %s, transaction amount %s = %s + %s (fee)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2870"/> + <source>This is the RPC monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2893"/> <source>Can't specify more than one of --wallet-file and --generate-from-json</source> <translation>Non puoi specificare più di un --wallet-file e --generate-from-json</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2905"/> <source>Must specify --wallet-file or --generate-from-json or --wallet-dir</source> <translation>Devi specificare --wallet-file o --generate-from-json o --wallet-dir</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1764"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2909"/> <source>Loading wallet...</source> <translation>Sto caricando il portafoglio...</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1789"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1814"/> - <source>Storing wallet...</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2942"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2975"/> + <source>Saving wallet...</source> <translation>Sto salvando il portafoglio...</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1791"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1816"/> - <source>Stored ok</source> - <translation>Salvato con successo</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2944"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2977"/> + <source>Successfully saved</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1794"/> - <source>Loaded ok</source> - <translation>Caricato con successo</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2947"/> + <source>Successfully loaded</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1798"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2951"/> <source>Wallet initialization failed: </source> <translation>Inizializzazione portafoglio fallita: </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1805"/> - <source>Failed to initialize wallet rpc server</source> - <translation>Inizializzazione server rpc portafoglio fallita</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2958"/> + <source>Failed to initialize wallet RPC server</source> + <translation>Inizializzazione server RPC portafoglio fallita</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1809"/> - <source>Starting wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2962"/> + <source>Starting wallet RPC server</source> <translation>Server RPC portafoglio in avvio</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1811"/> - <source>Stopped wallet rpc server</source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2969"/> + <source>Failed to run wallet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2972"/> + <source>Stopped wallet RPC server</source> <translation>Server RPC portafoglio arrestato</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1820"/> - <source>Failed to store wallet: </source> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2981"/> + <source>Failed to save wallet: </source> <translation>Impossibile salvare portafoglio: </translation> </message> </context> <context> <name>wallet_args</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1715"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4580"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2856"/> <source>Wallet options</source> <translation>Opzioni portafoglio</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="59"/> + <location filename="../src/wallet/wallet_args.cpp" line="73"/> <source>Generate wallet from JSON format file</source> <translation>Genera portafoglio da file JSON</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="63"/> + <location filename="../src/wallet/wallet_args.cpp" line="77"/> <source>Use wallet <arg></source> <translation>Usa portafoglio <arg></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="87"/> + <location filename="../src/wallet/wallet_args.cpp" line="104"/> <source>Max number of threads to use for a parallel job</source> <translation>Numero massimo di threads da utilizzare per un lavoro parallelo</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="88"/> + <location filename="../src/wallet/wallet_args.cpp" line="105"/> <source>Specify log file</source> <translation>Specificare file di log</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="89"/> + <location filename="../src/wallet/wallet_args.cpp" line="106"/> <source>Config file</source> <translation>File configurazione</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="98"/> + <location filename="../src/wallet/wallet_args.cpp" line="115"/> <source>General options</source> <translation>Opzioni generali</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="128"/> + <location filename="../src/wallet/wallet_args.cpp" line="138"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_args.cpp" line="161"/> <source>Can't find config file </source> <translation>Impossibile trovare file configurazione </translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="172"/> + <location filename="../src/wallet/wallet_args.cpp" line="195"/> <source>Logging to: </source> <translation>Sto salvando il Log in: </translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="173"/> + <location filename="../src/wallet/wallet_args.cpp" line="197"/> <source>Logging to %s</source> <translation>Sto salvando il Log in %s</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="153"/> + <location filename="../src/wallet/wallet_args.cpp" line="140"/> <source>Usage:</source> <translation>Uso:</translation> </message> diff --git a/translations/monero_sv.ts b/translations/monero_sv.ts index 0090857c0..6b461c102 100644 --- a/translations/monero_sv.ts +++ b/translations/monero_sv.ts @@ -1,27 +1,27 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE TS []> +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> <TS version="2.1"> <context> <name>Monero::AddressBookImpl</name> <message> - <location filename="../src/wallet/api/address_book.cpp" line="55"/> + <location filename="../src/wallet/api/address_book.cpp" line="53"/> <source>Invalid destination address</source> <translation>Ogiltig måladress</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="65"/> + <location filename="../src/wallet/api/address_book.cpp" line="63"/> <source>Invalid payment ID. Short payment ID should only be used in an integrated address</source> <translation>Ogiltigt betalnings-ID. Kort betalnings-ID ska endast användas i en integrerad adress</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="72"/> + <location filename="../src/wallet/api/address_book.cpp" line="70"/> <source>Invalid payment ID</source> <translation>Ogiltigt betalnings-ID</translation> </message> <message> - <location filename="../src/wallet/api/address_book.cpp" line="79"/> - <source>Integrated address and long payment id can't be used at the same time</source> - <translation>Integrerad adress och långt betalnings-ID kan inte användas samtidigt</translation> + <location filename="../src/wallet/api/address_book.cpp" line="77"/> + <source>Integrated address and long payment ID can't be used at the same time</source> + <translation type="unfinished"></translation> </message> </context> <context> @@ -37,32 +37,32 @@ <translation>Det gick inte att skriva transaktioner till fil</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="114"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="115"/> <source>daemon is busy. Please try again later.</source> <translation>daemonen är upptagen. Försök igen senare.</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="117"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="118"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>ingen anslutning till daemonen. Se till att daemonen körs.</translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="121"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="122"/> <source>transaction %s was rejected by daemon with status: </source> <translation>transaktionen %s avvisades av daemonen med status: </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="126"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="127"/> <source>. Reason: </source> <translation>. Orsak: </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="128"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="129"/> <source>Unknown exception: </source> <translation>Okänt undantag: </translation> </message> <message> - <location filename="../src/wallet/api/pending_transaction.cpp" line="131"/> + <location filename="../src/wallet/api/pending_transaction.cpp" line="132"/> <source>Unhandled exception</source> <translation>Ohanterat undantag</translation> </message> @@ -81,323 +81,324 @@ <translation>Det gick inte att signera transaktionen</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="135"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="168"/> <source>Claimed change does not go to a paid address</source> <translation>Begärd växel går inte till en betald adress</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="141"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="174"/> <source>Claimed change is larger than payment to the change address</source> <translation>Begärd växel är större än betalning till växeladressen</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="151"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="184"/> <source>Change goes to more than one address</source> <translation>Växel går till mer än en adress</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="164"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="197"/> <source>sending %s to %s</source> <translation>skickar %s till %s</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="170"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="203"/> <source>with no destinations</source> <translation>utan några mål</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="176"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="209"/> <source>%s change to %s</source> <translation>%s växel till %s</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="179"/> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="212"/> <source>no change</source> <translation>ingen växel</translation> </message> <message> - <location filename="../src/wallet/api/unsigned_transaction.cpp" line="181"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %s</source> - <translation>Läste in %lu transaktioner, för %s, avgift %s, %s, %s, med minsta mixin %lu. %s</translation> + <location filename="../src/wallet/api/unsigned_transaction.cpp" line="214"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu. %s</source> + <translation type="unfinished"></translation> </message> </context> <context> <name>Monero::WalletImpl</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="942"/> + <location filename="../src/wallet/api/wallet.cpp" line="1111"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation>betalnings-ID har ogiltigt format. En 16- eller 64-teckens hex-sträng förväntades: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="952"/> + <location filename="../src/wallet/api/wallet.cpp" line="1121"/> <source>Failed to add short payment id: </source> <translation>Det gick inte att lägga till kort betalnings-ID: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="978"/> - <location filename="../src/wallet/api/wallet.cpp" line="1072"/> + <location filename="../src/wallet/api/wallet.cpp" line="1154"/> + <location filename="../src/wallet/api/wallet.cpp" line="1258"/> <source>daemon is busy. Please try again later.</source> <translation>daemonen är upptagen. Försök igen senare.</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="981"/> - <location filename="../src/wallet/api/wallet.cpp" line="1075"/> + <location filename="../src/wallet/api/wallet.cpp" line="1157"/> + <location filename="../src/wallet/api/wallet.cpp" line="1261"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>ingen anslutning till daemonen. Se till att daemonen körs.</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="984"/> - <location filename="../src/wallet/api/wallet.cpp" line="1078"/> + <location filename="../src/wallet/api/wallet.cpp" line="1160"/> + <location filename="../src/wallet/api/wallet.cpp" line="1264"/> <source>RPC error: </source> <translation>RPC-fel: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1081"/> + <location filename="../src/wallet/api/wallet.cpp" line="1197"/> + <location filename="../src/wallet/api/wallet.cpp" line="1301"/> + <source>not enough outputs for specified ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> + <source>found outputs to use</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1201"/> + <source>Please sweep unmixable outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1267"/> <source>failed to get random outputs to mix</source> <translation>det gick inte att hämta slumpmässiga utgångar att mixa</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="994"/> - <location filename="../src/wallet/api/wallet.cpp" line="1088"/> + <location filename="../src/wallet/api/wallet.cpp" line="1170"/> + <location filename="../src/wallet/api/wallet.cpp" line="1274"/> <source>not enough money to transfer, available only %s, sent amount %s</source> <translation>inte tillräckligt med pengar för överföring, endast tillgängligt %s, skickat belopp %s</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="403"/> + <location filename="../src/wallet/api/wallet.cpp" line="474"/> <source>failed to parse address</source> <translation>det gick inte att parsa adressen</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="415"/> + <location filename="../src/wallet/api/wallet.cpp" line="486"/> <source>failed to parse secret spend key</source> <translation>det gick inte att parsa hemlig spendernyckel</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="425"/> + <location filename="../src/wallet/api/wallet.cpp" line="496"/> <source>No view key supplied, cancelled</source> <translation>Ingen visningsnyckel angiven, avbruten</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="432"/> + <location filename="../src/wallet/api/wallet.cpp" line="503"/> <source>failed to parse secret view key</source> <translation>det gick inte att parsa hemlig visningsnyckel</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="442"/> + <location filename="../src/wallet/api/wallet.cpp" line="513"/> <source>failed to verify secret spend key</source> <translation>det gick inte att verifiera hemlig spendernyckel</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="447"/> + <location filename="../src/wallet/api/wallet.cpp" line="518"/> <source>spend key does not match address</source> <translation>spendernyckel matchar inte adress</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="453"/> + <location filename="../src/wallet/api/wallet.cpp" line="524"/> <source>failed to verify secret view key</source> <translation>det gick inte att verifiera hemlig visningsnyckel</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="458"/> + <location filename="../src/wallet/api/wallet.cpp" line="529"/> <source>view key does not match address</source> <translation>visningsnyckel matchar inte adress</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="477"/> + <location filename="../src/wallet/api/wallet.cpp" line="548"/> <source>failed to generate new wallet: </source> <translation>det gick inte att skapa ny plånbok: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="799"/> + <location filename="../src/wallet/api/wallet.cpp" line="773"/> + <source>Failed to send import wallet request</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="919"/> <source>Failed to load unsigned transactions</source> <translation>Det gick inte att läsa in osignerade transaktioner</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="820"/> + <location filename="../src/wallet/api/wallet.cpp" line="940"/> <source>Failed to load transaction from file</source> <translation>Det gick inte att läsa in transaktion från fil</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="838"/> + <location filename="../src/wallet/api/wallet.cpp" line="958"/> <source>Wallet is view only</source> <translation>Plånboken är endast för granskning</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="847"/> + <location filename="../src/wallet/api/wallet.cpp" line="967"/> <source>failed to save file </source> <translation>det gick inte att spara fil </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="874"/> + <location filename="../src/wallet/api/wallet.cpp" line="986"/> + <source>Key images can only be imported with a trusted daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="999"/> <source>Failed to import key images: </source> <translation>det gick inte att importera nyckelavbildningar: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="987"/> + <location filename="../src/wallet/api/wallet.cpp" line="1032"/> + <source>Failed to get subaddress label: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1046"/> + <source>Failed to set subaddress label: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/api/wallet.cpp" line="1163"/> <source>failed to get random outputs to mix: %s</source> <translation>det gick inte att hitta slumpmässiga utgångar att mixa: %s</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1003"/> - <location filename="../src/wallet/api/wallet.cpp" line="1097"/> - <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> - <translation>ej tillräckligt med pengar för överföring, endast tillgängligt %s, transaktionsbelopp %s = %s + %s (avgift)</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1179"/> + <location filename="../src/wallet/api/wallet.cpp" line="1283"/> + <source>not enough money to transfer, overall balance only %s, sent amount %s</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1012"/> - <location filename="../src/wallet/api/wallet.cpp" line="1106"/> - <source>not enough outputs for specified mixin_count</source> - <translation>inte tillräckligt många utgångar för angiven mixin_count</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1188"/> + <location filename="../src/wallet/api/wallet.cpp" line="1292"/> + <source>not enough money to transfer, available only %s, transaction amount %s = %s + %s (fee)</source> + <translation>ej tillräckligt med pengar för överföring, endast tillgängligt %s, transaktionsbelopp %s = %s + %s (avgift)</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> + <location filename="../src/wallet/api/wallet.cpp" line="1199"/> + <location filename="../src/wallet/api/wallet.cpp" line="1303"/> <source>output amount</source> <translation>utgångens belopp</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1014"/> - <location filename="../src/wallet/api/wallet.cpp" line="1108"/> - <source>found outputs to mix</source> - <translation>hittade utgångar att mixa</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet.cpp" line="1019"/> - <location filename="../src/wallet/api/wallet.cpp" line="1113"/> + <location filename="../src/wallet/api/wallet.cpp" line="1205"/> + <location filename="../src/wallet/api/wallet.cpp" line="1308"/> <source>transaction was not constructed</source> <translation>transaktionen konstruerades inte</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1023"/> - <location filename="../src/wallet/api/wallet.cpp" line="1117"/> + <location filename="../src/wallet/api/wallet.cpp" line="1209"/> + <location filename="../src/wallet/api/wallet.cpp" line="1312"/> <source>transaction %s was rejected by daemon with status: </source> <translation>transaktionen %s avvisades av daemonen med status: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1030"/> - <location filename="../src/wallet/api/wallet.cpp" line="1124"/> + <location filename="../src/wallet/api/wallet.cpp" line="1216"/> + <location filename="../src/wallet/api/wallet.cpp" line="1319"/> <source>one of destinations is zero</source> <translation>ett av målen är noll</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1033"/> - <location filename="../src/wallet/api/wallet.cpp" line="1127"/> + <location filename="../src/wallet/api/wallet.cpp" line="1219"/> + <location filename="../src/wallet/api/wallet.cpp" line="1322"/> <source>failed to find a suitable way to split transactions</source> <translation>det gick inte att hitta ett lämpligt sätt att dela upp transaktioner</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1036"/> - <location filename="../src/wallet/api/wallet.cpp" line="1130"/> + <location filename="../src/wallet/api/wallet.cpp" line="1222"/> + <location filename="../src/wallet/api/wallet.cpp" line="1325"/> <source>unknown transfer error: </source> <translation>okänt överföringsfel: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1039"/> - <location filename="../src/wallet/api/wallet.cpp" line="1133"/> + <location filename="../src/wallet/api/wallet.cpp" line="1225"/> + <location filename="../src/wallet/api/wallet.cpp" line="1328"/> <source>internal error: </source> <translation>internt fel: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1042"/> - <location filename="../src/wallet/api/wallet.cpp" line="1136"/> + <location filename="../src/wallet/api/wallet.cpp" line="1228"/> + <location filename="../src/wallet/api/wallet.cpp" line="1331"/> <source>unexpected error: </source> <translation>oväntat fel: </translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1045"/> - <location filename="../src/wallet/api/wallet.cpp" line="1139"/> + <location filename="../src/wallet/api/wallet.cpp" line="1231"/> + <location filename="../src/wallet/api/wallet.cpp" line="1334"/> <source>unknown error</source> <translation>okänt fel</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="1419"/> - <source>Rescan spent can only be used with a trusted daemon</source> - <translation>Genomsök efter spenderade kan endast användas med en betrodd daemon</translation> - </message> -</context> -<context> - <name>Monero::WalletManagerImpl</name> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="192"/> - <source>failed to parse txid</source> - <translation>det gick inte att parsa transaktions-id</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="199"/> - <location filename="../src/wallet/api/wallet_manager.cpp" line="206"/> - <source>failed to parse tx key</source> - <translation>det gick inte att parsa transaktionsnyckeln</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="217"/> - <source>failed to parse address</source> - <translation>det gick inte att parsa adressen</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="227"/> - <source>failed to get transaction from daemon</source> - <translation>det gick inte att hämta transaktion från daemon</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="238"/> - <source>failed to parse transaction from daemon</source> - <translation>det gick inte att parsa transaktion från daemonen</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="245"/> - <source>failed to validate transaction from daemon</source> - <translation>det gick inte att validera transaktion från daemon</translation> - </message> - <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="250"/> - <source>failed to get the right transaction from daemon</source> - <translation>det gick inte att hämta rätt transaktion från daemonen</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1412"/> + <location filename="../src/wallet/api/wallet.cpp" line="1441"/> + <location filename="../src/wallet/api/wallet.cpp" line="1494"/> + <location filename="../src/wallet/api/wallet.cpp" line="1525"/> + <location filename="../src/wallet/api/wallet.cpp" line="1556"/> + <location filename="../src/wallet/api/wallet.cpp" line="1579"/> + <source>Failed to parse txid</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="257"/> - <source>failed to generate key derivation from supplied parameters</source> - <translation>det gick inte att skapa nyckelhärledning från angivna parametrar</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1430"/> + <source>no tx keys found for this txid</source> + <translation type="unfinished">inga tx-nycklar kunde hittas för detta txid</translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="313"/> - <source>error: </source> - <translation>fel: </translation> + <location filename="../src/wallet/api/wallet.cpp" line="1450"/> + <location filename="../src/wallet/api/wallet.cpp" line="1460"/> + <source>Failed to parse tx key</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>received</source> - <translation>mottaget</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1470"/> + <location filename="../src/wallet/api/wallet.cpp" line="1502"/> + <location filename="../src/wallet/api/wallet.cpp" line="1533"/> + <location filename="../src/wallet/api/wallet.cpp" line="1621"/> + <source>Failed to parse address</source> + <translation type="unfinished">Det gick inte att parsa adressen</translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="319"/> - <source>in txid</source> - <translation>i transaktions-id</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1627"/> + <source>Address must not be a subaddress</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/api/wallet_manager.cpp" line="323"/> - <source>received nothing in txid</source> - <translation>tog emot ingenting i transaktions-id</translation> + <location filename="../src/wallet/api/wallet.cpp" line="1849"/> + <source>Rescan spent can only be used with a trusted daemon</source> + <translation>Genomsök efter spenderade kan endast användas med en betrodd daemon</translation> </message> </context> <context> <name>Wallet</name> <message> - <location filename="../src/wallet/api/wallet.cpp" line="212"/> + <location filename="../src/wallet/api/wallet.cpp" line="246"/> <source>Failed to parse address</source> <translation>Det gick inte att parsa adressen</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="219"/> + <location filename="../src/wallet/api/wallet.cpp" line="253"/> <source>Failed to parse key</source> <translation>Det gick inte att parsa nyckeln</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="227"/> + <location filename="../src/wallet/api/wallet.cpp" line="261"/> <source>failed to verify key</source> <translation>det gick inte att verifiera nyckeln</translation> </message> <message> - <location filename="../src/wallet/api/wallet.cpp" line="237"/> + <location filename="../src/wallet/api/wallet.cpp" line="271"/> <source>key does not match address</source> <translation>nyckeln matchar inte adressen</translation> </message> @@ -405,1911 +406,3080 @@ <context> <name>command_line</name> <message> - <location filename="../src/common/command_line.cpp" line="76"/> + <location filename="../src/common/command_line.cpp" line="57"/> <source>yes</source> <translation>ja</translation> </message> + <message> + <location filename="../src/common/command_line.cpp" line="71"/> + <source>no</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::rpc_args</name> <message> - <location filename="../src/rpc/rpc_args.cpp" line="38"/> - <source>Specify ip to bind rpc server</source> - <translation>Ange IP-adress för att binda till RPC-server</translation> + <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <source>Specify IP to bind RPC server</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="39"/> + <location filename="../src/rpc/rpc_args.cpp" line="41"/> <source>Specify username[:password] required for RPC server</source> <translation>Ange användarnamn[:lösenord] som krävs av RPC-servern</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="40"/> + <location filename="../src/rpc/rpc_args.cpp" line="42"/> <source>Confirm rpc-bind-ip value is NOT a loopback (local) IP</source> <translation>Bekräftelsevärde för rpc-bind-ip är INTE ett lokalt (loopback) IP</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="66"/> + <location filename="../src/rpc/rpc_args.cpp" line="43"/> + <source>Specify a comma separated list of origins to allow cross origin resource sharing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="70"/> <source>Invalid IP address given for --</source> <translation>Ogiltig IP-adress angiven för --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="74"/> + <location filename="../src/rpc/rpc_args.cpp" line="78"/> <source> permits inbound unencrypted external connections. Consider SSH tunnel or SSL proxy instead. Override with --</source> <translation> tillåter inkommande okrypterade externa anslutningar. Överväg att använda SSH-tunnel eller SSL-proxy istället. Åsidosätt med --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> <source>Username specified with --</source> <translation>Användarnamn angivet med --</translation> </message> <message> - <location filename="../src/rpc/rpc_args.cpp" line="89"/> + <location filename="../src/rpc/rpc_args.cpp" line="95"/> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> <source> cannot be empty</source> <translation> kan inte vara tomt</translation> </message> + <message> + <location filename="../src/rpc/rpc_args.cpp" line="105"/> + <source> requires RFC server password --</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>cryptonote::simple_wallet</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="290"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="479"/> <source>Commands: </source> <translation>Kommandon: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> <source>failed to read wallet password</source> <translation>det gick inte att läsa lösenord för plånboken</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1325"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2699"/> <source>invalid password</source> <translation>ogiltigt lösenord</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="697"/> - <source>start_mining [<number_of_threads>] - Start mining in daemon</source> - <translation>start_mining [<antal_trådar>] - Starta brytning i daemonen</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="698"/> - <source>Stop mining in daemon</source> - <translation>Avbryt brytning i daemonen</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="699"/> - <source>Save current blockchain data</source> - <translation>Spara aktuella blockkedje-data</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="701"/> - <source>Show current wallet balance</source> - <translation>Visa aktuellt saldo för plånboken</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="704"/> - <source>Show blockchain height</source> - <translation>Visa blockkedjans höjd</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> - <source>Show current wallet public address</source> - <translation>Visa plånbokens aktuella öppna adress</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="744"/> - <source>Show this help</source> - <translation>Visa denna hjälp</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="788"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1905"/> <source>set seed: needs an argument. available options: language</source> <translation>set seed: behöver ett argument. tillgängliga alternativ: språk</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="811"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1933"/> <source>set: unrecognized argument(s)</source> <translation>set: okända argument</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1442"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2869"/> <source>wallet file path not valid: </source> <translation>ogiltig sökväg till plånbok: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="863"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1987"/> <source>Attempting to generate or restore wallet, but specified file(s) exist. Exiting to not risk overwriting.</source> <translation>Försöker skapa eller återställa plånbok, men angivna filer existerar. Avslutar för att inte riskera att skriva över någonting.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="416"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="662"/> <source>usage: payment_id</source> <translation>användning: payment_id</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="710"/> - <source>sweep_below <amount_threshold> [mixin] address [payment_id] - Send all unlocked outputs below the threshold to an address</source> - <translation>sweep_below <tröskelbelopp> [mixin] <adress> [<betalnings_ID>] - Skicka alla upplåsta utgångar under tröskelbeloppet till en adress</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="743"/> - <source>Generate a new random full size payment id - these will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids</source> - <translation>Skapa ett nytt slumpmässigt betalnings-ID av full storlek - dessa kommer att vara okrypterade på blockkedjan, se integrated_address för krypterade korta betalnings-ID</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="774"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1891"/> <source>needs an argument</source> <translation>kräver ett argument</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="797"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="798"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="799"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="801"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="804"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="805"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1914"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1921"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1922"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1927"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1931"/> <source>0 or 1</source> <translation>0 eller 1</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="800"/> - <source>integer >= 2</source> - <translation>heltal >= 2</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="803"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1920"/> <source>0, 1, 2, 3, or 4</source> <translation>0, 1, 2, 3 eller 4</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1924"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1928"/> <source>unsigned integer</source> <translation>positivt heltal</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="912"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2041"/> <source>NOTE: the following 25 words can be used to recover access to your wallet. Write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control. </source> <translation>OBSERVERA: följande 25 ord kan användas för att återfå tillgång till din plånbok. Skriv ner och spara dem på ett säkert ställe. Spara dem inte i din e-post eller på något lagringsutrymme som du inte har direkt kontroll över. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="958"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2092"/> <source>--restore-deterministic-wallet uses --generate-new-wallet, not --wallet-file</source> <translation>--restore-deterministic-wallet använder --generate-new-wallet, inte --wallet-file</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="973"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2121"/> <source>specify a recovery parameter with the --electrum-seed="words list here"</source> <translation>ange en återställningsparameter med --electrum-seed="ordlista här"</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2471"/> <source>specify a wallet path with --generate-new-wallet (not --wallet-file)</source> <translation>ange sökväg till en plånbok med --generate-new-wallet (inte --wallet-file)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1261"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2635"/> <source>wallet failed to connect to daemon: </source> <translation>plånboken kunde inte ansluta till daemonen: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1269"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2643"/> <source>Daemon uses a different RPC major version (%u) than the wallet (%u): %s. Either update one of them, or use --allow-mismatched-daemon-version.</source> <translation>Daemonen använder en högre version av RPC (%u) än plånboken (%u): %s. Antingen uppdatera en av dem, eller använd --allow-mismatched-daemon-version.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1288"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2662"/> <source>List of available languages for your wallet's seed:</source> <translation>Lista över tillgängliga språk för din plånboks frö:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1297"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2671"/> <source>Enter the number corresponding to the language of your choice: </source> <translation>Ange det tal som motsvarar det språk du vill använda: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1354"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2737"/> <source>You had been using a deprecated version of the wallet. Please use the new seed that we provide. </source> <translation>Du hade använt en inaktuell version av plånboken. Använd det nya frö som vi tillhandahåller. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1368"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1425"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2751"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> <source>Generated new wallet: </source> <translation>Ny plånbok skapad: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1374"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2757"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> <source>failed to generate new wallet: </source> <translation>det gick inte att skapa ny plånbok: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2887"/> <source>Opened watch-only wallet</source> <translation>Öppnade plånbok för granskning</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1457"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2891"/> <source>Opened wallet</source> <translation>Öppnade plånbok</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1466"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2901"/> <source>You had been using a deprecated version of the wallet. Please proceed to upgrade your wallet. </source> <translation>Du hade använt en inaktuell version av plånboken. Fortsätt för att uppgradera din plånbok. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2916"/> <source>You had been using a deprecated version of the wallet. Your wallet file format is being upgraded now. </source> <translation>Du hade använt en inaktuell version av plånboken. Plånbokens filformat kommer nu att uppgraderas. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1489"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2924"/> <source>failed to load wallet: </source> <translation>det gick inte att läsa in plånboken: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1497"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2941"/> <source>Use the "help" command to see the list of available commands. </source> <translation>Använd kommandot "help" för att se en lista över tillgängliga kommandon. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2986"/> <source>Wallet data saved</source> <translation>Plånboksdata sparades</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3072"/> <source>Mining started in daemon</source> <translation>Brytning startad i daemonen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1615"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3074"/> <source>mining has NOT been started: </source> <translation>brytning har INTE startats: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1634"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3093"/> <source>Mining stopped in daemon</source> <translation>Brytning stoppad i daemonen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3095"/> <source>mining has NOT been stopped: </source> <translation>brytning har INTE stoppats: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1655"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> <source>Blockchain saved</source> <translation>Blockkedjan sparad</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1687"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1699"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3165"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3196"/> <source>Height </source> <translation>Höjd </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1671"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1688"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3197"/> <source>transaction </source> <translation>transaktion </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1672"/> - <source>received </source> - <translation>mottaget </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1689"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3185"/> <source>spent </source> <translation>spenderad </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3198"/> <source>unsupported transaction format</source> <translation>transaktionsformatet stöds inte</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1718"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3219"/> <source>Starting refresh...</source> <translation>Startar uppdatering …</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3232"/> <source>Refresh done, blocks received: </source> <translation>Uppdatering färdig, mottagna block: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2186"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2701"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3758"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> <source>payment id has invalid format, expected 16 or 64 character hex string: </source> <translation>betalnings-ID har ogiltigt format. En 16- eller 64-teckens hex-sträng förväntades: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2201"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3773"/> <source>bad locked_blocks parameter:</source> <translation>dålig parameter för locked_blocks:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2228"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2726"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3801"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4462"/> <source>a single transaction cannot use more than one payment id: </source> <translation>en enstaka transaktion kan inte använda mer än ett betalnings-ID: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2237"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2735"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3810"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4257"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4430"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4470"/> <source>failed to set up payment id, though it was decoded correctly</source> <translation>det gick inte att upprätta betalnings-ID, trots att det avkodades korrekt</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2262"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2355"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2533"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2749"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3835"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3916"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3987"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4271"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4329"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4484"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4527"/> <source>transaction cancelled.</source> <translation>transaktion avbröts.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3895"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Is this okay anyway? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3900"/> + <source>There is currently a %u block backlog at that fee level. Is this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3905"/> + <source>Failed to check for backlog: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3946"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4302"/> + <source> +Transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4307"/> + <source>Spending from address index %d +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3953"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4309"/> + <source>WARNING: Outputs of multiple addresses are being used together, which might potentially compromise your privacy. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3955"/> <source>Sending %s. </source> <translation>Skickar %s. </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2326"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3958"/> <source>Your transaction needs to be split into %llu transactions. This will result in a transaction fee being applied to each transaction, for a total fee of %s</source> <translation>Transaktionen behöver delas upp i %llu transaktioner. Detta kommer att göra att en transaktionsavgift läggs till varje transaktion, med ett totalt belopp på %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3964"/> <source>The transaction fee is %s</source> <translation>Transaktionsavgiften är %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2335"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3967"/> <source>, of which %s is dust from change</source> <translation>, varav %s är damm från växel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>.</source> <translation>.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2336"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3968"/> <source>A total of %s from dust change will be sent to dust address</source> <translation>Ett total belopp på %s från växeldamm kommer att skickas till damm-adressen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2341"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3973"/> <source>. This transaction will unlock on block %llu, in approximately %s days (assuming 2 minutes per block)</source> <translation>. Denna transaktion kommer att låsas upp vid block %llu, om ungefär %s dagar (förutsatt en blocktid på 2 minuter)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2367"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2544"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2805"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3999"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4011"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4340"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4352"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4537"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4549"/> <source>Failed to write transaction(s) to file</source> <translation>Det gick inte att skriva transaktioner till fil</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2371"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2548"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2809"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4003"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4015"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4111"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4344"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4356"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4553"/> <source>Unsigned transaction(s) successfully written to file: </source> <translation>Osignerade transaktioner skrevs till fil: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2406"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2583"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2844"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3157"/> - <source>Not enough money in unlocked balance</source> - <translation>Inte tillräckligt med pengar i upplåst saldo</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2415"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2592"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> - <source>Failed to find a way to create transactions. This is usually due to dust which is so small it cannot pay for itself in fees, or trying to send more money than the unlocked balance, or not leaving enough for fees</source> - <translation>Det gick inte att hitta något sätt att skapa transaktioner. Detta beror vanligtvis på damm som är så litet att det inte kan betala för sig självt i avgifter, eller ett försök att skicka mer pengar än upplåst saldo, eller att inte lämna tillräckligt för att täcka avgifterna</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2435"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2612"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2873"/> - <source>Reason: </source> - <translation>Orsak: </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2447"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2624"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2885"/> - <source>failed to find a suitable way to split transactions</source> - <translation>det gick inte att hitta ett lämpligt sätt att dela upp transaktioner</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2503"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4066"/> <source>No unmixable outputs found</source> <translation>Inga omixbara utgångar kunde hittas</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2709"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4149"/> <source>No address given</source> <translation>Ingen adress har angivits</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2921"/> - <source>missing amount threshold</source> - <translation>beloppströskel saknas</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4591"/> <source>invalid amount threshold</source> <translation>ogiltig beloppströskel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3008"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4702"/> <source>Claimed change does not go to a paid address</source> <translation>Begärd växel går inte till en betald adress</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3013"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4707"/> <source>Claimed change is larger than payment to the change address</source> <translation>Begärd växel är större än betalning till växeladressen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3035"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4738"/> <source>sending %s to %s</source> <translation>skickar %s till %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3041"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4751"/> <source>with no destinations</source> <translation>utan några mål</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3088"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4809"/> <source>Failed to sign transaction</source> <translation>Det gick inte att signera transaktionen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4815"/> <source>Failed to sign transaction: </source> <translation>Det gick inte att signera transaktion: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3120"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4852"/> <source>Failed to load transaction from file</source> <translation>Det gick inte att läsa in transaktion från fil</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3137"/> - <source>daemon is busy. Please try later</source> - <translation>daemonen är upptagen. Försök senare</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1745"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1995"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2395"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2572"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2833"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3146"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3551"/> <source>RPC error: </source> <translation>RPC-fel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="522"/> <source>wallet is watch-only and has no spend key</source> <translation>plånboken är enbart för granskning och har ingen spendernyckel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="390"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="636"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="780"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="848"/> <source>Your original password was incorrect.</source> <translation>Ditt ursprungliga lösenord var fel.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="404"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="650"/> <source>Error with wallet rewrite: </source> <translation>Fel vid återskrivning av plånbok: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="513"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1289"/> <source>priority must be 0, 1, 2, 3, or 4 </source> <translation>prioritet måste vara 0, 1, 2, 3 eller 4 </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="525"/> - <source>priority must be 0, 1, 2, 3,or 4</source> - <translation>prioritet måste vara 0, 1, 2, 3 eller 4</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="540"/> - <source>priority must be 0, 1, 2 3,or 4</source> - <translation>prioritet måste vara 0, 1, 2, 3 eller 4</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="623"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1404"/> <source>invalid unit</source> <translation>ogiltig enhet</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="641"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1422"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1484"/> <source>invalid count: must be an unsigned integer</source> <translation>ogiltigt värde för count: måste vara ett heltal utan tecken</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="659"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1440"/> <source>invalid value</source> <translation>ogiltigt värde</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="705"/> - <source>Same as transfer, but using an older transaction building algorithm</source> - <translation>Samma som transfer, men använder en äldre algoritm för att bygga transaktionen</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="1942"/> + <source>usage: set_log <log_level_number_0-4> | <categories></source> + <translation>användning: set_log <loggnivå_nummer_0-4> | <kategorier></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="709"/> - <source>sweep_all [mixin] address [payment_id] - Send all unlocked balance to an address</source> - <translation>sweep_all [mixin] adress [betalnings_id] - Skicka allt upplåst saldo till en adress</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="711"/> - <source>donate [<mixin_count>] <amount> [payment_id] - Donate <amount> to the development team (donate.getmonero.org)</source> - <translation>donate [<mixin_antal>] <belopp> [<betalnings_id>] - Donera <belopp> till utvecklingsteamet (donate.getmonero.org)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="714"/> - <source>set_log <level>|<categories> - Change current log detail (level must be <0-4>)</source> - <translation>set_log <nivå>|<kategorier> - Ändra detaljnivån för aktuell logg (nivå måste vara 0-4)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="717"/> - <source>address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)] - Print all entries in the address book, optionally adding/deleting an entry to/from it</source> - <translation>address_book [(add (<adress> [pid <långt eller kort betalnings-ID>])|<integrerad adress> [<beskrivning eventuellt med blanktecken>])|(delete <index>)] - Skriv ut alla poster i adressboken, eventuellt lägg till/ta bort en post till/från den</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="729"/> - <source>show_transfers [in|out|pending|failed|pool] [<min_height> [<max_height>]] - Show incoming/outgoing transfers within an optional height range</source> - <translation>show_transfers [in|out|pending|failed|pool] [<min_höjd> [<max_höjd>]] - Visa inkommande/utgående överföringar inom ett valfritt höjdintervall</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="741"/> - <source>Show information about a transfer to/from this address</source> - <translation>Visa information om en överföring till/från denna adress</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="742"/> - <source>Change wallet password</source> - <translation>Ändra lösenord för plånbok</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="820"/> - <source>usage: set_log <log_level_number_0-4> | <categories></source> - <translation>användning: set_log <loggnivå_nummer_0-4> | <kategorier></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="886"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2013"/> <source>(Y/Yes/N/No): </source> <translation>(J/Ja/N/Nej): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1157"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1184"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2509"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2536"/> <source>bad m_restore_height parameter: </source> <translation>dålig parameter för m_restore_height: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1162"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2514"/> <source>date format must be YYYY-MM-DD</source> <translation>datumformat måste vara ÅÅÅÅ-MM-DD</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1175"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2527"/> <source>Restore height is: </source> <translation>Återställningshöjd är: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1176"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2348"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2528"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3980"/> <source>Is this okay? (Y/Yes/N/No): </source> <translation>Är detta okej? (J/Ja/N/Nej): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1212"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2575"/> <source>Daemon is local, assuming trusted</source> <translation>Daemonen är lokal, utgår från att den är betrodd</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1553"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3004"/> <source>Password for new watch-only wallet</source> <translation>Lösenord för ny granskningsplånbok</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1604"/> - <source>invalid arguments. Please use start_mining [<number_of_threads>] [do_bg_mining] [ignore_battery], <number_of_threads> should be from 1 to </source> - <translation>ogiltiga argument. Använd start_mining [<antal_trådar>] [do_bg_mining] [ignore_battery], <antal_trådar> ska vara från 1 till </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3063"/> + <source>invalid arguments. Please use start_mining [<number_of_threads>] [do_bg_mining] [ignore_battery], <number_of_threads> should be from 1 to </source> + <translation>ogiltiga argument. Använd start_mining [<antal_trådar>] [do_bg_mining] [ignore_battery], <antal_trådar> ska vara från 1 till </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1755"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2457"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2634"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2895"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3205"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> <source>internal error: </source> <translation>internt fel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2000"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2462"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2639"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2900"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3210"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3263"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3556"/> <source>unexpected error: </source> <translation>oväntat fel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1765"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2005"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2467"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2644"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2905"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3215"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1119"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3561"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4138"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4371"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4570"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4865"/> <source>unknown error</source> <translation>okänt fel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> <source>refresh failed: </source> <translation>det gick inte att att uppdatera: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1770"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3273"/> <source>Blocks received: </source> <translation>Mottagna block: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1795"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3304"/> <source>unlocked balance: </source> <translation>upplåst saldo: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="808"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1925"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>amount</source> <translation>belopp</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="219"/> + <source>false</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="493"/> + <source>Unknown command: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="500"/> + <source>Command usage: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="503"/> + <source>Command description: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="551"/> + <source>wallet is multisig but not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="567"/> + <source>Enter optional seed encryption passphrase, empty to see raw seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="584"/> + <source>Failed to retrieve seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="603"/> + <source>wallet is multisig and has no seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="674"/> + <source>Cannot connect to daemon</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="679"/> + <source>Current fee is %s monero per kB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="695"/> + <source>Error: failed to estimate backlog array size: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> + <source>Error: bad estimated backlog array size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> + <source> (current)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="715"/> + <source>%u block (%u minutes) backlog at priority %u%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="717"/> + <source>%u to %u block (%u to %u minutes) backlog at priority %u</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> + <source>No backlog at priority </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="729"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="762"/> + <source>This wallet is already multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="767"/> + <source>wallet is watch-only and cannot be made multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="773"/> + <source>This wallet has been used before, please use a new wallet to create a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="747"/> + <source>Your password is incorrect.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="753"/> + <source>Send this multisig info to all other participants, then use make_multisig <threshold> <info1> [<info2>...] with others' multisig info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="754"/> + <source>This includes the PRIVATE view key, so needs to be disclosed only to that multisig wallet's participants </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="786"/> + <source>usage: make_multisig <threshold> <multisiginfo1> [<multisiginfo2>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="794"/> + <source>Invalid threshold</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="807"/> + <source>Another step is needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="809"/> + <source>Send this multisig info to all other participants, then use finalize_multisig <info1> [<info2>...] with others' multisig info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="815"/> + <source>Error creating multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="822"/> + <source>Error creating multisig: new wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="825"/> + <source> multisig address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="836"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="927"/> + <source>This wallet is not multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="841"/> + <source>This wallet is already finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="854"/> + <source>usage: finalize_multisig <multisiginfo1> [<multisiginfo2>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="862"/> + <source>Failed to finalize multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <source>Failed to finalize multisig: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="885"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="932"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1006"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1074"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1136"/> + <source>This multisig wallet is not yet finalized</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="890"/> + <source>usage: export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="913"/> + <source>Error exporting multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="917"/> + <source>Multisig info exported to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> + <source>usage: import_multisig_info <filename1> [<filename2>...] - one for each other participant</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="965"/> + <source>Multisig info imported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="969"/> + <source>Failed to import multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="980"/> + <source>Failed to update spent status after importing multisig info: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="985"/> + <source>Untrusted daemon, spent status may be incorrect. Use a trusted daemon and run "rescan_spent"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1131"/> + <source>This is not a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> + <source>usage: sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1024"/> + <source>Failed to sign multisig transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1030"/> + <source>Multisig error: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1035"/> + <source>Failed to sign multisig transaction: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1058"/> + <source>It may be relayed to the network with submit_multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <source>usage: submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1094"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1155"/> + <source>Failed to load multisig transaction from file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1160"/> + <source>Multisig transaction signed by only %u signers, needs %u more signatures</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1108"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6750"/> + <source>Transaction successfully submitted, transaction </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1109"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6751"/> + <source>You can check its status by using the `show_transfers` command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1141"/> + <source>usage: export_raw_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1176"/> + <source>Failed to export multisig transaction to file </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1180"/> + <source>Saved exported multisig transaction file(s): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1252"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1258"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1272"/> + <source>ring size must be an integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1277"/> + <source>could not change default ring size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1301"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1316"/> + <source>priority must be 0, 1, 2, 3, or 4</source> + <translation type="unfinished">prioritet måste vara 0, 1, 2, 3 eller 4 {0, 1, 2, 3,?} {4?}</translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <source>Invalid height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1564"/> + <source>start_mining [<number_of_threads>] [bg_mining] [ignore_battery]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1565"/> + <source>Start mining in the daemon (bg_mining and ignore_battery are optional booleans).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1568"/> + <source>Stop mining in the daemon.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1571"/> + <source>set_daemon <host>[:<port>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1572"/> + <source>Set another daemon to connect to.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1575"/> + <source>Save the current blockchain data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1578"/> + <source>Synchronize the transactions and balance.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1581"/> + <source>balance [detail]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1582"/> + <source>Show the wallet's balance of the currently selected account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1585"/> + <source>incoming_transfers [available|unavailable] [verbose] [index=<N1>[,<N2>[,...]]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1586"/> + <source>Show the incoming transfers, all or filtered by availability and address index.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1589"/> + <source>payments <PID_1> [<PID_2> ... <PID_N>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1590"/> + <source>Show the payments for the given payment IDs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1593"/> + <source>Show the blockchain height.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1596"/> + <source>transfer_original [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1597"/> + <source>Transfer <amount> to <address> using an older transaction building algorithm. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1599"/> + <source>transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1600"/> + <source>Transfer <amount> to <address>. If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1603"/> + <source>locked_transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <addr> <amount> <lockblocks> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1604"/> + <source>Transfer <amount> to <address> and lock it for <lockblocks> (max. 1000000). If the parameter "index=<N1>[,<N2>,...]" is specified, the wallet uses outputs received by addresses of those indices. If omitted, the wallet randomly chooses address indices to be used. In any case, it tries its best not to combine outputs across multiple addresses. <priority> is the priority of the transaction. The higher the priority, the higher the transaction fee. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <ring_size> is the number of inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1607"/> + <source>Send all unmixable outputs to yourself with ring_size 1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1609"/> + <source>sweep_all [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1610"/> + <source>Send all unlocked balance to an address. If the parameter "index<N1>[,<N2>,...]" is specified, the wallet sweeps outputs received by those address indices. If omitted, the wallet randomly chooses an address index to be used.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1613"/> + <source>sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1614"/> + <source>Send all unlocked outputs below the threshold to an address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1617"/> + <source>sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1618"/> + <source>Send a single output of the given key image to an address without change.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1621"/> + <source>donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1622"/> + <source>Donate <amount> to the development team (donate.getmonero.org).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1625"/> + <source>sign_transfer <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> + <source>Sign a transaction from a <file>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1629"/> + <source>Submit a signed transaction from a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1632"/> + <source>set_log <level>|{+,-,}<categories></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1633"/> + <source>Change the current log detail (level must be <0-4>).</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1636"/> + <source>account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1643"/> + <source>If no arguments are specified, the wallet shows all the existing accounts along with their balances. +If the "new" argument is specified, the wallet creates a new account with its label initialized by the provided label text (which can be empty). +If the "switch" argument is specified, the wallet switches to the account specified by <index>. +If the "label" argument is specified, the wallet sets the label of the account specified by <index> to the provided label text. +If the "tag" argument is specified, a tag <tag_name> is assigned to the specified accounts <account_index_1>, <account_index_2>, .... +If the "untag" argument is specified, the tags assigned to the specified accounts <account_index_1>, <account_index_2> ..., are removed. +If the "tag_description" argument is specified, the tag <tag_name> is assigned an arbitrary text <description>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1652"/> + <source>address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1653"/> + <source>If no arguments are specified or <index> is specified, the wallet shows the default or specified address. If "all" is specified, the walllet shows all the existing addresses in the currently selected account. If "new " is specified, the wallet creates a new address with the provided label text (which can be empty). If "label" is specified, the wallet sets the label of the address specified by <index> to the provided label text.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1656"/> + <source>integrated_address [<payment_id> | <address>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <source>Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1660"/> + <source>address_book [(add ((<address> [pid <id>])|<integrated address>) [<description possibly with whitespaces>])|(delete <index>)]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1661"/> + <source>Print all entries in the address book, optionally adding/deleting an entry to/from it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1664"/> + <source>Save the wallet data.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1667"/> + <source>Save a watch-only keys file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1670"/> + <source>Display the private view key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1673"/> + <source>Display the private spend key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1676"/> + <source>Display the Electrum-style mnemonic seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1679"/> + <source>set <option> [<value>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1680"/> + <source>Available options: + seed language + Set the wallet's seed language. + always-confirm-transfers <1|0> + Whether to confirm unsplit txes. + print-ring-members <1|0> + Whether to print detailed information about ring members during confirmation. + store-tx-info <1|0> + Whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference. + default-ring-size <n> + Set the default ring size (default and minimum is 5). + auto-refresh <1|0> + Whether to automatically synchronize new blocks from the daemon. + refresh-type <full|optimize-coinbase|no-coinbase|default> + Set the wallet's refresh behaviour. + priority [0|1|2|3|4] + Set the fee too default/unimportant/normal/elevated/priority. + confirm-missing-payment-id <1|0> + ask-password <1|0> + unit <monero|millinero|micronero|nanonero|piconero> + Set the default monero (sub-)unit. + min-outputs-count [n] + Try to keep at least that many outputs of value at least min-outputs-value. + min-outputs-value [n] + Try to keep at least min-outputs-count outputs of at least that value. + merge-destinations <1|0> + Whether to merge multiple payments to the same destination address. + confirm-backlog <1|0> + Whether to warn if there is transaction backlog. + confirm-backlog-threshold [n] + Set a threshold for confirm-backlog to only warn if the transaction backlog is greater than n blocks. + refresh-from-block-height [n] + Set the height before which to ignore blocks. + auto-low-priority <1|0> + Whether to automatically use the low priority fee level when it's safe to do so.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1717"/> + <source>Display the encrypted Electrum-style mnemonic seed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1720"/> + <source>Rescan the blockchain for spent outputs.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1723"/> + <source>get_tx_key <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1724"/> + <source>Get the transaction key (r) for a given <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1727"/> + <source>check_tx_key <txid> <txkey> <address></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1728"/> + <source>Check the amount going to <address> in <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1731"/> + <source>get_tx_proof <txid> <address> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1732"/> + <source>Generate a signature proving funds sent to <address> in <txid>, optionally with a challenge string <message>, using either the transaction secret key (when <address> is not your wallet's address) or the view secret key (otherwise), which does not disclose the secret key.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1735"/> + <source>check_tx_proof <txid> <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> + <source>Check the proof for funds going to <address> in <txid> with the challenge string <message> if any.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1739"/> + <source>get_spend_proof <txid> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> + <source>Generate a signature proving that you generated <txid> using the spend secret key, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1743"/> + <source>check_spend_proof <txid> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1744"/> + <source>Check a signature proving that the signer generated <txid>, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1747"/> + <source>get_reserve_proof (all|<amount>) [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1748"/> + <source>Generate a signature proving that you own at least this much, optionally with a challenge string <message>. +If 'all' is specified, you prove the entire sum of all of your existing accounts' balances. +Otherwise, you prove the reserve of the smallest possible amount above <amount> available in your current account.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1753"/> + <source>check_reserve_proof <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1754"/> + <source>Check a signature proving that the owner of <address> holds at least this much, optionally with a challenge string <message>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1757"/> + <source>show_transfers [in|out|pending|failed|pool] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1758"/> + <source>Show the incoming/outgoing transfers within an optional height range.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1761"/> + <source>unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1762"/> + <source>Show the unspent outputs of a specified address within an optional amount range.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1765"/> + <source>Rescan the blockchain from scratch.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1768"/> + <source>set_tx_note <txid> [free text note]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1769"/> + <source>Set an arbitrary string note for a <txid>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1772"/> + <source>get_tx_note <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1773"/> + <source>Get a string note for a txid.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1776"/> + <source>set_description [free text note]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1777"/> + <source>Set an arbitrary description for the wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1780"/> + <source>Get the description of the wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1783"/> + <source>Show the wallet's status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1786"/> + <source>Show the wallet's information.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1789"/> + <source>sign <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1790"/> + <source>Sign the contents of a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1793"/> + <source>verify <filename> <address> <signature></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <source>Verify a signature on the contents of a file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1797"/> + <source>export_key_images <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1798"/> + <source>Export a signed set of key images to a <file>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1801"/> + <source>import_key_images <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1802"/> + <source>Import a signed key images list and verify their spent status.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1805"/> + <source>export_outputs <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1806"/> + <source>Export a set of outputs owned by this wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1809"/> + <source>import_outputs <file></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1810"/> + <source>Import a set of outputs owned by this wallet.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1813"/> + <source>show_transfer <txid></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1814"/> + <source>Show information about a transfer to/from this address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1817"/> + <source>Change the wallet's password.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1820"/> + <source>Generate a new random full size payment id. These will be unencrypted on the blockchain, see integrated_address for encrypted short payment ids.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1823"/> + <source>Print the information about the current fee and transaction backlog.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1825"/> + <source>Export data needed to create a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1827"/> + <source>make_multisig <threshold> <string1> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1828"/> + <source>Turn this wallet into a multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1831"/> + <source>finalize_multisig <string> [<string>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1832"/> + <source>Turn this wallet into a multisig wallet, extra step for N-1/N wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1835"/> + <source>export_multisig_info <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1836"/> + <source>Export multisig info for other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1839"/> + <source>import_multisig_info <filename> [<filename>...]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1840"/> + <source>Import multisig info from other participants</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1843"/> + <source>sign_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1844"/> + <source>Sign a multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1847"/> + <source>submit_multisig <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1848"/> + <source>Submit a signed multisig transaction from a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1851"/> + <source>export_raw_multisig_tx <filename></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1852"/> + <source>Export a signed multisig transaction to a file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <source>help [<command>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <source>Show the help section or the documentation about a <command>.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1917"/> + <source>integer >= </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="1930"/> + <source>block height</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2012"/> + <source>No wallet found with that name. Confirm creation of new wallet named: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2068"/> + <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-spend-key="wallet_name", --generate-from-keys="wallet_name", --generate-from-multisig-keys="wallet_name" and --generate-from-json="jsonfilename"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2084"/> + <source>can't specify both --restore-deterministic-wallet or --restore-multisig-wallet and --non-deterministic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2090"/> + <source>--restore-multisig-wallet uses --generate-new-wallet, not --wallet-file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> + <source>specify a recovery parameter with the --electrum-seed="multisig seed here"</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2133"/> + <source>Multisig seed failed verification</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2149"/> + <source>Enter seed encryption passphrase, empty if none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2185"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2259"/> + <source>This address is a subaddress which cannot be used here.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2337"/> + <source>Error: expected M/N, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2342"/> + <source>Error: expected N > 1 and N <= M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2347"/> + <source>Error: M/N is currently unsupported. </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2350"/> + <source>Generating master wallet from %u of %u multisig wallet keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2379"/> + <source>failed to parse secret view key</source> + <translation type="unfinished">det gick inte att parsa hemlig visningsnyckel</translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2388"/> + <source>failed to verify secret view key</source> + <translation type="unfinished">det gick inte att verifiera hemlig visningsnyckel</translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2408"/> + <source>Secret spend key (%u of %u):</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> + <source>Error: M/N is currently unsupported</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2550"/> + <source>Restore height </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2551"/> + <source>Still apply restore height? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2582"/> + <source>Warning: using an untrusted daemon at %s, privacy will be lessened</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2636"/> + <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or change the daemon address using the 'set_daemon' command.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2680"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2685"/> + <source>invalid language choice entered. Please try again. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2768"/> + <source>Your wallet has been generated! +To start synchronizing with the daemon, use the "refresh" command. +Use the "help" command to see the list of available commands. +Use "help <command>" to see a command's documentation. +Always use the "exit" command when closing monero-wallet-cli to save +your current session's state. Otherwise, you might need to synchronize +your wallet again (your wallet keys are NOT at risk in any case). +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2850"/> + <source>failed to generate new mutlisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2853"/> + <source>Generated new %u/%u multisig wallet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2889"/> + <source>Opened %u/%u multisig wallet%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="2942"/> + <source>Use "help <command>" to see a command's documentation. +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3000"/> + <source>wallet is multisig and cannot save a watch-only version</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> + <source>missing daemon URL argument</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3116"/> + <source>Unexpected array length - Exited simple_wallet::set_daemon()</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3130"/> + <source>This does not seem to be a valid daemon URL.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3184"/> + <source>txid </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3186"/> + <source>idx </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3299"/> + <source> (Some owned outputs have partial key images - import_multisig_info needed)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>Currently selected account: [</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3300"/> + <source>] </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>Tag: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3302"/> + <source>(No tag assigned)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3309"/> + <source>Balance per address:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Balance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Unlocked balance</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <source>Outputs</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3310"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Label</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3318"/> + <source>%8u %6s %21s %21s %7u %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3327"/> + <source>usage: balance [detail]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3381"/> + <source>usage: incoming_transfers [available|unavailable] [verbose] [index=<N>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>spent</source> <translation>spenderad</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>global index</source> <translation>globalt index</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>tx id</source> <translation>tx-ID</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> + <source>addr index</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> <source>No incoming transfers</source> <translation>Inga inkommande överföringar</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1872"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3427"/> <source>No incoming available transfers</source> <translation>Inga inkommande tillgängliga överföringar</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1876"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3431"/> <source>No incoming unavailable transfers</source> <translation>Inga inkommande otillgängliga överföringar</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1887"/> - <source>expected at least one payment_id</source> - <translation>åtminstone ett payment_id förväntades</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <source>Transaction successfully saved to </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6743"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>, txid </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6745"/> + <source>Failed to save transaction to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>payment</source> <translation>betalning</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>transaction</source> <translation>transaktion</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>height</source> <translation>höjd</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1896"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3451"/> <source>unlock time</source> <translation>upplåsningstid</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1908"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3463"/> <source>No payments with id </source> <translation>Inga betalningar med ID </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1960"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2026"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2280"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3516"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3582"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3853"/> <source>failed to get blockchain height: </source> <translation>det gick inte att hämta blockkedjans höjd: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2016"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3572"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5136"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5259"/> <source>failed to connect to the daemon</source> <translation>det gick inte att ansluta till daemonen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2034"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3590"/> <source> Transaction %llu/%llu: txid=%s</source> <translation> Transaktion %llu/%llu: txid=%s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2044"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3600"/> <source> Input %llu/%llu: amount=%s</source> <translation> Ingång %llu/%llu: belopp=%s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2060"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3616"/> <source>failed to get output: </source> <translation>det gick inte att hämta utgång: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2068"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3624"/> <source>output key's originating block height shouldn't be higher than the blockchain height</source> <translation>utgångsnyckelns ursprungsblockhöjd får inte vara högre än blockkedjans höjd</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2072"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3628"/> <source> Originating block heights: </source> <translation> Ursprungsblockhöjder: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> <source> |</source> <translation> |</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2087"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3643"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> <source>| </source> <translation>| </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3660"/> <source> Warning: Some input keys being spent are from </source> <translation> Varning: Några ingångsnycklar som spenderas kommer från </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2106"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3662"/> <source>, which can break the anonymity of ring signature. Make sure this is intentional!</source> <translation>, vilket kan bryta ringsignaturens anonymitet. Se till att detta är avsiktligt!</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2152"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2937"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3724"/> <source>wrong number of arguments</source> <translation>fel antal argument</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2257"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2744"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3830"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4479"/> <source>No payment id is included with this transaction. Is this okay? (Y/Yes/N/No): </source> <translation>Inget betalnings-ID har inkluderats med denna transaktion. Är detta okej? (J/Ja/N/Nej): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2298"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2762"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3872"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4286"/> <source>No outputs found, or daemon is not ready</source> <translation>Inga utgångar hittades, eller så är daemonen inte redo</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2399"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2576"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2837"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3150"/> - <source>failed to get random outputs to mix: </source> - <translation>det gick inte att hitta slumpmässiga utgångar att mixa: </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2518"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2779"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4081"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4314"/> <source>Sweeping %s in %llu transactions for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> <translation>Sveper upp %s i %llu transaktioner för en total avgift på %s. Är detta okej? (J/Ja/N/Nej): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2524"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4087"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4320"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4519"/> <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No): </source> <translation>Sveper upp %s för en total avgift på %s. Är detta okej? (J/Ja/N/Nej): </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2969"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4630"/> <source>Donating </source> <translation>Donerar </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3053"/> - <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min mixin %lu. %sIs this okay? (Y/Yes/N/No): </source> - <translation>Läste in %lu transaktioner, för %s, avgift %s, %s, %s, med minsta mixin %lu. %sÄr detta okej? (J/Ja/N/Nej): </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3077"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4792"/> <source>This is a watch only wallet</source> <translation>Detta är en granskningsplånbok</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4443"/> - <source>usage: show_transfer <txid></source> - <translation>användning: show_transfer <transaktions-ID></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6571"/> + <source>usage: show_transfer <txid></source> + <translation>användning: show_transfer <transaktions-ID></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6673"/> + <source>Double spend seen on the network: this transaction may or may not end up being mined</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6708"/> <source>Transaction ID not found</source> <translation>Transaktions-ID kunde inte hittas</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="237"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="214"/> <source>true</source> <translation>sant</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="267"/> <source>failed to parse refresh type</source> <translation>det gick inte att parsa uppdateringstyp</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="330"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="362"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="541"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="608"/> <source>wallet is watch-only and has no seed</source> <translation>plånboken är enbart för granskning och saknar frö</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="353"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="367"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="557"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="613"/> <source>wallet is non-deterministic and has no seed</source> <translation>plånboken är icke-deterministisk och saknar frö</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="450"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="467"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1245"/> <source>wallet is watch-only and cannot transfer</source> <translation>plånboken är enbart för granskning och kan inte göra överföringar</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="474"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="480"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="496"/> - <source>mixin must be an integer >= 2</source> - <translation>mixin måste vara ett heltal >= 2</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="501"/> - <source>could not change default mixin</source> - <translation>det gick inte att ändra standardinställning för mixin</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="545"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1321"/> <source>could not change default priority</source> <translation>Det gick inte att ändra standardinställning för prioritet</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="700"/> - <source>Synchronize transactions and balance</source> - <translation>Synkronisera transaktioner och saldo</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="702"/> - <source>incoming_transfers [available|unavailable] - Show incoming transfers, all or filtered by availability</source> - <translation>incoming_transfers [available|unavailable] - Visa inkommande överföringar, alla eller filtrerade efter tillgänglighet</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="703"/> - <source>payments <PID_1> [<PID_2> ... <PID_N>] - Show payments for given payment ID[s]</source> - <translation>payments <B_ID_1> [<B_ID_2> … <B_ID_N>] - Visa betalningar för angivna betalnings-ID</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="706"/> - <source>transfer [<priority>] [<mixin_count>] <address> <amount> [<payment_id>] - Transfer <amount> to <address>. <priority> is the priority of the transaction. The higher the priority, the higher the fee of the transaction. Valid values in priority order (from lowest to highest) are: unimportant, normal, elevated, priority. If omitted, the default value (see the command "set priority") is used. <mixin_count> is the number of extra inputs to include for untraceability. Multiple payments can be made at once by adding <address_2> <amount_2> etcetera (before the payment ID, if it's included)</source> - <translation>transfer [<prioritet>] [<mixin_antal>] <adress> <belopp> [<betalnings_id>] - Överför <belopp> till <adress>. <prioritet> är transaktionens prioritet. Ju högre prioritet, desto högre transaktionsavgift. Giltiga värden i prioritetsordning (från lägsta till högsta) är: unimportant, normal, elevated, priority. Om det utelämnas kommer standardvärdet (se kommandot "set priority") att användas. <mixin_antal> är det antal extra ingångar som ska inkluderas för att uppnå ospårbarhet. Flera betalningar kan göras på en gång genom att lägga till <adress_2> <belopp_2> etcetera (före betalnings-ID, om det inkluderas)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="707"/> - <source>locked_transfer [<mixin_count>] <addr> <amount> <lockblocks>(Number of blocks to lock the transaction for, max 1000000) [<payment_id>]</source> - <translation>locked_transfer [<mixin_antal>] <adress> <belopp> <låsblock>(Antal block som transaktionen ska låsas för, max 1000000) [<betalnings_id>]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="708"/> - <source>Send all unmixable outputs to yourself with mixin 0</source> - <translation>Skicka alla omixbara utgångar till dig själv med mixin 0</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="712"/> - <source>Sign a transaction from a file</source> - <translation>Signera en transaktion från en fil</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="713"/> - <source>Submit a signed transaction from a file</source> - <translation>Skicka en signerad transaktion från en fil</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="716"/> - <source>integrated_address [PID] - Encode a payment ID into an integrated address for the current wallet public address (no argument uses a random payment ID), or decode an integrated address to standard address and payment ID</source> - <translation>integrated_address [PID] - Koda ett betalnings-ID till en integrerad adress för den aktuella plånbokens öppna adress (utan argument används ett slumpmässigt betalnings-ID), eller avkoda en integrerad adress till standardadress och betalnings-ID</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="718"/> - <source>Save wallet data</source> - <translation>Spara plånboksdata</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="719"/> - <source>Save a watch-only keys file</source> - <translation>Spara en fil med granskningsnycklar</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="720"/> - <source>Display private view key</source> - <translation>Visa privat visningsnyckel</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="721"/> - <source>Display private spend key</source> - <translation>Visa privat spendernyckel</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="722"/> - <source>Display Electrum-style mnemonic seed</source> - <translation>Visa minnesfrö (Electrum-typ)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="723"/> - <source>Available options: seed language - set wallet seed language; always-confirm-transfers <1|0> - whether to confirm unsplit txes; print-ring-members <1|0> - whether to print detailed information about ring members during confirmation; store-tx-info <1|0> - whether to store outgoing tx info (destination address, payment ID, tx secret key) for future reference; default-mixin <n> - set default mixin (default is 4); auto-refresh <1|0> - whether to automatically sync new blocks from the daemon; refresh-type <full|optimize-coinbase|no-coinbase|default> - set wallet refresh behaviour; priority [0|1|2|3|4] - default/unimportant/normal/elevated/priority fee; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - set default monero (sub-)unit; min-outputs-count [n] - try to keep at least that many outputs of value at least min-outputs-value; min-outputs-value [n] - try to keep at least min-outputs-count outputs of at least that value; merge-destinations <1|0> - whether to merge multiple payments to the same destination address</source> - <translation>Tillgängliga alternativ: seed language - ange språk för plånbokens frö; always-confirm-transfers <1|0> - huruvida ej delade transaktioner ska bekräftas; print-ring-members <1|0> - huruvida detaljerad information om ringmedlemmar ska skrivas ut vid bekräftelse; store-tx-info <1|0> - huruvida info om utgående transaktioner ska sparas (måladress, betalnings-ID, hemlig transaktionsnyckel) för framtida referens; default-mixin <n> - ange standardvärde för mixin (standard är 4); auto-refresh <1|0> - huruvida nya block från daemonen ska synkas automatiskt; refresh-type <full|optimize-coinbase|no-coinbase|default> - ange uppdateringsbeteende för plånbok; priority [0|1|2|3|4] - standard/oviktigt/normal/förhöjd/prioritetsavgift; confirm-missing-payment-id <1|0>; ask-password <1|0>; unit <monero|millinero|micronero|nanonero|piconero> - ange standardvärde för monero-(under-)enhet; min-outputs-count [n] - försök behålla åtminstone så många utgångar med ett värde på åtminstone min-outputs-value; min-outputs-value [n] - försök behålla åtminstone min-outputs-count utgångar av åtminstone detta värde; merge-destinations <1|0> - huruvida flera betalningar till samma måladress ska slås samman</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="724"/> - <source>Rescan blockchain for spent outputs</source> - <translation>Genomsök blockkedjan igen för spenderade utgångar</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="725"/> - <source>Get transaction key (r) for a given <txid></source> - <translation>Hämta transaktionsnyckel (r) för ett givet <transaktions-ID></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="726"/> - <source>Check amount going to <address> in <txid></source> - <translation>Kontrollera belopp som går till <adress> i <transaktions-ID></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="727"/> - <source>Generate a signature to prove payment to <address> in <txid> using the transaction secret key (r) without revealing it</source> - <translation>Skapa en signatur för att bevisa betalning till <adress> i <transaktions-ID> genom att använda hemlig nyckel för transaktion (r) utan att avslöja den</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="728"/> - <source>Check tx proof for payment going to <address> in <txid></source> - <translation>Kontrollera transaktionsbevis för betalning som går till <adress> i <transaktions-ID></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="730"/> - <source>unspent_outputs [<min_amount> <max_amount>] - Show unspent outputs within an optional amount range</source> - <translation>unspent_outputs [<min_belopp> <max_belopp>] - Visa ej spenderade utgångar inom ett valfritt beloppsintervall</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="731"/> - <source>Rescan blockchain from scratch</source> - <translation>Genomsök blockkedjan från början</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="732"/> - <source>Set an arbitrary string note for a txid</source> - <translation>Ange en godtycklig sträng som anteckning för ett transaktions-ID</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="733"/> - <source>Get a string note for a txid</source> - <translation>Hämta en stränganteckning för ett transaktions-ID</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="734"/> - <source>Show wallet status information</source> - <translation>Visa statusinformation för plånbok</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="735"/> - <source>Sign the contents of a file</source> - <translation>Signera innehållet i en fil</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="736"/> - <source>Verify a signature on the contents of a file</source> - <translation>Verifera signaturen för innehållet i en fil</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="737"/> - <source>Export a signed set of key images</source> - <translation>Exportera en signerad uppsättning nyckelavbildningar</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="738"/> - <source>Import signed key images list and verify their spent status</source> - <translation>Importera lista med signerade nyckelavbildningar och verifera deras spenderingsstatus</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="739"/> - <source>Export a set of outputs owned by this wallet</source> - <translation>Exportera en uppsättning utgångar som ägs av denna plånbok</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="740"/> - <source>Import set of outputs owned by this wallet</source> - <translation>Importera en uppsättning utgångar som ägs av denna plånbok</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="802"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1919"/> <source>full (slowest, no assumptions); optimize-coinbase (fast, assumes the whole coinbase is paid to a single address); no-coinbase (fastest, assumes we receive no coinbase transaction), default (same as optimize-coinbase)</source> <translation>full (långsammast, inga antaganden); optimize-coinbase (snabb, antar att hela coinbase-transaktionen betalas till en enda adress); no-coinbase (snabbast, antar att ingen coinbase-transaktion tas emot), default (samma som optimize-coinbase)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="806"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1923"/> <source>monero, millinero, micronero, nanonero, piconero</source> <translation>monero, millinero, micronero, nanonero, piconero</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="851"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1975"/> <source>Wallet name not valid. Please try again or use Ctrl-C to quit.</source> <translation>Plånbokens namn ej giltigt. Försök igen eller använd Ctrl-C för att avsluta.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1992"/> <source>Wallet and key files found, loading...</source> <translation>Plånbok och nyckelfil hittades, läser in …</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="874"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1998"/> <source>Key file found but not wallet file. Regenerating...</source> <translation>Nyckelfil hittades men inte plånboksfilen. Återskapar …</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="880"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2004"/> <source>Key file not found. Failed to open wallet: </source> <translation>Nyckelfilen kunde inte hittas. Det gick inte att öppna plånbok: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="894"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2023"/> <source>Generating new wallet...</source> <translation>Skapar ny plånbok …</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="937"/> - <source>can't specify more than one of --generate-new-wallet="wallet_name", --wallet-file="wallet_name", --generate-from-view-key="wallet_name", --generate-from-json="jsonfilename" and --generate-from-keys="wallet_name"</source> - <translation>det går inte att ange mer än en av --generate-new-wallet="plånboksnamn", --wallet-file="plånboksnamn", --generate-from-view-key="plånboksnamn", --generate-from-json="json-filnamn" och --generate-from-keys="plånboksnamn"</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="953"/> - <source>can't specify both --restore-deterministic-wallet and --non-deterministic</source> - <translation>det går inte att ange både --restore-deterministic-wallet och --non-deterministic</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="982"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2141"/> <source>Electrum-style word list failed verification</source> <translation>det gick inte att verifiera ordlista av Electrum-typ</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="994"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1011"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1046"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1063"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1079"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2174"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2194"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2229"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2248"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2268"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2284"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2332"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2357"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2373"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2413"/> <source>No data supplied, cancelled</source> <translation>Ingen data angiven, avbryter</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1002"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1054"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2220"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2718"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3276"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3378"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3530"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4048"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2254"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2363"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3791"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4240"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4454"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4926"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4994"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5058"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5266"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6106"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6353"/> <source>failed to parse address</source> <translation>det gick inte att parsa adressen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1017"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2200"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2290"/> <source>failed to parse view key secret key</source> <translation>det gick inte att parsa hemlig visningsnyckel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1027"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1103"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2210"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2308"/> <source>failed to verify view key secret key</source> <translation>det gick inte att verifiera hemlig visningsnyckel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1031"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1107"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2214"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2312"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2393"/> <source>view key does not match standard address</source> <translation>visningsnyckel matchar inte standardadress</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1036"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1111"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1128"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2238"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2316"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2480"/> <source>account creation failed</source> <translation>det gick inte att skapa konto</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1069"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2234"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2274"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2418"/> <source>failed to parse spend key secret key</source> <translation>det gick inte att parsa spendernyckel hemlig nyckel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1095"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2300"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2439"/> <source>failed to verify spend key secret key</source> <translation>det gick inte att verifiera spendernyckel hemlig nyckel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1099"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2304"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2444"/> <source>spend key does not match standard address</source> <translation>spendernyckel matchar inte standardadress</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1199"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2562"/> <source>failed to open account</source> <translation>det gick inte att öppna konto</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1203"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1579"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1626"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1647"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3348"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2566"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3030"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3085"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3142"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4962"/> <source>wallet is null</source> <translation>plånbok är null</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1262"/> - <source>Daemon either is not started or wrong port was passed. Please make sure daemon is running or restart the wallet with the correct daemon address.</source> - <translation>Antingen har daemonen inte startat eller så angavs fel port. Se till att daemonen kör eller starta om plånboken med korrekt daemonadress.</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1306"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1311"/> - <source>invalid language choice passed. Please try again. -</source> - <translation>ogiltigt språkval angavs. Försök igen. -</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1370"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2753"/> <source>View key: </source> <translation>Visningsnyckel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1385"/> - <source>Your wallet has been generated! -To start synchronizing with the daemon, use the "refresh" command. -Use the "help" command to see the list of available commands. -Always use the "exit" command when closing monero-wallet-cli to save -your current session's state. Otherwise, you might need to synchronize -your wallet again (your wallet keys are NOT at risk in any case). -</source> - <translation>Din plånbok har skapats! -För att starta synkronisering med daemonen, använd kommandot "refresh". -Använd kommandot "help" för att se en lista över tillgängliga kommandon. -Använd alltid kommandot "exit" när du stänger monero-wallet-cli så att ditt aktuella sessionstillstånd sparas. Annars kan du bli tvungen att synkronisera -din plånbok igen (din plånboks nycklar är dock INTE hotade i vilket fall som helst). -</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1492"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2935"/> <source>You may want to remove the file "%s" and try again</source> <translation>Du kan också vilja ta bort filen "%s" och försöka igen</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1518"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="2963"/> <source>failed to deinitialize wallet</source> <translation>det gick inte att avinitiera plånboken</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1570"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3021"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3524"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6410"/> <source>this command requires a trusted daemon. Enable with --trusted-daemon</source> <translation>detta kommando kräver en betrodd daemon. Aktivera med --trusted-daemon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1657"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3152"/> <source>blockchain can't be saved: </source> <translation>blockkedjan kan inte sparas: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1736"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1982"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2386"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2563"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2824"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3239"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3538"/> <source>daemon is busy. Please try again later.</source> <translation>daemonen är upptagen. Försök igen senare.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1740"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1986"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2390"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2567"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2828"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3243"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3542"/> <source>no connection to daemon. Please make sure daemon is running.</source> <translation>ingen anslutning till daemonen. Se till att daemonen körs.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1750"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3253"/> <source>refresh error: </source> <translation>fel vid uppdatering: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1794"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3303"/> <source>Balance: </source> <translation>Saldo: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>pubkey</source> <translation>öppen nyckel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1845"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3399"/> <source>key image</source> <translation>nyckelavbildning</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>unlocked</source> <translation>upplåst</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1846"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> <source>ringct</source> <translation>ringct</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>T</source> <translation>S</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1855"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3409"/> <source>F</source> <translation>F</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3410"/> <source>locked</source> <translation>låst</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>RingCT</source> <translation>RingCT</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1857"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> <source>-</source> <translation>-</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1929"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3442"/> + <source>expected at least one payment ID</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> <source>payment ID has invalid format, expected 16 or 64 character hex string: </source> <translation>betalnings-ID har ogiltigt format, en 16- eller 64-teckens hex-sträng förväntades: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="1990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3546"/> <source>failed to get spent status</source> <translation>det gick inte att hämta spenderingsstatus</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>the same transaction</source> <translation>samma transaktion</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> <source>blocks that are temporally very close</source> <translation>block som ligger väldigt nära varandra i tiden</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2206"/> - <source>Locked blocks too high, max 1000000 (˜4 yrs)</source> - <translation>Låsta block för högt, max 1000000 (˜~4 år)</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3258"/> - <source>usage: get_tx_proof <txid> <dest_address> [<tx_key>]</source> - <translation>användning: get_tx_proof <txid> <måladress> [<tx_key>]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3289"/> - <source>failed to parse tx_key</source> - <translation>det gick inte att parsa tx_nyckel</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3298"/> - <source>Tx secret key was found for the given txid, but you've also provided another tx secret key which doesn't match the found one.</source> - <translation>Hemlig transaktionsnyckel hittades för det givna txid, men du har också angivit en annan hemlig transaktionsnyckel som inte matchar den hittade nyckeln.</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3306"/> - <source>Tx secret key wasn't found in the wallet file. Provide it as the optional third parameter if you have it elsewhere.</source> - <translation>Den hemliga transaktionsnyckeln kunde inte hittas i plånboksfilen. Ange den som den valfria tredje parametern om du har den någon annanstans.</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3330"/> - <source>Signature: </source> - <translation>Signatur: </translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3508"/> - <source>usage: check_tx_proof <txid> <address> <signature></source> - <translation>användning: check_tx_proof <txid> <adress> <signatur></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3705"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4184"/> + <source>Ring size must not be 0</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3539"/> - <source>Signature header check error</source> - <translation>Fel vid kontroll av signaturhuvud</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3717"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4196"/> + <source>ring size %u is too small, minimum is %u</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3550"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3560"/> - <source>Signature decoding error</source> - <translation>nFel vid avkodning av signatur</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3602"/> - <source>Tx pubkey was not found</source> - <translation>Transaktionens öppna nyckel kunde inte hittas</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="3778"/> + <source>Locked blocks too high, max 1000000 (˜4 yrs)</source> + <translation>Låsta block för högt, max 1000000 (˜~4 år)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3609"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5077"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5188"/> <source>Good signature</source> <translation>Bra signatur</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3613"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5190"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5293"/> <source>Bad signature</source> <translation>Dålig signatur</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3621"/> - <source>failed to generate key derivation</source> - <translation>det gick inte att skapa nyckelhärledning</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3994"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6046"/> <source>usage: integrated_address [payment ID]</source> <translation>användning: integrated_address [betalnings-ID]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4017"/> - <source>Integrated address: account %s, payment ID %s</source> - <translation>Integrerad adress: konto %s, betalnings-ID %s</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4022"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> <source>Standard address: </source> <translation>Standardadress: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4027"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6087"/> <source>failed to parse payment ID or address</source> <translation>det gick inte att parsa betalnings-ID eller adress</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4038"/> - <source>usage: address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)]</source> - <translation>användning: address_book [(add (<adress> [pid <långt eller kort betalnings-ID>])|<Integrerad adress> [<beskrivning eventuellt med blanktecken>])|(delete <index>)]</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6098"/> + <source>usage: address_book [(add (<address> [pid <long or short payment id>])|<integrated address> [<description possibly with whitespaces>])|(delete <index>)]</source> + <translation>användning: address_book [(add (<adress> [pid <långt eller kort betalnings-ID>])|<Integrerad adress> [<beskrivning eventuellt med blanktecken>])|(delete <index>)]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4070"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6128"/> <source>failed to parse payment ID</source> <translation>det gick inte att parsa betalnings-ID</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4088"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6146"/> <source>failed to parse index</source> <translation>det gick inte att parsa index</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4096"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6154"/> <source>Address book is empty.</source> <translation>Adressboken är tom.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4102"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6160"/> <source>Index: </source> <translation>Index: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4103"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6161"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6287"/> <source>Address: </source> <translation>Adress: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4104"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6162"/> <source>Payment ID: </source> <translation>Betalnings-ID: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4105"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6163"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6286"/> <source>Description: </source> <translation>Beskrivning: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4115"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6173"/> <source>usage: set_tx_note [txid] free text note</source> <translation>användning: set_tx_note [txid] fri textanteckning</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4143"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6201"/> <source>usage: get_tx_note [txid]</source> <translation>användning: get_tx_note [txid]</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4193"/> - <source>usage: sign <filename></source> - <translation>användning: sign <filnamn></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6304"/> + <source>usage: sign <filename></source> + <translation>användning: sign <filnamn></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4198"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6309"/> <source>wallet is watch-only and cannot sign</source> <translation>plånboken är enbart för granskning och kan inte signera</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4207"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4230"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4374"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="951"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6323"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6346"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6501"/> <source>failed to read file </source> <translation>det gick inte att läsa filen </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4219"/> - <source>usage: verify <filename> <address> <signature></source> - <translation>användning: verify <filnamn> <adress> <signatur></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="5039"/> + <source>usage: check_tx_proof <txid> <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5066"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5181"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5278"/> + <source>failed to load signature file</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5117"/> + <source>usage: get_spend_proof <txid> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5123"/> + <source>wallet is watch-only and cannot generate the proof</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5161"/> + <source>usage: check_spend_proof <txid> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5202"/> + <source>usage: get_reserve_proof (all|<amount>) [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5208"/> + <source>The reserve proof can be generated only by a full wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5253"/> + <source>usage: check_reserve_proof <address> <signature_file> [<message>]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5271"/> + <source>Address must not be a subaddress</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5289"/> + <source>Good signature -- total: %s, spent: %s, unspent: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5353"/> + <source>usage: show_transfers [in|out|all|pending|failed] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5490"/> + <source>[Double spend seen on the network: this transaction may or may not end up being mined] </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5526"/> + <source>usage: unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5586"/> + <source>There is no unspent output in the specified address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5699"/> + <source> (no daemon)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5701"/> + <source> (out of sync)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5758"/> + <source>(Untitled account)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5771"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5789"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5814"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5837"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5990"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6013"/> + <source>failed to parse index: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5776"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5995"/> + <source>specify an index between 0 and </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5873"/> + <source>usage: + account + account new <label text with white spaces allowed> + account switch <index> + account label <index> <label text with white spaces allowed> + account tag <tag_name> <account_index_1> [<account_index_2> ...] + account untag <account_index_1> [<account_index_2> ...] + account tag_description <tag_name> <description></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source> +Grand total: + Balance: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5901"/> + <source>, unlocked balance: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5909"/> + <source>Untagged accounts:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5915"/> + <source>Tag %s is unregistered.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5918"/> + <source>Accounts with tag: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5919"/> + <source>Tag's description: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5921"/> + <source>Account</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5927"/> + <source> %c%8u %6s %21s %21s %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5937"/> + <source>----------------------------------------------------------------------------------</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5938"/> + <source>%15s %21s %21s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>Primary address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5961"/> + <source>(used)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="5982"/> + <source>(Untitled address)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6022"/> + <source><index_min> is already out of bound</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6027"/> + <source><index_max> exceeds the bound</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6035"/> + <source>usage: address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed> ]</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6053"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6065"/> + <source>Integrated addresses can only be created for account 0</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6077"/> + <source>Integrated address: %s, payment ID: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6082"/> + <source>Subaddress: </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4246"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6242"/> + <source>usage: get_description</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6248"/> + <source>no description found</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6250"/> + <source>description found: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6285"/> + <source>Filename: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6290"/> + <source>Watch only</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6292"/> + <source>%u/%u multisig%s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6294"/> + <source>Normal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6295"/> + <source>Type: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Testnet: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>Yes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6296"/> + <source>No</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6314"/> + <source>This wallet is multisig and cannot sign</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6335"/> + <source>usage: verify <filename> <address> <signature></source> + <translation>användning: verify <filnamn> <adress> <signatur></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="6360"/> <source>Bad signature from </source> <translation>Dålig signatur från </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4250"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6364"/> <source>Good signature from </source> <translation>Bra signatur från </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4259"/> - <source>usage: export_key_images <filename></source> - <translation>användning: export_key_images <filnamn></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6373"/> + <source>usage: export_key_images <filename></source> + <translation>användning: export_key_images <filnamn></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4264"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6378"/> <source>wallet is watch-only and cannot export key images</source> <translation>plånboken är enbart för granskning och kan inte exportera nyckelavbildningar</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4274"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4346"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="906"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6391"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6473"/> <source>failed to save file </source> <translation>det gick inte att spara fil </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4285"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6402"/> <source>Signed key images exported to </source> <translation>Signerade nyckelavbildningar exporterades till </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4293"/> - <source>usage: import_key_images <filename></source> - <translation>användning: import_key_images <filnamn></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6416"/> + <source>usage: import_key_images <filename></source> + <translation>användning: import_key_images <filnamn></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4323"/> - <source>usage: export_outputs <filename></source> - <translation>användning: export_outputs <filnamn></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6447"/> + <source>usage: export_outputs <filename></source> + <translation>användning: export_outputs <filnamn></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4357"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6484"/> <source>Outputs exported to </source> <translation>Utgångar exporterades till </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4365"/> - <source>usage: import_outputs <filename></source> - <translation>användning: import_outputs <filnamn></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6492"/> + <source>usage: import_outputs <filename></source> + <translation>användning: import_outputs <filnamn></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2246"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3818"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5219"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5545"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5553"/> <source>amount is wrong: </source> <translation>beloppet är fel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2247"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3819"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="3820"/> <source>expected number from 0 to </source> <translation>förväntades: ett tal från 0 till </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2378"/> - <source>Money successfully sent, transaction </source> - <translation>Pengar skickades, transaktion </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4079"/> + <source>Sweeping </source> + <translation>Sveper upp </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3141"/> - <source>no connection to daemon. Please, make sure daemon is running.</source> - <translation>ingen anslutning till daemonen. Se till att daemonen körs.</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4559"/> + <source>Money successfully sent, transaction: </source> + <translation>Pengar skickades, transaktion: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2597"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2858"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3171"/> - <source>not enough outputs for specified mixin_count</source> - <translation>inte tillräckligt många utgångar för angiven mixin_count</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4716"/> + <source>Change goes to more than one address</source> + <translation>Växel går till mer än en adress</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>output amount</source> - <translation>utgångens belopp</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4757"/> + <source>%s change to %s</source> + <translation>%s växel till %s</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2600"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2861"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3174"/> - <source>found outputs to mix</source> - <translation>hittade utgångar att mixa</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4760"/> + <source>no change</source> + <translation>ingen växel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2428"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2605"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2866"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3179"/> - <source>transaction was not constructed</source> - <translation>transaktionen konstruerades inte</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="1044"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="1057"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4826"/> + <source>Transaction successfully signed to file </source> + <translation>Transaktionen signerades till fil </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2432"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2609"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2870"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3183"/> - <source>transaction %s was rejected by daemon with status: </source> - <translation>transaktionen %s avvisades av daemonen med status: </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4424"/> + <source>failed to parse Payment ID</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2443"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2620"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2881"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3191"/> - <source>one of destinations is zero</source> - <translation>ett av målen är noll</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4440"/> + <source>usage: sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3195"/> - <source>Failed to find a suitable way to split transactions</source> - <translation>Det gick inte att hitta ett passande sätt att dela upp transaktioner</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4447"/> + <source>failed to parse key image</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2452"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2629"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2890"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3200"/> - <source>unknown transfer error: </source> - <translation>okänt överföringsfel: </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4499"/> + <source>No outputs found</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2516"/> - <source>Sweeping </source> - <translation>Sveper upp </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4504"/> + <source>Multiple transactions are created, which is not supposed to happen</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2785"/> - <source>Sweeping %s for a total fee of %s. Is this okay? (Y/Yes/N/No)</source> - <translation>Sveper upp %s för en total avgift på %s. Är detta okej? (J/Ja/N/Nej)</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4509"/> + <source>The transaction uses multiple or no inputs, which is not supposed to happen</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="2555"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="2816"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3129"/> - <source>Money successfully sent, transaction: </source> - <translation>Pengar skickades, transaktion: </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4586"/> + <source>missing threshold amount</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3022"/> - <source>Change goes to more than one address</source> - <translation>Växel går till mer än en adress</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4601"/> + <source>donations are not enabled on the testnet</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3047"/> - <source>%s change to %s</source> - <translation>%s växel till %s</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4608"/> + <source>usage: donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3050"/> - <source>no change</source> - <translation>ingen växel</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4748"/> + <source> dummy output(s)</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3105"/> - <source>Transaction successfully signed to file </source> - <translation>Transaktionen signerades till fil </translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4763"/> + <source>Loaded %lu transactions, for %s, fee %s, %s, %s, with min ring size %lu, %s. %sIs this okay? (Y/Yes/N/No): </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4787"/> + <source>This is a multisig wallet, it can only sign with sign_multisig</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3226"/> - <source>usage: get_tx_key <txid></source> - <translation>användning: get_tx_key <transaktions-ID></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4797"/> + <source>usage: sign_transfer [export]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3234"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3266"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3354"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3519"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4122"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4150"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4450"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4836"/> + <source>Transaction raw hex data exported to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4876"/> + <source>usage: get_tx_key <txid></source> + <translation>användning: get_tx_key <transaktions-ID></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="4884"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4968"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5050"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5130"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5168"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6180"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6208"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6578"/> <source>failed to parse txid</source> <translation>det gick inte att parsa transaktions-id</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3245"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4898"/> <source>Tx key: </source> <translation>Tx-nyckel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3250"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4903"/> <source>no tx keys found for this txid</source> <translation>inga tx-nycklar kunde hittas för detta txid</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3339"/> - <source>usage: check_tx_key <txid> <txkey> <address></source> - <translation>användning: check_tx_key <txid> <txnyckel> <adress></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3361"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3368"/> - <source>failed to parse tx key</source> - <translation>det gick inte att parsa transaktionsnyckeln</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3400"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3573"/> - <source>failed to get transaction from daemon</source> - <translation>det gick inte att hämta transaktion från daemon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4912"/> + <source>usage: get_tx_proof <txid> <address> [<message>]</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3411"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3584"/> - <source>failed to parse transaction from daemon</source> - <translation>det gick inte att parsa transaktion från daemonen</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4937"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5147"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5239"/> + <source>signature file saved to: </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3418"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3591"/> - <source>failed to validate transaction from daemon</source> - <translation>det gick inte att validera transaktion från daemon</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4939"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5149"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5241"/> + <source>failed to save signature file</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3423"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3596"/> - <source>failed to get the right transaction from daemon</source> - <translation>det gick inte att hämta rätt transaktion från daemonen</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4953"/> + <source>usage: check_tx_key <txid> <txkey> <address></source> + <translation>användning: check_tx_key <txid> <txnyckel> <adress></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3385"/> - <source>failed to generate key derivation from supplied parameters</source> - <translation>det gick inte att skapa nyckelhärledning från angivna parametrar</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="4976"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4985"/> + <source>failed to parse tx key</source> + <translation>det gick inte att parsa transaktionsnyckeln</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3471"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="4943"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5031"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5109"/> <source>error: </source> <translation>fel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>received</source> <translation>mottaget</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3477"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5007"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5080"/> <source>in txid</source> <translation>i transaktions-id</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3481"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5026"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5099"/> <source>received nothing in txid</source> <translation>tog emot ingenting i transaktions-id</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3485"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5010"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5083"/> <source>WARNING: this transaction is not yet included in the blockchain!</source> <translation>VARNING: denna transaktion är ännu inte inkluderad i blockkedjan!</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3494"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5016"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5089"/> <source>This transaction has %u confirmations</source> <translation>Transaktionen har %u bekräftelser</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3498"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5020"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5093"/> <source>WARNING: failed to determine number of confirmations!</source> <translation>VARNING: det gick inte att avgöra antal bekräftelser!</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3661"/> - <source>usage: show_transfers [in|out|all|pending|failed] [<min_height> [<max_height>]]</source> - <translation>användning: show_transfers [in|out|all|pending|failed] [<min_höjd> [<max_höjd>]]</translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3700"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5401"/> <source>bad min_height parameter:</source> <translation>dålig parameter för min_height:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3712"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5413"/> <source>bad max_height parameter:</source> <translation>dålig parameter för max_height:</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> <source>in</source> <translation>in</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3760"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5473"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>out</source> <translation>ut</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>failed</source> <translation>misslyckades</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3798"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5514"/> <source>pending</source> <translation>väntar</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3809"/> - <source>usage: unspent_outputs [<min_amount> <max_amount>]</source> - <translation>användning: unspent_outputs [<min_belopp> <max_belopp>]</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="5560"/> + <source><min_amount> should be smaller than <max_amount></source> + <translation><min_belopp> måste vara mindre än <max_belopp></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3824"/> - <source><min_amount> should be smaller than <max_amount></source> - <translation><min_belopp> måste vara mindre än <max_belopp></translation> - </message> - <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source> Amount: </source> <translation> Belopp: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3856"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5592"/> <source>, number of keys: </source> <translation>, antal nycklar: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3861"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5597"/> <source> </source> <translation></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3866"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5602"/> <source> Min block height: </source> <translation> Minblockhöjd: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3867"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5603"/> <source> Max block height: </source> <translation> Maxblockhöjd: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3868"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5604"/> <source> Min amount found: </source> <translation> Minbelopp funnet: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3869"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5605"/> <source> Max amount found: </source> <translation> Maxbelopp funnet: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3870"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5606"/> <source> Total count: </source> <translation> Totalt antal: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3910"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5646"/> <source> Bin size: </source> <translation> Storlek för binge: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3911"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5647"/> <source> Outputs per *: </source> <translation> Utgångar per *: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3913"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5649"/> <source>count ^ </source> @@ -2318,310 +3488,409 @@ Utgångar per *: </translation> </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3915"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5651"/> <source> |</source> <translation> |</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> <source> +</source> <translation> +</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3917"/> - <source>+--> block height + <location filename="../src/simplewallet/simplewallet.cpp" line="5653"/> + <source>+--> block height </source> - <translation>+--> blockhöjd + <translation>+--> blockhöjd </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source> ^</source> <translation> ^</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3918"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5654"/> <source>^ </source> <translation>^ </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3919"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5655"/> <source> </source> <translation></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="3969"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="5696"/> <source>wallet</source> <translation>plånbok</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="420"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4000"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="666"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6057"/> <source>Random payment ID: </source> <translation>Slumpmässigt betalnings-ID: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4001"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6058"/> <source>Matching integrated address: </source> <translation>Matchande integrerad adress: </translation> </message> </context> <context> + <name>genms</name> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="70"/> + <source>Base filename (-1, -2, etc suffixes will be appended as needed)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="71"/> + <source>Give threshold and participants at once as M/N</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="72"/> + <source>How many participants wil share parts of the multisig wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="73"/> + <source>How many signers are required to sign a valid transaction</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="74"/> + <source>Create testnet multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="81"/> + <source>Generating %u %u/%u multisig wallets</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="138"/> + <source>Error verifying multisig extra info</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="146"/> + <source>Error finalizing multisig</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="153"/> + <source>Generated multisig wallets for address </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="157"/> + <source>Error creating multisig wallets: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="176"/> + <source>This program generates a set of multisig wallets - use this simpler scheme only if all the participants trust each other</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="194"/> + <source>Error: expected N/M, but got: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="202"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="211"/> + <source>Error: either --scheme or both of --threshold and --participants may be given</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="218"/> + <source>Error: expected N > 1 and N <= M, but got N==%u and M==%d</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="227"/> + <source>Error: --filename-base is required</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="233"/> + <source>Error: unsupported scheme: only N/N and N-1/N are supported</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>sw</name> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> - <source>Generate new wallet and save it to <arg></source> - <translation>Skapa ny plånbok och spara den till <arg></translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="115"/> + <source>Generate new wallet and save it to <arg></source> + <translation>Skapa ny plånbok och spara den till <arg></translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="116"/> <source>Generate incoming-only wallet from view key</source> <translation>Skapa granskningsplånbok från visningsnyckel</translation> </message> <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="117"/> + <source>Generate deterministic wallet from spend key</source> + <translation type="unfinished"></translation> + </message> + <message> <location filename="../src/simplewallet/simplewallet.cpp" line="118"/> <source>Generate wallet from private keys</source> <translation>Skapa plånbok från privata nycklar</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="120"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="119"/> + <source>Generate a master wallet from multisig wallet keys</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="121"/> + <source>Language for mnemonic</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="122"/> <source>Specify Electrum seed for wallet recovery/creation</source> <translation>Ange Electrum-frö för att återställa/skapa plånbok</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="121"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="123"/> <source>Recover wallet using Electrum-style mnemonic seed</source> <translation>Återställ plånbok genom användning av minnesfrö (Electrum-typ)</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="122"/> - <source>Create non-deterministic view and spend keys</source> + <location filename="../src/simplewallet/simplewallet.cpp" line="124"/> + <source>Recover multisig wallet using Electrum-style mnemonic seed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="125"/> + <source>Generate non-deterministic view and spend keys</source> <translation>Skapa non-deterministic visnings- och spendernyckel</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="123"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="126"/> <source>Enable commands which rely on a trusted daemon</source> <translation>Aktivera kommandon som kräver en betrodd daemon</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="124"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="127"/> <source>Allow communicating with a daemon that uses a different RPC version</source> <translation>Tillåt kommunikation med en daemon som använder en annan version av RPC</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="125"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="128"/> <source>Restore from specific blockchain height</source> <translation>Återställ från angiven blockkedjehöjd</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="136"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="129"/> + <source>The newly created transaction will not be relayed to the monero network</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/simplewallet/simplewallet.cpp" line="171"/> <source>daemon is busy. Please try again later.</source> <translation>daemonen är upptagen. Försök igen senare.</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="145"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="180"/> <source>possibly lost connection to daemon</source> <translation>anslutning till daemonen kan ha tappats</translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="226"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="197"/> <source>Error: </source> <translation>Fel: </translation> </message> <message> - <location filename="../src/simplewallet/simplewallet.cpp" line="4614"/> - <source>Failed to initialize wallet</source> - <translation>Det gick inte att initiera plånbok</translation> - </message> -</context> -<context> - <name>tools::dns_utils</name> - <message> - <location filename="../src/common/dns_utils.cpp" line="430"/> - <source>DNSSEC validation passed</source> - <translation>DNSSEC-validering godkänd</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6787"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/common/dns_utils.cpp" line="434"/> - <source>WARNING: DNSSEC validation was unsuccessful, this address may not be correct!</source> - <translation>VARNING: DNSSEC-verifiering misslyckades, denna adress kanske inte är korrekt!</translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="437"/> - <source>For URL: </source> - <translation>För URL: </translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="439"/> - <source> Monero Address = </source> - <translation> Monero-adress = </translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="441"/> - <source>Is this OK? (Y/n) </source> - <translation>är det OK? (J/n) </translation> - </message> - <message> - <location filename="../src/common/dns_utils.cpp" line="451"/> - <source>you have cancelled the transfer request</source> - <translation>du har avbrutit överföringsbegäran</translation> + <location filename="../src/simplewallet/simplewallet.cpp" line="6801"/> + <source>Failed to initialize wallet</source> + <translation>Det gick inte att initiera plånbok</translation> </message> </context> <context> <name>tools::wallet2</name> <message> - <location filename="../src/wallet/wallet2.cpp" line="106"/> - <source>Use daemon instance at <host>:<port></source> - <translation>Använd daemoninstans på <värddator>:<port></translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="107"/> - <source>Use daemon instance at host <arg> instead of localhost</source> - <translation>Använd daemon-instansen på värddator <arg> istället för localhost</translation> + <location filename="../src/wallet/wallet2.cpp" line="113"/> + <source>Use daemon instance at <host>:<port></source> + <translation>Använd daemoninstans på <värddator>:<port></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Wallet password</source> - <translation>Lösenord för plånboken</translation> + <location filename="../src/wallet/wallet2.cpp" line="114"/> + <source>Use daemon instance at host <arg> instead of localhost</source> + <translation>Använd daemon-instansen på värddator <arg> istället för localhost</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="109"/> + <location filename="../src/wallet/wallet2.cpp" line="116"/> <source>Wallet password file</source> <translation>Lösenordsfil för plånboken</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="110"/> - <source>Use daemon instance at port <arg> instead of 18081</source> - <translation>Använd daemon-instansen på port <arg> istället för 18081</translation> + <location filename="../src/wallet/wallet2.cpp" line="117"/> + <source>Use daemon instance at port <arg> instead of 18081</source> + <translation>Använd daemon-instansen på port <arg> istället för 18081</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="112"/> + <location filename="../src/wallet/wallet2.cpp" line="119"/> <source>For testnet. Daemon must also be launched with --testnet flag</source> <translation>För testnet. Daemonen måste också startas med flaggan --testnet</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="113"/> + <location filename="../src/wallet/wallet2.cpp" line="120"/> <source>Restricts to view-only commands</source> <translation>Begränsar till granskningskommandon</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="152"/> + <location filename="../src/wallet/wallet2.cpp" line="168"/> <source>can't specify daemon host or port more than once</source> <translation>det går inte ange värd eller port för daemonen mer än en gång</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="188"/> + <location filename="../src/wallet/wallet2.cpp" line="204"/> <source>can't specify more than one of --password and --password-file</source> <translation>det går inte att ange mer än en av --password och --password-file</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="204"/> + <location filename="../src/wallet/wallet2.cpp" line="217"/> <source>the password file specified could not be read</source> <translation>det gick inte att läsa angiven lösenordsfil</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="460"/> - <source>Enter new wallet password</source> - <translation>Ange nytt lösenord för plånboken</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="464"/> - <source>failed to read wallet password</source> - <translation>det gick inte att läsa lösenord för plånboken</translation> - </message> - <message> - <location filename="../src/wallet/wallet2.cpp" line="227"/> + <location filename="../src/wallet/wallet2.cpp" line="240"/> <source>Failed to load file </source> <translation>Det gick inte att läsa in fil </translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="108"/> + <location filename="../src/wallet/wallet2.cpp" line="115"/> <source>Wallet password (escape/quote as needed)</source> <translation>Lösenord för plånboken (använd escape-sekvenser eller citattecken efter behov)</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="111"/> + <location filename="../src/wallet/wallet2.cpp" line="118"/> <source>Specify username[:password] for daemon RPC client</source> <translation>Ange användarnamn[:lösenord] för RPC-klient till daemonen</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="233"/> + <location filename="../src/wallet/wallet2.cpp" line="224"/> + <source>no password specified; use --prompt-for-password to prompt for a password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="246"/> <source>Failed to parse JSON</source> <translation>Det gick inte att parsa JSON</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="240"/> + <location filename="../src/wallet/wallet2.cpp" line="253"/> <source>Version %u too new, we can only grok up to %u</source> <translation>Version %u är för ny, vi förstår bara upp till %u</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="258"/> + <location filename="../src/wallet/wallet2.cpp" line="269"/> <source>failed to parse view key secret key</source> <translation>det gick inte att parsa hemlig visningsnyckel</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="264"/> - <location filename="../src/wallet/wallet2.cpp" line="331"/> - <location filename="../src/wallet/wallet2.cpp" line="373"/> + <location filename="../src/wallet/wallet2.cpp" line="274"/> + <location filename="../src/wallet/wallet2.cpp" line="339"/> + <location filename="../src/wallet/wallet2.cpp" line="380"/> <source>failed to verify view key secret key</source> <translation>det gick inte att verifiera hemlig visningsnyckel</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="276"/> + <location filename="../src/wallet/wallet2.cpp" line="285"/> <source>failed to parse spend key secret key</source> <translation>det gick inte att parsa spendernyckel hemlig nyckel</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="282"/> - <location filename="../src/wallet/wallet2.cpp" line="343"/> - <location filename="../src/wallet/wallet2.cpp" line="394"/> + <location filename="../src/wallet/wallet2.cpp" line="290"/> + <location filename="../src/wallet/wallet2.cpp" line="349"/> + <location filename="../src/wallet/wallet2.cpp" line="405"/> <source>failed to verify spend key secret key</source> <translation>det gick inte att verifiera spendernyckel hemlig nyckel</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="295"/> + <location filename="../src/wallet/wallet2.cpp" line="302"/> <source>Electrum-style word list failed verification</source> <translation>det gick inte att verifiera ordlista av Electrum-typ</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="306"/> - <source>At least one of Electrum-style word list and private view key must be specified</source> - <translation>Åtminstone en av ordlista av Electrum-typ och privat visningsnyckel måste anges</translation> + <location filename="../src/wallet/wallet2.cpp" line="319"/> + <source>At least one of Electrum-style word list and private view key and private spend key must be specified</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="311"/> + <location filename="../src/wallet/wallet2.cpp" line="323"/> <source>Both Electrum-style word list and private key(s) specified</source> <translation>Både ordlista av Electrum-typ och privat nyckel har angivits</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="324"/> + <location filename="../src/wallet/wallet2.cpp" line="333"/> <source>invalid address</source> <translation>ogiltig adress</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="335"/> + <location filename="../src/wallet/wallet2.cpp" line="342"/> <source>view key does not match standard address</source> <translation>visningsnyckel matchar inte standardadress</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="347"/> + <location filename="../src/wallet/wallet2.cpp" line="352"/> <source>spend key does not match standard address</source> <translation>spendernyckel matchar inte standardadress</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="356"/> - <source>Cannot create deprecated wallets from JSON</source> + <location filename="../src/wallet/wallet2.cpp" line="360"/> + <source>Cannot generate deprecated wallets from JSON</source> <translation>Det går inte att skapa inaktuella plånböcker från JSON</translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="403"/> + <location filename="../src/wallet/wallet2.cpp" line="392"/> + <source>failed to parse address: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="398"/> + <source>Address must be specified in order to create watch-only wallet</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="413"/> <source>failed to generate new wallet: </source> <translation>det gick inte att skapa ny plånbok: </translation> </message> <message> - <location filename="../src/wallet/wallet2.cpp" line="5205"/> + <location filename="../src/wallet/wallet2.cpp" line="2813"/> + <location filename="../src/wallet/wallet2.cpp" line="2873"/> + <location filename="../src/wallet/wallet2.cpp" line="2952"/> + <location filename="../src/wallet/wallet2.cpp" line="2998"/> + <location filename="../src/wallet/wallet2.cpp" line="3089"/> + <location filename="../src/wallet/wallet2.cpp" line="3189"/> + <location filename="../src/wallet/wallet2.cpp" line="3599"/> + <location filename="../src/wallet/wallet2.cpp" line="3955"/> + <source>Primary account</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="7914"/> + <source>No funds received in this tx.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet2.cpp" line="8607"/> <source>failed to read file </source> <translation>det gick inte att läsa filen </translation> </message> @@ -2629,153 +3898,191 @@ Utgångar per *: </translation> <context> <name>tools::wallet_rpc_server</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="151"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="160"/> <source>Daemon is local, assuming trusted</source> <translation>Daemonen är lokal, utgår från att den är betrodd</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="175"/> + <source>Failed to create directory </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="177"/> + <source>Failed to create directory %s: %s</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source>Cannot specify --</source> <translation>Det går inte att ange --</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="171"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="188"/> <source> and --</source> <translation> och --</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>Failed to create file </source> <translation>Det gick inte att skapa fil </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="198"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="207"/> <source>. Check permissions or remove file</source> <translation>. Kontrollera behörigheter eller ta bort filen</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="209"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="217"/> <source>Error writing to file </source> <translation>Fel vid skrivning till fil </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="212"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="220"/> <source>RPC username/password is stored in file </source> <translation>Användarnamn/lösenord för RPC har sparats i fil </translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1748"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="443"/> + <source>Tag %s is unregistered.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2435"/> + <source>Transaction not possible. Available only %s, transaction amount %s = %s + %s (fee)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2870"/> + <source>This is the RPC monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2893"/> <source>Can't specify more than one of --wallet-file and --generate-from-json</source> <translation>Det går inte att ange mer än en av --wallet-file och --generate-from-json</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2905"/> <source>Must specify --wallet-file or --generate-from-json or --wallet-dir</source> <translation>Måste ange --wallet-file eller --generate-from-json eller --wallet-dir</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1764"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2909"/> <source>Loading wallet...</source> <translation>Läser in plånbok …</translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1789"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1814"/> - <source>Storing wallet...</source> - <translation>Sparar plånbok …</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2942"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2975"/> + <source>Saving wallet...</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1791"/> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1816"/> - <source>Stored ok</source> - <translation>Sparad ok</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2944"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2977"/> + <source>Successfully saved</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1794"/> - <source>Loaded ok</source> - <translation>Inläst ok</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2947"/> + <source>Successfully loaded</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1798"/> - <source>Wallet initialization failed: </source> - <translation>Det gick inte att initiera plånbok: </translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2958"/> + <source>Failed to initialize wallet RPC server</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2962"/> + <source>Starting wallet RPC server</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1805"/> - <source>Failed to initialize wallet rpc server</source> - <translation>Det gick inte att initiera RPC-servern för plånbok</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2969"/> + <source>Failed to run wallet: </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1809"/> - <source>Starting wallet rpc server</source> - <translation>Startar RPC-servern för plånbok</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2972"/> + <source>Stopped wallet RPC server</source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1811"/> - <source>Stopped wallet rpc server</source> - <translation>Stoppade RPC-servern för plånbok</translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2981"/> + <source>Failed to save wallet: </source> + <translation type="unfinished"></translation> </message> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1820"/> - <source>Failed to store wallet: </source> - <translation>Det gick inte att spara plånbok: </translation> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2951"/> + <source>Wallet initialization failed: </source> + <translation>Det gick inte att initiera plånbok: </translation> </message> </context> <context> <name>wallet_args</name> <message> - <location filename="../src/wallet/wallet_rpc_server.cpp" line="1715"/> - <location filename="../src/simplewallet/simplewallet.cpp" line="4580"/> + <location filename="../src/gen_multisig/gen_multisig.cpp" line="166"/> + <location filename="../src/simplewallet/simplewallet.cpp" line="6760"/> + <location filename="../src/wallet/wallet_rpc_server.cpp" line="2856"/> <source>Wallet options</source> <translation>Alternativ för plånbok</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="59"/> + <location filename="../src/wallet/wallet_args.cpp" line="73"/> <source>Generate wallet from JSON format file</source> <translation>Skapa plånbok från fil i JSON-format</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="63"/> - <source>Use wallet <arg></source> - <translation>Använd plånbok <arg></translation> + <location filename="../src/wallet/wallet_args.cpp" line="77"/> + <source>Use wallet <arg></source> + <translation>Använd plånbok <arg></translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="87"/> + <location filename="../src/wallet/wallet_args.cpp" line="104"/> <source>Max number of threads to use for a parallel job</source> <translation>Max antal trådar att använda för ett parallellt jobb</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="88"/> + <location filename="../src/wallet/wallet_args.cpp" line="105"/> <source>Specify log file</source> <translation>Ange loggfil</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="89"/> + <location filename="../src/wallet/wallet_args.cpp" line="106"/> <source>Config file</source> <translation>Konfigurationsfil</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="98"/> + <location filename="../src/wallet/wallet_args.cpp" line="115"/> <source>General options</source> <translation>Allmänna alternativ</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="128"/> + <location filename="../src/wallet/wallet_args.cpp" line="138"/> + <source>This is the command line monero wallet. It needs to connect to a monero +daemon to work correctly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/wallet/wallet_args.cpp" line="161"/> <source>Can't find config file </source> <translation>Det gick inte att hitta konfigurationsfilen </translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="172"/> + <location filename="../src/wallet/wallet_args.cpp" line="195"/> <source>Logging to: </source> <translation>Loggar till: </translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="173"/> + <location filename="../src/wallet/wallet_args.cpp" line="197"/> <source>Logging to %s</source> <translation>Loggar till %s</translation> </message> <message> - <location filename="../src/wallet/wallet_args.cpp" line="153"/> + <location filename="../src/wallet/wallet_args.cpp" line="140"/> <source>Usage:</source> <translation>Användning:</translation> </message> |