- Context::get_net_change unwrapped setup_args, which is None for the standard flows that share Context, so a non-contract context reaching a contract path terminated the wallet. It returns a Result now. - A recomputed fee that no longer matches the stored one was an assert_eq, which aborts; report both values instead. - Selection used abs(), which panics on i64::MIN, and unchecked addition for the amount equation. - build_output_amount_list subtracted the custom output sum from the input sum as u64, before the checked conversion that was meant to guard it. A receiver without a payjoin contributes no inputs while --make-outputs is still allowed, so that underflows. The balance is evaluated in checked i64 now, with a test for the no-payjoin case.
Grin Wallet
This is the reference implementation of Grin's wallet. It consists of 2 major pieces:
-
The Grin Wallet APIs, which are intended for use by Grin community wallet developers. The wallet APIs can be directly linked into other projects or invoked via a JSON-RPC interface.
-
A reference command-line wallet, which provides a baseline wallet for Grin and demonstrates how the wallet APIs should be called.
Contributing
To get involved, read our contributing docs.
Find us:
- Telegram: Grin Development
- Chat: Keybase, more instructions on how to join here.
Usage
To use the command-line wallet, we recommend using the latest release from the Releases page. There are distributions for Linux, MacOS and Windows.
Full documentation outlining how to use the command line wallet can be found on Grin's Wiki
To build locally install Rust and execute in the project directory:
git submodule update --init --recursive
cargo build --release
./target/release/grin-wallet
License
Apache License v2.0