Commit Graph
156 Commits
Author SHA1 Message Date
jwinterm 42fe2149c7 create_mwixnet_req: take server public keys, not secrets
MixnetReqCreationParams carried the mix servers' SECRET keys and derived each
x25519 onion pubkey from them — a test artifact, since a wallet only knows the
servers' public keys. Take the x25519 onion public keys directly.

- MixnetReqCreationParams.server_keys (Vec<SecretKey>) -> server_pubkeys
  (Vec<x25519 PublicKey>) with a vec_xpubkey_hex serde helper (hex list).
- create_mwixnet_req uses the pubkeys directly as the onion hop keys.
- owner RPC parses hex pubkeys; docs/examples updated; tests derive the pubkeys
  from their known secrets so coverage is unchanged.
- add x25519-dalek to api and controller.
2026-06-04 15:14:45 -04:00
jwinterm b7b7a6d21d Merge upstream staging into contracts
Bring the branch current with upstream staging (= master + #748). The earlier
"Merge branch master into contracts" used a stale local master snapshot, which
left the branch ~41 commits behind; this merges the current tip, including the
grin 5.4.0 dependency bump (#745) and the tx-delete / retrieve_txs fixes.

Only Cargo.lock conflicted (regenerated). Full cargo test --workspace green
(52 binaries / 185 tests).
2026-06-03 15:27:43 -04:00
jwinterm f7d3692ee8 Merge branch 'master' into contracts
Bring the contracts feature branch up to current master, which has since
landed rust 1.80 support (#722), the canonical mwixnet onion code (#726),
and node-client proxy support (#738).

Conflict resolution:
- libwallet/src/mwixnet/*: take master's (#726), dropping the contracts
  branch's older divergent copy. owner.rs::create_mwixnet_req updated to
  master's API (use_test_rng) and master's flat re-export imports.
- Cargo manifests/lock/.cargo: master's deps & version; re-add serde_with
  for Slate v5; keep contracts' .cargo/config.toml (Windows static-CRT).
- lib.rs: keep serde_derive AND serde_with macro_use; single mwixnet decl.
- error.rs: union of master + contracts variants; flat mwixnet re-exports.
- api/libwallet owner.rs: master's #738 + create_mwixnet_req plus the
  contract_* entry points; drop duplicate older create_mwixnet_req method.
- slatepack/armor.rs, node_clients/resp_types.rs: take master's.

Workspace builds; libwallet lib tests pass (34/34). The Slate version()
bug, issue #729 fix, and de-panicking follow in subsequent commits.
2026-06-02 18:26:08 -04:00
ardocratandGitHub 602d79e868 Update rust edition to 2021 (#749)
* build: update rust edition 2021

* cargo: format all

* build: fix tests and warnings
2026-05-14 12:58:22 +02:00
AnynomoussandGitHub 555469fb75 Merge pull request #1 from mimblewimble/master
Trying to merge master 9 commits into my branch. All checks passed.
2026-04-14 10:29:22 +02:00
ardocrat d2edbe12d3 build: update deps to grin 5.4.0 and hyper 0.14 2026-03-10 03:32:20 +03:00
ardocrat a099078f31 build: update built lib 2026-03-04 20:07:15 +03:00
Anynomous ea1d68fd03 Normalize line endings, attempt 2 2025-09-18 14:56:43 +02:00
Anynomous 86de7c6bcd Normalize line endings 2025-09-18 14:51:29 +02:00
Anynomous 34b1d0c665 Fixed issue with top-dir without init, better absolut e path and more cleanup 2025-09-12 16:41:41 +02:00
Anynomouss e05aefa135 Preparing to merge with Pull 734, not fully ready yet 2025-06-30 21:40:47 +02:00
Yeastplume b1ffe86a55 Revert "Fix for many wallet config errors (#731)"
This reverts commit 7ceade4449.
2025-03-08 13:28:27 +00:00
AnynomoussandGitHub 7ceade4449 Fix for many wallet config errors (#731)
* 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'

* In the middle of debugging hell, default overwrite any updates to the config made earlier, its never written to a file when running init

* More debugging, next trace the overwrite of the config

* Added get get_node_path function, seperating wallet dir and node_dir -compiling but some  warnings

* Tested wallet config creation fix for Issues: #728 #3394 Pull 3420, partial fix for 3002

* Removed some debugging code

* Fixed passing config to create_config function, some more test needed before pulling to main

* All test succeed: a) normal, b) top-dir, c) here, d) with default config template in working dir

* Cleaning up

* Fixed a single test for config that needed adjusting
2025-03-08 12:22:59 +00:00
Anynomouss 7b1144e4ec Fixed passing config to create_config function, some more test needed before pulling to main 2025-03-01 13:28:41 +01:00
Anynomouss 4fb0b7b387 In the middle of debugging hell, default overwrite any updates to the config made earlier, its never written to a file when running init 2025-01-30 16:25:41 +01:00
YeastplumeandGitHub 3b0cc2401a Versioning updates for alpha release (#727) 2024-11-01 12:40:48 +00:00
YeastplumeandGitHub 6566fc184e Add mwixnet code to master (#726)
* add all comsig code, update to master branch

* refactor code into libwallet, remove some redundancy and update type exports

* added api calls and unit test for comsig request creation

* Addition of JSON-RPC mwixnet function call

* attempt to debug invalid params

* additions to support json doctesting for comsig creation

* tweaks to testing and documentation updates

* dependencies for tests
2024-11-01 10:45:09 +00: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
Yeastplume 0b24640c89 update from 1_80 branch 2024-08-27 11:13:10 +00:00
Yeastplume d022f26adc updates for rust 1.80 2024-08-26 11:38:56 +00: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 c06c91d41a Update grin to latest master, change versioning label to include contracts (#712) 2024-05-20 09:56:05 +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
Yeastplume 57bf8be0cb merge from 5.3.0 master release 2024-04-30 11:11:25 +01:00
YeastplumeandGitHub 7741812599 Update versioning, dependencies for 5.3.0 release (#708) 2024-04-24 10:20:16 +01: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
Yeastplume 02af39143e update cargo lock, use latest grin packages 2024-02-08 12:48:21 +00:00
YeastplumeandGitHub 165632b1dc 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
2023-10-03 14:45:59 +01:00
Yeastplume 3da7695742 fix Cargo.lock 2023-08-08 11:37:36 +01:00
e3148d0305 [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>
2023-08-08 11:35:14 +01:00
Yeastplume 1c6442cc36 commit cargo.lock 2023-08-08 11:22:15 +01:00
Yeastplume e674c4a2f0 Merge branch 'master' into contracts 2023-08-08 11:16:32 +01: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
Yeastplume ddd3e0102d Merge branch 'master' into contracts 2023-08-01 10:57:14 +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 063e91d5e5 [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
2023-04-18 09:57:38 +01:00
YeastplumeandGitHub 477d903df4 Manual update and verification of #673 (#674) 2023-03-13 13:49:13 +00:00
Yeastplume 13b1fc8e01 addition of tx statuses to sort fields, fixes to total amount queries, inclusion of bigint, addition of unit tests to exercise filtering 2022-11-28 15:10:29 +00: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
95bb4c477e Show slatepack QR codes (#655)
* Show slatepack QR codes

* Make slatepack QR codes optional

Co-authored-by: cliik <cliik@example.com>
2022-07-12 10:32:26 +01: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
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 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