Commit Graph
108 Commits
Author SHA1 Message Date
Anynomouss 82e61dd28a Added an extra warning message when failing to reach the node, work in progress on changing default dir for node api ssecret 'foreign_api_secret' 2025-01-24 13:45:55 +01:00
YeastplumeandGitHub b7104cd654 [MASTER] Updates for Rust 1.80+ (#722)
* warning fixes

* warning cleanup
2024-09-19 10:51:10 +01:00
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 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 8384a3ebb0 Remove grin lib re-exports from util crate (#661)
* 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
2022-08-08 12:08:25 +01:00
YeastplumeandGitHub 64cab53b1b Replace failure with thiserror (#654)
* 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
2022-07-28 10:21:45 +01:00
67f0e2b0e0 Remove method from grin-wallet.yml and keybase.rs from adapters (#658)
* Remove method from grin-wallet.yml and keybase.rs from adapters

* Remove keybase_notify_ttl from config

* Remove keybase_notify_ttl from config

* Fix tests

Co-authored-by: rstetsurin <rstetsurin@coinloan.io>
2022-07-26 10:19:46 +01:00
deevopeandGitHub c424a0ed10 TOR bridge + TOR Proxy + migration config_file_version (#617)
* tor bridge config and args

* migration `config_file_version=2`

* small fixes typo, comment etc..

* support: snowflake, meek_lite, obsf4 and tor proxy

* remove useless serde

* improve migrate function

* few fixes

* add bridge flags to pay and receive + few fixes

* some improvements
2022-02-03 15:33:41 +00:00
YeastplumeandGitHub f5dbed2014 fixes related to recent tokio changes (#640) 2022-01-17 09:33:08 +00:00
SheldonandGitHub 4c81e4a693 Fix socks5 proxy support (#629) 2021-12-31 10:19:34 +00:00
YeastplumeandGitHub b425107368 pmmr indexing related fix for get_outputs_by_pmmr_index function (#633) 2021-12-14 11:51:20 +00:00
deevopeandGitHub 041b182fcc latest master and ser&des update fn arguments (#631) 2021-12-13 15:53:46 +00:00
John TrompandGitHub b7f587f2b3 remove height argument from fee related functions as per fixpastfees RFC (#602)
* remove height argument from fee related functions as per fixpastfees RFC

* Cargo.lock updated from cargo update -p grin_core
2021-05-19 14:27:42 -04:00
Quentin Le ScellerandGitHub 83fd8ffc86 Replace custom hyper client with reqwest (#593)
* [DNM] Replace custom hyper client with reqwest

* Fix runtime error
2021-05-04 11:13:38 -04:00
trevynandGitHub bdc5bd748a Use remove_dir_all crate for more robust Windows CI (#604)
* Use `remove_dir_all` 0.7 in tests only
2021-04-08 09:45:52 -04:00
trevynandGitHub e9e67884d6 Sync to latest grin master and fix missing verifier_cache (#599)
* Sync to latest grin master and fix missing verifier_cache

* Copy CI fixes from grin master
2021-04-05 10:14:10 +01:00
trevynandGitHub a88a522f84 Clippy easy wins 1 (#596) 2021-03-17 10:51:53 -04:00
Quentin Le ScellerandGitHub 4e4880be8e Update copyright license year to 2021 (#587) 2021-03-05 13:30:51 -05:00
687118541d Fix owner API scan (#591)
Co-authored-by: jaspervdm <j@sper.dev>
2021-03-05 13:30:13 -05:00
563b456e47 Fix panic when calling certain API endpoints (#589)
* Detect if already in runtime context

* Add comment

Co-authored-by: jaspervdm <j@sper.dev>
2021-03-05 13:29:08 -05:00
jaspervdmandGitHub f4f4184283 Use global Tokio runtime (#543) 2020-12-15 21:09:19 +01:00
8334304c16 fixfees on grin-wallet (#526)
* change fee to fee_fields in various structs and fix tests for new fee calculation

* set up accept_fee_base param in grin-wallet.toml

* fix bug and adopt new tx_fee interface

* Fix doctests

* Remove left over debug statement

* revert field name feef to fee to remain slate compatible

* use into() for some literal fee_fields

* add height arguments to FeeFields methods where necessary

* Fix tests

* Rename fee_fields -> fee on Context

* Rename fee_fields -> fee on TxLogEntry

* Update to grin master

* replace fee(0) by fee(2*YEAR_HEIGHT) to get fee masking

* Fix compilation error and revert Cargo lock

* fix wrong height passed into next_difficulty

Co-authored-by: Jasper van der Maarel <j@sper.dev>
2020-11-26 20:46:03 +01:00
jaspervdmandGitHub 429db61bb7 Deprecate HTTP(S) (#532)
* Deprecate HTTP(S)

* Remove http support altogether
2020-11-26 16:21:20 +01:00
Quentin Le ScellerandGitHub c0e68ec3ea Rename Floonet to Testnet (#521)
* Replace floonet by testnet

* Update Cargo.lock
2020-10-08 10:00:01 -04:00
Antioch PeverellandGitHub 7f5c010fed fix our lmdb iter usage to work with changes in grin (#522) 2020-10-07 20:08:30 -04:00
Antioch PeverellandGitHub 8077d01004 we expect unspent outputs but play it safe (#517) 2020-09-14 12:17:12 +01:00
Antioch PeverellandGitHub 073c63aa16 handle transaction inputs correctly (#512)
* commit

* bump grin crates to latest version on master
2020-09-07 18:04:07 +01:00
antiochp 54627383ec bump grin sha for master
add test for tx json serialization
2020-09-03 11:24:45 +01:00
antiochp 2b1ba14db5 grin output_identifier refactoring 2020-09-01 14:01:20 +01:00
antiochp e8dc39b921 get_unspent api changed to take a commitment directly 2020-09-01 10:36:25 +01:00
f29fc9352f Check Slatepack file size before loading contents (#495)
Check Slatepack file size is within valid range before loading contents
into memory

Co-authored-by: Nym Seddon <unseddd@shh.xyz>
2020-08-12 10:09:46 +01:00
Antioch PeverellandGitHub 3ae8856afe tx inputs underwent refactoring (#502) 2020-08-07 15:57:27 +01:00
Antioch PeverellandGitHub e00c61fd05 refactor to pass slices around and not &Vec<> (#498)
cleaned up a couple of unwrap() calls
2020-08-03 10:29:54 +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 5e20f5f0c8 add wallet unpack command (#433) 2020-06-11 08:34:00 +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 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
antiochp 72ff4b4e13 use local chain_type and global chain_type as necessary 2020-05-22 14:35:35 +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
Antioch PeverellandGitHub 19da1e4aec grin-wallet master now building against grin master (#402) 2020-05-11 10:27:47 +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
jaspervdmandGitHub 7a95f42cc8 Detect reverted transactions (#355)
* Detect reverted transactions

* Add reverted amount to funds display

* Support cancelling reverted txs

* Add reverted_after field for reverted transactions

* Update grin dependency to master branch

* Panic on failed test cleanup

* Only delete test dir if it exists

* Stop wallet proxy in accounts test

* Stop proxy thread in all controller tests

* Typo

* Add sleep after revert test

* Longer sleep in revert tests
2020-03-10 16:49:17 +01:00
jaspervdmandGitHub 63eb25a92b Stop proxy in controller tests to allow dir cleanup on Windows (#363)
* Stop wallet proxy in controller tests to allow directory cleanup in Windows

* Update test client

* Update to latest grin master

* is_unspent -> get_unspent
2020-03-10 12:00:33 +01: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
jaspervdmandGitHub b56afda5f9 Fix compilation issues (#344) 2020-02-24 22:39:32 +01:00
YeastplumeandGitHub bf27520bd2 update and confirm new ring::aead version (#343) 2020-02-24 17:28:57 +00:00
Jasper van der Maarel 8ca3f9994b Update hyper/tokio/futures dependencies 2020-02-24 16:20:14 +01:00