Commit Graph

1545 Commits

Author SHA1 Message Date
Lee *!* Clagett
463228b961 Skip privacy networks (on tx sends) that don't have outgoing connections 2024-03-29 13:01:58 -04:00
koe
e151ff711f update blake2b test vectors 2024-03-21 09:51:40 -05:00
jeffro256
d6609b83d6
serialization: do any N-tuple 2024-03-19 14:49:36 -05:00
jeffro256
8e80585ef5
functional_tests: test HTTP digest auth
Test:
  1. Can't login to RPC server with --rpc-login enabled, but no auth provided
  2. Can access RPC server with correct login
  3. Can use internal HTTP client to access RPC server with correct login

With commit 0ae5c91e50 not reverted, we fail test 3.
2024-03-11 23:54:50 -05:00
jeffro256
9d101d5ea0
serialization: protect blob serialization from undefined behavior
There is currently no compiler protection when someone tries to
do (for example) `BLOB_SERIALIZER(std::vector<int>)`. You just
get runtime allocation errors. This has already eaten up dev time
before, so this PR adds a static assertion that the type must be
trivially copyable, as defined by the C++ standard. Types can
override this if applicable if they use `BLOB_SERIALIZER_FORCED`.
2024-03-10 14:15:48 -05:00
jeffro256
7194506792
Blockchain: remove old fee calc logic 2024-03-10 13:30:46 -05:00
jeffro256
399b884a9c
unit_tests: fix strtoul unit test 2024-03-07 09:05:09 -06:00
jeffro256
38f354e89f
Enforce Tx unlock_time is Zero by Relay Rule
Related to https://github.com/monero-project/research-lab/issues/78

Added a relay rule that enforces the `unlock_time` field is equal to 0 for non-coinbase transactions.

UIs changed:
* Removed `locked_transfer` and `locked_sweep_all` commands from `monero-wallet-cli`

APIs changed:
* Removed `unlock_time` parameters from `wallet2` transfer methods
* Wallet RPC transfer endpoints send error codes when requested unlock time is not 0
* Removed `unlock_time` parameters from `construct_tx*` cryptonote core functions
2024-02-24 14:27:17 -06:00
luigi1111
f2493d9139
Merge pull request #9143
b1c9a80 Add <cstdint> to aligned test (Lee *!* Clagett)
2024-02-24 10:06:57 -05:00
luigi1111
486ae9f1cf
Merge pull request #9138
cd7ccfb Disable/fix ports with I2P (Lee Clagett)
2024-02-24 10:05:25 -05:00
luigi1111
c12ee59ebd
Merge pull request #9125
0c545f6 epee/test: remove levin_protocol_handler and core_proxy tests (jeffro256)
2024-02-24 09:59:50 -05:00
luigi1111
b91c433788
Merge pull request #8940
48b7d08 epee binary: container can read from empty seq of any type (jeffro256)
2024-02-24 09:55:58 -05:00
jeffro256
b13c5f6669
wallet: feature: transfer amount with fee included
To transfer ~5 XMR to an address such that your balance drops by exactly 5 XMR, provide a `subtractfeefrom` flag to the `transfer` command. For example:

    transfer 76bDHojqFYiFCCYYtzTveJ8oFtmpNp3X1TgV2oKP7rHmZyFK1RvyE4r8vsJzf7SyNohMnbKT9wbcD3XUTgsZLX8LU5JBCfm 5 subtractfeefrom=all

If my walet balance was exactly 30 XMR before this transaction, it will be exactly 25 XMR afterwards and the destination address will receive slightly
less than 5 XMR. You can manually select which destinations fund the transaction fee and which ones do not by providing the destination index.
For example:

    transfer 75sr8AAr... 3 74M7W4eg... 4 7AbWqDZ6... 5 subtractfeefrom=0,2

This will drop your balance by exactly 12 XMR including fees and will spread the fee cost proportionally (3:5 ratio) over destinations with addresses
`75sr8AAr...` and `7AbWqDZ6...`, respectively.

