Commit graph

527 commits

Author SHA1 Message Date
moneromooo-monero
70b78bb2c8
wallet: fix misdetection of duplicates 2016-09-14 20:23:28 +01:00
Riccardo Spagni
aa996e3a60
Merge pull request #1038
43677f9 gui/libwallet_merged: libunbound is one more dependency (Ilya Kitaev)
2016-09-03 14:11:26 +02:00
Ilya Kitaev
43677f9d68 gui/libwallet_merged: libunbound is one more dependency 2016-09-03 13:32:06 +03:00
Riccardo Spagni
6c608c352c Merge pull request #1033
4d17949 wallet_merged: ringct added to dependencies (Ilya Kitaev)
2016-09-01 23:00:21 +02:00
Ilya Kitaev
4d17949d4f wallet_merged: ringct added to dependencies 2016-09-01 23:06:36 +03:00
luigi1111
34bb78956f
Re-add s to rangesigs
Whoops.
2016-09-01 13:53:53 -05:00
luigi1111
dbf017a5f7
Fix some rct tx size calculations
Some variance is still expected
2016-09-01 13:14:31 -05:00
Riccardo Spagni
27c8713f56
Merge pull request #1027
85dc0ce wallet: sanity check on histogram response (moneromooo-monero)
2016-09-01 11:31:58 +02:00
Riccardo Spagni
e858c4c745
Merge pull request #1016
3112e24 wallet: interpret 0 fee multiplier as default for sweep_all too (moneromooo-monero)
2016-09-01 11:28:29 +02:00
Riccardo Spagni
9b579773d7
Merge pull request #1007
1de812a cmake: merge libs via virtual object libraries (redfish)
a7498ad cmake: comply with the new policy CMP0026 (redfish)
2016-09-01 11:21:38 +02:00
moneromooo-monero
85dc0ce3a5
wallet: sanity check on histogram response 2016-09-01 09:04:45 +01:00
redfish
1de812a92a cmake: merge libs via virtual object libraries
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.
2016-08-30 23:01:48 -04:00
moneromooo-monero
3112e24aa7
wallet: interpret 0 fee multiplier as default for sweep_all too 2016-08-30 13:19:20 +01:00
moneromooo-monero
73b9b4ba34
wallet: fix not finding enough rct fake outputs
If picking coinbase outputs, those are locked for a longer time
than other outputs, so we ask for more of those
2016-08-29 20:51:21 +01:00
moneromooo-monero
adca903589
wallet_rpc_server: return payment id in make_integrated_address RPC
It is useful, especially when requesting a random one
2016-08-29 12:18:22 +01:00
moneromooo-monero
fbd7c359ee
wallet: fix some "may be used uninitialized" warnings
The compiler can't always work out the _found booleans are
set iff the value is initialized.
2016-08-28 21:30:44 +01:00
moneromooo-monero
4a41dd4068
wallet: do not generate 0 change 2016-08-28 21:30:42 +01:00
moneromooo-monero
45349b6f7c
wallet: do not ask for duplicate histograms 2016-08-28 21:30:36 +01:00
moneromooo-monero
b951bc8780
wallet: transfer_selected_rct now also selects fake outs 2016-08-28 21:30:34 +01:00
moneromooo-monero
c3b3260ae5
New "Halfway RingCT" outputs for coinbase transactions
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.
2016-08-28 21:30:26 +01:00
moneromooo-monero
d4b62a1e29
rct amount key modified as per luigi1111's recommendations
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.
2016-08-28 21:30:19 +01:00
moneromooo-monero
3ab2ab3e76
rct: change the simple flag to a type
for future expansion
2016-08-28 21:30:14 +01:00
moneromooo-monero
a47ceee83b
wallet: do not store signatures in the wallet cache
Saves some substantial space.
Also avoid calculating tx hashes we don't need.
2016-08-28 21:30:10 +01:00
moneromooo-monero
2c9d9519f1
wallet2: factor m_spent changes
Makes it easier to track what is going on.
2016-08-28 21:30:04 +01:00
moneromooo-monero
1303cda646
wallet: always use new algorithm for RPC transfers
This ensures we get rct transactions when appropriate
2016-08-28 21:30:03 +01:00
moneromooo-monero
230fca2d56
wallet: use the prefered rct case only when enough rct outs exist 2016-08-28 21:29:55 +01:00
moneromooo-monero
c27194a444
wallet: do not try to use rct txes a few blocks before the fork 2016-08-28 21:29:53 +01:00
moneromooo-monero
37bdf6ebe3
change fork settings to allow pre-rct txes for one more fork cycle 2016-08-28 21:29:50 +01:00
moneromooo-monero
9b70856ccb
rct: make the amount key derivable by a third party with the tx key
Scheme design from luigi1114.
2016-08-28 21:29:46 +01:00
moneromooo-monero
cf33e1a52a
rct: do not serialize public keys in outPk
They can be reconstructed from vout
2016-08-28 21:29:43 +01:00
moneromooo-monero
83ab3151e8
wallet2_api: zero amounts are now allowed with rct 2016-08-28 21:29:41 +01:00
moneromooo-monero
096ac06521
wallet2_api: update on_money_{received,spent} prototypes for rct changes 2016-08-28 21:29:40 +01:00
moneromooo-monero
3cb2edec66
rpc: send global indices along with blocks/transacions on refresh
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.
2016-08-28 21:29:38 +01:00
moneromooo-monero
84c82cd775
wallet: better tx input selection
We try to avoid related inputs, when possible
2016-08-28 21:29:32 +01:00
moneromooo-monero
07d353dfc6
wallet: handle 0 change properly
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.
2016-08-28 21:29:27 +01:00
moneromooo-monero
e81a2b2cfa
port get_tx_key/check_tx_key to rct 2016-08-28 21:29:24 +01:00
moneromooo-monero
a4d4d6194b
integrate simple rct api 2016-08-28 21:29:20 +01:00
moneromooo-monero
37c895e5e3
wallet: rct specific output selection
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).
2016-08-28 21:29:11 +01:00
moneromooo-monero
1181c57967
wallet: make sweep_all work with rct txes too 2016-08-28 21:29:09 +01:00
moneromooo-monero
1017a75460
wallet: factor transfer_rct code with transfer code
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.
2016-08-28 21:29:05 +01:00
moneromooo-monero
20e50ec7f7
ringct: do not serialize what can be reconstructed
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.
2016-08-28 21:28:55 +01:00
moneromooo-monero
acbe06d8e9
wallet: update spent status when an accepted tx disappears 2016-08-28 21:28:49 +01:00
moneromooo-monero
089df4af83
wallet: reset output spent status on blockchain reorg
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).
2016-08-28 21:28:47 +01:00
moneromooo-monero
dc4aad7eb5
add rct to the protocol
It is not yet constrained to a fork, so don't use on the real network
or you'll be orphaned or rejected.
2016-08-28 21:28:37 +01:00
Riccardo Spagni
9308b4e8b9
Merge pull request #978
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)
2016-08-26 10:32:00 +02:00
Ilya Kitaev
bcf7b67cd6 libwallet_api: Wallet::amountFromString fixed 2016-08-23 13:47:21 +03:00
Ilya Kitaev
32bc7b41c0 libwallet_api: helper method to return maximumAllowedAmount 2016-08-23 12:35:45 +03:00
Riccardo Spagni
79cdedb90c
Merge pull request #970
25f529a wallet: store key images after importing them (moneromooo-monero)
2016-08-22 22:55:24 +02:00
Ilya Kitaev
b1a5a937ff libwallet_api: do not store wallet on close if status is not ok 2016-08-22 22:47:59 +03:00
moneromooo-monero
25f529aa67
wallet: store key images after importing them
It avoids rescan_spent resetting spent status, for example.
2016-08-17 08:37:56 +01:00
moneromooo-monero
9cca53ac29
wallet: fix build on Mac and Windows (missing include)
Reported by RaskaRuby, tested by iDunk5400.
2016-08-17 08:08:49 +01:00
Riccardo Spagni
0faf572db8
Merge pull request #948
11dc091 Fake outs set is now decided by the wallet (moneromooo-monero)
1593553 new unlocked parameter to output_histogram (moneromooo-monero)
2016-08-11 22:43:14 +02:00
moneromooo-monero
11dc091464
Fake outs set is now decided by the wallet
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.
2016-08-11 14:35:27 +01:00
moneromooo-monero
663fc32809
wallet2: if importing key images fails, print failure index 2016-08-04 08:19:29 +01:00
moneromooo-monero
1593553e03
new unlocked parameter to output_histogram
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).
2016-08-01 22:16:00 +01:00
Riccardo Spagni
b34506da81
Merge pull request #928
ebf97d7 wallet: new {ex,im}port_key_images commands and RPC calls (moneromooo-monero)
2016-07-26 08:55:25 +02:00
moneromooo-monero
ebf97d76f0
wallet: new {ex,im}port_key_images commands and RPC calls
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.
2016-07-24 09:23:30 +01:00
redfish
8bed9a42f7 cmake: wallet: libunbound is not always static
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.
2016-07-23 15:04:15 -04:00
Riccardo Spagni
07f974a499
Merge pull request #916
b89b963 wallet: add unconfirmed incoming txes from the txpool (moneromooo-monero)
2016-07-23 09:19:39 +02:00
Riccardo Spagni
b582764bd6
Merge pull request #915
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)
2016-07-23 09:17:21 +02:00
moneromooo-monero
b89b96394a
wallet: add unconfirmed incoming txes from the txpool
Shown in show_transfers simplewallet command, and get_transfers
RPC command, if req.pool is true.
2016-07-20 19:14:44 +01:00
Riccardo Spagni
38e5156392
Merge pull request #914
87b1153 wallet2_api: use uint64_t for amounts (moneromooo-monero)
2016-07-20 14:29:33 +02:00
Riccardo Spagni
fc3e135b83
Merge pull request #902
014f3a0 Add a daemon RPC version, and make simplewallet check it (moneromooo-monero)
2016-07-20 13:55:59 +02:00
Riccardo Spagni
07f1d4e04d
Merge pull request #899
a95a2cb wallet_rpc_server: add payment id from integrated addresses to extra (moneromooo-monero)
2016-07-20 13:52:54 +02:00
moneromooo-monero
89d9f382a0
wallet: add command and RPC to sign/verify data
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).
2016-07-19 20:39:03 +01:00
Ilya Kitaev
d7597c5961 refreshing wallet even if error happened 2016-07-18 23:03:09 +03:00
Ilya Kitaev
6d32a3d16b wallet_api: async init, Wallet::connected status, log level 2016-07-18 23:03:09 +03:00
Ilya Kitaev
193d251360 libwallet_api cmake: conditionally creating libwallet_merged2 only for
STATIC build
2016-07-18 23:03:09 +03:00
Ilya Kitaev
10c06ddac7 wallet_api: segfault on refresh fixed 2016-07-18 23:03:09 +03:00
Ilya Kitaev
9d2cb4f36c WalletListener functionality 2016-07-18 23:02:47 +03:00
Ilya Kitaev
d27b883b2d hack to successfull linking for MSYS2 2016-07-18 23:02:47 +03:00
Ilya Kitaev
083380cb8f Transaction fee multiplier aka priority integraged 2016-07-18 23:02:18 +03:00
Ilya Kitaev
00ed12bd6c Wallet::paymentIdValid 2016-07-18 23:02:18 +03:00
moneromooo-monero
87b1153f37
wallet2_api: use uint64_t for amounts 2016-07-17 09:33:31 +01:00
moneromooo-monero
014f3a0d39
Add a daemon RPC version, and make simplewallet check it
If the version is different, simplewallet will refuse to use that
daemon, unless --allow-mismatched-daemon-version is used.
2016-07-10 16:49:40 +01:00
moneromooo-monero
a95a2cbc4d
wallet_rpc_server: add payment id from integrated addresses to extra 2016-07-10 13:46:18 +01:00
moneromooo-monero
a0bf85d09d
wallet2_api: make this build (smatch needs .str() for /=) 2016-07-07 22:42:59 +01:00
Riccardo Spagni
3923cbddaf
Merge pull request #878
945c272 wallet: add a fee multiplier (moneromooo-monero)
2016-07-06 18:14:34 +02:00
Ilya Kitaev
beb6d9200d CMake: GPL 'libutils' script removed 2016-06-24 14:49:23 +03:00
Ilya Kitaev
ab61ba0c9b Merge branch 'master' of https://github.com/mbg033/bitmonero 2016-06-23 16:23:09 +03:00
Ilya Kitaev
d60864785f WalletManager::findWallets: searching by "keys" files instead of
"address.txt" files
2016-06-23 16:01:41 +03:00
Ilya Kitaev
ca61153003 Wallet: payment id and integrated address 2016-06-23 16:01:41 +03:00
Ilya Kitaev
23cbf6fd97 PendingTransactionImpl: pointer->reference 2016-06-23 16:01:41 +03:00
Ilya Kitaev
c1d9e7cd2a commented regex 2016-06-23 16:01:41 +03:00
Ilya Kitaev
563baf1b68 Typo fixed 2016-06-23 16:01:41 +03:00
Ilya Kitaev
2efec04f74 Wallet::createTransaction: added mixin_count param 2016-06-23 16:01:41 +03:00
Ilya Kitaev
85a632244e double/string to monero integer convertion methods 2016-06-23 16:01:41 +03:00
Ilya Kitaev
e7d8f2a085 wallet::default_mixin exposed to public interface as
Wallet::setDefaultMixin, Wallet::defaultMixin;
wallet::create_transaction_2 used in Wallet::createTransaction
2016-06-23 16:01:41 +03:00
Ilya Kitaev
a5374897f8 Wallet::filename, Wallet::keysFilename, tests for move wallet 2016-06-23 16:01:41 +03:00
Ilya Kitaev
a1eddcd693 removed unused "using" 2016-06-23 16:01:41 +03:00
Ilya Kitaev
8390bfa770 Wallet API : WalletManager::findWallets() added 2016-06-23 16:01:41 +03:00
Ilya Kitaev
dbc0b039b4 installing wallet_api header 2016-06-23 16:01:33 +03:00
Ilya Kitaev
191cb594de all wallet dependencies merged to single static lib 2016-06-23 16:01:33 +03:00
Ilya Kitaev
64348a2d11 WalletListener::moneySpent test 2016-06-23 16:01:33 +03:00
Ilya Kitaev
060bb62e29 WalletListener::moneySpent(), WalletListener::moneyReceived() 2016-06-23 16:01:33 +03:00
Ilya Kitaev
214014c048 i_wallet_callback: virtual dtor 2016-06-23 16:01:33 +03:00
Ilya Kitaev
374577018d started WalletListener 2016-06-23 16:01:33 +03:00
Ilya Kitaev
e6fdd5dd10 TransactionHistory continued 2016-06-23 16:01:26 +03:00
Ilya Kitaev
3dd4b4ccf9 merged with upstream 2016-06-23 15:50:40 +03:00
Ilya Kitaev
d500272fa8 Wallet API : transaction history in progress 2016-06-23 15:50:33 +03:00
Ilya Kitaev
663ed04eb8 transaction history api in progress 2016-06-23 15:50:17 +03:00
Ilya Kitaev
12345d382c api implementation splitted over separate files 2016-06-23 15:50:17 +03:00
Ilya Kitaev
60508e6bae TransactionInfo / TransactionHistory APIs design 2016-06-23 15:50:17 +03:00
Ilya Kitaev
951f3b5d83 Wallet::createTransaction API introduced
Transaction API continued

