* updated util and libwallet with thiserror
* update impl crate to thiserror
* api crate converted to thiserror
* update of controller crate to thiserror
* update final bin + tests to thiserror
* update unused import
* remove failure derive
* reset import of grin to master
* update cargo lock
* update from master
* remove grin libs re-export from util crate :(
* temp local
* point code at bleeding edge grin master branch
* updated util and libwallet with thiserror
* update impl crate to thiserror
* api crate converted to thiserror
* update of controller crate to thiserror
* update final bin + tests to thiserror
* update unused import
* remove failure derive
* reset import of grin to master
* update cargo lock
* update from master
* Add support for sending compact slates (#366)
* WIP add support for sending compact slates
* add repopulate_tx function to internal API
* first pass at compacted slate working
* move slate compaction to separate function
* test fixes
* support compact slate inits in invoice workflow
* add compress flags to send and invoice
* attempting to remove is_compact and assume all V4 slates begin as compact
* attempting to calculate offsets when full tx data isn't available
* update calc_commit to use participant blind data
* update doctests for compact slates
* start to remove unneeded fields from serialization
* make num_participants optional
* remove other_version from slate
* use grin master branch
* remove message field
* lock height assumed to be 0 if it doesn't exist
* don't serialise receiver signature when null
* don't serialize payment_info if not needed
* remove participant id from participant info
* add note on id field
* fix finalize and receive doctests
* finalize_tx tests, init_send_tx tests
* doctests for process_invoice_tx, retrieve_tx, tx_lock_outputs
* finished test changes
* update from grin master
* rebuild PR from diff (#380)
* recreate PR from diff (#381)
* serialize tx struct into top level coms object (#382)
* remove height (#383)
* Add State Slate (#384)
* add state field to slate and SlateV4
* set slate state at each transaction stage, add check to tests
* serialize slate status properly
* V4 Slate field tweaks (#386)
* various tweaks to V4 slate
* field renaming
* serialize slate v4 ID as base64 (#387)
* remove amount and fee where not needed (#388)
* Final Changes for compact Slate (#389)
* add tests for all types of file output, remove message args
* default range proof serialization
* shorten output features serialization
* rename payment proof fields in slate v4
* v4 payment proof serialization
* Binary Slates (#385)
* start test implementation
* add experimental binary serialization to slate
* serialize id
* serialize fields that can be skipped as a separate struct
* factor out sigs serialization
* clean up sigs and coms serialization
* completed v4 bin serialization
* add manual de/ser traits for V4 bin slate
* add simple byte array serializer
* complete wiring in of bin slate serialization
* clarify comment
* clarify comment
* update version
* test output dir name fix
* update slate v4 change description
* add binary output to command line
* Remove unneeded signature data during S2 and I2 stages (#390)
* remove unneeded return signature data during S2
* remove unneeded sig data from I2
* Doctest Fixes for compact slate branch (#392)
* begin to fix doctests
* more doctest fixes
* fix receive_tx
* update get_stored_tx to accept an UUID instead of a tx object, and operate on a raw Transaction object (#394)
* Fixes to async transaction posting (#395)
* unstash post_tx changes
* add offset during S3 and I3
* Revert slate id serialization to hex-string uuid (#396)
* update from master (#397)
* v3.x.x - v4.0.0 wallet compatibility fixes (#398)
* changes to support http sending to v3 wallets
* sending via http/tor TO 3.0.0 wallet works
* receiving FROM 3.0.0 wallets works over http/tor
* output converted V3 slate when needed
* paying invoices from 3.0.0 wallets working
* handle all participant info in slate states
* sending and receiving standard file transactions between v3 and 4 wallets confirmed working
* all file-based workflows working
* fixes resulting from tests
* remove reminder warnings
* remove lock_height, add kernel_features + arguments (#399)
* grin-wallet master now building against grin master (#402) (#403)
Co-authored-by: Antioch Peverell <apeverell@protonmail.com>
* Enhanced offset creation (#407)
* initial tests reworking offset creation
* invoice flow fixing + tests
* further test fixes
* change offset name in v4 slate, base64 serialize
* logic optimisation
* changes based on review feedback
Co-authored-by: Antioch Peverell <apeverell@protonmail.com>
* Stop wallet proxy in controller tests to allow directory cleanup in Windows
* Update test client
* Update to latest grin master
* is_unspent -> get_unspent
* cli addition to yml
* first experiments with CLI mode
* rustfmt
* modify owner_single_use to take optional instantiated API
* refactor command functions to take owner api instance
* modify commands to use single owner api instance
* add ability to pass customised message handler to API
* prevent update wallet attempt if wallet hasn't been opened
* fix output when internal updater is running
* add termion, use cli for status updates, remove logging output from CLI
* some attempts to clean up the command prompt and accomodate scanning intervals
* rework listener slightly to allow for cli mode, add close command
* remove termion dependency
* 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
* 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
* 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