https://github.com/yungwine/pytvm
TON Blockchain TVM and Transactions emulator
https://github.com/yungwine/pytvm
emulator ton tvm
Last synced: about 1 month ago
JSON representation
TON Blockchain TVM and Transactions emulator
- Host: GitHub
- URL: https://github.com/yungwine/pytvm
- Owner: yungwine
- Created: 2024-02-27T12:54:04.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-20T14:54:22.000Z (4 months ago)
- Last Synced: 2025-04-26T00:38:14.956Z (about 1 month ago)
- Topics: emulator, ton, tvm
- Language: Python
- Homepage:
- Size: 69.3 KB
- Stars: 22
- Watchers: 2
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pytvm
[](https://badge.fury.io/py/pytvm)
[](https://pypi.org/project/pytvm/)
[](https://pepy.tech/project/pytvm)
[](https://pepy.tech/project/pytvm)
[](https://ton.org)> :warning: **WARNING: The pytvm library is currently in active development. Features and functionality may change frequently. Please keep this in mind when using this library.**
**pytvm** - is a Python bindings to C++ TON Virtual Machine (TVM) emulator. **pytvm** allows you:
* Run Get-Methods locally (for trustless and fast data retrieval)
* Emulate messages (`Internal` and `External`)
* Emulate transactions
* Emulate transactions traces## Usage
Find examples in the [examples](examples/) folder.
## Installation
### From PyPi
```commandline
pip install pytvm
```### From source
Currently, **pytvm** compatible with Python3.9 - Python3.11 on platforms:
* Linux (x86_64)
* Windows (x86_64)
* MacOS (x86_64, arm64)If your system is not compatible with the pre-built wheels, you can install **pytvm** from source:
1) Compile `emulator` target TON Blockchain [repo](https://github.com/ton-blockchain/ton) or download `libemulator` binaries from
[latest release](https://github.com/ton-blockchain/ton/releases/latest).
2) Install **pytvm** from source:```commandline
pip install pytvm
```3) Create engine providing path to `libemulator` binaries to `EmulatorEngineC`:
```python
from pytvm.engine import EmulatorEngineC
from pytvm.transaction_emulator import TransactionEmulator
engine = EmulatorEngineC('path/to/libemulator.so')
emulator = TransactionEmulator(engine=engine)
```## Donation
TON wallet: `EQBvW8Z5huBkMJYdnfAEM5JqTNkuWX3diqYENkWsIL0XggGG`