mirror of
https://github.com/jwinterm/grin-wallet.git
synced 2026-10-17 15:21:39 +02:00
55a0d43d576c9bf31a1c1f0fa815c64c1526e699
revoke builds the self-spend via new(), which used a random slate id, so a crash between new() and sign() left an orphaned self-spend and a retry created another one. Derive the self-spend slate id deterministically from the revoked slate (blake2b, already a dependency) and let contract::new take an optional slate id; a retry then reuses the in-progress context via get_or_create instead of orphaning a fresh self-spend. The other new() caller passes None (random id). Adds a unit test that the derived id is deterministic and distinct.
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.
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
License
Apache License v2.0
Languages
Rust
99.9%
Shell
0.1%