jwinterm c7acc8ef4a Contracts: make revoke idempotent and resumable
revoke cancels the original tx (unlocking its inputs) before the replacement
self-spend is built, and the steps commit separately, so a crash in between left
the inputs Unspent with no self-spend while a retry silently did nothing.

- Find the contributed inputs by tx id whether they are still Locked (original tx
  active) or already Unspent (a prior revoke cancelled them but the self-spend did
  not finish), instead of Locked-only.
- Cancel only when the tx is still in a cancellable state, so a resumed or repeated
  revoke skips the cancel and re-spends the Unspent inputs.
- Once the self-spend completes the inputs reference its tx id, so a later revoke
  is a no-op.

Adds a regression test that interrupts a revoke after the cancel and confirms the
next revoke resumes and produces the self-spend.

Addresses PR #754 review (revoke.rs).
2026-06-10 16:14:35 -04:00
2024-08-26 11:38:56 +00:00
2025-09-18 14:56:43 +02:00
2025-09-18 14:56:43 +02:00
2026-06-09 13:54:51 +02:00
2026-06-09 13:54:51 +02:00
2026-06-09 13:54:51 +02:00
2025-09-18 14:56:43 +02:00
2026-06-09 13:54:51 +02:00
2025-09-18 14:56:43 +02:00
2025-09-18 14:56:43 +02:00

Continuous Integration Coverage Status Chat Support Release Version License

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

S
Description
Mirror of github.com/jwinterm/grin-wallet
Readme
8.8 MiB
Languages
Rust 99.9%
Shell 0.1%