Commit Graph

447 Commits

Author SHA1 Message Date
Yeastplume b4eeb50c66 Optional Tor Send/Listen Functionality (#226)
* 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
2019-10-14 20:24:09 +01:00
Quentin Le Sceller c60301946f Update easyjson-rpc-mw to 0.5.4 (#240) 2019-10-10 11:40:43 -04:00
Yeastplume 8c1d326a26 Fix URL Compatibility with 2.0.0 (#236)
* fix url scheme for consistency with 2.0.0

* rustfmt

* remove URL lib and go back to parsing strings for the dest url

* rustmft
2019-10-09 15:19:37 +01:00
Yeastplume e02b5d9b20 update for development version (#234) 2019-10-04 12:41:18 +01:00
Yeastplume 0f2d8f8c6b version bump for build (#233) 2019-10-03 15:59:12 +01:00
Quentin Le Sceller 11481669ef Update Copyright to 2019 (#232) 2019-10-03 15:16:09 +01:00
Yeastplume 2186900faa Always store and update kernel excess (#231)
* 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
2019-10-03 15:15:25 +01:00
Antioch Peverell f021e15eb6 Merge pull request #228 from antiochp/bump_2_1_0_beta_2
bump version v2.1.0-beta.2
2019-09-30 11:21:45 +01:00
antiochp 8f185ac150 bump version v2.1.0-beta.2 2019-09-30 11:16:09 +01:00
Antioch Peverell 291bc2e2f4 Merge pull request #225 from antiochp/explicit_wallet_proto_version
use explicit protocol version (local is not safe)
2019-09-26 14:36:50 +01:00
antiochp d89331a720 use explicit protocol version (local is not safe) 2019-09-26 08:33:33 +01:00
Yeastplume 061a058571 udpate for beta release (#224) 2019-09-24 15:13:20 +01:00
Quentin Le Sceller 83b1df3394 Fix local testing Cargo.toml (#222) 2019-09-24 10:23:39 +01:00
Yeastplume 07758f55d3 Update transactions via kernel where necessary (#220)
* 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
2019-09-24 09:56:10 +01:00
Yeastplume 26ad378686 API Token Fixes (#218)
* 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
2019-09-12 13:18:15 +01:00
Yeastplume 78e30aa779 API Lifecycle Implementation, Part 2 (#217)
* additon of 'get_mnemonic' API function

* rustfmt

* added 'change_password' api function

* rustfmt

* add 'delete_wallet' function'

* rustfmt
2019-09-11 10:27:30 +01:00
Yeastplume 41c0058e84 API Lifecycle Implementation, Pt. 1 (#211)
* 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
2019-09-02 16:03:35 +01:00
Antioch Peverell 22dfa9b3f5 Merge pull request #210 from antiochp/versioned_coinbase
Introduce VersionedCoinbase to add api stability around build_coinbase
2019-08-20 17:09:14 +01:00
antiochp 1a6b8aff3b introduce VersionedCoinbase to add api stability around build_coinbase 2019-08-20 10:06:06 +01:00
Antioch Peverell 3efe36eb7d Merge pull request #129 from antiochp/kernel_features_compat
rework kernel features support
2019-08-20 01:22:45 +01:00
antiochp fbc8173629 fixup controller tests 2019-08-20 00:51:59 +01:00
antiochp 1f76d70209 cleanup imports 2019-08-19 18:02:08 +01:00
antiochp caea305587 revert CbData changes
mining node calls build_coinbase and this needs to be consistent with grin node
2019-08-19 16:58:13 +01:00
antiochp ec3d08a710 translate to/from TransactionV2 correctly in owner api and foreign api 2019-08-19 16:35:54 +01:00
antiochp 3c45dad846 bleeding edge grin libs (master) 2019-08-19 14:29:16 +01:00
antiochp 4b993b0456 rebase against master and compile against kernel_feature_enum_variants branch on grin repo 2019-08-19 14:29:16 +01:00
antiochp 6b95593e7f make sure we only set lock_height if >0 2019-08-19 14:29:16 +01:00
antiochp 6c322acaf8 rework kernel features support to handle fee and lock_height on features variants 2019-08-19 14:29:11 +01:00
Yeastplume a58cae651e Add init_api_secure function (#206)
* 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
2019-08-19 13:05:21 +01:00
Yeastplume 62d976f9ef Test refactoring and additions to support API Testing (#205)
* move wallet tests into integration module in advance of further test creation, add v3 API

* rustfmt

* fix return value from incorrect mask supplied

* rustfmt

* rework send request call some

* rustfmt

* more refactoring, turn proxy startup + wallet init into macros

* rustfmt

* move sample requests into subdirectories

* add missing wallet files, change gitignore
2019-08-13 09:36:21 +01:00
Yeastplume f8c316a351 Store XORed wallet seed in-mem (#200)
* 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
2019-08-06 12:50:41 +01:00
Antioch Peverell 5cdd412205 use VersionedSlate for the owner_rpc api (#202) 2019-08-06 11:34:59 +01:00
Yeastplume c40e8a915b Merge milestone/2.1.0 into master (#199)
* 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 f52a8d2c7cdfb8583af5716ad621eb560811d6ee.

* 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
2019-07-29 13:25:03 +01:00
Hendrik Richter 7b6d597d39 add --txid to the wallet txs command (#176)
* add --txid to the `wallet txs` command

* add test for `wallet txs` command with `--txid` parameter
2019-07-08 09:43:56 +01:00
Yeastplume 21dd3d5377 Derive --version output dynamically from cargo package version (#174) 2019-07-02 10:24:17 +01:00
Yeastplume f7c17c4ba9 update version number for next potential release 2019-07-01 14:44:22 +01:00
Yeastplume c12f61d154 bump version number for release 2019-07-01 11:05:36 +01:00
Yeastplume 1db6029ba2 Clearer user messaging when node in use is 1.1.0 or less (#168)
* Modify error message when checking against old nodes to reflect 1.x.x series

* update output text
2019-06-29 09:09:12 +01:00
Quentin Le Sceller 5467515d36 CI Improvements (#166)
* Switch to Windows2019

* Delete Rust install step for Windows and Linux

* Add missing indent

* Missing indents

* Add forgotten LLVM

* Fix indents

* Fix rust flags
2019-06-28 11:15:08 +02:00
Yeastplume 64e8c48c35 Merge 2.0.0 branch into master (#164)
* 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
2019-06-27 10:41:05 +01:00
Yeastplume c7a00478aa fix future version number 2019-06-06 00:12:08 +01:00
Yeastplume a1f2e1f2eb update version for master maintenance 2019-06-05 23:51:07 +01:00
Yeastplume 3136812831 fixes and version update for final 1.0.0 build 2019-06-05 22:35:23 +01:00
Yeastplume ea4849a05f fixes and version update for final 1.0.0 build 2019-06-05 22:35:11 +01:00
Yeastplume 42befd2340 More helpful error message on recover when wallet_data dir doesn't exist (#134)
* make recover error message when wallet doesn't exist more helpful

* rustfmt
2019-06-04 16:48:04 +01:00
Yeastplume 03ab8ad8bd Fix for API secret on node API startup (#131)
* fix for api_secret when reading node height

* rustfmt

* remove macro export

* trigger ci again
2019-06-01 10:37:33 +01:00
Gary Yu cc940fb978 Merge pull request #130 from garyyu/warning
cargo.lock update, and remove 3 build warning from cargo 1.35.0
2019-06-01 11:40:01 +08:00
Gary Yu 36ab785589 cargo.lock crate version update, and remove 3 build warning from cargo 1.35.0 2019-06-01 10:46:45 +08:00
Yeastplume 9a7243fddd version bump for beta.4 2019-05-31 08:41:20 +01:00
Yeastplume b1738e33ed Changes for 1.1.0 -> 2.0.0 Deployment strategy decisions (#126)
* 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
2019-05-31 08:33:23 +01:00