TODOs for Transaction/Transfer interface
2016-06-23 15:49:54 +03:00
Ilya Kitaev
7c51227f88 Wallet::transfer in progress 2016-06-23 15:49:36 +03:00
Ilya Kitaev
e04c67ac4c Wallet::refresh + tests 2016-06-23 15:49:36 +03:00
Ilya Kitaev
9cdf0b7d7f "testnet" is default parameter 2016-06-23 15:49:36 +03:00
Ilya Kitaev
caf0e02787 testnet option, Wallet::balance(), Wallet::unlockedBalance() 2016-06-23 15:49:22 +03:00
Ilya Kitaev
8df820b301 - testnet option added to api; 2016-06-23 15:49:07 +03:00
Ilya Kitaev
94eaeb50b2 wallet2::store() implemented within wallet2::store_to 2016-06-23 15:40:48 +03:00
moneromooo-monero
945c272f6c
wallet: add a fee multiplier
Fee can now be multiplied by 2 or 3, if users want to give
priority to their transactions. There are only three levels
to avoid too much fingerprinting. Default is 1 (minimum fee).
The default multiplier can be set by "set fee-multiplier X".
2016-06-22 22:21:30 +01:00
Ilya Kitaev
4e5521d87d PendingTransactionImpl: pointer->reference 2016-06-22 15:50:59 +03:00
Ilya Kitaev
7b7cf21644 commented regex 2016-06-22 15:06:19 +03:00
Ilya Kitaev
eec0f57d60 Typo fixed 2016-06-22 14:37:53 +03:00
Ilya Kitaev
f1c4a376af Wallet::createTransaction: added mixin_count param 2016-06-20 22:56:30 +03:00
moneromooo-monero
5dc09f2666
wallet_rpc_server: fix some string values being returned between <> 2016-06-19 17:52:46 +01:00
Ilya Kitaev
3318addafa double/string to monero integer convertion methods 2016-06-16 16:42:33 +03:00
Ilya Kitaev
3ac20a46b3 wallet::default_mixin exposed to public interface as
Wallet::setDefaultMixin, Wallet::defaultMixin;
wallet::create_transaction_2 used in Wallet::createTransaction
2016-06-10 13:52:10 +03:00
Ilya Kitaev
c554055ce4 Wallet::filename, Wallet::keysFilename, tests for move wallet 2016-06-10 12:51:09 +03:00
Ilya Kitaev
8f9d98b3e0 removed unused "using" 2016-06-03 16:56:13 +03:00
Ilya Kitaev
2facbe77e4 Wallet API : WalletManager::findWallets() added 2016-06-03 14:52:58 +03:00
Ilya Kitaev
bc4584c1ff Merge remote-tracking branch 'upstream/master' 2016-05-27 11:33:08 +03:00
Ilya Kitaev
4327548915 installing wallet_api header 2016-05-27 10:58:07 +03:00
Ilya Kitaev
d43ad22595 all wallet dependencies merged to single static lib 2016-05-27 10:00:01 +03:00
Riccardo Spagni
ae205020f6
Merge pull request #827
f1e70d1 Only log 1/N skipped blocks (Howard Chu)
cebb97c Move refresh height to keys file from cache file (Howard Chu)
590c439 Make fast_refresh interruptible (Howard Chu)
687855d Set refresh height earlier (Howard Chu)
2fb00c0 Fix 19fe8ae3ef (Howard Chu)
2016-05-17 19:04:41 +02:00
Ilya Kitaev
40087a745f WalletListener::moneySpent test 2016-05-16 13:11:44 +03:00
Ilya Kitaev
27d86b73c6 WalletListener::moneySpent(), WalletListener::moneyReceived() 2016-05-13 16:25:31 +03:00
Ilya Kitaev
ff52c67aa9 i_wallet_callback: virtual dtor 2016-05-13 12:59:29 +03:00
Ilya Kitaev
2d799097ca Merge remote-tracking branch 'upstream/master' 2016-05-12 15:14:30 +03:00
Ilya Kitaev
5dbd2b8fc3 started WalletListener 2016-05-05 22:24:00 +03:00
Howard Chu
f1e70d15ca Only log 1/N skipped blocks 2016-04-29 16:50:51 +01:00
Howard Chu
cebb97c913 Move refresh height to keys file from cache file 2016-04-29 15:33:28 +01:00
Howard Chu
590c43988c Make fast_refresh interruptible 2016-04-29 15:33:28 +01:00
Ilya Kitaev
93119344ec TransactionHistory continued 2016-04-29 16:26:14 +03:00
Riccardo Spagni
5b734c2a3a
Merge pull request #825
513a658 add a --max-concurrency flag (moneromooo-monero)
2016-04-29 10:43:48 +02:00
moneromooo-monero
513a658c87
add a --max-concurrency flag
It sets the max number of threads to use for a parallel job.
This is different that the number of total threads, since monero
binaries typically start a lot of them.
2016-04-28 20:33:59 +01:00
moneromooo-monero
09dddf281a
wallet: add a filter_by_height field to get_transfers
It allows a simple get_transfers (with default 0 min_height and
max_height) to return all transactions, instead of the unexpected
set of txes in block 0, which is probably none at all.
2016-04-27 23:43:39 +01:00
moneromooo-monero
48ab3f93ff
wallet: add get_transfers rpc call
Allows getting in, out, pending, and failed transfers, similarly
to the show_transfers command.
2016-04-26 22:39:52 +01:00
moneromooo-monero
7baed9bd89
wallet: allow attaching notes to txids 2016-04-26 19:07:33 +01:00
moneromooo-monero
ce6f8a6324
wallet: add GMT timestamps to transfers/payments 2016-04-26 19:07:25 +01:00
Riccardo Spagni
714dcc2866
Merge pull request #815
b0850a9 wallet: add a new sweep_all command and RPC command (moneromooo-monero)
2016-04-26 18:08:09 +02:00
Riccardo Spagni
7098ad6804
Merge pull request #814
68cbe15 	modified:   src/wallet/wallet2.cpp 	modified:   src/wallet/wallet2.h (awfulcrawler)
4b325bd 	modified:   src/simplewallet/simplewallet.cpp 	modified:   src/wallet/wallet2.cpp 	modified:   src/wallet/wallet2.h (awfulcrawler)
2016-04-26 18:04:00 +02:00
Riccardo Spagni
0922ae2b43
Merge pull request #811
672162d tests: fix compile failure on wallet2::transfer (moneromooo-monero)
b0c18ef wallet2: move output selection api public (moneromooo-monero)
2016-04-26 18:02:26 +02:00
Ilya Kitaev
566166aafd merged with upstream 2016-04-26 13:46:20 +03:00
Ilya Kitaev
dce5374660 Merge remote-tracking branch 'upstream/master' into develop 2016-04-26 11:08:40 +03:00
Ilya Kitaev
53a97bdcd3 Wallet API: transaction history in progress 2016-04-22 13:33:09 +03:00
Ilya Kitaev
02c9df5de2 Wallet API : transaction history in progress 2016-04-22 13:21:08 +03:00
Ilya Kitaev
a213887476 transaction history api in progress 2016-04-20 13:33:54 +03:00
Ilya Kitaev
b6aaf53a60 transaction history api in progress 2016-04-20 13:17:27 +03:00
Ilya Kitaev
f83f3cbd96 api implementation splitted over separate files 2016-04-20 13:01:00 +03:00
moneromooo-monero
b0850a9bea
wallet: add a new sweep_all command and RPC command
This sends all outputs in a wallet to a given address, alleviating
the difficulty people have had trying to send all monero but
being left with some small amount left.
2016-04-19 21:20:27 +01:00
Ilya Kitaev
4e1c2dc365 TransactionInfo / TransactionHistory APIs design 2016-04-19 12:25:03 +03:00
awfulcrawler
68cbe1579e modified: src/wallet/wallet2.cpp
modified:   src/wallet/wallet2.h

