aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/api (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-05-08fix missing <cstdint> includestobtoht1-0/+1
2023-03-13wallet2: fix rescanning tx via scan_txj-berman1-2/+6
- 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.
2022-10-18wallet2: fix create view-only wallet from existing walletj-berman1-2/+2
2022-10-13wallet_api: take priority into account when estimating feeselsta1-1/+1
2022-09-21wallet2: fail to establish daemon cxn == "Disconnected" cxn statusj-berman1-3/+3
2022-09-21add an option to force-update multisig key exchange under some circumstanceskoe3-4/+5
2022-09-12wallet2: check wallet compatibility with daemon's hard fork versionj-berman1-2/+8
2022-09-07allow exporting outputs in chunksmoneromooo-monero1-2/+2
this will make it easier huge wallets to do so without hitting random limits (eg, max string size in node).
2022-06-01Remove erraneous commasLuke Parker1-3/+3
2022-06-01Improve consistency between on_money_received and on_money_received_unconfirmedLuke Parker1-3/+5
unconfirmed solely uses a - b, and received now accepts b so it can provide more detailed logs on what occurred (printing a - b, yet with a and b).
2022-05-26wallet_api: add scanTransactions functionselsta3-0/+44
2022-04-18Add view tags to outputs to reduce wallet scanning timej-berman1-0/+1
Implements view tags as proposed by @UkoeHB in MRL issue https://github.com/monero-project/research-lab/issues/73 At tx construction, the sender adds a 1-byte view tag to each output. The view tag is derived from the sender-receiver shared secret. When scanning for outputs, the receiver can check the view tag for a match, in order to reduce scanning time. When the view tag does not match, the wallet avoids the more expensive EC operations when deriving the output public key using the shared secret.
2022-04-10Fee changes from ArticMinemoneromooo-monero1-1/+0
https://github.com/ArticMine/Monero-Documents/blob/master/MoneroScaling2021-02.pdf with a change to use 1.7 instead of 2.0 for the max long term increase rate
2022-04-09Remove /includeJeffrey1-1/+0
* `IWallet.h` hasn't been touched since 2014, and has been replaced by `src/wallet/api/wallet2_api.h` * `INode.h` is in a similar situation with `src/p2p/net_node.h`
2022-04-05plug bulletproofs plus into consensusmoneromooo-monero1-0/+1
2022-03-04Copyright: Update to 2022mj-xmr21-21/+21
2022-02-22multisig key exchange update and refactorkoe3-29/+4
2021-10-22wallet_api: enable set_strict_default_file_permissionstobtoht2-1/+6
2021-09-07UB: Not calling virtual method in destructor of WalletImplmj-xmr1-1/+1
2021-08-19wallet_api: add make_uritobtoht3-0/+7
2021-07-19wallet_api: expose offline mode statusrating89us3-0/+7
2021-07-13cmake: fix undefined symbols and multiple definitionsanon1-0/+3
2021-07-05wallet_api: getPasswordtobtoht3-0/+7
2021-06-24wallet_api: get bytes sent/receivedtobtoht3-0/+19
2021-06-23wallet_api: fix typo in exportKeyImagesselsta1-1/+1
2021-06-08wallet/api: remove Bitmonero namespace aliasselsta16-38/+0
2021-06-08wallet_api: address_book: don't lose pid on setDescriptiontobtoht1-1/+1
2021-06-04wallet_api: signMessage: add sign with subaddresstobtoht3-4/+19
2021-06-04wallet_api: reconnectDevicetobtoht3-0/+21
2021-06-04wallet_api: move adjust_mixin call within try blocktobtoht1-8/+3
2021-04-22wallet_api: import / export output functiontobtoht3-0/+77
2021-04-07monero-wallet-cli: improve error message when tx amount is zeroElliot Wirrick1-1/+3
2021-04-05expose set_offline to wallet apibenevanoff3-0/+12
2021-03-28Reduce compilation time of epee/portable_storage_template_helper.hmj-xmr2-2/+1
2021-03-12wallet_api: add isDeterministic()tobtoht3-0/+12
2021-03-12wallet_api: add seed_offset param to seed()tobtoht3-4/+4
2021-01-02wallet_api: store fee for incoming txs in historyBen Evanoff1-0/+1
2020-12-25wallet api: allow wallet to fetch all key images via apibenevanoff3-4/+5
2020-11-28Allow tx note edits via TransactionHistory object in wallet/apidsc3-0/+13
2020-11-14wallet_api: TransactionHistory - fill unconfirmed out payments destsxiphon1-0/+4
2020-10-17wallet2_api: implement stop() to interrupt refresh() loop oncexiphon3-0/+11
2020-09-19Extend TransactionInfo with coinbase and description attributes in wallet/apidsc4-0/+23
2020-09-19Allow AddressBook description edits via wallet/api interfacedsc3-0/+21
2020-08-28wallet: allow signing a message with spend or view keymoneromooo-monero1-2/+2
2020-08-27Integrate CLSAGs into moneromoneromooo-monero1-0/+1
They are allowed from v12, and MLSAGs are rejected from v13.
2020-07-20wallet2_api: implement runtime proxy configurationxiphon5-9/+25
2020-05-13simplewallet: don't complain about incoming payment ids on changemoneromooo-monero1-1/+1
2020-05-06Update copyright year to 2020SomaticFanatic21-21/+21
Update copyright year to 2020
2020-04-27trezor: adapt to new passphrase mechanismDusan Klinec2-4/+6
- choice where to enter passphrase is now made on the host - use wipeable string in the comm stack - wipe passphrase memory - protocol optimizations, prepare for new firmware version - minor fixes and improvements - tests fixes, HF12 support
2020-04-02wallet_api: checkUpdate - optional version and buildtag paramsxiphon2-7/+19
2020-02-11wallet2_api: wallet recovery - seed offset passphrase supportxiphon5-6/+14
2020-01-26wallet: do not split integrated addresses in address book apimoneromooo-monero1-40/+10
2020-01-25wallet2_api: implement estimateTransactionFeexiphon3-0/+30
2019-09-09wallet2_api: add missing parameterselsta2-4/+4
2019-09-09wallet2_api: fix load unsigned tx from file error propagationxiphon1-0/+4
2019-08-16wallet_api: add multi destination tx supportselsta3-48/+79
2019-07-28Fixed error preventing build of monero-guiNejcraft1-1/+3
get_attribute expects 2 values instead of 1
2019-07-10wallet: provide original address for outgoing transfersxiphon1-1/+1
2019-06-19wallet_api: catch getTxKey exceptionDusan Klinec1-8/+17
- getTxKey method throws an exception, e.g., when user declines txKey export
2019-06-17device: show address on device displayDusan Klinec3-0/+21
- Trezor: support for device address display (subaddress, integrated address) - Wallet::API support added - Simplewallet: - address device [<index>] - address new <label> // shows address on device also - integrated_address [device] <payment_id|address> // new optional "device" arg to display also on the device
2019-05-27wallet_manager: omit redundant disconnect, drop unused variablexiphon2-4/+0
2019-05-16wallet: add unlock_time details to show_transfersmoneromooo-monero1-1/+1
also add a note when receiving the tx, because the user might not notice the "XXX blocks to unlock" in the balance.
2019-05-10expose set/get walletcache attribute functionality in wallet apidsc3-0/+28
2019-04-07device/trezor: add button pressed requestDusan Klinec2-0/+12
2019-04-05wallet: API changes to enable passphrase entryDusan Klinec4-10/+37
2019-04-02api/wallet: fix some wrong namespacestoffu1-2/+2
2019-03-25Added socks proxy (tor/i2pd/kovri) support to walletLee Clagett1-2/+1
2019-03-20device/trezor: HF10 support added, wallet::APIDusan Klinec5-1/+149
- import only key images generated by cold signing process - wallet_api: trezor methods added - wallet: button request code added - const added to methods - wallet2::get_tx_key_device() tries to decrypt stored tx private keys using the device. - simplewallet supports get_tx_key and get_tx_proof on hw device using the get_tx_key feature - live refresh enables refresh with trezor i.e. computing key images on the fly. More convenient and efficient for users. - device: has_ki_live_refresh added - a thread is watching whether live refresh is being computed, if not for 30 seconds, it terminates the live refresh process - switches Trezor state
2019-03-12Wallet API: multisig_tx_set passing bug fixednaughtyfox1-1/+3
2019-03-05Update 2019 copyrightbinaryFate21-21/+21
2019-03-04various: remove unused variablesmoneromooo-monero1-1/+0
2019-02-02epee: add SSL supportmoneromooo-monero1-2/+2
RPC connections now have optional tranparent SSL. An optional private key and certificate file can be passed, using the --{rpc,daemon}-ssl-private-key and --{rpc,daemon}-ssl-certificate options. Those have as argument a path to a PEM format private private key and certificate, respectively. If not given, a temporary self signed certificate will be used. SSL can be enabled or disabled using --{rpc}-ssl, which accepts autodetect (default), disabled or enabled. Access can be restricted to particular certificates using the --rpc-ssl-allowed-certificates, which takes a list of paths to PEM encoded certificates. This can allow a wallet to connect to only the daemon they think they're connected to, by forcing SSL and listing the paths to the known good certificates. To generate long term certificates: openssl genrsa -out /tmp/KEY 4096 openssl req -new -key /tmp/KEY -out /tmp/REQ openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT /tmp/KEY is the private key, and /tmp/CERT is the certificate, both in PEM format. /tmp/REQ can be removed. Adjust the last command to set expiration date, etc, as needed. It doesn't make a whole lot of sense for monero anyway, since most servers will run with one time temporary self signed certificates anyway. SSL support is transparent, so all communication is done on the existing ports, with SSL autodetection. This means you can start using an SSL daemon now, but you should not enforce SSL yet or nothing will talk to you.
2019-01-18core, wallet: remember original text version of destination addressmoneromooo-monero1-0/+2
2019-01-15wallet api: don't truncate address in subaddress_accountselsta1-1/+1
Same behaviour as subaddress.cpp now.
2019-01-07wallet_api: fix usage of LOG_ERRORmoneromooo-monero1-10/+10
2019-01-02wallet api/device: set estimated restore height if none is providedselsta4-0/+15
2018-11-07api/wallet: fix compile errors made in #4720stoffu1-3/+3
2018-10-18Rename "blackball" for claritymoneromooo-monero1-3/+3
Apparently some people seem to think it's a censorship list...
2018-10-16wallet2_api: fix generating new wallet in the GUImoneromooo-monero1-1/+1
It was creating a new wallet without a password first (this should be fixed), then not changing the password correctly
2018-10-16WalletAPI: rescanBlockchain, rescanBlockchainAsyncmmitkevich3-2/+38
2018-10-04wallet2_api: fix build with C++14moneromooo-monero1-7/+14
2018-10-01Arbitrary M/N multisig schemes:naughtyfox3-0/+21
* support in wallet2 * support in monero-wallet-cli * support in monero-wallet-rpc * support in wallet api * support in monero-gen-trusted-multisig * unit tests for multisig wallets creation
2018-09-30wallet2_api: blackball/unblackball now take two parametersmoneromooo-monero3-2/+28
amount and offset (instead of pubkey)
2018-09-29Merge pull request #4458Riccardo Spagni1-2/+2
921b0fb1 use default create_address_file argument (m2049r)
2018-09-29Merge pull request #4417Riccardo Spagni2-22/+16
a21da905 Wallet: use unique_ptr for WalletImpl members (oneiric)
2018-09-29Merge pull request #4409Riccardo Spagni1-1/+5
7a056f44 WalletAPI: multisigSignData bug fixed (naughtyfox)
2018-09-22wallet2_api: fix for latest code changesmoneromooo-monero3-3/+3
2018-09-22Wallet: use unique_ptr for WalletImpl membersoneiric2-22/+16
Use unique_ptr to manage WalletImpl internals, rather than raw pointers.
2018-09-21WalletAPI: multisigSignData bug fixednaughtyfox1-1/+5
2018-09-19query backing devicem2049r5-0/+37
2018-09-17api/wallet: properly disable key encryptionstoffu1-2/+2
2018-09-16wallet2_api: bring up to latest wallet apimoneromooo-monero3-18/+38
2018-09-14remove obsolete daemon selection of fake outs and old tx constructionmoneromooo-monero1-4/+4
2018-09-11v8: per byte fee, pad bulletproofs, fixed 11 ring sizemoneromooo-monero1-0/+1
2018-09-10WalletAPI: 'hasMultisigPartialKeyImages' function addednaughtyfox3-0/+20
2018-08-23wallet: store trusted-daemon flag in wallet2stoffu2-7/+5
2018-08-16store secret keys encrypted where possiblemoneromooo-monero1-1/+2
The secret spend key is kept encrypted in memory, and decrypted on the fly when needed. Both spend and view secret keys are kept encrypted in a JSON field in the keys file. This avoids leaving the keys in memory due to being manipulated by the JSON I/O API.
2018-08-16wallet: wipe seed from memory where appropriatemoneromooo-monero1-2/+2
2018-08-16wallet2: make --restricted-rpc available for wallet RPC onlystoffu3-8/+8
2018-08-12wallet: disable core dumps on startup in release modemoneromooo-monero1-0/+3
2018-08-08wallet: allow adjusting number of rounds for the key derivation functionstoffu5-27/+41
2018-07-03wallet2: unlock keys file before calling verify_password (needed for Windows)stoffu3-0/+27
Also added notes to WalletManager::verifyWalletPassword (which afaik seems unused by anyone at the moment) regarding the need to unlock the keys file beforehand.
2018-06-28api/wallet: add missing arg to wallet2::refresh()stoffu1-1/+1
2018-06-28Wallet API: add some missing override keywordstoffu7-165/+164
Also remove dust() from UnsignedTransactionImpl (already in PendingTransactionImpl)
2018-06-28wallet: prevent the same wallet file from being opened by multiple processesstoffu1-0/+1
2018-06-21Wallet API: add support for wallet creation from hardware devicestoffu5-1/+95
2018-06-05use deterministic viewkey if not suppliedcryptochangements341-20/+34
2018-05-31wallet: fix shared ring db pathstoffu1-2/+6
2018-05-05add .load() to make Boost 1.67 happy with its new is_integral checkTeutone1-1/+1
2018-05-04Wallet API: allow log path to be non-default & console output to be configurablestoffu2-3/+4
2018-04-25Wallet: added methods to sign and verify arbitrary message with multisig ↵naughtyfox3-0/+61
public signer's key (libwallet & wallet api)
2018-04-13WalletApi: publicMultisigSignerKey methodnaughtyfox3-0/+17
2018-04-07WalletManagerImpl: reuse existing connection to daemon instead of ↵stoffu3-39/+35
reconnectivng every time
2018-03-28wallet: fix default mixin (4 -> 6)sneurlax1-1/+1
2018-03-28WalletApi: getMultisigInfo entry for gui walletsnaughtyfox5-0/+301
WalletApi: makeMultisig call introduced WalletApi: finalizeMultisig call introduced WalletApi: new calls exportMultisigImages and importMultisigImages WalletApi: method to return multisig wallet creation state WalletApi: create multisig transaction, sign multisig transaction, commit transaction and get multisig data are added WalletApi: identation and style fixes
2018-03-28Refactored: work with wallet api statuses to make setting and getting ↵naughtyfox3-255/+175
operations atomic along with error strings WalletApi: added method statusWithErrorString to atomically retrieve error with error string
2018-03-16wallet: more user friendly print_ringmoneromooo-monero3-0/+28
It can now take a txid (to display rings for all its inputs), and will print rings in a format that set_ring understands
2018-03-16wallet2_api: add key reuse mitigations APImoneromooo-monero3-0/+27
2018-03-16wallet2_api: add ring apimoneromooo-monero3-0/+46
2018-03-16wallet2_api: add blackball apimoneromooo-monero4-0/+65
2018-03-14device: untangle cyclic depenencystoffu1-1/+0
When #3303 was merged, a cyclic dependency chain was generated: libdevice <- libcncrypto <- libringct <- libdevice This was because libdevice needs access to a set of basic crypto operations implemented in libringct such as scalarmultBase(), while libringct also needs access to abstracted crypto operations implemented in libdevice such as ecdhEncode(). To untangle this cyclic dependency chain, this patch splits libringct into libringct_basic and libringct, where the basic crypto ops previously in libringct are moved into libringct_basic. The cyclic dependency is now resolved thanks to this separation: libcncrypto <- libringct_basic <- libdevice <- libcryptonote_basic <- libringct This eliminates the need for crypto_device.cpp and rctOps_device.cpp. Also, many abstracted interfaces of hw::device such as encrypt_payment_id() and get_subaddress_secret_key() were previously implemented in libcryptonote_basic (cryptonote_format_utils.cpp) and were then called from hw::core::device_default, which is odd because libdevice is supposed to be independent of libcryptonote_basic. Therefore, those functions were moved to device_default.cpp.
2018-03-07Wallet API: corrected testnet/mainnet orderingstoffu1-1/+1
2018-03-06Wallet API: make nettype non-defaulted to disambiguate from deprecated ↵stoffu1-3/+3
versions (and make libwallet_api_tests compilable)
2018-03-05Correct spelling mistakes.Edward Betts2-3/+3
2018-03-05Wallet API: generalize 'bool testnet' to 'NetworkType nettype'stoffu5-42/+103
2018-03-05wallet_manager: fixed typo deviuce/device.hppstoffu1-1/+1
2018-03-05Stagenetstoffu5-21/+21
2018-03-04wallet2_api: add info/error/warning entry pointsmoneromooo-monero2-3/+18
2018-03-04Code modifications to integrate Ledger HW device into monero-wallet-cli.cslashm1-2/+2
The basic approach it to delegate all sensitive data (master key, secret ephemeral key, key derivation, ....) and related operations to the device. As device has low memory, it does not keep itself the values (except for view/spend keys) but once computed there are encrypted (with AES are equivalent) and return back to monero-wallet-cli. When they need to be manipulated by the device, they are decrypted on receive. Moreover, using the client for storing the value in encrypted form limits the modification in the client code. Those values are transfered from one C-structure to another one as previously. The code modification has been done with the wishes to be open to any other hardware wallet. To achieve that a C++ class hw::Device has been introduced. Two initial implementations are provided: the "default", which remaps all calls to initial Monero code, and the "Ledger", which delegates all calls to Ledger device.
2018-02-25wallet api: when restoring from EnglishOld, set language to Englishstoffu1-0/+4
2018-02-25Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windowsrbrunner71-0/+10
2018-02-08wallet: suggest the use of sweep_unmixable when not_enough_outs_to_mix is thrownstoffu1-0/+1
2018-01-29Fixed typos and wording tweaksMaxithi2-3/+3
2018-01-28wallet: automatically use low priority if safe (no backlog & recent blocks ↵stoffu2-2/+5
not full)
2018-01-26Readd copyright starting datexmr-eric4-4/+4
2018-01-26Update 2018 copyrightxmr-eric21-21/+21
2018-01-26Wallet API: remove unused enum Priority from UnsignedTransactionstoffu1-7/+0
2018-01-17Wallet API: all recover options with passwordm2049r5-12/+110
also renamed memo => mnemonic in api method parms
2018-01-14cmake: set API header install path to what Qt wallet expectsredfish1-1/+1
2018-01-10Reserve proofstoffu3-0/+57
2017-12-31wallet_api: make this optional but not built by defaultmoneromooo-monero1-0/+2
It means it can still be built with make -C build/debug wallet_api but still not DoS us while debugging
2017-12-26wallet-api: added Utils::onStartupstoffu2-0/+6
2017-12-18check accessing an element past the end of a containermoneromooo-monero1-0/+4
2017-12-17Add N/N multisig tx generation and signingmoneromooo-monero3-5/+5
Scheme by luigi1111: Multisig for RingCT on Monero 2 of 2 User A (coordinator): Spendkey b,B Viewkey a,A (shared) User B: Spendkey c,C Viewkey a,A (shared) Public Address: C+B, A Both have their own watch only wallet via C+B, a A will coordinate spending process (though B could easily as well, coordinator is more needed for more participants) A and B watch for incoming outputs B creates "half" key images for discovered output D: I2_D = (Hs(aR)+c) * Hp(D) B also creates 1.5 random keypairs (one scalar and 2 pubkeys; one on base G and one on base Hp(D)) for each output, storing the scalar(k) (linked to D), and sending the pubkeys with I2_D. A also creates "half" key images: I1_D = (Hs(aR)+b) * Hp(D) Then I_D = I1_D + I2_D Having I_D allows A to check spent status of course, but more importantly allows A to actually build a transaction prefix (and thus transaction). A builds the transaction until most of the way through MLSAG_Gen, adding the 2 pubkeys (per input) provided with I2_D to his own generated ones where they are needed (secret row L, R). At this point, A has a mostly completed transaction (but with an invalid/incomplete signature). A sends over the tx and includes r, which allows B (with the recipient's address) to verify the destination and amount (by reconstructing the stealth address and decoding ecdhInfo). B then finishes the signature by computing ss[secret_index][0] = ss[secret_index][0] + k - cc[secret_index]*c (secret indices need to be passed as well). B can then broadcast the tx, or send it back to A for broadcasting. Once B has completed the signing (and verified the tx to be valid), he can add the full I_D to his cache, allowing him to verify spent status as well. NOTE: A and B *must* present key A and B to each other with a valid signature proving they know a and b respectively. Otherwise, trickery like the following becomes possible: A creates viewkey a,A, spendkey b,B, and sends a,A,B to B. B creates a fake key C = zG - B. B sends C back to A. The combined spendkey C+B then equals zG, allowing B to spend funds at any time! The signature fixes this, because B does not know a c corresponding to C (and thus can't produce a signature). 2 of 3 User A (coordinator) Shared viewkey a,A "spendkey" j,J User B "spendkey" k,K User C "spendkey" m,M A collects K and M from B and C B collects J and M from A and C C collects J and K from A and B A computes N = nG, n = Hs(jK) A computes O = oG, o = Hs(jM) B anc C compute P = pG, p = Hs(kM) || Hs(mK) B and C can also compute N and O respectively if they wish to be able to coordinate Address: N+O+P, A The rest follows as above. The coordinator possesses 2 of 3 needed keys; he can get the other needed part of the signature/key images from either of the other two. Alternatively, if secure communication exists between parties: A gives j to B B gives k to C C gives m to A Address: J+K+M, A 3 of 3 Identical to 2 of 2, except the coordinator must collect the key images from both of the others. The transaction must also be passed an additional hop: A -> B -> C (or A -> C -> B), who can then broadcast it or send it back to A. N-1 of N Generally the same as 2 of 3, except participants need to be arranged in a ring to pass their keys around (using either the secure or insecure method). For example (ignoring viewkey so letters line up): [4 of 5] User: spendkey A: a B: b C: c D: d E: e a -> B, b -> C, c -> D, d -> E, e -> A Order of signing does not matter, it just must reach n-1 users. A "remaining keys" list must be passed around with the transaction so the signers know if they should use 1 or both keys. Collecting key image parts becomes a little messy, but basically every wallet sends over both of their parts with a tag for each. Thia way the coordinating wallet can keep track of which images have been added and which wallet they come from. Reasoning: 1. The key images must be added only once (coordinator will get key images for key a from both A and B, he must add only one to get the proper key actual key image) 2. The coordinator must keep track of which helper pubkeys came from which wallet (discussed in 2 of 2 section). The coordinator must choose only one set to use, then include his choice in the "remaining keys" list so the other wallets know which of their keys to use. You can generalize it further to N-2 of N or even M of N, but I'm not sure there's legitimate demand to justify the complexity. It might also be straightforward enough to support with minimal changes from N-1 format. You basically just give each user additional keys for each additional "-1" you desire. N-2 would be 3 keys per user, N-3 4 keys, etc. The process is somewhat cumbersome: To create a N/N multisig wallet: - each participant creates a normal wallet - each participant runs "prepare_multisig", and sends the resulting string to every other participant - each participant runs "make_multisig N A B C D...", with N being the threshold and A B C D... being the strings received from other participants (the threshold must currently equal N) As txes are received, participants' wallets will need to synchronize so that those new outputs may be spent: - each participant runs "export_multisig FILENAME", and sends the FILENAME file to every other participant - each participant runs "import_multisig A B C D...", with A B C D... being the filenames received from other participants Then, a transaction may be initiated: - one of the participants runs "transfer ADDRESS AMOUNT" - this partly signed transaction will be written to the "multisig_monero_tx" file - the initiator sends this file to another participant - that other participant runs "sign_multisig multisig_monero_tx" - the resulting transaction is written to the "multisig_monero_tx" file again - if the threshold was not reached, the file must be sent to another participant, until enough have signed - the last participant to sign runs "submit_multisig multisig_monero_tx" to relay the transaction to the Monero network
2017-11-21Spend proof without txkeystoffu2-0/+48
2017-11-21fix for tx proof: use exception instead of error_str when signature gen failedstoffu2-3/+3
2017-11-18Tx proof (revised):stoffu4-158/+135
- refactoring: proof generation/checking code was moved from simplewallet.cpp to wallet2.cpp - allow an arbitrary message to be signed together with txid - introduce two types (outbound & inbound) of tx proofs; with the same syntax, inbound is selected when <address> belongs to this wallet, outbound otherwise. see GitHub thread for more discussion - wallet RPC: added get_tx_key, check_tx_key, get_tx_proof, check_tx_proof - wallet API: moved WalletManagerImpl::checkPayment to Wallet::checkTxKey, added Wallet::getTxProof/checkTxProof - get_tx_key/check_tx_key: handle additional tx keys by concatenating them into a single string
2017-11-16split wallet and wallet_apimoneromooo-monero11-9/+997
This speeds up building a lot when wallet2.h (or something it includes) changes, since all the API includes wallet2.h
2017-11-06track double spending in the txpoolmoneromooo-monero1-3/+3
Transactions in the txpool are marked when another transaction is seen double spending one or more of its inputs. This is then exposed wherever appropriate. Note that being marked with this "double spend seen" flag does NOT mean this transaction IS a double spend and will never be mined: it just means that the network has seen at least another transaction spending at least one of the same inputs, so care should be taken to wait for a few confirmations before acting upon that transaction (ie, mostly of use for merchants wanting to accept unconfirmed transactions).
2017-10-29Wallet API: override update subdir when built from srcJaquee1-1/+3
2017-10-22Wallet API: default values for account and subaddr indexJaquee2-8/+7
2017-10-16Distinguish "not enough money" and "not enough unlocked money"binaryFate1-2/+20
Fix #1530
2017-10-15wallet2+API: use separate callbacks for lightwalletsJaquee1-0/+32
2017-10-15walletAPI: correct confirmations in txHistory for unsynced walletsJaquee1-2/+2
2017-10-15walletAPI: lightwallet exceptionsJaquee1-2/+12
2017-10-15walletAPI: add lightwallet login() and importWalletRequest()Jaquee2-0/+34
2017-10-15walletAPI: init() lightwallet and SSL supportJaquee2-6/+8
2017-10-15walletAPI: add tx unlock_timeJaquee1-4/+0
2017-10-07Subaddresseskenshi8414-100/+552
2017-09-25move checkpoints in a separate librarymoneromooo-monero2-6/+6
2017-09-25wallet2_api: check whether dynamic_cast returns NULLmoneromooo-monero1-0/+2
CID 161844
2017-09-25wallet2_api: remove an unused, uninitialized, fieldmoneromooo-monero1-1/+0
Silences CID 161874
2017-09-25wallet2_api: init error code to "no error" in the ctormoneromooo-monero1-1/+1
CID 161872
2017-09-23store is optional during close and defaults to true; except during descructionm2049r4-13/+15
2017-08-21WalletAPI: only allow trusted daemon when importing key imagesJaquee1-0/+5
2017-08-21WalletAPI: copy wallet data when creating a view only walletJaquee1-0/+27
2017-08-09WalletAPI: add getDefaultDataDir()Jaquee2-0/+7
2017-08-07change mixin to ring size in user visible placesmoneromooo-monero2-9/+9
2017-08-05walletAPI: add getRefreshFromBlockHeight()Jaquee1-0/+1
2017-08-05wallet api: pause refresh while commiting txJaquee1-0/+2
2017-08-03Wallet API: add tx unlock timeJaquee3-0/+9
2017-08-03Enable verifying wallet password with having to load wallet.m2049r2-0/+5
2017-08-02fix wallet callback signaturesm2049r1-4/+4
2017-06-13wallet_api: fix missing transaction parameter in callbackmoneromooo-monero1-1/+1
It was unused, so harmless Reported by erikd on IRC
2017-05-23Wallet API: Set seed lang when recovering form keysJaquee1-1/+2
2017-05-02Wallet API: add spend/view key gettersJaquee2-2/+20
2017-04-24wallet: add sweep_below functionmoneromooo-monero1-1/+1
It sweeps all outputs below the given threshold This is available via the existing sweep_all RPC, by setting amount_threshold the desired amount (in atomic units)
2017-04-02Wallet API: fix Cold signing split txJaquee1-4/+10
2017-03-24Wallet API: add hard fork info functionsJaquee4-22/+14
2017-03-21wallet: fix set_log not handling 0,xxx style settingsmoneromooo-monero1-1/+1
2017-03-18use const references in catch blocksmoneromooo-monero2-2/+2
2017-03-03wallet api: fix parameters in wallet2callbackImplJaquee1-7/+7
2017-03-02wallet api: add missing mining optionsJaquee2-2/+4
2017-02-25Wallet API: Add support for daemon rpc loginJaquee2-3/+6
2017-02-22wallet2_api: add updates check apimoneromooo-monero1-0/+28
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni14-15/+15
2017-02-18wallet_api: fix logging init via apimoneromooo-monero2-1/+5
2017-02-14simplewallet: validate hex input sizemoneromooo-monero2-5/+5
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi842-6/+4
2017-02-06Add server auth to monerod, and client auth to wallet-cli and wallet-rpcLee Clagett2-2/+2
2017-02-05Wallet API: Easylogger wrapper for guiJaquee1-0/+6
2017-02-05Wallet API: Catch error from tools::is_local_addressJaquee1-2/+7
2017-02-04GUI: Improved refresh performanceJaquee1-7/+10
2017-02-04wallet api: Remove initAsync() and don't start refresh automatically on initJaquee2-17/+2
2017-01-30Wallet API: Create wallet from keysJaquee4-0/+158
2017-01-28Factor is_address_local code into a tools functionmoneromooo-monero1-36/+2
2017-01-25Updates to epee HTTP client codeLee Clagett3-28/+27
- http_simple_client now uses std::chrono for timeouts - http_simple_client accepts timeouts per connect / invoke call - shortened names of epee http invoke functions - invoke command functions only take relative path, connection is not automatically performed
2017-01-22Wallet api: testnet getter=1-0/+1
2017-01-20wallet: print exception message on get_random_outs_errormoneromooo-monero1-2/+2
2017-01-16wallet2_api: add API to set log categoriesmoneromooo-monero1-0/+5