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)
Encrypt decrypt files - Programmed in Python | PySimpleGUI

Crypter Programmed in Python | PySimpleGUI If you like it give it a star How it works Crypter program use Fernet for encryption. Fernet guarantees tha

Adrijan 11 Jun 18, 2022
This is a simple application to generate HD wallet addresses for cryptocurrency coins.

HD-Wallet-Address This is a mini service to generate addresses in the master HD-Wallet. It will use py_crypto_hd_wallet package as a base. Prerequisit

Amin Abbasi 1 Dec 16, 2021
Persian caesar and rot16 encryptor and decryptor

persian caesar and rot16 encrypt and decrypt how to install if you use windows python -m venv .venv .\.venv\Script\activate python -m pip install -r r

Mehdi Radfar 5 Oct 28, 2022
A simple and secure password-based encryption & decryption algorithm based on hash functions, implemented solely based on python.

pyhcrypt A simple and secure password-based encryption & decryption algorithm based on hash functions, implemented solely based on python. Usage Pytho

Hongfei Xu 3 Feb 08, 2022
Fully configurable automated python script to collect most visted pages based on google dork

Ranked pages collector Fully configurable automated python script to collect most visted pages based on google dork Usage This project is still under

Security Analyzer 9 Sep 10, 2022
Technical_indicators_cryptos - Using technical indicators to find optimal trading strategies to deploy onto trading bot.

technical_indicators_cryptos Using technical indicators to find optimal trading strategies to deploy onto trading bot. In the Jup Notebook you wil

Van 4 Jul 03, 2022
Deribit_Algo_Project_Python - Deribit algo project written in python trading crypto futures

This is a Algo/script trading for Deribit. You need an account with deribit, to

24 Jan 09, 2023
Blockchain online Voting System

decentralized-voting-system A decentralized voting system where a user can walk into a government authorized center (Ex- banks, telecom companies etc.

Mahima Arora 1 Dec 28, 2021
A crypto wallet to send bnb and ether coin using web3.py and moralis speedy node

A crypto wallet to send bnb and ether coin using web3.py and moralis speedy node

Ciscoquan 3 Aug 16, 2022
Electrum - Lightweight Vertcoin client

Electrum - Lightweight Vertcoin client Electrum-VTC is a rebase of upstream Electrum and pulls in updates regularly. Donate VTC to support this work:

Vertcoin 4 Oct 14, 2022
Vhost password decrypt for python

vhost_password_decrypt Where is symkey.dat Windows:C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\ssl\symkey.dat Linux:/etc/vmware-vpx/ssl/symkey.

Jing Ling 152 Dec 22, 2022
基于python的一款 加解密工具

基于python的一款 加解密工具 加密: SHA序列: sha1 , sha2 , sha224 , sha256 , sha384 , sha512 , sha512-256 , sha3-224 , sha3-256 , sha3-384 , sha3-512 MD序列: md4 , md5

3 May 05, 2022
PytoPrice is an automation program to fetch the latest price of a cryptocurrency of your choice at a user-customizable update interval.

PyToPrice (Python Crypto Price) PytoPrice is an automation program to fetch the latest price of a cryptocurrency of your choice at a user-customizable

Peter 1 Jun 16, 2022
Decrypting winrm traffic using password/ntlm hash

Decrypting winrm traffic using password/ntlm hash

Haoxi Tan 9 Jan 05, 2022
A cairo port for Rari Capital Vaults

crypts • Architecture contracts ├─ CryptFactory — "Factory for deploying Crypt contracts for any ERC20 token." ├─ Crypt — "Flexible, minimalist, and g

alucard 9 Sep 02, 2022
Image Encryption/Decryption based on Rubik Cube 's principle and AES

Image Encryption/Decryption based on Rubik Cube 's principle and AES Our final project for Theory of Crytography class. Our Image Encryption/Decryptio

Danny 5 Apr 11, 2022
Python implementation of EIP 1577 content hash

ContentHash for Python Python implementation of EIP 1577 content hash. Description This is a simple package made for encoding and decoding content has

Filip Š 11 Jul 19, 2022
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers.

pyca/cryptography cryptography is a package which provides cryptographic recipes and primitives to Python developers. Our goal is for it to be your "c

Python Cryptographic Authority 5.2k Dec 30, 2022
Python based project to pull useful account statistics from the Algorand block chain.

PlanetWatchStats Python based project to pull useful account statistics from the Algorand block chain. Setup pip install -r requirements.txt Run pytho

M0x40 1 Jan 27, 2022
Freqtrade is a free and open source crypto trading bot written in Python

Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money man

20.2k Jan 07, 2023