Skip to main content

Python SDK for Terra

Project description

 

Jigu (지구)

The Python SDK for Terra.

Installation

Jigu requires Python 3.7+. Install the latest version of Jigu with pip on PyPI:

$ pip install -U jigu

Pretty Printing

Many objects in Jigu are pretty-printable by their ._pp property.

        
Python 3.7.6 (default, Dec 30 2019, 19:38:26) >>> from jigu import Terra >>> terra = Terra("columbus-3", "https://lcd.terra.dev/") >>> terra.market.params()._pp ╒═════════════════════════╤═════════════════╕ │ pool_recovery_period │ 14400 │ ├─────────────────────────┼─────────────────┤ │ base_pool │ 250000000000 │ ├─────────────────────────┼─────────────────┤ │ min_spread │ 0.02 │ ├─────────────────────────┼─────────────────┤ │ tobin_tax │ 0.0025 │ ├─────────────────────────┼─────────────────┤ │ illiquid_tobin_tax_list │ ╒══════╤══════╕ │ │ │ │ umnt │ 0.02 │ │ │ │ ╘══════╧══════╛ │ ╘═════════════════════════╧═════════════════╛

works by default in Jupyter ...

jupyter

My First Transaction

Connect to Soju testnet

Once you've installed Jigu, fire up an interactive Python shell and connect to the Soju testnet using the official Soju node provided by Terraform Labs.

from jigu import Terra

soju = Terra("soju-0013", "https://soju-lcd.terra.dev")
assert soju.is_connected()

Create an account

Before we can make any transactions, we have to have an account. Enter in the above to create an account and print its account address.

from jigu.key.mnemonic import MnemonicKey

wallet = soju.wallet(MnemonicKey.generate())
wallet.address
# terra17w4ppj92dwdf93jjtply08nav2ldzw3z2l3wzl

Top off with testnet funds

Great, now that we have an address, let's get some testnet funds. Head over to the Soju Faucet and top off some Luna.

After that's done, you should have 10,000 LUNA in your account. To confirm this, you can enter the following:

wallet.balance("uluna")
# Coin('uluna', 10000000000)

Create a transaction

Let's send 23 Testnet Luna to your friend at the following address:

terra1wg2mlrxdmnnkkykgqg4znky86nyrtc45q336yv

We'll need to create a transaction containing a MsgSend alongside a short memo (note) "Hello Jigu!" -- our version of Hello World.

from jigu.core import Coins, StdFee
from jigu.core.msg import MsgSend

send = MsgSend(
    from_address=wallet.address,
    to_address="terra1wg2mlrxdmnnkkykgqg4znky86nyrtc45q336yv",
    amount=Coins(uluna=23_000_000)
)

fee = StdFee.make(50000, uluna=1000) # include a small fee..

tx = wallet.create_and_sign_tx(send, memo="Hello Jigu!", fee=fee)
res = wallet.broadcast(tx)

See it on the blockchain

It should take around 6 seconds to finalize. If everything went well, you should get a result object with the height and TX hash after about 6 seconds.

print(f"TX Hash: {res.txhash}")
# TX Hash: 82D5440A4C4CAB5B74EE3C98CE7F755372CD92E945425A572654179A4A0EE678

Copy the TX hash and enter it on Finder, selecting the chain soju-0013.

Learn more

Check out the official documentation at https://jigu.terra.money.

License

This software is licensed under the MIT license. See LICENSE for full disclosure.

© 2020 Terraform Labs, PTE.


 

Empowering the innovation of money.

Version Changelog

0.1.4 (2020-04-11)

  • Fixed SlashingAPI.signing_info_by_address default argument function due to missing None-check.

0.1.3 (2020-04-11)

  • Remove debug print statement in GovernanceAPI.proposals()

0.1.2 (2020-03-20)

  • Fix Dec pretty-printing issue on Jupyter
  • Add MsgInfosQuery.__contains__ support for Message classes

0.1.1 (2020-03-09)

  • Option to change coin type other than LUNA for MnemonicKey
  • Add ParamChanges to facilitate construction of ParameterChangeProposals.

0.1.0 (2020-03-03)

  • Hello Jigu!
  • Let there be light

0.0.1 - 0.0.18 (2020-01-23)

  • Interface ideation
  • Primordial world

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

jigu-0.1.4.tar.gz (426.1 kB view details)

Uploaded Source

Built Distribution

jigu-0.1.4-py3-none-any.whl (81.5 kB view details)

Uploaded Python 3

File details

Details for the file jigu-0.1.4.tar.gz.

File metadata

  • Download URL: jigu-0.1.4.tar.gz
  • Upload date:
  • Size: 426.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5

File hashes

Hashes for jigu-0.1.4.tar.gz
Algorithm Hash digest
SHA256 92036333617508bcb6a2afef19999ce297f03ed71ab314bd239101a9e7b19228
MD5 d287af791c3491331c33d2000ca506b2
BLAKE2b-256 6941b4d6ecdb504aafaf078115b969d4e2714792fc4b14a3b7e7a7537493c9de

See more details on using hashes here.

File details

Details for the file jigu-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: jigu-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 81.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5

File hashes

Hashes for jigu-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f162db762f64fa7a66e39634bc558b45937b1113972c8dc2b49bb9fbfa362c3b
MD5 0aa614f7a6d0e570e699b8e54a2292e1
BLAKE2b-256 db85d5f7b9433a3ce22703c142f6e980f079b5b79e4bdf55c4ac1217a15f3ee9

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