Disclaimer: This feature was paid for by @LocalMonero.
2024-02-20 17:08:06 -06:00
jeffro256
49ca1ad6ae
variant: split into variant and optional_variant
Upstreaming https://github.com/UkoeHB/monero/pull/28
2024-02-16 19:12:13 -06:00
jeffro256
48b7d0895a
epee binary: container can read from empty seq of any type 2024-02-16 15:53:07 -06:00
jeffro256
62fdacca07
variant: visit lambda and value-initialize by index 2024-02-14 02:01:44 -06:00
Lee Clagett
cd7ccfbdab Disable/fix ports with I2P 2024-01-30 13:40:05 -05:00
Lee *!* Clagett
b1c9a809a0 Add <cstdint> to aligned test 2024-01-29 21:37:22 -05:00
luigi1111
36addc1e56
Merge pull request #9084
01c6e4b OpenBSD: node server fix IP localhost by aliasing (mesaoptimizer)
2024-01-18 18:05:28 -05:00
luigi1111
e9a4deef81
Merge pull request #9079
eed975d Fix missing checks for IsObject in ZMQ jsonrpc reading (Lee Clagett)
2024-01-18 18:03:18 -05:00
luigi1111
4b1910af13
Merge pull request #9073
53e632b fix merge mining with more than one merge mined chain (Crypto City)
2024-01-18 18:01:34 -05:00
luigi1111
5d3679c43c
Merge pull request #9069
a11e03a serialization: fix infinite loops and clean up dispatching (jeffro256)
2024-01-18 18:00:25 -05:00
jeffro256
0c545f614a
epee/test: remove levin_protocol_handler and core_proxy tests 2024-01-17 17:17:16 -06:00
jeffro256
a79734c848
cryptonote_basic: faster and more readable is_valid_decomposed_amount
Includes performance tests
2024-01-15 15:44:10 -06:00
mesaoptimizer
01c6e4b4ad
OpenBSD: node server fix IP localhost by aliasing
The test node_server.bind_same_p2p_port fails by default on OpenBSD
for at least the debug build. Using the same ifconfig command as
described for MacOS results in the test passing.
2023-12-10 22:08:05 +01:00
Crypto City
53e632b435
fix merge mining with more than one merge mined chain
reported by sech1
2023-11-30 17:01:52 +00:00
Lee Clagett
eed975db5d Fix missing checks for IsObject in ZMQ jsonrpc reading 2023-11-28 18:02:57 -05:00
jeffro256
a11e03afa6
serialization: fix infinite loops and clean up dispatching
Resolves #8687
2023-11-18 03:47:55 -06:00
luigi1111
cab0ebdeb5
Merge pull request #9045
504269e unit tests: fix running from pwd and auto test selected location (jeffro256)
2023-11-06 09:35:11 -05:00
luigi1111
b0ea37a198
Merge pull request #9044
5443240 core_tests: fix gcc7 compilation (selsta)
2023-11-06 09:34:37 -05:00
luigi1111
3ab36f36f9
Merge pull request #9030
30cf537 unit tests: wallet_storage: generate in 'Ascii' format test (jeffro256)
2023-11-06 09:26:48 -05:00
luigi1111
54e8463fe6
Merge pull request #8990
c17f73a add sp_transcript (koe) 51e40f7 add seraphis_crypto directory (koe)
2023-11-06 09:24:37 -05:00
jeffro256
504269e6cf
unit tests: fix running from pwd and auto test selected location 2023-10-28 03:14:05 -05:00
selsta
5443240aa6
core_tests: fix gcc7 compilation 2023-10-28 04:26:27 +02:00
luigi1111
a1a40d67d2
Merge pull request #8987
1025e4f unit_test: set data dir relative to exe & add log-level arg (jeff)
2023-10-25 21:37:09 -04:00
luigi1111
e3d0154b5b
Merge pull request #8969
8190f25 KV_SERIALIZE: remove extraneous semicolons in DSL (jeffro256)
2023-10-25 21:35:43 -04:00
luigi1111
d5da693866
Merge pull request #8958
b0bf49a blockchain_db: add k-anonymity to txid fetching (jeffro256)
2023-10-25 21:34:06 -04:00
luigi1111
8f0343df16
Merge pull request #8752
c444a7e trezor: support v2.5.2+, add more trezor tests, fix chaingen and tests (Dusan Klinec)
056c996 fix chaingen tests (Dusan Klinec)
2023-10-25 21:30:49 -04:00
jeffro256
30cf537bcc
unit tests: wallet_storage: generate in "Ascii" format test 2023-10-21 18:37:12 -05:00
Boog900
bb33daab1b
add a test for the long term weight cache 2023-10-02 01:38:10 +01:00
Dusan Klinec
c444a7e002
trezor: support v2.5.2+, add more trezor tests, fix chaingen and tests
- passphrase logic: remove backward compatibility for 2.4.3, code cleanup.
- fix LibUSB cmake for static builds on OSX
- tests: all tests now work with passphrase logic enabled. Passphrase test added with different passphrase. no_passphrase test added, Trezor pin test added. Testing wallet opening with correct and incorrect passphrase. Trezor test chain revamp, cleanup. Smaller chain, chain file versioning added.
- tests: Trezor tests support TEST_MINING_ENABLED, TEST_MINING_TIMEOUT env vars to change mining-related tests behaviour.
- requires protobuf@21 on osx for now (c++14), building with unlinked protobuf: `CMAKE_PREFIX_PATH=$(find /opt/homebrew/Cellar/protobuf@21 -maxdepth 1 -type d -name "21.*" -print -quit) \
make debug-test-trezor -j8`
2023-09-30 09:01:10 +02:00
Dusan Klinec
056c996703
fix chaingen tests
- fix tx create from sources, input locking. Originally, creating a synthetic transactions with chaingen could create a transaction with outputs that are still locked in the current block, thus failing chain validation by the daemon. Simple unlock check was added. Some buggy tests were fixed as well as new unlock-checking version of tx creation rejected those, fixes are simple - mostly using correct block after a rewind to construct a transaction
2023-09-29 19:11:20 +02:00
luigi1111
90294f09ae
Merge pull request #8976
d4d8840 functional_tests: fix multisig tests noutputs assertion (jeffro256)
2023-09-14 22:20:10 -05:00
koe
51e40f721b add seraphis_crypto directory 2023-09-10 16:49:58 -05:00
koe
236e5d4623 update TimingsDatabase to support csv format and incremental updating 2023-09-10 15:51:54 -05:00
jeff
1025e4fcb1
unit_test: set data dir relative to exe & add log-level arg 2023-09-10 02:18:50 -05:00
jeffro256
1bea8ef42a
wallet2: fix store_to() and change_password()
Resolves #8932 and:
2. Not storing cache when new path is different from old in `store_to()` and
3. Detecting same path when new path contains entire string of old path in `store_to()` and
4. Changing your password / decrypting your keys (in this method or others) and providing a bad original password and getting no error and
5. Changing your password and storing to a new file
2023-08-23 11:48:18 -05:00
jeffro256
d4d884057c
functional_tests: fix multisig tests noutputs assertion
The changes to the multisig tests in #8914 and #8904 affected each other, this PR cleans up the code and fixes that issue.
2023-08-19 22:09:51 -05:00
luigi1111
6fc67869a1
Merge pull request #8924
ffbf9f4 blockchain_and_pool: move to crytonote_core and enforce its usage (jeffro256)
d6f86e5 Avoid nullptr dereference when constructing Blockchain and tx_memory_pool (lukas)
2023-08-17 10:21:40 -05:00
luigi1111
3b67d5fc5b
Merge pull request #8914
45b52de wallet-rpc: restore from multisig seed (jeffro256)
2023-08-17 10:20:20 -05:00
luigi1111
30ba5a5280
Merge pull request #8890
e8cac61 core_rpc_server: return ID of submitted block (jeffro256)
2023-08-17 10:17:46 -05:00
luigi1111
4cabfe7aba
Merge pull request #8853
6ff87ef net: tor_address: remove support for v2 onion addresses (tobtoht)
2023-08-17 10:11:12 -05:00
jeffro256
8190f2532b
KV_SERIALIZE: remove extraneous semicolons in DSL
Prereq of https://github.com/monero-project/monero/pull/8867
2023-08-10 11:13:14 -05:00
jeffro256
b0bf49a65a
blockchain_db: add k-anonymity to txid fetching
Read more about k-anonymity [here](https://en.wikipedia.org/wiki/K-anonymity). We implement this feature in the monero daemon for transactions
by providing a "Txid Template", which is simply a txid with all but `num_matching_bits` bits zeroed out, and the number `num_matching_bits`. We add an operation to `BlockchainLMDB` called
`get_txids_loose` which takes a txid template and returns all txids in the database (chain and mempool) that satisfy that template. Thus, a client can
ask about a specific transaction from a daemon without revealing the exact transaction they are inquiring about. The client can control the statistical
chance that other TXIDs (besides the one in question) match the txid template sent to the daemon up to a power of 2. For example, if a client sets their `num_matching_bits`
to 5, then statistically any txid has a 1/(2^5) chance to match. With `num_matching_bits`=10, there is a 1/(2^10) chance, so on and so forth.

Co-authored-by: ACK-J <60232273+ACK-J@users.noreply.github.com>
2023-08-01 17:25:25 -05:00
jeffro256
45b52de28e
wallet-rpc: restore from multisig seed 2023-07-28 12:17:14 -05:00
luigi1111
d5c7d1743f
Merge pull request #8904
369a5a8 wallet: respect frozen key images in multisig wallets (jeffro256)
2023-07-06 21:37:58 -05:00
luigi1111
f44820b2fb
Merge pull request #8901
ea053b6 Update tests/hash/main.cpp (0xFFFC0000)
6bae913 Tests: Add blake2b Test Cases for hash testing. 	* Adding blake2b test function to src/tests/hash 	* New files for testvector. 	* Adding the test to CMakeLists.txt 	* Adding brief documentation for the test. (0xFFFC0000)
2023-07-06 21:35:36 -05:00
luigi1111
c34dc5b215
Merge pull request #8854
d9c7cd5 common: do not use DNS to determine if address is local (tobtoht)
2023-07-06 21:30:34 -05:00
tobtoht
d9c7cd5a89
common: do not use DNS to determine if address is local
Co-authored-by: j-berman <justinberman@protonmail.com>
2023-07-03 13:34:39 +02:00
jeffro256
ffbf9f4766
blockchain_and_pool: move to crytonote_core and enforce its usage 2023-07-01 07:12:53 -05:00
jeffro256
e8cac61f4b
core_rpc_server: return ID of submitted block 2023-06-30 15:31:35 -05:00
koe
16d17f6707 add crypto/generators for direct access to canonical fixed generators 2023-06-28 09:52:27 -05:00
luigi1111
e4e8edd9c9
Merge pull request #8870
eb94356 Add to_hex::buffer (Lee *!* Clagett)
2023-06-27 11:45:48 -05:00
luigi1111
6775a1b50f
Merge pull request #8858
25a803f tests: remove unused perl scripts (tobtoht)
2023-06-27 11:43:48 -05:00
luigi1111
29337714c4
Merge pull request #8857
f7deb7d tests: remove daemon_tests (tobtoht)
2023-06-27 11:43:19 -05:00
luigi1111
e752b609fc
Merge pull request #8660
2a7435e variant: add mutable unwrap and visitation (koe)
bc3cec4 add variant class with cleaner interface than boost::variant<> (koe)
2023-06-27 11:25:52 -05:00
luigi1111
feb7fa4986
Merge pull request #8659
5c505bd performance test framework updates: allow custom test parameters, better error reporting (koe)
2023-06-27 11:24:47 -05:00
j-berman
e6b86af931 wallet2: fix rescanning tx via scan_tx
- Detach & re-process txs >= lowest scan height
- ensures that if a user calls scan_tx(tx1) after scanning tx2,
the wallet correctly processes tx1 and tx2
- if a user provides a tx with a height higher than the wallet's
last scanned height, the wallet will scan starting from that tx's
height
- scan_tx requires trusted daemon iff need to re-process existing
txs: in addition to querying a daemon for txids, if a user
provides a txid of a tx with height *lower* than any *already*
scanned txs in the wallet, then the wallet will also query the
daemon for all the *higher* txs as well. This is likely
unexpected behavior to a caller, and so to protect a caller from
revealing txid's to an untrusted daemon in an unexpected way,
require the daemon be trusted.
2023-06-15 02:21:29 -07:00
0xFFFC0000
ea053b6c61
Update tests/hash/main.cpp
Removing preprocessor macro and replacing it with constexpr.

Co-authored-by: Jeffro <jeffreyryan@tutanota.com>
2023-06-13 01:20:42 +03:30
jeffro256
369a5a8f9a wallet: respect frozen key images in multisig wallets
Before this change, if a multisig peer asked you to sign a transaction with a frozen enote, the wallet will do it without any error or warning. This change makes it
so that wallets will refuse to sign multisig transactions with frozen enotes.

Disclaimer: This PR was generously funded by @LocalMonero.
2023-06-12 16:47:28 -05:00
0xFFFC0000
6bae91304e Tests: Add blake2b Test Cases for hash testing.
* Adding blake2b test function to src/tests/hash
	* New files for testvector.
	* Adding the test to CMakeLists.txt
	* Adding brief documentation for the test.
2023-06-12 08:29:35 +03:30
Lee *!* Clagett
eb943562cb Add to_hex::buffer 2023-05-22 13:36:05 -04:00
tobtoht
25a803f31e
tests: remove unused perl scripts 2023-05-12 22:07:25 +02:00
tobtoht
f7deb7d7ae
tests: remove daemon_tests 2023-05-12 21:24:55 +02:00
tobtoht
6ff87ef89f
net: tor_address: remove support for v2 onion addresses 2023-05-12 17:09:54 +02:00
luigi1111
0d9e790311
Merge pull request #8802
eb0e405 gamma picker: relax constructor requirements and test for selecting outputs from first spendable block (jeffro256)
2023-04-25 11:26:20 -04:00
luigi1111
df2eb0da0a
Merge pull request #8796
7a4a03d wallet2: do not commit transactions more than once (moneromooo-monero)
2023-04-25 11:24:15 -04:00
luigi1111
9bf06ea75d
Merge pull request #8698
5b4fea7 Copyright: Update to 2023 (mj-xmr)
2023-04-25 11:12:56 -04:00
jeffro256
eb0e4052b7 gamma picker: relax constructor requirements and test for selecting outputs from first spendable block 2023-04-02 20:06:09 -05:00
moneromooo-monero
7a4a03d9d3
wallet2: do not commit transactions more than once
Fixes #8793
2023-03-21 21:05:53 +00:00
Jeffrey Ryan
7159f92a57 verRctNonSemanticsSimpleCached: fix fragility 2023-03-17 18:45:35 -05:00
koe
8d94d08816 replace 'multisig()' with 'get_multisig_status()' using multisig_account_status and including '.kex_is_done' member 2023-02-28 12:54:40 -06:00
koe
2a7435e026 variant: add mutable unwrap and visitation 2023-02-12 13:00:53 -06:00
koe
bc3cec4634 add variant class with cleaner interface than boost::variant<> 2023-01-30 22:03:35 -06:00
mj-xmr
5b4fea72cf Copyright: Update to 2023
Co-authored-by: plowsof <plowsof@protonmail.com>
extra files
2023-01-16 13:00:18 +01:00
luigi1111
75d80d431a
Merge pull request #8686
7a3a593 common: move boost_serialization_helper.h out and cleanup includes (Jeffrey Ryan)
2023-01-11 12:13:48 -05:00
luigi1111
9489586add
Merge pull request #8648
8687da6 common: DNSResolver can handle hostnames without dot characters (Jeffrey Ryan)
2023-01-11 11:41:11 -05:00
luigi1111
b363eebd52
Merge pull request #8643
faaf2af p2p: fix exclusive node DNS resolution for certain hosts (Jeffrey Ryan)
2023-01-11 11:39:42 -05:00
Jeffrey Ryan
7a3a593a77 common: move boost_serialization_helper.h out and cleanup includes 2022-12-22 12:18:02 -06:00
koe
5c505bda29 performance test framework updates: allow custom test parameters, better error reporting 2022-12-01 17:07:52 -06:00
luigi1111
7275a4d23b
Merge pull request #8627
a7bf3af Fix dandelion++ fluff/stem bug with local txes (Lee Clagett)
2022-12-01 01:10:20 -06:00
luigi1111
2f168da7f7
Merge pull request #8618
1114e7e fix(trezor-tests): fix trezor tests build, fix integrated addr test (Dusan Klinec)
2022-12-01 01:08:53 -06:00
luigi1111
12489c69cb
Merge pull request #8572
50b7492 unit_tests: suppress memwipe unit warning (Jeffrey Ryan)
2022-12-01 01:01:34 -06:00
Jeffrey Ryan
8687da6276 common: DNSResolver can handle hostnames without dot characters
Unrelated, but similar code-wise to #8643. There is a check in `DNSResolver` which automatically fails to resolve hostnames which do not contain the `.` character. This PR removes that check.
2022-11-21 15:54:23 -06:00
Jeffrey Ryan
faaf2af43b p2p: fix exclusive node DNS resolution for certain hosts
Fixes #8633. The function `append_net_address` did not parse hostname + port addresses (e.g. `bar:29080`) correctly if the hostname did not contain a `'.'` character.

@vtnerd comments 1

clear up 2nd conditional statement
2022-11-17 18:55:09 -06:00
Dusan Klinec
1114e7eed7
fix(trezor-tests): fix trezor tests build, fix integrated addr test
- fix integrated address test, it was not testing integrated address suport
- fix trezor test build as dependent classes were changed
- add a friend test class for Monero::WalletImpl to support wallet api tests
When using wallet_api in tests, synthetic chain is used. Without being able to set `allow_mismatched_daemon_version` in the underlying wallet, we are not able to use a synthetic chain with the tests
2022-11-17 12:12:23 +01:00
Lee Clagett
a7bf3aff2c Fix dandelion++ fluff/stem bug with local txes 2022-10-25 16:09:55 -04:00
luigi1111
fc907a9570
Merge pull request #8587
8e7c7af Move update_checkpoints() to a later stage (SChernykh)
2022-09-26 15:00:35 -05:00
luigi1111
239d210a18
Merge pull request #8576
28f25c0 Second thread pool for IO (SChernykh)
2022-09-26 14:50:56 -05:00
luigi1111
0a10a4f870
Merge pull request #8329
4b0785f add an option to force-update multisig key exchange under some circumstances (koe)
2022-09-26 14:46:06 -05:00