- Install by running
pip install nanopy.- Install
mnemonicto generate mnemonic wallets. - Install
requestsorwebsocket-clientto use http or websocket RPC, respectively.
- Install
- Point to a custom compiler (default is
gcc) by prepending the installation command withCC=path/to/custom/c/compiler. - For GPU, appropriate OpenCL ICD and headers are required.
sudo apt install ocl-icd-opencl-dev amd/intel/nvidia-opencl-icd- Enable GPU usage by prepending the installation command with
USE_GPU=1. - GPU code is a bit of a hit and miss. It is not properly tested and may or may not work
- Enable GPU usage by prepending the installation command with
# create an account (defaults to NANO network) and set secret key
seed = "0000000...."
acc = npy.Account()
acc.sk = npy.deterministic_key(seed)
# if it is not a new account, set the current state of the account (frontier, raw bal, rep)
acc.state = ("1234....", 1200000000000000, npy.Account(addr="nano_repaddress..."))
# create a receive block and optionally, change rep along with it
_hash = "5678...."
raw_amt = acc.network.to_raw("10")
rep = npy.Account(addr="nano_newrepaddress...")
rb = acc.receive(_hash, raw_amt, rep)
# create a send block
to = npy.Account(addr="nano_sendaddress...")
raw_amt = acc.network.to_raw("1")
sb = acc.send(to, raw_amt)
# broadcast
rpc.process(rb.json)
rpc.process(sb.json)Although not part of the package, the light wallet included in the repository can be a reference to understand how the library works.
- Configuration is in
~/.config/nanopy.ini -n,--network. Choose the network to interact with - nano, banano, or beta. The default network is nano.- Checks state of accounts in
~/.config/nanopy.iniby default. - Open a wallet,
nanopy-wallet open KEY, and use seeds from system keyring.KEYis an entry previously generated by this wallet. Seenanopy-wallet open -hfor options.
Setup dev environment.
sudo apt install g++ python3-dev clang-format
python3 -m pip install -Ue .[dev]Format the code using black (for Python) or clang-format (for C).
clang-format -i nanopy/*.c
black docs nanopy tests nanopy-wallet setup.pySetup a pre-commit hook to run tests.
pytest && mypy && pylint nanopy && sphinx-build -W docs /tmp/htmlCreate distribution
python3 setup.py sdist
twine upload dist/*