TON Command Line Interface - easy smart contract manipulation

Overview

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

Comments
  • Adding docker submodule

    Adding docker submodule

    Hey! I think this one might come in handy to temporary relief most of the pain that comes with binaries/toncli versions issues. At least till the day when pip install toncli will just work with all the new features. New tests are far better than the old ones s people using toncli, are going to need to switch to those ASAP. Otherwise legacy code is going to continue to grow and cause pain to everyone. Only way i see to quickly and reliably do it at this stage is moving towards containerized development. What i'm proposing with this PR is to make some toncli approved container for people to work from.

    I doesn't have to be my container, because it's not tested much yet at the moment, but it would be much easier to start if there was one.

    Also there is probably better way to let people know about the existence of the new tests. Not many people read docs/advanced till they feel completely lost.

    I think it would be much better if there was at least a separate paragraph in quickstart more insistingly leading towards how tests work. Or maybe even on the front README.md

    Has at least to do with issue:#36

    enhancement 
    opened by Trinketer22 14
  • FIFT parameters are read as TONCLI parameters

    FIFT parameters are read as TONCLI parameters

    .fif files can be configured via positional parameters + nominal parameters. Positional parameters work well. Nominal parameters of FIFT dont work in toncli. Looking at the output, toncli thinks they're part of toncli nominal parameters while I want them to be FIFT parameters. Example: fift run .\fift\transaction.fif .\build\contract address 0 0 0.01 -C "test" Transaction Gives usage: toncli [-h] [-v] {start,deploy,get,send,tointeger,run_transaction,f,fc,lc,run,build,fift,lite-client,sendboc,wallet,run_tests,update_libs,func} ... toncli: error: unrecognized arguments: -C

    opened by SpeedK 5
  • toncli run_tests ->

    toncli run_tests -> "Stack underflow. Last op-code consume more elements ..."

    Bug Type

    Functional

    Reproduction steps

    project.yaml

    contract:
      func:
        - code.func
      tests:
        - test.func
    

    code.func

    () recv_internal (slice in_msg_body) {
    }
    
    int sum(int a, int b) {
        return a + b;
    }
    

    test.func

    _ __test_sum() {
        var (_, stack) = invoke_method(sum, [1, 2]);
        [int data] = stack;
        throw_if(200, data != 3);
    }
    
    % toncli run_tests 
    INFO: 🌈 Start tests
    INFO: 🥌 Build successfully, check out ./build
    [ 3][t 0][2022-12-09 11:49:01.925083][vm.cpp:558]	steps: 28 gas: used=2443, max=1000000000, limit=1000000000, credit=0
    INFO: Test [__test_sum] status: [FAIL], code: [2], error description [Stack underflow. Last op-code consume more elements than there are on stacks. (most probably means a error in asm declarations)] Total gas used (including testing code): [2443]
    
    Final status: [SUCCESS] - 0 cases
    Final status: [FAILED] - 1 cases
    

    Actual result

    INFO: Test [__test_sum] status: [FAIL], code: [2], error description [Stack underflow. Last op-code consume more elements than there are on stacks. (most probably means a error in asm declarations)] Total gas used (including testing code): [2443]

    Expected result

    INFO: Test [__test_sum] status: [SUCCESS]

    Suggested Severity

    Low

    Device

    mac m1

    toncli --version
    INFO: v0.0.43
    
    % ./func -V
    FunC semantic version: v0.2.0
    Build information: [ Commit: 9640a2794a1cc88a9534991c0709f64f95c1c4e0, Date: 2022-08-11 13:06:52 +0300]
    
    ./fift -V
    Fift build information: [ Commit: 9640a2794a1cc88a9534991c0709f64f95c1c4e0, Date: 2022-08-11 13:06:52 +0300]
    

    Additional Context

    Attach build/contract_tests.fif contract_tests.fif.txt

    opened by kuk 4
  • When running tests with recent ton tools and tonclin of branch main: `contract_tests.fif ...    PROC:<{:procedure already defined`

    When running tests with recent ton tools and tonclin of branch main: `contract_tests.fif ... PROC:<{:procedure already defined`

    With previous versions of ton and toncli 0.0.38 I could run without issue tests like:

    https://gitlab.com/pasosdeJesus/pruebas_mdc_func

    With the current version of ton and toncli from branch main of repository, running that test produces:

    toncli run_tests                                                                                                                                         [2/253]
    INFO: 🌈 Start tests                                                                                                                                            
    INFO: 🥌 Build successfully, check out ./build
    [ 1][t 0][2022-09-09 19:51:58.855893][Fift.cpp:67]      top: abort
    level 1: swap { <continuation 0x43a3ebce500> } if **HERE** drop 
    level 2: [in @PROC:<{:] over @fail-ifdef **HERE** 2 { <continuation 0x43a540e4b00> } does null swap @doafter<{ 0 32 u, 
    level 3: <text interpreter continuation> 
    level 4: <continuation 0x43a540b32c0>
    level 5: <text interpreter continuation> 
    [ 1][t 0][2022-09-09 19:51:58.855985][fift-main.cpp:204]        Error interpreting file `/tmp/tmpezl103ve.fif`: contract_tests.fif:1508:        PROC:<{:procedur
    e already defined                       
    
    opened by vtamara 4
  • broken with latest 4.x.x bitstring

    broken with latest 4.x.x bitstring

    Bug Type

    Functional

    Reproduction steps

    • use pip install toncli to install it
    • run it using toncli command

    Actual result

    it crashes with

        from bitstring import BitString
    ImportError: cannot import name 'BitString' from 'bitstring' 
    

    Expected result

    it should not crash

    Suggested Severity

    Critical

    Device

    OS: Fedora

    pip list | grep bitstr
    bitstring          4.0.1
    

    Additional Context

    Fix is to downgrade bitstring pip module to 3.x.x version for example pip install bitstring==3.1.9 fixes the issue

    opened by cloudfwd-artur 2
  • NFT and Jetton example projects support

    NFT and Jetton example projects support

    NFT Collection and NFT item added to toncli. Quite a bit of tests and helpers related to nft messages and data standards. Close to none documentation. Enjoy!

    opened by Trinketer22 2
  • Run tests only if tests specified.

    Run tests only if tests specified.

    If you have 2 projects and only one has defined tests then TestRunner is going to atempt to run [project_name]_tests.fif even if non generated. Firt exception is going to be thrown. So i think the best solution is just to not enter test processing loop if there are no tests.

    PS:It's possible to evade exception if you specify --contracts manually but i feel like it's not really the way to do it.

    opened by Trinketer22 2
  • Error during deploy with toncli from master

    Error during deploy with toncli from master

    I've tried to use master branch toncli for new tests According to documentation it has to be used with https://github.com/SpyCheese/ton/tree/toncli-local binaries

    toncli start wallet
    cd wallet/
    toncli build
    toncli deploy
    

    But it produces error

    INFO: 🚀 You want to interact with your contracts ['contract'] in testnet - that's great!
    INFO: ✋ Do not panic - i'm creating wallet in /root/.config/toncli, so you can easily manage your contracts
    INFO: 🐒 I'll create folder /root/.config/toncli/wallet with project wallet and all needed files
    INFO: 👑 Folder successfully created - happy blockchain hacking
    INFO: 🐼 You now can do cd wallet and toncli deploy -n testnet
    INFO: 🤗 Run tests on ['/root/.config/toncli/wallet/fift/data.fif']
    Saved new private key to file build/contract.pk
    INFO: Depth test pass 🏁
    INFO: Type test pass 🏁
    INFO: 🥳 Start contract manipulation
    [ 1][t 0][2022-08-13 07:01:54.680287875][Fift.cpp:67]   top: <text interpreter continuation>
    level 1: <continuation 0x55b003be1350>
    level 2: <text interpreter continuation>
    [ 1][t 0][2022-08-13 07:01:54.680300085][fift-main.cpp:204]     Error interpreting file `/toncli/src/toncli/modules/fift/contract_manipulation.fif`: contract.fif:15:   PROCINLINE:<{:-?
    Traceback (most recent call last):
      File "/usr/local/bin/toncli", line 33, in <module>
        sys.exit(load_entry_point('toncli', 'console_scripts', 'toncli')())
      File "/toncli/src/toncli/main.py", line 60, in main
        CommandsExecuter(command, string_kwargs, parser)
      File "/toncli/src/toncli/modules/utils/commands/commands_executer.py", line 39, in __init__
        self.command_mapper[command](self)
      File "/toncli/src/toncli/modules/utils/commands/commands_executer.py", line 70, in deploy_command
        return DeployCommand(self.string_kwargs, self.parser)
      File "/toncli/src/toncli/modules/utils/commands/command_classes/deploy_command.py", line 12, in __init__
        deployer = ContractDeployer(network=args.net, update_config=args.update,
      File "/toncli/src/toncli/modules/deploy_contract.py", line 43, in __init__
        self.deploy_contract = DeployWalletContract(network, workchain)
      File "/toncli/src/toncli/modules/deploy_wallet_contract.py", line 53, in __init__
        data = self.build()
      File "/toncli/src/toncli/modules/abstract/deployer.py", line 107, in build
        data.append(contract_manipulation(os.path.abspath(contract.to_save_location),
      File "/toncli/src/toncli/modules/utils/fift/commands.py", line 101, in contract_manipulation
        output = subprocess.check_output(command, cwd=getcwd() if not cwd else cwd)
      File "/usr/lib/python3.10/subprocess.py", line 420, in check_output
        return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
      File "/usr/lib/python3.10/subprocess.py", line 524, in run
        raise CalledProcessError(retcode, process.args,
    subprocess.CalledProcessError: Command '['/usr/local/bin/fift', '-I', '/root/.config/toncli/fift-libs', '-s', '/toncli/src/toncli/modules/fift/contract_manipulation.fif', '/root/.config/toncli/wallet/build/contract.fif', '/tmp/tmpl_82u7g4.boc', '0', '/root/.config/toncli/wallet/build/boc/contract.boc', '/root/.config/toncli/wallet/build/contract_address']' returned non-zero exit status 2.
    

    how to reproduce with docker

    docker run --rm -it ubuntu:22.04 bash
    
    apt-get update && apt-get install -y build-essential cmake clang-11 openssl libssl-dev zlib1g-dev openssl wget git python3 python3-pip
    git clone --recurse-submodules --jobs 8 --depth 1 --branch toncli-local https://github.com/SpyCheese/ton.git /ton
    
    mkdir /build && cd /build
    
    cmake -DCMAKE_BUILD_TYPE=MinSizeRel /ton
    cmake --build . --config MinSizeRel --target func fift lite-client -- -j $(nproc)
    
    cp /build/lite-client/lite-client /build/crypto/fift /build/crypto/func /usr/local/bin/
    cd /
    
    git clone --depth 1 https://github.com/disintar/toncli.git
    cd toncli
    pip install -e .
    
    #specify /usr/local/bin/func /usr/local/bin/fift /usr/local/bin/lite-client
    toncli
    
    toncli update_libs
    
    cd /tmp/
    toncli start wallet
    
    cd wallet/
    toncli deploy
    
    opened by BorMor 2
  • Toncli deploys into the same address every time

    Toncli deploys into the same address every time

    Bug Type

    Functional

    Reproduction steps

    1. toncli deploy
    2. toncli deploy again

    Actual result

    The contract gets deployed to the same address over and over again, but all the times except the first TON CLI does nothing (because the address is already initialized)

    Expected result

    The contract deploys to a new address every time

    Suggested Severity

    High

    Device

    OS: Arch Linux x86_64 
    Host: MS-7D18 2.0 
    Kernel: 6.0.12-arch1-1
    CPU: 11th Gen Intel i5-11600 (12) @ 4.800GHz 
    GPU: Intel RocketLake-S GT1 [UHD Graphics 750] 
    Memory: 15823MiB
    

    Additional Context

    No response

    opened by avevad 1
  • Fixed incorrect idict_get_ref? & udict_get_ref? declarations

    Fixed incorrect idict_get_ref? & udict_get_ref? declarations

    Applying ton master branch fix: https://github.com/ton-blockchain/ton/blame/master/crypto/smartcont/stdlib.fc#L522 https://github.com/ton-blockchain/ton/commit/b640f068466b1244b69abd7acdbafd57fb147b7a#diff-bd02ff6fa1299e145b87bfc607ebca117825ff561217cd96382b8b7cdf7afdf6R522

    opened by stspbu 1
  • Fix too slow buffer

    Fix too slow buffer

    This is good one.

    If your fift creates large output - you will get error, but actually you WILL NOT see it. Because real error will be:

    Traceback (most recent call last):
      File "/Users/tvorogme/opt/anaconda3/bin/toncli", line 8, in <module>
        sys.exit(main())
      File "/Users/tvorogme/projects/toncli/src/toncli/main.py", line 67, in main
        CommandsExecuter(command, string_kwargs, parser)
      File "/Users/tvorogme/projects/toncli/src/toncli/modules/utils/commands/commands_executer.py", line 42, in __init__
        self.command_mapper[command](self)
      File "/Users/tvorogme/projects/toncli/src/toncli/modules/utils/commands/commands_executer.py", line 70, in get_command
        return GetCommand(self.string_kwargs, self.parser)
      File "/Users/tvorogme/projects/toncli/src/toncli/modules/utils/commands/command_classes/get_command.py", line 20, in __init__
        deployer.get(real_args[2:], args, fake_addreses=[[My()], [[None, args.address]]])
      File "/Users/tvorogme/projects/toncli/src/toncli/modules/abstract/deployer.py", line 413, in get
        print("\n".join(i))
    BlockingIOError: [Errno 35] write could not complete without blocking
    

    Seems that output buffer too slow for Fift + Python ;) I've founded this error in GET methods runs, but it can be in more places than that. Be careful. Will try to fix everywhere

    opened by tvorogme 1
  • WARNING: 🤖 Can't find executable for fift, please specify it

    WARNING: 🤖 Can't find executable for fift, please specify it

    I'm trying to install toncli on windows 10, I do everything as in the instructions https://github.com/disintar/toncli/blob/master/INSTALLATION.md at the last stage, when I open the ton-win64-binaries folder in powershell, I enter the toncli command, an error occurs: PS C:\Users\Admin\Desktop\ton-win64-binaries> toncli INFO: 🥰 First time run - i'll create config folder 4you and save some stuff there INFO: 🤖 Check all executables are installed... INFO: Adding path to executable func success! ERROR: Command '['C:\\Users\\Admin\\Desktop\\ton-win64-binaries\\fift.exe', '-V']' returned non-zero exit status 3221225501. WARNING: 🤖 Can't find executable for fift, please specify it, e.g.: /usr/bin/fift Path: How to solve?

    opened by CupoTa 0
  • bitstring library removed BitString class in the 4.x.x version

    bitstring library removed BitString class in the 4.x.x version

    Bug Type

    Functional

    Reproduction steps

    1. Install toncli
    2. Try to run it

    Actual result

    You will get "import error"

    Expected result

    Not to get an error ☺️

    Suggested Severity

    Low

    Device

    Desktop (please complete the following information):

    • OS: Linux Mint 21 x86_64

    Additional Context

    I see you specified in the requirements.txt 3.x.x version. Not sure how my OS or Python bin chose to use 4.x.x version or it was there before, not much of Python guy 😅, but I had to by hand replace 4.x.x with 3.x.x in the ~/.local/lib/... dir

    I set severity as Low, cause I'm not sure if others have the same problem and it's not because of my Python installation 🤔

    opened by liketurbo 4
  • Question: how to 'initialize' deploy-wallet on mainnet?

    Question: how to 'initialize' deploy-wallet on mainnet?

    Bug Type

    Other

    Reproduction steps

    What is the right way to 'initialize' deploy-wallet created with toncli? I've sent a few ton to it but it still uninitialized so I'm getting this on attempt to make any tx:

    Please, send more TON for deployment to ....

    How much exactly TON needs to be send to deploy-wallet (now it has 5) to finish initialization?

    Actual result

    toncli send -n mainnet -a 5 --address .....

    fails with 'Please, send more TON for deployment' message

    Expected result

    toncli send -n mainnet -a 5 --address .....

    should successfully send TONs

    Suggested Severity

    Medium

    Device

    Desktop (please complete the following information):

    • OS: Windows 11 [e.g. iOS]
    • TonCli - latest HEAD

    Additional Context

    No response

    opened by ElderOrb 2
  • Toncli tests success on out-of-gas

    Toncli tests success on out-of-gas

    Bug Type

    Functional

    Reproduction steps

    Code example https://gist.github.com/Trinketer22/b511a8f7c3820a3b01e15b4b634224d6

    thanks to @Trinketer22

    Actual result

    INFO: Test [__test_gas_limit] status: [SUCCESS] Test result: [[ 4949 ]] Total gas used (including testing code): [4949]

    Expected result

    Test status fail

    Suggested Severity

    Critical

    Device

    (base) tvorogme in ~/projects/nft_ultimate_sale on master ● ● ● λ toncli --version INFO: v0.0.43

    Additional Context

    No response

    opened by tvorogme 1
  • Unable to use toncli in directories containing Unicode characters in names

    Unable to use toncli in directories containing Unicode characters in names

    Bug Type

    Functional

    Reproduction steps

    1. Put some wallet contract directory inside directory with Unicode (for example, Russian) characters in name
    2. Try to use toncli run_tests

    Actual result

    INFO: Start tests
    unknown-location: error: Wrong encoding
    
    Traceback (most recent call last):
      File "C:\Program Files\Python39\lib\runpy.py", line 197, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "C:\Program Files\Python39\lib\runpy.py", line 87, in _run_code
        exec(code, run_globals)
      File "C:\Program Files\Python39\Scripts\toncli.exe\__main__.py", line 7, in <module>
      File "C:\Program Files\Python39\lib\site-packages\toncli\main.py", line 65, in main
        CommandsExecuter(command, string_kwargs, parser)
      File "C:\Program Files\Python39\lib\site-packages\toncli\modules\utils\commands\commands_executer.py", line 39, in __init__
        self.command_mapper[command](self)
      File "C:\Program Files\Python39\lib\site-packages\toncli\modules\utils\commands\commands_executer.py", line 49, in run_tests_command
        return RunTestsCommand(self.string_kwargs, self.parser)
      File "C:\Program Files\Python39\lib\site-packages\toncli\modules\utils\commands\command_classes\run_tests_command.py", line 12, in __init__
        test_runner.run(args.contracts.split() if args.contracts else None,
      File "C:\Program Files\Python39\lib\site-packages\toncli\modules\utils\test\tests.py", line 44, in run
        build_test(getcwd(), contracts=real_contracts, cwd=getcwd(), compile_tests_with_contract=not run_tests_old_way)
      File "C:\Program Files\Python39\lib\site-packages\toncli\modules\utils\test\commands.py", line 56, in build_test
        build_test_files([*func_and_test_files, *contract.func_files_locations, *contract.func_tests_files_locations],
      File "C:\Program Files\Python39\lib\site-packages\toncli\modules\utils\test\commands.py", line 87, in build_test_files
        get_output = check_output(build_command,
      File "C:\Program Files\Python39\lib\subprocess.py", line 420, in check_output
        return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
      File "C:\Program Files\Python39\lib\subprocess.py", line 524, in run
        raise CalledProcessError(retcode, process.args,
    subprocess.CalledProcessError: Command '['...\\ton-win64-binaries\\func.exe', '-o', '...тест_русский\\wallet\\build\\contract_tests.fif', '-SPA', '...\\toncli\\func-libs\\error_codes.func', '...\\toncli\\func-libs\\math.func', '...\\toncli\\func-libs\\stdlib.func', '...\\toncli\\test-libs\\1.address_helpers.func', '...\\toncli\\test-libs\\bad_messages_generator.func', '...\\toncli\\test-libs\\c5_parse_helpers.func', '...\\toncli\\test-libs\\message_helpers.func', '...\\toncli\\test-libs\\storage-test-helpers.func', '...\\toncli\\test-libs\\tests-helpers.func', '...\\toncli\\test-libs\\token-helpers.func', '...тест_русский\\wallet\\func\\Untitled-1.fc', '...тест_русский\\wallet\\tests\\tests.fc']' returned non-zero exit status 2.
    

    Expected result

    Compilation successful

    Suggested Severity

    Medium

    Device

    Desktop:

    • OS: Windows 10
    • toncli -v: INFO: v0.0.43
    • Hash of ton-win64-binaries without libcrypto (7-Zip, SHA256):
      • 2B90BB7F64269494EFC17069C9115399E3AF6A8BF77456FE137FA752DDD31806 - data hash
      • 4432D55FDBFE2B67CE051745779FB9BE050C986A33C007934533A989371BAA11 - data and names hash

    Additional Context

    No response

    opened by ProgramCrafter 0
  • How to use new tests? What is the current situation over TON binaries?

    How to use new tests? What is the current situation over TON binaries?

    You can be confused by installation process of toncli. We do our best to soften the corners.

    Current situation is: for latest master version (it's not in PyPi right now) you need to install binary from toncli-local branch of SpyCheese repo. Pre-builds can be founded here

    Is it safe?

    Yes, @SpyCheese is active TON contributor. The toncli-local branch contains new TVM OP codes, and it's up-to-date with master branch.

    New TVM OP present:

    GASLIMITSTEMP PRIVTOPUB SIGN RESETLOADEDCELLS

    Why this is needed?

    Those TVM OP needed for new toncli tests. Unlike the old version where you need to run TVM instant on each test - now you run only on TVM instant and run all tests inside it. This is a really cool improvement and the process now is smoother. The realization and idea is @BorysMinaiev (thanks for that).

    Why we can't merge it to ton-blockchain/ton master branch?

    According to @EmelyanenkoK - those TVM OP are used only for debug and tests, so it's better to have "developer" version of TVM and "production" version of TVM. You should keep in mind that these four TVM OP cannot be used in production.

    How to simplify proccess?

    Special thanks to @Trinketer22 we have a docker - you can create bash script which mount project to docker and there already binaries.

    Also Disintar-related dev @TonTheMoon (supported by TF) is creating auto-build version of TON source-code. I guess we will create one-line script of install toncli on any major system with auto-downloading binaries from package managers.

    documentation 
    opened by tvorogme 1
Releases(v0.0.4)
  • v0.0.4(Sep 18, 2022)

    v0.0.4

    PyPi: https://pypi.org/project/toncli/0.0.43/

    217 commits - WOW, a lot of work!

    Most work was supported by Ton Foundation and done by contributors, thanks.

    Source code(tar.gz)
    Source code(zip)
  • v0.0.32(Mar 30, 2022)

    v0.0.32

    • add get_prev_c4 / get_prev_c5 in run_tests
    • fix -c in run_tests
    • fix func in non project root
    • Other minor fixes

    To update:

    pip install -U toncli
    toncli update_libs
    
    Source code(tar.gz)
    Source code(zip)
  • v0.0.22(Mar 27, 2022)

    • [x] Add sendboc command, so if .boc file pass - will send it via lite-cliente, if .fif file pass - will invoke tncli fift sendboc so fift script will be run, and then boc file on output will be sended
    • [x] Add --data-params to build command, to auto-generate data cells
    • [x] Update stdlib.fc to support nft
    • [x] Critical fix: self.wait_for_deploy(contracts=real_contracts) instead of self.wait_for_deploy(contracts=contracts)
    • [x] Add .gitignore to protect contract keys leaks
    • [x] Add cell slice parser in lite-client
    • [x] Add parse address to TonUtils.fif
    • [x] Fix custom path to fift / func / lite-client on startup
    • [x] Add command wallet to check wallets addresses
    • [x] Force fift / func libs update
    • [x] More stability in lite-client interaction
    • [x] Send exteranal_message to contract without need to provide wrapper of external_message, just pass body bytes ( with support of multiple contracts)
    • [x] Send internal_message from deploy wallet in one command
    • [x] NFT Example deploy
    • [x] Add retry parameter to lite-client, try several times to do query
    • [x] Add windows support
    • [x] Func tests
    • [x] Custom stdlib-tests.fc and asm-tests.fif for tests
    • [x] Documentation update
    Source code(tar.gz)
    Source code(zip)
😈 Shining is a tool that enables engineers to remotely pull smart contract code in multi-file situations.

?? Shining ?? Shining is a tool that enables engineers to remotely pull smart contract code in multi-file situations. Shining is the name of one of my

xxxeyJ 15 Jun 17, 2022
Pythonic Smart Contract Language for the EVM

Getting Started See Installing Vyper to install vyper. See Tools and Resources for an additional list of framework and tools with vyper support. See D

Vyper 4.4k Dec 30, 2022
A workshop to build an NFT smart contract on the polygon blockchain

Polygon NFT Workshop This is an interactive workshop that guides you through the steps to deploy an NFT smart contract on the Polygon blockchain. By t

Banjo Obayomi 56 Oct 14, 2022
Audit of classmate's smart contract in blockchain seminar

Solidity-contract-audit Audit of classmate's smart contract in blockchain seminar Assignment: The task was to create a complete audit, including unit

smrza 0 Feb 4, 2022
Smart-contracts - open sourcing our upcoming smart contracts for better security and transparency

Smart-contracts - open sourcing our upcoming smart contracts for better security and transparency

Rand Gallery 16 Jul 10, 2022
A bot written in Python to automatically buy tokens on the Binance Smart Chain as soon as liquidity is provided

A bot written in Python to automatically buy tokens on the Binance Smart Chain as soon as liquidity is provided. If you’ve found this bot useful and have profited from it please consider donating any token to my BSC wallet address: 0xE75470B9a7c93038195ca116E342c42F6B3F758b

null 473 Dec 25, 2022
Tool to compare smart contracts source code

smartdiffer Tool to compare smart contracts source code. Heavily relies on API of Etherscan and Diffchecker. Installation pip install smartdiffer API

Roman Moskalenko 23 Nov 16, 2022
smartpassgen - A cross-platform package of modules for generating, secure storage and recovery of complex, cryptographic, smart passwords on the fly.

smartpassgen - A cross-platform package of modules for generating, secure storage and recovery of complex, cryptographic, smart passwords on the fly.

null 4 Sep 4, 2021
A repository for Algogenous Smart Contracts created on the Algorand Blockchain.

Smart Contacts Alogrand Smart Contracts using Choice Coin. Read Docs for how to implement Algogenous Smart Contracts for your own applications. Smart

Choice Coin 3 Dec 20, 2022
A repository for Algogenous Smart Contracts created on the Algorand Blockchain.

Smart Contacts This Repository is dedicated to code for Alogrand Smart Contracts using Choice Coin. Read Docs for how to implement Algogenous Smart Co

Choice Coin 3 Dec 20, 2022
Implementation of Smart Batch Auction for NFT launches on Tezos.

NFT Smart Batch Auction Smart Batch Auctions are an improvement over the traditional first come first serve (FCFS) NFT drops. FCFS design has been in

Anshu Jalan 5 May 6, 2022
This demo is an on-chain NFT auction using smart contracts on the Algorand blockchain.

Algorand Auction Demo This demo is an on-chain NFT auction using smart contracts on the Algorand blockchain. Usage The file auction/operations.py prov

null 1 Jan 27, 2022
SVSHI - Secure and Verified Smart Home Infrastructure

The SVSHI (Secure and Verified Smart Home Infrastructure) (pronounced like "sushi") project is a platform/runtime/toolchain for developing and running formally verified smart infrastructures, such as smart buildings, smart cities, etc.

Dependable Systems Laboratory 3 Oct 28, 2022
A simple graphical interface for encrypting sentences

A simple graphical interface for encrypting sentences

Marcus Vinícius Ribeiro Andrade 1 Oct 9, 2021
Cryptocurrency trading bot with a graphical user interface with support for simulations, backtests, optimizations, and running live bots.

Cryptocurrency trading bot with a graphical user interface with support for simulations, backtests, optimizations, and running live bots.

Mihir Shrestha 834 Dec 30, 2022
Run with one command grafana, prometheus, and a python script to collect and display cryptocurrency prices and track your wallet balance.

CryptoWatch Track your favorite crypto coin price and your wallet balance. Install Create .env: ADMIN_USER=admin ADMIN_PASSWORD=admin Configure you

Rafael Zimmermann 13 Dec 13, 2022
Tron Wallet (TRX) Crack Finder With Python Just 64 Line

TRXGEN Tron Wallet Finder and Crack With Python Tron Wallet (TRX) Crack Finder With Python Just 64 Line My tools [pycharm + anaconda3 + python3.8 + vi

MMDRZA 6 Dec 18, 2022
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Google 12.9k Jan 5, 2023
Tncli - TON smart contract command line interface

Tncli TON smart contract command line interface State Not working, in active dev

Disintar IO 100 Dec 18, 2022
TON Miner from TON-Pool.com

TON-Pool Miner Miner from TON-Pool.com

null 21 Nov 18, 2022