Removed working comments
2016-04-18 20:20:31 +12:00
awfulcrawler
4b325bdb66 modified: src/simplewallet/simplewallet.cpp
modified:   src/wallet/wallet2.cpp
	modified:   src/wallet/wallet2.h

Update to fix unconfirmed balance and give a slightly more verbose and informative confirmation message for transfers
2016-04-18 14:57:47 +12:00
Howard Chu
b7140daea2 Add GET_HASHES_FAST rpc, use it in wallet
When m_refresh_from_block_height has been set, only hashes will be
retrieved up to that height, instead of full blocks. The same will
be done for "refresh <height>" when the specified height is beyond
the current local blockchain.
2016-04-17 15:25:46 +01:00
moneromooo-monero
b0c18ef9cd
wallet2: move output selection api public 2016-04-17 11:20:44 +01:00
Riccardo Spagni
8f78f1407e
Merge pull request #784
087373e Fix potential race with parallel processing of txes/signatures/blocks (moneromooo-monero)
2016-04-14 16:25:53 +09:00
Riccardo Spagni
6bfb8799c3
Merge pull request #783
48d0747 wallet: better output selection for transfer/transfer_new (moneromooo-monero)
2016-04-14 16:25:38 +09:00
Ilya Kitaev
1774d9574b TODOs for Transaction/Transfer interface 2016-04-12 22:30:20 +03:00
Ilya Kitaev
d97e9ef8a5 Transaction API continued 2016-04-06 13:56:57 +03:00
moneromooo-monero
5c9dd23b1c
rpc: add a do_not_relay boolean to tx submission
Just to make it easier
2016-04-05 20:15:54 +01:00
Ilya Kitaev
079fbd3d42 Wallet::createTransaction API introduced 2016-04-05 15:24:44 +03:00
Ilya Kitaev
ee5bb17f26 Wallet::transfer() continued 2016-04-04 14:56:17 +03:00
Ilya Kitaev
c37c856d6d Wallet::transfer in progress 2016-04-03 14:34:38 +03:00
moneromooo-monero
087373eccf
Fix potential race with parallel processing of txes/signatures/blocks 2016-04-02 14:20:51 +01:00
moneromooo-monero
48d0747d00
wallet: better output selection for transfer/transfer_new
This now requests the set of outputs that can be mixed first,
to avoid trying non dust but unmixable outputs, which we know
will fail.
2016-04-02 14:17:02 +01:00
Riccardo Spagni
4ac6bdbb3f
Merge pull request #769
b4eada9 wallet: make load_keys check types when loading JSON (moneromooo-monero)
3e55725 wallet: make the JSON reading type safe (moneromooo-monero)
f8d05f3 common: new json_util.h (moneromooo-monero)
2016-04-02 12:02:49 +09:00
Riccardo Spagni
a38ad63f8f
Merge pull request #767
24b3e90 Convey tx verification failure reasons to the RPC client (moneromooo-monero)
2016-04-02 12:02:07 +09:00
Ilya Kitaev
830c19c934 Wallet::refresh + tests 2016-03-31 16:38:57 +03:00
Ilya Kitaev
1ae9cdc6bf "testnet" is default parameter 2016-03-31 15:39:28 +03:00
Ilya Kitaev
2157a9ac48 testnet option, Wallet::balance(), Wallet::unlockedBalance() 2016-03-31 12:48:41 +03:00
Ilya Kitaev
df6026182a Merge remote-tracking branch 'upstream/master' 2016-03-31 12:01:19 +03:00
moneromooo-monero
878ab5d896
wallet: fix --generate-from-keys saving as watch only 2016-03-28 16:46:37 +01:00
moneromooo-monero
b4eada907c
wallet: make load_keys check types when loading JSON 2016-03-27 23:39:34 +01:00
moneromooo-monero
24b3e9007a
Convey tx verification failure reasons to the RPC client
This allows appropriate action to be taken, like displaying
the reason to the user.

