Skip to main content

ergo-python-appkit

This is a wrapper around Ergo's appkit, which is based on scala/java. Jpype is used to map to the JVM and the jar running within. That means that Java needs to be installed for this package to work.

Installation

Installation can be done through pip. Currently the package is not available yet on PyPi so you need to refer directly to the github.

pip install git+https://github.com/ergo-pad/ergo-python-appkit.git

Usage

The ergo appkit can be accessed by importing java classes AFTER importing the appkit, like this:

import ergo_python_appkit.appkit
from org.ergoplatform.appkit import Address

myErgoAddress = Address.create("9gF2wmTWcEX2EZu5QY3dJwURep1HWsXjUZdVavVWESun4Sp8BYj")
#will print the ergotree belonging to the address
print(myErgoAddress.toErgoContract().getErgoTree())

There are also convenience methods created to allow for easier use from Python for appkit functionality that is used often.

An example of a simple intra wallet transaction send from the nodes wallet:

from ergo_python_appkit.appkit import ErgoAppKit
from org.ergoplatform.appkit import Address

appKit = ErgoAppKit("http://myergonode:9053","mainnet","http://api.ergoplatform.org","nodeapikey")
myAddress = "9gF2wmTWcEX2EZu5QY3dJwURep1HWsXjUZdVavVWESun4Sp8BYj"

#collect boxes to spend 1 erg
inputs = appKit.boxesToSpend(address=myAddress,nergToSpend=int(1e9))

#Define output box
outputBox = appKit.buildOutBox(
                value=int(1e9),
                tokens=None,
                registers=None,
                contract=appKit.contractFromAddress(myAddress)
            )

#Build the unsigned transaction
unsignedTx = appKit.buildUnsignedTransaction(
                inputs=inputs,
                outputs=[outputBox],
                fee=int(1e6),
                sendChangeTo=Address.create(myAddress).getErgoAddress()
            )

#Sign the transaction with the node
signedTx = appKit.signTransactionWithNode(unsignedTx)

#Send the transaction
appKit.sendTransaction(signedTx)

Metadata

Release files for ergo-python-appkit 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ergo-python-appkit 0.1.0
File Size Uploaded
ergo_python_appkit-0.1.0.tar.gz 50.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ergo-python-appkit 0.1.0
File Interpreter ABI Platform
ergo_python_appkit-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 101.9 MB

Release files / ergo_python_appkit-0.1.0.tar.gz

Download URL ergo_python_appkit-0.1.0.tar.gz
Size 50.9 MB
Tags Source
SHA-256 checksum
How to use checksums
6b2338611cc3c71d7e90777770e17482b4efd3ccd9d4575a6914c32eab09de2e
BLAKE2b-256 checksum
How to use checksums
e6479dcc388eb89a7af41bb71c2f815c1c4ea497ec5481c3ca5b1af27f6c0cd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / ergo_python_appkit-0.1.0-py3-none-any.whl

Download URL ergo_python_appkit-0.1.0-py3-none-any.whl
Size 51.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
9a9243894b7e4b9fcdea17c3d7eb17ef53ff23fc80cb37e4b96c4a969b4a5088
BLAKE2b-256 checksum
How to use checksums
e5b42bc4227754967b64487421ef64c1f5b69ac4d5c2f0b51f62b2a0d8082a2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

0.3.2

2 release files

0.3.1

2 release files

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page