Grin Wallet implementation.
Find a file
Yeastplume 9450d2a3b8
Compact slate merge (#404)
* Add support for sending compact slates (#366)

* WIP add support for sending compact slates

* add repopulate_tx function to internal API

* first pass at compacted slate working

* move slate compaction to separate function

* test fixes

* support compact slate inits in invoice workflow

* add compress flags to send and invoice

* attempting to remove is_compact and assume all V4 slates begin as compact

* attempting to calculate offsets when full tx data isn't available

* update calc_commit to use participant blind data

* update doctests for compact slates

* start to remove unneeded fields from serialization

* make num_participants optional

* remove other_version from slate

* use grin master branch

* remove message field

* lock height assumed to be 0 if it doesn't exist

* don't serialise receiver signature when null

* don't serialize payment_info if not needed

* remove participant id from participant info

* add note on id field

* fix finalize and receive doctests

* finalize_tx tests, init_send_tx tests

* doctests for process_invoice_tx, retrieve_tx, tx_lock_outputs

* finished test changes

* update from grin master

* rebuild PR from diff (#380)

* recreate PR from diff (#381)

* serialize tx struct into top level coms object (#382)

* remove height (#383)

* Add State Slate (#384)

* add state field to slate and SlateV4

* set slate state at each transaction stage, add check to tests

* serialize slate status properly

* V4 Slate field tweaks (#386)

* various tweaks to V4 slate

* field renaming

* serialize slate v4 ID as base64 (#387)

* remove amount and fee where not needed (#388)

* Final Changes for compact Slate (#389)

* add tests for all types of file output, remove message args

* default range proof serialization

* shorten output features serialization

* rename payment proof fields in slate v4

* v4 payment proof serialization

* Binary Slates (#385)

* start test implementation

* add experimental binary serialization to slate

* serialize id

* serialize fields that can be skipped as a separate struct

* factor out sigs serialization

* clean up sigs and coms serialization

* completed v4 bin serialization

* add manual de/ser traits for V4 bin slate

* add simple byte array serializer

* complete wiring in of bin slate serialization

* clarify comment

* clarify comment

* update version

* test output dir name fix

* update slate v4 change description

* add binary output to command line

* Remove unneeded signature data during S2 and I2 stages (#390)

* remove unneeded return signature data during S2

* remove unneeded sig data from I2

* Doctest Fixes for compact slate branch (#392)

* begin to fix doctests

* more doctest fixes

* fix receive_tx

* update get_stored_tx to accept an UUID instead of a tx object, and operate on a raw Transaction object (#394)

* Fixes to async transaction posting (#395)

* unstash post_tx changes

* add offset during S3 and I3

* Revert slate id serialization to hex-string uuid (#396)

* update from master (#397)

* v3.x.x - v4.0.0 wallet compatibility fixes (#398)

* changes to support http sending to v3 wallets

* sending via http/tor TO 3.0.0 wallet works

* receiving FROM 3.0.0 wallets works over http/tor

* output converted V3 slate when needed

* paying invoices from 3.0.0 wallets working

* handle all participant info in slate states

* sending and receiving standard file transactions between v3 and 4 wallets confirmed working

* all file-based workflows working

* fixes resulting from tests

* remove reminder warnings

* remove lock_height, add kernel_features + arguments (#399)

* grin-wallet master now building against grin master (#402) (#403)

Co-authored-by: Antioch Peverell <apeverell@protonmail.com>

* Enhanced offset creation (#407)

* initial tests reworking offset creation

* invoice flow fixing + tests

* further test fixes

* change offset name in v4 slate, base64 serialize

* logic optimisation

* changes based on review feedback

Co-authored-by: Antioch Peverell <apeverell@protonmail.com>
2020-05-19 11:19:03 +01:00
.cargo vc static runtime cargo flags 2019-02-26 09:42:37 +00:00
.ci Use latest AP hosted agents (#371) 2020-03-26 09:39:33 -04:00
.hooks Version check fix + Rustfmt (#293) (#294) 2020-01-14 15:50:49 +00:00
api Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
config version bump for next potential release 2020-03-02 15:11:18 +00:00
controller Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
doc Add sample script to init and call the secure owner API from node.js (#335) 2020-02-18 12:28:23 +00:00
impls Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
integration Update Copyright to 2019 (#232) 2019-10-03 15:16:09 +01:00
libwallet Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
src Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
tests Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
util Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
.gitignore Test refactoring and additions to support API Testing (#205) 2019-08-13 09:36:21 +01:00
azure-pipelines.yml Use latest AP hosted agents (#371) 2020-03-26 09:39:33 -04:00
Cargo.lock Compact slate merge (#404) 2020-05-19 11:19:03 +01:00
Cargo.toml version bump for next potential release 2020-03-02 15:11:18 +00:00
LICENSE docs: add LICENSE file (#29) 2019-03-26 19:36:37 -07:00
README.md Check stored transaction for payment proof when checking proof (#266) 2019-12-03 08:45:49 +00:00
rustfmt.toml Update rustfmt edition 2020-02-24 16:21:33 +01:00

Build Status 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