Do just that in simplewallet, which should help a lot in
determining why users fail to send.

Also make it so a tx which is accepted but not relayed is
seen as a success rather than a failure.
2016-03-27 12:37:18 +01:00
moneromooo-monero
25672d3f10
wallet: pass std::function by const ref, not value
Because we can.
2016-03-26 23:32:45 +00:00
moneromooo-monero
0be6e08dd0
wallet: do not leak owned amounts to the daemon unless --trusted-daemon
This will be slower, though more private.

New trusted_daemon parameter to the matching RPC call, false by default.
2016-03-26 23:29:29 +00:00
moneromooo-monero
12146daeed
wallet: change sweep_dust to sweep_unmixable
With the change in mixin rules for v2, the "annoying" outputs are
slightly changed. There is high correlation between dust and
unmixable, but no equivalence.
2016-03-26 21:15:47 +00:00
moneromooo-monero
f9a2fd2ff5
wallet: handle rare case where fee adjustment can bump to the next kB
It resulted in a tx being sent with too low a fee, and thus rejected.
2016-03-26 11:51:58 +00:00
moneromooo-monero
f26651ab8a
wallet: factor fee calculation 2016-03-26 11:44:43 +00:00
Ilya Kitaev
8790904cf9 - testnet option added to api; 2016-03-25 17:06:30 +03:00
moneromooo-monero
a2e378b91b
wallet: add a --generate-from-json flag
It takes a filename containing JSON data to generate a wallet.
The following fields are valid:

  version: integer, should be 1
  filename: string, path/filename for the newly created wallet
  scan_from_height: 64 bit unsigned integer, optional
  password: string, optional
  viewkey: string, hex representation
  spendkey: string, hex representation
  seed: string, optional, list of words separated by spaces

