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)
Simple one-time pad (OTP) encryption

Introduction What you will make In this resource you will learn how to create and use an encryption technique known as the one-time pad. This method o

Rabih ND 6 Nov 06, 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 05, 2023
Tools for running airdrop and token distribution campaigns on the Solana blockchain.

Overview This repository contains some of the scripts we have used for running our airdrop campaigns and other distributions. Initially, all of these

147 Nov 17, 2022
A Python Tool to encrypt all types of files using AES and XOR Algorithm.

DataShield This project intends to protect user’s data, it stores files in encrypted format in device provided the passcode and path of the file. AES

ADITYA SHINDE 4 Dec 20, 2021
An encryption format offering better security, performance and ease of use than PGP.

An encryption format offering better security, performance and ease of use than PGP. File a bug if you found anything where we are worse than our competition, and we will fix it.

27 Dec 25, 2022
⚡ Automatically decrypt encryptions without knowing the key or cipher, decode encodings, and crack hashes ⚡

⚡ Automatically decrypt encryptions without knowing the key or cipher, decode encodings, and crack hashes ⚡

11.2k Jan 09, 2023
Bitcoin Clipper malware made in Python.

a BTC Clipper or a "Bitcoin Clipper" is a type of malware designed to target cryptocurrency transactions.

Nightfall 96 Dec 30, 2022
A community effort to bring back Duino-Coin

Duino-Coin-Revived A community effort to bring back Duino-Coin! Along with reviving the cryptocurrency, we will add many improvements to it, including

1 Dec 22, 2021
SHIBgreen is a cryptocurrency forked from Chia and uses the Proof of Space and Time consensus algorithm

SHIBgreen is a cryptocurrency forked from Chia and uses the Proof of Space and Time consensus algorithm

13 Jul 13, 2022
RSI Algorithmic Trading with Python

In this repository you can see my first algorithhmic trading script. I use 5 cryptocurrencies: Bitcoin (BTC), Ethereum (ETH), Bitcoin Cash (BCH), Litecoin (LTC) and Chainlink (LINK).

Jon Aldekoa 4 Mar 16, 2022
This program generate hashes from random salts

Hash Generator This program generate hashes from random salts. How to install Install this program using python 3 and pip: pip install . In the future

Diesan Romero 2 Aug 20, 2022
Simple python program to encrypt files with AES-256 encryption

simple-enc Simple python program to encrypt files with AES-256 encryption Setup First install "pyAesCrypt" using pip. Thats it! Optionally you can add

Hashm 2 Jan 19, 2022
Mina is a new cryptocurrency with a constant size blockchain, improving scaling while maintaining decentralization and security.

Mina Mina is the first cryptocurrency with a lightweight, constant-sized blockchain. This is the main source code repository for the Mina project. It

1.6k Jan 07, 2023
A curated list of resources dedicated to reinforcement learning applied to cyber security.

Awesome Reinforcement Learning for Cyber Security A curated list of resources dedicated to reinforcement learning applied to cyber security. Note that

Kim Hammar 212 Jan 02, 2023
An extreme encryption for everyone, encrypt your text before sending to anyone.

An extreme encryption for everyone, encrypt your text before sending to anyone. Alphabets and numbers are going to be encrypted like a hell

Saad 6 Oct 28, 2022
Use this script to track the gains of cryptocurrencies using historical data and display it on a super-imposed chart in order to find the highest performing cryptocurrencies historically

crypto-performance-tracker Use this script to track the gains of cryptocurrencies using historical data and display it on a super-imposed chart in ord

Andrei 25 Aug 31, 2022
Простой шифратор работающий по ключам.

deCryptor Что это такое? Простой шифратор работающий по ключам и без них. Как пользоваться? СМОТРЕТЬ ИЗОБРАЖЕНИЕ Разработчики Роман Слабицкий - написа

Romanin 2 May 31, 2022
A curated list for getting up to speed on crypto and decentralized networks

crypto reading list A curated list for getting up to speed on crypto and decentralized networks. The content on the toplevel page contains what we con

Jump Crypto 1.1k Jan 07, 2023
Python ASN.1 library with a focus on performance and a pythonic API

asn1crypto A fast, pure Python library for parsing and serializing ASN.1 structures. Features Why Another Python ASN.1 Library? Related Crypto Librari

Will Bond 282 Dec 11, 2022
A Python library to wrap age and minisign to provide key management, encryption/decryption and signing/verification functionality.

A Python library to wrap age and minisign to provide key management, encryption/decryption and signing/verification functionality.

Vinay Sajip 3 Feb 01, 2022