8 unstable releases (3 breaking)

0.4.0 Mar 17, 2024
0.3.1 Dec 29, 2023
0.2.1 Dec 21, 2023
0.1.2 Dec 17, 2023

#2 in #nano-currency

MIT license

170KB
4K SLoC

nanopyrs

Mid- and low-level access to functions and data types related to the Nano cryptocurrency.

This is, partially, a Rust rewrite of the Python nanopy library. nanopyrs was initially part of another project, so some behaviors may seem odd.

There is not very much documentation at this time.

Use at your own risk. I cannot guarantee that this library is perfect.

Feature Flags

RPC

RPC functionality is enabled by the rpc feature, which is disabled by default.

Currently, only the following commands are officially supported: account_balance, account_history, account_info, account_representative, accounts_balances, accounts_frontiers, accounts_receivable, accounts_representatives, block_info, blocks_info, process, work_generate

. . . but any other command can be implemented manually with the help of the command() method of nanopyrs::rpc::Rpc, and various functions in nanopyrs::rpc::util.

Camo Nano

Camo Nano functionality is enabled by the camo feature, which is disabled by default.

Note that Camo Nano is a custom, experimental, and non-standard feature of this library, and is generally not supported by wallets or the wider Nano ecosystem.

See the CAMO-PROTOCOL.md file for details on the Camo Nano protocol. When using this library to implement a Camo Nano wallet, make sure to abide by the protocol standards, particularly the minimum-send requirements.

While not likely to significantly change, version one of the Camo Nano protocol should not be considered finalized until version 1.0.0.

Serde

Serde support is enabled by the serde feature, which is disabled by default.

Shouldn't this be called 'nanors' since the 'py' in 'nanopy' means Python?

Maybe, but the name "nanors" was taken :(

Licensing

This crate is open source and licensed under the MIT license. See the LICENSE file for more details.

Credits

This library is heavily inspired by, and partially derived from, the nanopy library, written by npy0.

The Base32 code was copied from the feeless library, written by gak

Dependencies

~3–15MB
~211K SLoC