Either seed or private keys should be given. If using private
keys, the spend key may be omitted (the wallet will not be
able to spend, but will see incoming transactions).

If scan_from_height is given, blocks below this height will not
be checked for transactions as an optimization.
2016-03-25 00:56:11 +00:00
Ilya Kitaev
2cce32995b wallet2::store() implemented within wallet2::store_to 2016-03-21 16:17:03 +03:00
moneromooo-monero
f7301c3563
Revert "Print stack trace upon exceptions"
Ain't nobody got time for link/cmake skullduggery.

This reverts commit fff238ec94.
2016-03-21 10:12:23 +00:00
moneromooo-monero
fff238ec94
Print stack trace upon exceptions
Useful for debugging users' logs
2016-03-19 21:48:36 +00:00
Ilya Kitaev
62606f11f5 Wallet::store_to(path, password) implemented; 2016-03-16 14:29:06 +03:00
Ilya Kitaev
19fcc74912 Wallet::address implemented 2016-03-16 14:29:06 +03:00
Ilya Kitaev
180ac6e438 WalletManager::recoveryWallet implemented 2016-03-16 14:29:06 +03:00
Ilya Kitaev
5a4f099540 Wallet::setPassword() method for wallet2_api 2016-03-16 14:29:06 +03:00
Ilya Kitaev
57d7ffc4d6 changes in wallet2_api + implemented WalletManager::openWallet 2016-03-16 14:27:57 +03:00
Ilya Kitaev
f1f9279d90 get_seed() included to interface 2016-03-16 14:27:57 +03:00
Ilya Kitaev
930bed7074 tests for wallet2_api 2016-03-16 14:27:57 +03:00
Ilya Kitaev
318660dd89 wallet2 public api. initial commit 2016-03-16 14:27:57 +03:00
moneromooo-monero
8bc1bd6b65
wallet: use minimum mixin when RPC asks for too low mixin
After the fork, normal transfer functions called via RPC
use the minimum mixin 2 if 0 or 1 is requested. While the
incoming transaction may be valid (eg, it has an unmixable
and at most a mixable input), it is a simple way to make
sure RPC users can't get a seemingly random accept/reject
behavior if they don't update their requested mixin.
2016-03-11 21:32:16 +00:00
moneromooo-monero
31d2e0f84d
wallet_rpc_server: make use_fork_rules public
We will need it in the wallet RPC server
2016-03-11 21:31:50 +00:00
Howard Chu
b937a2c915 Use boost::thread instead of std::thread
and all other associated IPC
2016-03-11 15:09:50 +00:00
luigi1111
e2b7e55be6 get_payments short ID
Add support for short/integrated/encrypted IDs to get_payments RPC
2016-03-05 13:30:48 -06:00
moneromooo-monero
4513b4cd2b
simplewallet: add a new --restore-from-keys option
It is similar in use to --restore-from-view-key, but also expects
a spend private key.

Requested by luigi1112, and useful to restore MyMonero wallets.
2016-02-22 22:10:55 +00:00
moneromooo-monero
8f09b71b9b
wallet: clear missing data on rescan_bc 2016-02-15 20:51:30 +00:00
moneromooo-monero
c7b96b91ed
wallet: check a key image isn't already present when adding one
If it is, it points to reuse of a tx key, which isn't meant to happen.
If it does, a key image collision means that only one of those
outputs is spendable, so the wallet selects the larger amount,
unless that output was spent already.

This causes a discrepancy betewen reported received inputs and
payment total.

Since tx keys are 256 bits, this should never happen except if
done on purpose, or if a sender uses a bad PRNG.
2016-02-05 16:24:23 +00:00