Age | Commit message (Collapse) | Author | Files | Lines |
|
Wallet API: add approximateBlockChainHeight()
|
|
|
|
358e068 Created monero-wallet-rpc, moving functionality from monero-wallet-cli (Lee Clagett)
|
|
9150a16 Wallet API: use stored refresh height when rebuilding cache (Jacob Brydolf)
|
|
63772e4 wallet: fix corner case of no recent outputs available (moneromooo-monero)
|
|
|
|
|
|
|
|
Also clarify related logs
|
|
40a68e2 wallet2_api: add API for create_unmixable_sweep_transactions (moneromooo-monero)
|
|
c441a61 wallet2_api: API to sign and verify a message (moneromooo-monero)
|
|
4dcb74f wallet_api: PendingTransaction::txCount - number of split transactions (Ilya Kitaev)
|
|
c80f4d4 wallet: fix output collision detection for view wallets (moneromooo-monero)
|
|
|
|
|
|
0c530de Wallet API: Pause refresh while creating transaction (Jacob Brydolf)
|
|
8aba0d4 wallet: encrypt outputs and key images files with the view key (moneromooo-monero)
|
|
63fe6fd wallet2_api: allow connection to return "yes, but wrong version" (moneromooo-monero)
|
|
35da3cb Wallet API: added getTxKey() (Jacob Brydolf)
|
|
|
|
eb19492 wallet2_api: do not copy the whole pending tx when iterating (moneromooo-monero)
|
|
97288a5 wallet2_api: add API for tx notes (moneromooo-monero)
|
|
af8a260 wallet_api: txkey checking functions for the GUI (moneromooo.monero)
|
|
a970a4e refresh speedup (luigi1111)
|
|
18f66f4 wallet: use the dynamic per kB fee (moneromooo-monero)
e6deb8a rpc: add a dynamic fee estimation RPC call (moneromooo-monero)
82dbba1 core: dynamic fee algorithm from ArticMine (moneromooo-monero)
|
|
|
|
|
|
This key is available to both cold and hot wallet.
Authenticated encryption will guard against interception and/or
modification of the file.
|
|
View wallets do not have the spend secret key, and are thus
unable to derive key images for incoming outputs. Moreover,
a previous patch set key images to zero as a means to mark
an output as having an unknown key image, so they could be
filled in when importing key images at a later time. That
later patch caused spurious collisions. We now use public
keys to detect duplicate outputs. Public keys obtained from
the blockchain are checked to be identical to the ones
derived locally, so can't be spoofed.
|
|
|
|
|
|
|
|
|
|
m_amount_out was sometimes getting initialized with the sum of
an transaction's outputs, and sometimes with the sum of outputs
that were not change. This caused confusion and bugs. We now
always set it to the sum of outputs. This reverts an earlier
fix for bad amounts as this used the other semantics. The wallet
data should be converted automatically in a percentage of cases
that I'm hesitant to estimate. In any case, restoring from seed
or keys or rebuilding the cache will get it right.
|
|
Compute derivation only once per tx, instead of once per output. Approx 33% faster while using 75% as much CPU on my machine. Note old functions in cryptonote_core (lookup_acc_outs and is_out_to_acc) are still used by tests.
|
|
43ec2d0 Wallet API: added walletExists logic (Jacob Brydolf)
|
|
4869db7 adding static_assert to pod functions in string tools (Lee Clagett)
|
|
bb560dd wallet: new import_outputs/export_outputs commands (moneromooo-monero)
|
|
|
|
|
|
The intended use is to export outputs from a hot wallet, which
can scan incoming transfers from the network, and import them
in the cold wallet, which can't. The cold wallet can then compute
key images for those outputs, which can then be exported with
export_key_images, etc.
|
|
|
|
This allows rescan_spent to know the daemon response to those
is not valid.
|
|
This is on the potentially compromised wallet, but still guards
against stupid mistakes.
|
|
fdef09f Wallet API: make sure path exists before searching for wallets (Jacob Brydolf)
|
|
|
|
Not as trustworthy as this is in the view wallet, the one
that's considered compromised.
|
|
Re-creating the transaction on the cold wallet was not splitting
the change, causing the transaction to be rejected by the network.
This worked on testnet since amounts do not have to be split.
Also add selected_transfers, which can now be saved since they're
size_t rather than iterators. This allows the view wallet to
properly set the sent outputs as spent and update balance.
Bump transfer file version numbers to match.
|
|
372f338 wallet: sanity check on selected transfer indices in signed ptx (moneromooo-monero)
|
|
06b642d wallet_api: add address validation functions (moneromooo-monero)
|
|
b6b86ab wallet2_api: recognize full size payment ids as valid (moneromooo-monero)
|
|
2bf65df wallet_api: do not override invalid payment id (moneromooo-monero)
|
|
04da979 Always confirm transfers defaults to ON/YES (NanoAkron)
|
|
8231997 simplewallet: fix sweep_all misreporting sweeped amount for rct outputs (moneromooo-monero)
985f61a wallet: force 0 mixin transactions to use pre-rct txes (moneromooo-monero)
|
|
0950be9 wallet: speed up output selection, and fix bug with relatedness calculation (moneromooo-monero)
0eba133 wallet: fix mixup between mixin 2 and 4 before/after v5 (moneromooo-monero)
|
|
e76dcdd wallet: improve error messages when not enough money for transfer (moneromooo-monero)
|
|
2d7083c wallet_api: fix wrong amount in tx history (moneromooo-monero)
b5f2001 simplewallet: fix wrong amount in show_transfers (moneromooo-monero)
|
|
a3748f4 Rewrote add_wallet_create_if_needed for clearer flow and behaviour (NanoAkron)
|
|
|
|
The payment id from integrated addresses is also parsed
|
|
|
|
Instead, return an empty string to mark the error
|
|
|
|
|
|
RingCT outputs will be 0 in the vin, so we need to get the actual
amount from elsewhere.
|
|
rct transactions does not support 0 mixin, and those are
now typically dust sweep transactions, for which a lower
fee is a must.
|
|
25% of the outputs are selected from the last 5 days (if possible),
in order to avoid the common case of sending recently received
outputs again. 25% and 5 days are subject to review later, since
it's just a wallet level change.
|
|
|
|
|
|
|
|
|
|
|
|
697ce1d libwallet_api: reverted deleted curly brace (Ilya Kitaev)
bb9094f libwallet_api: fixes for transaction history (Ilya Kitaev)
62b3708 libwallet_api: do not signal on sent/received tx until wallet completely synchronized (Ilya Kitaev)
11fab41 libwallet_api: TransactionHistory: read/write syncchronization (Ilya Kitaev)
559f379 libwallet_api: test: adjusted mixin_count=4 as it's minumum allowed (Ilya Kitaev)
8b0cb8c libwallet_api: some renamings (Ilya Kitaev)
db3282c Initialize transaction history if empty (Ilya Kitaev)
85f5e73 libwallet_api: fixes for transaction history (Ilya Kitaev)
|
|
36a89ab libwallet_api: Added option to restore from specific height (Jacob Brydolf)
|
|
9f31e2d wallet: do not announce pool txes as money spent/received (yet) (moneromooo-monero)
|
|
|
|
|
|
|
|
|
|
synchronized
|
|
|
|
|
|
|
|
|
|
|
|
This was still using the old transaction creation algorithm,
coupled with a deterministic output selection scheme, which
made it ill suited to the job, since it'd loop indefinitely
in case the fee increased between the test tx and adding the
fee.
|
|
65ea836 wallet2_api: added Wallet::daemonBlockChainTargetHeight() libwallet_api: Wallet::blockChainTargetHeight (Jacob Brydolf)
|
|
80b4da3 wallet: wallet option to confirm transfers with no payment id (moneromooo-monero)
|
|
01ec195 Update CMakeLists.txt (codehalo)
446ebbc Update CMakeLists.txt (codehalo)
bd773e7 Update CMakeLists.txt (codehalo)
3627cea Cleanup. Dropped "bit" from bitmonero. (Randi Joseph)
2a51396 Dropped "bit" from bitmonero. (Randi Joseph)
78b13d6 Cleanup. Dropped "bit" from bitmonero. (Randi Joseph)
1e6aedb Cleanup. Dropped "bit" from bitmonero. (Randi Joseph)
9e54616 Dropped "bit" from bitmonero. (Randi Joseph)
|
|
7b09e9f wallet: update min mixin for sweep_unmixable on v4 (moneromooo-monero)
|
|
8b20cbf libwallet_api: do not use fast-refresh on recovery (Ilya Kitaev)
10fe626 libwallet_api: fast-refresh in case of opening non-synced wallet (Ilya Kitaev)
0019e31 libwallet_api: fix unhandled exception on address check (Ilya Kitaev)
1f73f80 libwallet_api: fast-refresh for new wallet (Ilya Kitaev)
4789347 libwallet_api: test for create/init wallet on mainnet (Ilya Kitaev)
|
|
bba6af9 wallet: cold wallet transaction signing (moneromooo-monero)
9872dcb wallet: fix log confusion between bytes and kilobytes (moneromooo-monero)
d9b0bf9 cryptonote_core: make extra field removal more generic (moneromooo-monero)
98f19d4 serialization: add support for serializing std::pair and std::list (moneromooo-monero)
|
|
libwallet_api: Wallet::blockChainTargetHeight
Signed-off-by: Jacob Brydolf <jacob@brydolf.net>
|
|
|
|
set confirm-missing-payment-id 0|1
Defaults to true.
|
|
|
|
|
|
|
|
success
|
|
|
|
on error
|
|
This change adds the ability to create a new unsigned transaction
from a watch only wallet, and save it to a file. This file can
then be moved to another computer/VM where a cold wallet may load
it, sign it, and save it. That cold wallet does not need to have
a blockchain nor daemon. The signed transaction file can then be
moved back to the watch only wallet, which can load it and send
it to the daemon.
Two new simplewallet commands to use it:
sign_transfer (on the cold wallet)
submit_transfer (on the watch only wallet)
The transfer command used on a watch only wallet now writes an
unsigned transaction set in a file called 'unsigned_monero_tx'
instead of submitting the tx to the daemon as a normal wallet does.
The signed tx file is called 'signed_monero_tx'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is intended to catch traffic coming from a web browser,
so we avoid issues with a web page sending a transfer RPC to
the wallet. Requiring a particular user agent can act as a
simple password scheme, while we wait for 0MQ and proper
authentication to be merged.
|
|
c2faab5 fix v5 height (Riccardo Spagni)
70bd7d8 remove dead backup seed nodes, add new ones (Riccardo Spagni)
cebbcf0 fix v5 fork date description (Riccardo Spagni)
eb60fa2 update version (Riccardo Spagni)
c41098a updated fork heights for v4 and v5 (Riccardo Spagni)
c69b8a1 update block headers (Riccardo Spagni)
f148af2 add checkpoints (Riccardo Spagni)
c15da0e switch wallet API from std thread/mutex to boost (Riccardo Spagni)
8a274ea switch wallet API from std thread/mutex to boost (Riccardo Spagni)
|
|
1dd5b0b wallet: keep change dest separate from other dests (moneromooo-monero)
|
|
5f5d727 wallet: fix empty tx in corner case sending nothing (moneromooo-monero)
|
|
|
|
This fixes misreporting of amount/fee in rct txes, as the rct
tx construction code was lumping all dests (whether change or
not) in the same dests vector, while the pre-rct code was
keeping it separate.
|
|
|
|
Keep the immediate direct deps at the library that depends on them,
declare deps as PUBLIC so that targets that link against that library
get the library's deps as transitive deps.
Break dep cycle between blockchain_db <-> crytonote_core.
No code refactoring, just hide cycle from cmake so that
it doesn't complain (cycles are allowed only between
static libs, not shared libs).
This is in preparation for supproting BUILD_SHARED_LIBS cmake
built-in option for building internal libs as shared.
|
|
We keep 1, 2, 3 multipliers till the fee decrase from 0.01/kB
to 0.002/kB, where we start using 1, 20, 166 multipliers.
This ensures the higher multiplier will compensate for the
block reward penalty when pushing past 100% of the past median.
The fee-multiplier wallet setting is now rename to priority,
since it keeps its [0..3] range, but maps to different multiplier
values.
|
|
cd01bae Decrease minimum fee from 0.01/kB to 0.002/kB (moneromooo-monero)
|
|
The wallet will start using that fee about two weeks after hard
fork 3, when most people will likely have updated their daemons.
|
|
|
|
43677f9 gui/libwallet_merged: libunbound is one more dependency (Ilya Kitaev)
|
|
|
|
4d17949 wallet_merged: ringct added to dependencies (Ilya Kitaev)
|
|
|
|
Whoops.
|
|
Some variance is still expected
|
|
85dc0ce wallet: sanity check on histogram response (moneromooo-monero)
|
|
3112e24 wallet: interpret 0 fee multiplier as default for sweep_all too (moneromooo-monero)
|
|
1de812a cmake: merge libs via virtual object libraries (redfish)
a7498ad cmake: comply with the new policy CMP0026 (redfish)
|
|
|
|
CMake issued a warming about policy CMP0026: access of LOCATION
target property at config time was disallowed. Offending code
was the code that merged static libraries to generate
libwallet_merged.a.
This patch does that same merge task in a much simpler way. And,
since it doesn't violate the policy, the warning went away.
|
|
|
|
If picking coinbase outputs, those are locked for a longer time
than other outputs, so we ask for more of those
|
|
It is useful, especially when requesting a random one
|
|
The compiler can't always work out the _found booleans are
set iff the value is initialized.
|
|
|
|
|
|
|
|
When RingCT is enabled, outputs from coinbase transactions
are created as a single output, and stored as RingCT output,
with a fake mask. Their amount is not hidden on the blockchain
itself, but they are then able to be used as fake inputs in
a RingCT ring. Since the output amounts are hidden, their
"dustiness" is not an obstacle anymore to mixing, and this
makes the coinbase transactions a lot smaller, as well as
helping the TXO set to grow more slowly.
Also add a new "Null" type of rct signature, which decreases
the size required when no signatures are to be stored, as
in a coinbase tx.
|
|
This allows the key to be not the same for two outputs sent to
the same address (eg, if you pay yourself, and also get change
back). Also remove the key amounts lists and return parameters
since we don't actually generate random ones, so we don't need
to save them as we can recalculate them when needed if we have
the correct keys.
|
|
for future expansion
|
|
Saves some substantial space.
Also avoid calculating tx hashes we don't need.
|
|
Makes it easier to track what is going on.
|
|
This ensures we get rct transactions when appropriate
|
|
|
|
|
|
|
|
Scheme design from luigi1114.
|
|
They can be reconstructed from vout
|
|
|
|
|
|
This plugs a privacy leak, where the wallet tells the daemon
which transactions contain outputs for the wallet by asking
for additional information for that particular transaction.
As a nice bonus, this actually makes refresh slightly faster.
|
|
We try to avoid related inputs, when possible
|
|
With RCT, we allow 0 size outputs, to try and encourage txes
with two inputs and two outputs. Consolidation would then
have two non zero inputs, one zero output, and one larger
output.
|
|
|
|
|
|
Before the normal selection, we attempt to find either one or two
suitable outputs to use as inputs to the rct tx. The intent is that
most rct txes will have one or two inputs, and we want all to look
the same if possible.
When two outputs are needed, we try to find a pair which are not
related (ie, by being from the same or similar block height).
|
|
|
|
The "transfer" simplewallet command is renamed to "transfer_original".
"transfer_new" is renamed "transfer", "transfer_rct" is removed,
and the new "transfer" now selects rct or non rct transactions
based on the current block height.
|
|
The mixRing (output keys and commitments) and II fields (key images)
can be reconstructed from vin data.
This saves some modest amount of space in the tx.
|
|
|
|
If the blockchain gets reorganized, all outputs spent in the part
of the blockchain that's blown away need to be reset to unspent
(they may end up spent again on the blocks that replace the blocks
that are removed, however).
|
|
It is not yet constrained to a fork, so don't use on the real network
or you'll be orphaned or rejected.
|
|
99dd572 libwallet_api: tests: checking for result while opening wallet (Ilya Kitaev)
bcf7b67 libwallet_api: Wallet::amountFromString fixed (Ilya Kitaev)
32bc7b4 libwallet_api: helper method to return maximumAllowedAmount (Ilya Kitaev)
cbe534d libwallet_api: tests: removed logged passwords (Ilya Kitaev)
b1a5a93 libwallet_api: do not store wallet on close if status is not ok (Ilya Kitaev)
|
|
|
|
|
|
25f529a wallet: store key images after importing them (moneromooo-monero)
|
|
|
|
It avoids rescan_spent resetting spent status, for example.
|
|
Reported by RaskaRuby, tested by iDunk5400.
|
|
11dc091 Fake outs set is now decided by the wallet (moneromooo-monero)
1593553 new unlocked parameter to output_histogram (moneromooo-monero)
|
|
This plugs a privacy leak from the wallet to the daemon,
as the daemon could previously see what input is included
as a transaction input, which the daemon hadn't previously
supplied. Now, the wallet requests a particular set of
outputs, including the real one.
This can result in transactions that can't be accepted if
the wallet happens to select too many outputs with non standard
unlock times. The daemon could know this and select another
output, but the wallet is blind to it. It's currently very
unlikely since I don't think anything uses non default
unlock times. The wallet requests more outputs than necessary
so it can use spares if any of the returns outputs are still
locked. If there are not enough spares to reach the desired
mixin, the transaction will fail.
|
|
|
|
This constrains the number of instances of any amount
to the unlocked ones (as defined by the default unlock time
setting: outputs with non default unlock time are not
considered, so may be counted as unlocked even if they are
not actually unlocked).
|
|
ebf97d7 wallet: new {ex,im}port_key_images commands and RPC calls (moneromooo-monero)
|
|
They are used to export a signed set of key images from a wallet
with a private spend key, so an auditor with the matching view key
may see which of those are spent, and which are not.
|
|
It is not clear why libunbound was added to this in the first place,
since it wasn't here before and #915 doesn't seem to introduce any
new dependency on it.
Tested build with STATIC=OFF (with and without libunbound-dev libunbound8
installed) and STATIC=ON, on Ubuntu Trusty, Debian Jessie, and Arch
Linux. For static builds, beware of #926 and #907.
If this hack was introduced to make it build on some other system
(Windows? OS X?), then it will have to be dealt with, but not this way.
|
|
b89b963 wallet: add unconfirmed incoming txes from the txpool (moneromooo-monero)
|
|
d7597c5 refreshing wallet even if error happened (Ilya Kitaev)
6d32a3d wallet_api: async init, Wallet::connected status, log level (Ilya Kitaev)
193d251 libwallet_api cmake: conditionally creating libwallet_merged2 only for STATIC build (Ilya Kitaev)
10c06dd wallet_api: segfault on refresh fixed (Ilya Kitaev)
9d2cb4f WalletListener functionality (Ilya Kitaev)
d27b883 hack to successfull linking for MSYS2 (Ilya Kitaev)
083380c Transaction fee multiplier aka priority integraged (Ilya Kitaev)
00ed12b Wallet::paymentIdValid (Ilya Kitaev)
|
|
Shown in show_transfers simplewallet command, and get_transfers
RPC command, if req.pool is true.
|
|
87b1153 wallet2_api: use uint64_t for amounts (moneromooo-monero)
|
|
014f3a0 Add a daemon RPC version, and make simplewallet check it (moneromooo-monero)
|
|
a95a2cb wallet_rpc_server: add payment id from integrated addresses to extra (moneromooo-monero)
|
|
Signing is done using the spend key, since the view key may
be shared. This could be extended later, to let the user choose
which key (even a per tx key).
simplewallet's sign/verify API uses a file. The RPC uses a
string (simplewallet can't easily do strings since commands
receive a tokenized set of arguments).
|
|
|
|
|
|
STATIC build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If the version is different, simplewallet will refuse to use that
daemon, unless --allow-mismatched-daemon-version is used.
|
|
|
|
|