* Change versioning on master to 4.1.x development
* Remove SlateV3, V3 References from command-line code
* continue to remove pre HF3 functionality, remove participant_id from slate, remove is_compact, derive slate state based on slate state field
* slate no longer needs explicit compact step
* version/build coinbase doctest cleanup
* don't attempt to store transaction during tx lock if it doesn't exist
* repair incorrectly removed logic
* last test fixes (hopefully)
* debugging tor sends
* use fixed yeast version of hyper-socks2
* send command working according to slatepack
* changes to handling proof address
* modifications of recieve command to work with slatepack and to attempt to return to sender via TOR
* finalize command tested
* attempting to add invoice processing
* fixes to tests, propagation of test mode where needed
* modify return values of api functions that can send as sync
* cleanup, testing and post_tx function
* revert changes to API, many test fixes
* deprecate http on the command-line warning
* recreate PR from #400
* first tests with slate encryption
* simplify slatepack model to contain encryption header in payload, and add de/ser tests
* update tests and confirm slatepack encryption working
* remove recipient list, add version check warning
* 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>
* make transaction field in V4 Slate optional
* add mutable/non mutable version of tx getter
* removal of mut references where not needed
* remove more muts
* update from master
* update from master
* test fixes
* initial addition of ov3
* move libwallet address functions into OnionV3Address type
* incorporate OnionV3 type where possible
* factor out manual dalek pubkey manipulations
* corrections due to test failures
* change json-rpc example to use ov3 for payment proof recipient address
* 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
* 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