Native library for working with TON (The Open Network)
Project description
What is it?
This is a native library for working with The Open Network - without using libtonlibjson.so. But for nativeness, we have to pay with speed.
This library was written based on this documentation: https://github.com/xssnick/ton-deep-doc
Installation
pip3 install mytonlib
How to use
from mytonlib import AdnlTcpClientWithBalancer
global_config_url = "https://ton-blockchain.github.io/global.config.json"
adnl = AdnlTcpClientWithBalancer(global_config_url)
# Get masterchain info
adnl.get_masterchain_info()
How to use without balancer
from mytonlib import AdnlTcpClient
# Take public lite-server from https://ton-blockchain.github.io/global.config.json
host = "185.86.79.9"
port = 4701
pubkey = "G6cNAr6wXBBByWDzddEWP5xMFsAcp6y13fXA8Q7EJlM="
# Connect to the lite-server with adnl
adnl = AdnlTcpClient()
adnl.connect(host, port, pubkey)
# Test connection
adnl.ping()
# Get masterchain info
adnl.get_masterchain_info()
List of available functions
All available functions are taken from lite-client
connect # Connect to the lite-server with adnl
ping # Test connection
get_time # Get server time
get_masterchain_info # Get last block and state info from server
get_account_state # Loads the most recent state of specified account
run_smc_method # Runs GET method <method-id> of account <addr> with specified parameters
get_all_shards_info # Shows shard configuration from the most recent masterchain state or from masterchain state corresponding to <block-id-ext>
get_config_params # Shows specified or all configuration parameters from the latest masterchain state
get_block_header # Shows block header for <block-id-ext>
get_block # Downloads block
get_last_transactions # Shows or dumps specified transaction and several preceding ones
get_block_transactions # Lists block transactions, starting immediately after or before the specified one
get_one_transaction # Dumps one transaction of specified account
lookup_block # Looks up a block by workchain, shard and seqno/lt/time, and shows its header
TLB unpacking
A feature of this library is the automatic unpacking of data according to the TLB scheme:
from mytonlib import TlbSchemes
tlb_schemes = TlbSchemes()
tlb_schemes.load_schemes("/usr/src/ton/tl/generate/scheme/")
data = adnl.run_smc_method("kQBL2_3lMiyywU17g-or8N7v9hDmPCpttzBPE2isF2GTziky", "mult", [5, 4])
print(data) # or print(json.dumps(data, indent=4))
tlb_schemes.load_schemes_from_text("mycell$_ value:uint64 = MyCell;")
data = tlb_schemes.deserialize(data, expected="MyCell")
print(data.value)
More examples
https://github.com/igroman787/mytonlib/blob/master/mytonlib/tests.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mytonlib-0.7.3.tar.gz
(58.7 kB
view details)
File details
Details for the file mytonlib-0.7.3.tar.gz.
File metadata
- Download URL: mytonlib-0.7.3.tar.gz
- Upload date:
- Size: 58.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
266ff8799bb0d52b26415e26b0a6d279d0ce9c7b2ae06a963357937ba96a3143
|
|
| MD5 |
ff4990ebe6e4285d18ca3ef62b079de2
|
|
| BLAKE2b-256 |
64bf35a3cdfe301549a3aaca2475779c2377d47de93b2a948119bcfa26b62e08
|