A legacy send proof uses no V5 field: V4 carries the sender and receiver addresses and the signature, and only the timestamp and memo need V5. Sending those as V5 stopped V4-only wallets from reading the slate. Add SlateVersion::lowest_for and use it from create_slatepack and from the contract owner API methods, which returned V4 unconditionally and so dropped the timestamp and memo that an early proof's promise signature binds. contract_sign keeps the version the counterparty sent when the slate does not need more.
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