Commit Graph
100 Commits
Author SHA1 Message Date
yeastplume 7ac35f134b Revert "[CONTRACTS] Contracts branch update for 1.80 (#718)"
This reverts commit cdd63fb565.
2024-09-19 09:05:44 +00:00
cdd63fb565 [CONTRACTS] Contracts branch update for 1.80 (#718)
* Simple contracts restructured v3 (#675)

* Add prototype contract implementation

Lacks:
- Payment proofs (add early payment proofs)
- Tests
- Better structure

* Separate contract utilities

* Simplify the main setup/sign code flow

* Remove commented initial_sec_key assignment

* Simplify sign::compute function

* Add logic for "removal" of secret keys from the context

* Further simplify a bit sign and setup

* No need for mutable context when adding outputs

* Refactor the commented code (lol)

* Refactor a bit

* tmp

---------

Co-authored-by: oryhp <gtrphyro@gmail.com>

* contract test fixes (#676)

* [Contracts] Experimental Slate v5 (#677)

* beginning to add and modify slate version 5

* completion of conversions from V5 to V4 Slate

* timestamp and memo fields

* upgrade/downgrade serialization of v5 slates

* add v5 binary slate versions + start of tests

* add bin slate ser/deser to tests

* ensure serialization of timestamp always excludes milliseconds

* start to update v5 tests, update v5 documentation

* add fn to generate populated internal slate for conversion testing

* add basic tests to convert all slate versions

* update

* commit cargo.lock

* [WIP] [Contracts] Early payment proofs (#681)

* add types and beginnings of signature utils

* add proof serialization

* serialisation of proof data + signature operation

* add serialization type for invoice proof + separate bin wrapper version

* add witness data + serializion to invoice payment proof, insert verfication functions in place in order to begin verification testing

* tests and infrastructure in place for validation

* verification of promise sig

* added verification of promise signature, infrastructure up to the point where a signature must be subtracted

* attempting to figure out differences between recipient nonce that's getting stored and calculated recipient nonce

* implementation of witness verification function, retrieve relevant values and re-validate derived recipient partial signature

* move stored portion of invoice proof into core types for storage, need to rename invoice proof

* define/refine the stored portion of payment proofs type 2?

* Folding all proof data into tx log entry storage

* back to importing master

* remove cargo files from diffs

* remove a lot of extra debug output

* return proof witness as part of proof retrieval, define json serialization of invoice proof + witness fields

* finish adding verification steps to foreign API

* remove redundant promise sig field

* move lcation of sign/verify calls

* Replace Azure Pipelines with Github Actions (#688)

* Update CI Badge on README.MD (#690)

* Trigger CI on push and pull request (#693)

* Update versioning to 5.2.0-beta.1 against grin 5.2.0-beta.3 (#691)

* update versioning to 5.2.0-beta.1 against grin 5.2.0-beta.3

* tweak for CI trigger

---------

Co-authored-by: Quentin Le Sceller <q.lesceller@gmail.com>

---------

Co-authored-by: Quentin Le Sceller <q.lesceller@gmail.com>

* fix Cargo.lock

* Contracts - Test fixes + warning cleanups (#694)

* clean up warnings in libwallet crate

* clean up warnings in controller crate

* update all contract tests with awareness of new proof structure

* added explicit payment proof tests for both rsr and srs (#695)

* Basic mwmixnet send (#696)

* integrating onion library

* updates and changes to support newly included mwmixnet types

* add (incorrect) owner api function

* turn off test for now

* switch working grin branch to master

* fix doctests for build

* update cargo lock in attempt to fix croaring build on CI server

* update cargo lock with upstream thiserror crate

* update test dependency for croaring

* [Contracts] Add self spend transaction state (#697)

* Add self spend transaction state

* subtle errors with output states and tx lookups - fixes

* [Contracts] Slatepack v5 Deserialization fix (#698)

* add V5 deserialization test + fixes

* clarify comment

* upwrap fix during v4 deserialization

* further unwrap removal

* update cargo lock, use latest grin packages

* addition of self-spend cancel + tests (#699)

* add tests + legacy self send cancel (#702)

* [Contracts] Cancel self-spend TX Pt. 2 (#703)

* add tests + legacy self send cancel

* add missing file

* Update grin to latest master, change versioning label to include contracts (#712)

* Add owner_api_listen_interface as hidden configuration field (#714)

* updates for rust 1.80

* updates for rust 1.80

---------

Co-authored-by: oryhp <gtrphyro@gmail.com>
Co-authored-by: Quentin Le Sceller <q.lesceller@gmail.com>
2024-08-27 12:30:22 +01:00
YeastplumeandGitHub 765f11b168 Update working version on master (#713)
* Update working version on master

* update cargo lock
2024-05-21 10:20:09 +01:00
YeastplumeandGitHub 8069de9a56 Revert "update and versioning for v5.3.1 (#709)" (#710)
This reverts commit 3d6f4b8437.
2024-05-14 09:36:39 +01:00
YeastplumeandGitHub 3d6f4b8437 update and versioning for v5.3.1 (#709) 2024-05-14 09:35:42 +01:00
YeastplumeandGitHub 7741812599 Update versioning, dependencies for 5.3.0 release (#708) 2024-04-24 10:20:16 +01:00
YeastplumeandGitHub 297c828532 Prevent wallet attempting to re-pay a cancelled invoice transaction (#707) 2024-04-24 09:03:58 +01:00
YeastplumeandGitHub 75363a9a25 Invoice owner API update (#701) 2024-02-20 11:04:42 +00:00
YeastplumeandGitHub f28b8c653a Compilation fixes for master (#700)
* update to use grin master, cargo update

* and remaining crates
2024-02-16 11:19:01 +00:00
12a25f82f1 Update versioning to 5.2.0-beta.1 against grin 5.2.0-beta.3 (#691)
* update versioning to 5.2.0-beta.1 against grin 5.2.0-beta.3

* tweak for CI trigger

---------

Co-authored-by: Quentin Le Sceller <q.lesceller@gmail.com>
2023-08-03 12:40:04 +01:00
YeastplumeandGitHub 60d1eb0daa update cargo lock (#689) 2023-08-01 10:47:00 +01:00
YeastplumeandGitHub c0b7c68b13 Update sysinfo crate to 0.29.6 (#685)
* update sysinfo package to fix build error

* update tor process sysinfo calls to new api

* update deprecation warnings

* small logic cleanup

* tweak to retrigger CI

* new_all() not required

* give longer for test thread to stop to hopefully alleviate inconsistent CI failures
2023-07-26 12:59:36 +01:00
YeastplumeandGitHub f0a38306e0 ubuntu CI update (#679) 2023-04-12 14:30:50 +01:00
YeastplumeandGitHub 477d903df4 Manual update and verification of #673 (#674) 2023-03-13 13:49:13 +00:00
yeastplume 3302d3d9cb update version numbering for next potential release 2022-03-22 14:29:03 +00:00
YeastplumeandGitHub fa39fca201 updates to ensure compilation against grin 5.0.2 (#644) 2022-03-21 10:45:53 +00:00
YeastplumeandGitHub cecb084753 add missing comment for config file value, used during migration (#642) 2022-02-18 10:36:16 +00:00
YeastplumeandGitHub f5dbed2014 fixes related to recent tokio changes (#640) 2022-01-17 09:33:08 +00:00
YeastplumeandGitHub 34d23eb17a PIBD Test Set Generation test (#628)
* add test to build chain with transaction data

* tweaks to test, add again
2021-12-14 15:47:01 +00:00
YeastplumeandGitHub b425107368 pmmr indexing related fix for get_outputs_by_pmmr_index function (#633) 2021-12-14 11:51:20 +00:00
YeastplumeandGitHub 1f35feed00 Update Cargo.lock from latest master, update age library to 0.7 (#625)
* Update cargo lock and introduce changes for update to age library

* update bech32 prefix
2021-11-13 12:19:32 +00:00
YeastplumeandGitHub b58322fdda update ed25519_dalek release (#506) 2020-08-10 14:42:53 +01:00
YeastplumeandGitHub 9146c17967 remove invoice state from context (#500) 2020-08-06 15:19:37 +01:00
YeastplumeandGitHub 6c9cef1370 Post Hardfork 3 Cleanup (#490)
* 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)
2020-07-31 10:33:45 +01:00
YeastplumeandGitHub 47e99f5603 Versioning for 4.0.0 (#459) 2020-07-02 12:23:54 +01:00
YeastplumeandGitHub 0fb677069d Version bump to v4.0.0-rc.1 (#458) 2020-06-26 14:05:00 +01:00
YeastplumeandGitHub 354b8e46a6 Change base64 serialization back to hex in JSON slate output (#457)
* Change base64 serialization back to hex in JSON slate output

* update V4 slate change description
2020-06-26 12:37:54 +01:00
YeastplumeandGitHub dea5850e2b Add Slatepack file output override (#455) 2020-06-26 10:39:17 +01:00
YeastplumeandGitHub f8ea76732b Modify get_stored_tx functions + tests (#454) 2020-06-25 10:06:04 +01:00
YeastplumeandGitHub 99c2505bf5 Add option to skip Tor send attempts in TorConfig (#453) 2020-06-24 10:50:40 +01:00
YeastplumeandGitHub bf3f0a49e0 Version bump for 4.0.0-beta.3 (#448) 2020-06-16 15:43:13 +01:00
YeastplumeandGitHub 2a5383d83e Default to outputting payment proof unless requested otherwise (#447) 2020-06-16 15:11:13 +01:00
YeastplumeandGitHub 66e2d0d5ae update finalize output (#446) 2020-06-15 16:13:34 +01:00
YeastplumeandGitHub 040b28f35a rework decode_slatepack function to accept decryption key indices (#445) 2020-06-15 14:39:52 +01:00
YeastplumeandGitHub d9c6bd89e2 Remove newline from create_slatepack_message JSON API Output (#444) 2020-06-15 10:26:59 +01:00
YeastplumeandGitHub ff9a9ea817 Slatepack Address HRP (#436)
* slatepack address hrp

* fix prefix

* test updates

* fix libwallet tests
2020-06-12 10:40:07 +01:00
YeastplumeandGitHub 5e20f5f0c8 add wallet unpack command (#433) 2020-06-11 08:34:00 +01:00
YeastplumeandGitHub fe2880949d Encrypted Slatepack Metadata (#428)
* addition of slatepack metadata

* finish adding tests ensuring forwards compatibility

* fix to version check

* updates based on review feedback
2020-06-10 10:28:23 +01:00
YeastplumeandGitHub 2a2367ff04 Version Bump for v4.0.0-beta.1 (#427) 2020-06-04 17:21:49 +01:00
YeastplumeandGitHub 3edd410e19 change hyper-socks2-mw to versioned crate (#425) 2020-06-03 14:31:19 +01:00
YeastplumeandGitHub 60ab3728ab Slatepack Workflow (#423)
* 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
2020-06-03 08:39:23 +01:00
YeastplumeandGitHub db12712928 Slatepack OwnerAPI Changes (#421)
* change all user-facing instances of addresses to a SlatepackAddress

* finish renaming get_slatepack_address + documentation

* get_slatepack_secret_key OwnerRPC implementation and test

* add owner api functions

* OwnerRPC functions + doctests

* add explicit slatepack API tests to exercise encryption

* update api function names to better reflect RFC
2020-05-28 08:17:51 +01:00
YeastplumeandGitHub 03cb1097e0 Slatepack Pt. 3 - The Packening (SlatepackAddress implementation) (#413)
* addition of SlatepackAddress type

* complete conversion of ed25519 keys to x25519 and isolate conversion within libwallet

* refactor packing/unpacking of slates logic into libwallet and out of slate adapters

* println
2020-05-26 09:51:05 +01:00
YeastplumeandGitHub 586a72d2ed Don't run doctests on Windows CI (#416)
* don't run doctests on windows CI

* CI Testing
2020-05-23 10:54:27 +01:00
YeastplumeandGitHub 2769436117 Slatepack - Pt 2 - Encryption (#411)
* 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
2020-05-22 11:48:11 +01:00
9450d2a3b8 Compact slate merge (#404)
* 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>
2020-05-19 11:19:03 +01:00
YeastplumeandGitHub c42d5ddcff Make Transaction Field in V4 Slate Optional (#356)
* 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
2020-03-10 18:19:27 +00:00
YeastplumeandGitHub 1810854b24 Remove V2 Slate, Add V4 (#354)
* add V4 slate

* add V4 slate

* deprecation warnings as reminders

* fix doctests, add warnings and change upstream grin back to master
2020-03-06 09:33:47 +00:00
YeastplumeandGitHub 62e3aed00d Remove V2 Owner API (#351)
* remove v2 owner API

* rename former owner_rpc_s to owner_rpc

* remove use_token arg from doc tests
2020-03-04 13:38:40 +00:00
Yeastplume decdd173a0 version bump for next potential release 2020-03-02 15:11:18 +00:00
YeastplumeandGitHub 695e425f22 Version bump for 3.1.0 release (#350) 2020-03-02 13:10:28 +00:00
YeastplumeandGitHub df8b706fbb Version increment for 3.1.0-beta.2 (#346) 2020-02-25 10:46:28 +00:00
YeastplumeandGitHub bf27520bd2 update and confirm new ring::aead version (#343) 2020-02-24 17:28:57 +00:00
YeastplumeandGitHub 9213559548 Update ring crates, update ring AEAD functionality to new ring API (#341) 2020-02-24 12:03:09 +00:00
YeastplumeandGitHub 1ced8990b9 Add sample script to init and call the secure owner API from node.js (#335)
* add sample script to init and call the secure owner API from node

* fix xiaojay's name.. thanks xiaojay!
2020-02-18 12:28:23 +00:00
YeastplumeandGitHub da064acc33 Change EncryptedRequest 'id' field to String (#336)
* change ID field in encrypted request/response to be a string of any kind

* Use JsonId Enum instead of String value
2020-02-18 12:28:08 +00:00
YeastplumeandGitHub b2c973fd0b Cargo update (#337) 2020-02-18 10:23:33 +00:00
YeastplumeandGitHub 4bb0398e21 Convert node client to use V2 Node API (#329)
* add beginnings of jsonrpc node client, get_chain_tip implementation

* version info and outputs from node

* return async split up of get_output requests

* add and test get kernel functionality

* height range to pmmr indices

* test fixes

* outputs by pmmr index
2020-02-14 09:16:43 +00:00
YeastplumeandGitHub 3571ff8e37 add ability to specify scan height backwards from tip (#325) 2020-02-07 10:17:37 +00:00
YeastplumeandGitHub 2d264db91a Wallet Interactive-mode, Part 1 (#295)
* 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
2020-02-06 09:08:24 +00:00
YeastplumeandGitHub c76ee7c803 Cargo update (#323) 2020-02-04 10:04:57 +00:00
YeastplumeandGitHub ed5b9008c0 Ensure API create_wallet returns failure when provided with invalid mnemonic seeds (#319)
* Ensure  returns failure with invalid mnemonic seeds, add tests

* test fixes resulting from change
2020-01-31 12:00:49 +00:00
YeastplumeandGitHub e71d79dc38 Rework directory checks/setups at launch (#318)
* rework setup code to ensure --top_level_dir flag works and all files are only output into the desired directory

* check for existence of wallet configuration file in target directory before asking recovery phrase and password

* test fixes and add test_mode flag to parse_init_args
2020-01-31 09:18:11 +00:00
YeastplumeandGitHub 14e126bb1e add serde(default) specifier to ttl_blocks and payment_proof_recipient_address (#316) 2020-01-29 15:11:08 +00:00
YeastplumeandGitHub a2560179ae Onion V3 address consistency (#309)
* 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
2020-01-24 13:02:09 +00:00
YeastplumeandGitHub f09c91f626 Payment Proof export + validation (#289)
* add payment proof struct and deser

* rustfmt

* adding proof export functions

* rustfmt

* add payment proof validation function

* rustfmt

* add RPC version of retrieve_payment_proof + doctest

* rustfmt

* add verify_proof rpc function and documentation for new functions

* rustfmt

* add export and verify commands

* rustfmt

* test + test framework fixes

* rustfmt

* check whether addresses belong to this wallet, output such when checking

* rustfmt

* remove raw pubkey address and replace with ov3 address in user-facing contexts

* merge from master and rustfmt

* doctests
2020-01-22 13:16:24 +00:00
YeastplumeandGitHub 0d8689663b add output query chunk size as temporary env variable (#298) (#299) 2020-01-17 11:27:47 +00:00
YeastplumeandGitHub f181a1e71d Version check fix + Rustfmt (#293) (#294)
* Correct node version check

* rustfmt

* update pre-commit hook
2020-01-14 15:50:49 +00:00
YeastplumeandGitHub a97dc61725 Fix to unwraps (#285) (#286) 2020-01-02 22:16:36 +00:00
Yeastplume 483949e4fb versioning for branch 2019-12-20 11:23:11 +00:00
YeastplumeandGitHub d30fa460d9 Updated to link v3.0.0-beta.3 node release (#281) 2019-12-19 20:53:36 +00:00
YeastplumeandGitHub 52eecb5222 beta.2 (#278) 2019-12-12 22:15:50 +00:00
YeastplumeandGitHub aa88bc2c16 3.0.0-beta.1 Versioning (#274)
* versioning, cargo lock update and test fix

* node version for build
2019-12-06 13:24:09 +00:00
YeastplumeandGitHub e2ad2b3880 Add TTL Option to command line (#273)
* re-insert v2 slate

* reinstate version conversions

* rustfmt

* add and test versioning checks against 2.0.0 wallets

* rustfmt

* fix to invoice file output

* doctest fix

* remove target slate version from command line options

* add ttl option to send_tx and pay commands

* rustfmt
2019-12-04 13:04:28 +00:00
YeastplumeandGitHub 86e6f511c3 V2 Slate Compatibility (#272)
* re-insert v2 slate

* reinstate version conversions

* rustfmt

* add and test versioning checks against 2.0.0 wallets

* rustfmt

* fix to invoice file output

* doctest fix

* remove target slate version from command line options
2019-12-04 11:52:42 +00:00
YeastplumeandGitHub 7db55592d0 Bits and Pieces for 3.0.0 beta (#271)
* deprecate the V2 Owner API

* rustfmt

* fix output from scan

* fix scan output to be more consistent

* rustfmt

* updater thread test
2019-12-03 20:30:10 +00:00
YeastplumeandGitHub 29b9222212 fixes for log level compatibility (#270) 2019-12-03 11:04:16 +00:00
YeastplumeandGitHub fe539e716c rename command line switch to (#269) 2019-12-03 09:56:43 +00:00
YeastplumeandGitHub 0d77282398 Check stored transaction for payment proof when checking proof (#266)
* check original transaction when checking payment proof

* rustfmt

* tweak to trigger build
2019-12-03 08:45:49 +00:00
YeastplumeandGitHub 56396b85ff Remove manual recovery (#268)
* remove recovery command

* Remove manual recovery option from command line

* rustfmt
2019-12-03 08:45:36 +00:00
YeastplumeandGitHub 43a7bfecef Fix incorrect merge in previous PR (#267) 2019-12-02 15:27:40 +00:00
YeastplumeandGitHub 45480392da TTL Implementation (#261)
* refactor address generation code into libwallet, bool to flag whether to include proof, add sender address in init_send_tx

* rustfmt

* require payment proof addr as part of init_tx

* rustfmt

* store payment proof on sender transaction side

* rustfmt

* change sig to ed25519 sig

* rustfmt

* add message creation and signature

* rustfmt

* add payment proof verification function

* rustfmt

* validate proof on sender side, store proof

* rustfmt

* fix json tests

* fixes and updates to tests

* added API functions for converting and retrieving proof addresses

* rustfmt

* add payment proof to init_send_tx example

* rustfmt

* incorrect comment

* add commands for requesting payment proofs

* rustfmt

* wire up payment proofs into command line

* rustfmt

* add address command

* rustfmt

* added tor sending from owner api

* rustfmt

* add TTL to slate, transaction log

* ttl cutoff tests

* add ttl check to recieve functions, add tests, modify doctests

* rustfmt

* fixes from upstream changes and test fixes

* rustfmt

* remove unnecessary block header version check
2019-12-02 13:54:57 +00:00
YeastplumeandGitHub 9fd1d49dda Proof of Payment Command Line (#260)
* refactor address generation code into libwallet, bool to flag whether to include proof, add sender address in init_send_tx

* rustfmt

* require payment proof addr as part of init_tx

* rustfmt

* store payment proof on sender transaction side

* rustfmt

* change sig to ed25519 sig

* rustfmt

* add message creation and signature

* rustfmt

* add payment proof verification function

* rustfmt

* validate proof on sender side, store proof

* rustfmt

* fix json tests

* fixes and updates to tests

* added API functions for converting and retrieving proof addresses

* rustfmt

* add payment proof to init_send_tx example

* rustfmt

* incorrect comment

* add commands for requesting payment proofs

* rustfmt

* wire up payment proofs into command line

* rustfmt

* add address command

* rustfmt

* added tor sending from owner api

* rustfmt
2019-11-28 15:13:52 +00:00
YeastplumeandGitHub 7293ca99c3 Payment Proof Implementation (#259)
* refactor address generation code into libwallet, bool to flag whether to include proof, add sender address in init_send_tx

* rustfmt

* require payment proof addr as part of init_tx

* rustfmt

* store payment proof on sender transaction side

* rustfmt

* change sig to ed25519 sig

* rustfmt

* add message creation and signature

* rustfmt

* add payment proof verification function

* rustfmt

* validate proof on sender side, store proof

* rustfmt

* fix json tests

* fixes and updates to tests

* added API functions for converting and retrieving proof addresses

* rustfmt

* add payment proof to init_send_tx example

* rustfmt

* incorrect comment
2019-11-28 14:34:27 +00:00
YeastplumeandGitHub 9c2177e3d9 HF2 Slate Changes (#258)
* Update slate version to V3, define PaymentInfoV3 and add needed serialization

* rustfmt

* add ttl and payment proof info to slate

* rustfmt

* add documentation for updated fields

* doc test fixes
2019-11-20 11:01:38 +00:00
YeastplumeandGitHub e74c0e2571 Add updater thread + Updater related functions (#253)
* first attempt at adding updater thread

* rustfmt

* rustfmt

* many lifetimes made static to allow api to spawn separate thread

* add first pass at updater thread functionality

* rustfmt

* add mpsc for returning status from update functions

* rustfmt

* add stop state, ensure update is triggered by wallet functions when wallet updater is running

* rustfmt

* add update status function to owner API, V3 owner api functions

* rustfmt

* change update warning

* adding tests for new updater control functions

* documentation updates

* rustfmt
2019-11-18 10:49:51 +00:00
YeastplumeandGitHub 021c34bf89 Change check_repair + certain functions to lock more granularly (#252)
* 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
2019-11-06 10:04:42 +00:00
YeastplumeandGitHub c518f35c8d Store and use last scanned PMMR height in check_repair (#246)
* 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
2019-11-04 21:10:05 +00:00
YeastplumeandGitHub 3190496402 Cherry pick #242 (#243) 2019-10-17 10:32:58 +01:00
YeastplumeandGitHub 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
YeastplumeandGitHub 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
YeastplumeandGitHub e02b5d9b20 update for development version (#234) 2019-10-04 12:41:18 +01:00
YeastplumeandGitHub 0f2d8f8c6b version bump for build (#233) 2019-10-03 15:59:12 +01:00
YeastplumeandGitHub 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
YeastplumeandGitHub 061a058571 udpate for beta release (#224) 2019-09-24 15:13:20 +01:00
YeastplumeandGitHub 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
YeastplumeandGitHub 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
YeastplumeandGitHub 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
YeastplumeandGitHub 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
YeastplumeandGitHub 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