Skip to main content

Numbers PyOTA Wrapper

Project description

NIOTA

Make IOTA to be an integrity chain.

Niota registers Asset history records to the integrity chain.

Installation

The Python binding of iota.rs. You can download the latest version from the official nightly.link service.

Two ways to install niota:

  1. Insatll by using PyPI (stable versoin)

    $ python3 -m pip install niota
    
  2. Install manually (latest version)

    $ python3 setup.py bdist_wheel
    $ python3 -m pip install dist/niota-<version>-py3-none-any.whl
    

Unit Testing

$ pytest -m unit

Integration Testing

$ pytest -m integration

Known issue: the legacy Chrysalis client which uses the official IOTA Client sometimes raises the error:

niota/chrysalis.py:18: PanicException
---------------------------------------------------------------- Captured stderr call -----------------------------------------------------------------
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: ReqwestError(reqwest::Error { kind: Request, url: Url { scheme: "https", username: "", password: None, host: Some(Domain("chrysalis-nodes.iota.org")), port: None, path: "/api/v1/info", query: None, fragment: None }, source: TimedOut })', src/client/mod.rs:146:80
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Rerun the test again and it should work.

Usage

Iota Client

The IotaClient class is a client to interact with IOTA REST API.

Below is a minimal example for connecting to an IOTA hornet node with JWT authentication enabled, and create a message.

from niota import IotaClient

iota = IotaClient(base_url='https://example.iota.hornet.node', jwt_token='enter JWT token here')
create_message_resp = iota.create_message('example-index', 'example-data')
message_id = create_message_resp.data.messageId

Niota client

The Niota class can be used as a client to interact with IOTA Tangle messages with Numbers Protocol integrity record format.

example_integrity_info = {
    'raw_cid': 'bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku',
    'ida_cid': 'bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku',
    'ida_mid': 'c7dfa6e5-346d-4b4d-a663-a421e7f9171f',
    'ida_sha256sum': 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
    'metadata_cid': 'bafkreidgkmzpzvot7a5r2iy44tmcojuvoyjgbwi5udldfisbvn4lnfrmoq',
    'service_message': 'Create test data',
}

niota = Niota(
    base_url='https://example.iota.hornet.node',
    jwt_token='enter JWT token here'
    private_key=private_key,
    public_key=public_key,
)
message_id, index = niota.create_message(**message_data_fixture)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

niota-0.7.0.tar.gz (9.8 kB view hashes)

Uploaded Source

Built Distribution

niota-0.7.0-py3-none-any.whl (11.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page