* Rename check-repair -> scan, make lock logic more granular
* rustfmt
* update owner api implementations where to allow granular locking where required
* rustfmt
* store init state on startup to determine whether full utxo scan is required for new wallets
* rustfmt
* fix for init status persist
* add start height argument to scan
* rustfmt
* store last scanned PMMR check index
* rustfmt
* fix issue where account names will be overwritten on check_repair
* rustfmt
* attempts to include check_repair scan as part of normal update
* rustfmt
* fix error on restore due to incorrect parent key id being set
* addition of calls to heigt_range_to_pmmr_indices traits and implementations
* rustfmt
* get_chain_height -> get_chain_tip
* rustfmt
* retrieve height+hash from node, modify check_repair to use block heights
* rustfmt
* fixes from live testing
* rustfmt
* test cleanup and change dependencies back to grin master
* rustfmt
* udpate for beta release
* initial tor explorations
* rustfmt
* basic tor tx send working
* rustfmt
* add tor proxy info to config file
* rustfmt
* add utilities to output tor hidden service configuration files
* output tor config as part of listener startup
* rustfmt
* fully automate config and startup of tor process
* rustfmt
* remove unnecessary process kill commands from listener
* rustfmt
* assume defaults for tor sending config if section doesn't exist in grin-wallet.toml
* rustfmt
* ignore tor dev test
* update default paths output by config, compilation + confirmed working on windows
* rustfmt
* fix on osx/unix
* add timeout to tor connector, remove unwrap in client
* allow specifiying tor address without 'http://[].onion' on the command line
* fix api test
* rustfmt
* update address derivation path as per spec
* rustfmt
* move tor init to separate function
* rustfmt
* re-ignore tor dev test
* listen on tor by default if tor available
* rustfmt
* test fix
* remove explicit send via tor flag, and assume tor if address fits
* rustfmt
* always store and update kernel excess
* fix to parent key id on update as caught by testing
* save kernel excess for transaction recipients and coinbase outputs
* rustfmt
* logic cleanup, cargo.lock
* update to use node beta.3 release
* fix to doctests
* check result of calc offset before using
* rustfmt
* add test for no change output scenario
* rustfmt
* add kernel lookup functionality to transaction retrievals
* rustfmt
* updates and fixes for no-change invoice workflow, test implementations
* rustfmt
* split api secret into owner_api secret and node api secrets
* update for master, drop requirement for authentication for foreign api when run on same port as owner api
* rustfmt
* re-trigger build
* allow owner api to start up without a wallet, begin to add lifecycle functions
* rustfmt
* test and typos fix
* updated with lifecycle functions
* rustfmt
* updates to allow owner api tests to be executed against local wallet proxy
* rustfmt
* fix for windows test
* add ability to pass configuration to , begin to add documentation and doctests
* add ability to pass configuration to , begin to add documentation and doctests
* doctests for lifecycle functions
* rustfmt
* ensure foreign API also has mask updated when being run along owner api, add more tests to lifecycle
* rustfmt
* documentation for lifecycle methods + init_secure_api
* rustfmt
* failing doctest
* adding initial version of init_secure_api
* rustfmt
* fix ECDH algo
* rustfmt
* trying to figure out best way of doing encryption
* refactor secure requests and responses into json-rpc responses, with base64 payload for encrypted messages
* rustfmt
* return proper errors from encrypted api, include tests covering encrypted API error cases
* rustfmt
* add test for normal error (unencrypted)
* rustfmt
* change ports for test, add foreign listener to V2 sanity tests, add ability to select owner api port via command line
* rustfmt
* turn it to 11
* explicit teardown after rpc tests
* update tests with explicit teardowns
* update tests to perform explicit teardown
* fix warnings, ensure all tests teardown
* log output to diagnose CI windows build failures
* disable owner api doctests on windows
* rustfmt
* experimental xor token work
* rustfmt
* test implementation of build_coinbase_t function
* rustfmt
* add separate foreign_rpc_s interface for secure functions
* rustfmt
* rustfmt
* fix http scheme to allow https as well
* add tokenized owner API, modify all functions to use token
* rustfmt
* fix for api doctests, tests passing up to api crate
* rustfmt
* controller crate compilation
* rustfmt
* controller tests passing and modified some to use masked keychains
* rustfmt
* fix wallet tests
* rustfmt
* build from github
* rustfmt
* version bump for next potential release
* Merge master into milestone/2.1.0 (#182)
* Derive --version output dynamically from cargo package version (#174)
* add --txid to the `wallet txs` command (#176)
* add --txid to the `wallet txs` command
* add test for `wallet txs` command with `--txid` parameter
* Refactor - Split WalletCommAdapter into multiple traits (#180)
* Derive --version output dynamically from cargo package version (#174)
* add server auth argument to http client
* Revert "add server auth argument to http client"
This reverts commit f52a8d2c7c.
* modify WalletCommAdapter, moving dest argument into fields on implementors,
visiting havok on automated tests, at least one of which is now out of date and failing
* Split WalletCommAdapter into four traits, one for each of its intended behaviors.
* Remove two vestigals
1. args, a stringly typed argument to put_tx
2. NullAdapter, which is no longer used
* Remove unused "params" argument from listen method.
* Re-add previously existing TODO comment
* Fix non-test build
* completely Fix non-test build
* Full Lifecycle API Support (#184)
* refactoring wallet lib traits
* rustfmt
* rustfmt
* add new files
* explicit lifetime specifiers on all wallet traits
* rustfmt
* modify apis to use new walletinst
* rustfmt
* converting controller crate
* rustfmt
* controller crate compiling
* rustfmt
* compilation
* rustfmt
* Remove config from wallet, implement open_wallet, close_wallet in lifecycle provider, remove password + open_with_credentials from WalletBackend + impl
* rustfmt
* full compilation, changing recovery + init to new model
* rustfmt
* wallet initialisation working, init command output and flow identical to v2.0.0 wallet
* rustfmt
* fix listener and owner api startup
* rustfmt
* rustfmt
* move encryption test
* rustfmt
* fix api doctests
* rustfmt
* fix for most tests in controller crate
* rustfmt
* fix for check tests in controller crate
* fix main wallet tests
* rustfmt
* add explicit functions to handle mnemonic recovery, fix CLI recovery workflow
* rustfmt
* update keybase adapter to use new wallet format
* rustfmt
* test fix
* remove debug output
* create 2.0.0 branch
* V0/V1 Slate Removal + Grin Header Version Bump (#140)
* Remove V0 and V1 Slates from Wallet
* rustfmt
* V1 API + V2 wallet to wallet impl (#144)
* remove v1 API
* rustfmt
* convert http adapter to use V2 api
* rustfmt
* V2 API conversion Pt2 - Check version (#146)
* call check_version on wallet before http send
* rustfmt
* Support new Bulletproof rewind scheme (#122)
* Restore with LegacyProofBuilder
* Switch to ProofBuilder at HF block
* Switch proof builder for coinbase outputs at hard fork
* Use valid_header_version to switch proof builder
* Fix compilation errors
* Use legacy proof builder for AutomatedTesting chain type
* Add macro to avoid duplicate code
* Read version info from server, react accordingly (#154)
* read and parse version, bump hf
* rustfmt
* add foreign api middleware check
* rustfmt
* add middleware checks
* rustfmt
* add check for incoming pre-hf slates
* api tests
* Add double rewind period (#155)
* Add double rewind period
* Simplify restore
* Fix comment
* bump imported version for beta release
* version bump for next (potential) release
* Provide more specific error when other wallet is outdated (#162)
* add appropriate error message when other wallet is out of date
* rustfmt
* missing cargo.lock
* make slate v0 the default for regular sends
* add block_header_version to slate
* update doc tests for latest grin version
* rustfmt
* HACF if HF height detected
* rustfmt
* add issue_invoice_tx command
* rustfmt
* add first pass at process_invoice command
* start of process_invoice fn
* rustfmt
* rename issue invoice and process invoice to invoice and pay
* add prompting and display information to pay invoice command
* rustfmt
* support invoice transactions in finalize command
* rustfmt
* basic invoiced tx working
* rustfmt
* teardown
* rustfmt
* rename, new struct for invoice args, begin to add new functions to RPC apis
* rustfmt
* add fns to rpc api
* rustfmt
* owner api functions RPC documentation in place
* rustfmt
* doctests for new invoicing functions
* rustfmt
* test fixes
* update documentation and doctests
* rustfmt
* invoice testing verification of tx log output
* rustfmt
* move api deser types into separate types mod
* rustfmt
* missing types file
* make all exports from libwallet more explicit
* rustfmt
* add version check function to foreign api
* rustfmt
* change check_version return value to result, for consistency
* fix for command line listener port override
* reduce parameter query size
* Add slate versioning
* rustfmt
* bump version number
* Add tests for slate version conversion
* rustfmt
* Updates and test addition based on bdap's review
* rustfmt
* store receiver's output into the sender's database
* rustfmt
* payment output refresh
* fix the test code in libwallet
* rustfmt
* fix wallet_command_line test
* modify the warning message for self sending
* a bit of unit test according to review comments
* display unknown value for the case of multiple outputs on single receiver, normally it's not the case of this wallet implementation
* rustfmt
* fix merge missing parts
* rustfmt
* use PaymentCommitMapping struct instead of a tuple
* rustfmt
* fix the test
* fix the owner api rpc test