Skip to content
/ toncli Public
forked from disintar/toncli

TON Command Line Interface - easy smart contract manipulation

License

Notifications You must be signed in to change notification settings

XaBbl4/toncli

 
 

Repository files navigation

Superset

toncli

License PyPI version Codacy Badge TON

The Open Network cross-platform smart contract command line interface.

Easy to deploy and interact with TON smart contracts.

Installation

Toncli support Windows / macOS (m1 / intel) / Linux, installation guide can be found: INSTALLATION.md

Usage and docs

New to toncli?

Try: Quick start guide

All other documentation lists in docs/

Configuration

On first start ~/.config/toncli/ (on linux, other systems will have diffrent directory) will be created. If you want to change fift/func libs, network config or other stuff - check it out.

Contributor Guide

Interested in contributing? Feel free to create issues and pull requests.

There is two main tasks and many TODOs.

Main tasks are - not to use lite-client / fift / func. All can be done with python.

There are many TODOs in code - feel free to fix them and create PRs

Features and status

Feature Status
fift / func / lite-server usage
Easy bootstrap project samples wallet
Deploy-wallet for auto send TON to contracts and tests
Compile func to build/ from func/ with files.yaml
Auto send TON to init contract address
Deploy to mainnet / testnet / ownnet
Project interact after deploy: easily send messages, run getmethods, run fift parsers on getmethods output
Load from hard project structure (example: src/projects/wallet)
Run remote contracts locally (get cells from chain and run locally to get error / debug / etc.)
Get contract address by toncli addrs
Docs for contract creation for beginners
Project tests with runvmcode
Windows & Linux support
Gas auto calculation for store & deploy
Add more project samples with advanced usage
Project debug
Library support
Init Message support (with signature)

Commands

All commands could be fined in docs/advanced/commands.md

Configuration

Config folder will create on first deploy, all fift / func libs will copy to it, also deploy wallet contract will be created

Deploy process (how it's actually work)

  1. Check network (testnet, mainnet) configuration locally (in config user folder)
    1. If no config found - download from URL in config.ini
  2. Check deploy wallet locally (in config user folder)
    1. If it's first time - simple wallet will be created in config folder
    2. Message with wallet address and tips will be displayed (user need to send some TON coin on it)
    3. If there is no TON in deploy contract - script will exit and notify user to update deployer balance
  3. Will run tests on fift/data.fif / fift/message.fif (if exist) / fift/lib.fif (if exist) before creating deploy message
    1. This will check all files are correct
    2. Also, you can run custom logic - for example create keys in build/
  4. Will calculate address of contract and display it to user
  5. Will send money from deploy wallet
  6. Will deploy your contract
    1. External message will be created
    2. Boc will generated
    3. Will invoke sendfile in lite-client (TODO: use native python lib, not lite-client)

Development

git clone [email protected]:disintar/toncli.git
cd toncli && pip install -e .

Version migration

0.24

Please, use toncli update_libs

0.22

The easy migration method - remove fift-libs, func-libs from ~/.config/toncli or delete whole directory ~/.config/toncli

Help and questions

Feel free to ask questions and help in official telegram chats: Russian / English

About

TON Command Line Interface - easy smart contract manipulation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%