find_index_matching_context accepted an entry matching either our excess or our nonce, while fill_round_2 requires both, so the two could disagree on which entry is ours and signing could return success without adding a signature. Both also indexed participant_data by position up to num_participants, which a counterparty can send short. Match on both keys and iterate the entries the slate carries. Require the participant count to be exact before signing a contract, and check for two participants in the contract tx log before pairing them with 'xor 1'.
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