Skip to main content

Python driver for Planetmint

Project description

Join the chat at https://gitter.im/planetmint/planetmint-driver https://badge.fury.io/py/planetmint-driver.svg https://app.travis-ci.com/planetmint/planetmint-driver.svg?branch=main https://img.shields.io/codecov/c/github/planetmint/planetmint-driver/master.svg

Planetmint Python Driver

Features

  • Support for preparing, fulfilling, and sending transactions to a Planetmint node.

  • Retrieval of transactions by id.

Install

The instructions below were tested on Ubuntu 16.04 LTS. They should also work on other Linux distributions and on macOS. The driver might work on Windows as well, but we do not guarantee it. We recommend to set up (e.g. via Docker on Windows) an Ubuntu VM there.

We recommend you use a virtual environment to install and update to the latest stable version using pip (or pip3):

pip install -U planetmint-driver

That will install the latest stable Planetmint Python Driver. If you want to install an Alpha, Beta or RC version of the Python Driver, use something like:

pip install -U planetmint_driver==0.11.1

The above command will install version 0.11.1. You can find a list of all versions in the release history page on PyPI.

More information on how to install the driver can be found in the Quickstart

Planetmint Documentation

Usage

Example: Create a divisible asset for Alice who issues 10 token to Bob so that he can use her Game Boy. Afterwards Bob spends 3 of these tokens.

If you want to send a transaction you need to Determine the Planetmint Root URL.

# import Planetmint and create an object
from planetmint_driver import Planetmint
bdb_root_url = 'https://example.com:9984'
bdb = Planetmint(bdb_root_url)

# generate a keypair
from planetmint_driver.crypto import generate_keypair
alice, bob = generate_keypair(), generate_keypair()

# create a digital asset for Alice
game_boy_token = {
    'data': {
        'token_for': {
            'game_boy': {
                'serial_number': 'LR35902'
            }
        },
        'description': 'Time share token. Each token equals one hour of usage.',
    },
}

# prepare the transaction with the digital asset and issue 10 tokens for Bob
prepared_token_tx = bdb.transactions.prepare(
    operation='CREATE',
    signers=alice.public_key,
    recipients=[([bob.public_key], 10)],
    asset=game_boy_token)

# fulfill and send the transaction
fulfilled_token_tx = bdb.transactions.fulfill(
    prepared_token_tx,
    private_keys=alice.private_key)
bdb.transactions.send_commit(fulfilled_token_tx)

# Use the tokens
# create the output and inout for the transaction
transfer_asset = {'id': fulfilled_token_tx['id']}
output_index = 0
output = fulfilled_token_tx['outputs'][output_index]
transfer_input = {'fulfillment': output['condition']['details'],
                  'fulfills': {'output_index': output_index,
                               'transaction_id': transfer_asset['id']},
                  'owners_before': output['public_keys']}

# prepare the transaction and use 3 tokens
prepared_transfer_tx = bdb.transactions.prepare(
    operation='TRANSFER',
    asset=transfer_asset,
    inputs=transfer_input,
    recipients=[([alice.public_key], 3), ([bob.public_key], 7)])

# fulfill and send the transaction
fulfilled_transfer_tx = bdb.transactions.fulfill(
    prepared_transfer_tx,
    private_keys=bob.private_key)
sent_transfer_tx = bdb.transactions.send_commit(fulfilled_transfer_tx)

Compatibility Matrix

Planetmint Server

Planetmint Driver

>= 2.0.0b7

0.6.2

>= 2.0.0b7

0.6.1

>= 2.0.0b7

0.6.0

>= 2.0.0b5

0.5.3

>= 2.0.0b5

0.5.2

>= 2.0.0b5

0.5.1

>= 2.0.0b1

0.5.0

>= 2.0.0a3

0.5.0a4

>= 2.0.0a2

0.5.0a2

>= 2.0.0a1

0.5.0a1

>= 1.0.0

0.4.x

== 1.0.0rc1

0.3.x

>= 0.9.1

0.2.x

>= 0.8.2

>= 0.1.3

Although we do our best to keep the master branches in sync, there may be occasional delays.

License

Credits

This package was initially created using Cookiecutter and the audreyr/cookiecutter-pypackage project template. Many Planetmint developers have contributed since then.

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

planetmint_driver-0.18.4.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

planetmint_driver-0.18.4-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file planetmint_driver-0.18.4.tar.gz.

File metadata

  • Download URL: planetmint_driver-0.18.4.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.9.17 Linux/5.15.0-1041-azure

File hashes

Hashes for planetmint_driver-0.18.4.tar.gz
Algorithm Hash digest
SHA256 5e34cbb68dc5c1bd831fe02ee24d1fcfac172bafd01f88cb3b33ee1c2ed0f1d9
MD5 a028a726ef2ba8ba64b7edee68a313cb
BLAKE2b-256 7c5be2168db341303cf04f0f12a588964c5a7a9ece0708aa3c929b785dbd9b34

See more details on using hashes here.

File details

Details for the file planetmint_driver-0.18.4-py3-none-any.whl.

File metadata

  • Download URL: planetmint_driver-0.18.4-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.9.17 Linux/5.15.0-1041-azure

File hashes

Hashes for planetmint_driver-0.18.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3e88284028513b3a92aac49e612e742f6c94d67a66ba6dd4912bd1db442d53f3
MD5 c912fd1e39a5733dceaefde81730219d
BLAKE2b-256 9d25795763c45f615de5a2eeaf189c766fdf561c7c8136f01ebd0d2951ff8d1b

See more details on using hashes here.

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