All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Updated
@ton-community/func-js
dependency to v0.9.0
- Added support for tonapi as an API provider
- Support for Tolk, "next-generation FunC", a new language for writing smart contracts in TON. Tolk overview
- Added support for wallet v5 in the Mnemonic provider
- Changed the default API provider to Toncenter v2 (instead of Orbs TON Access). Rate limited requests are automatically retried
- Updated dependencies
- Removed the specialized TonHub connector. Use TON Connect instead
- Toncenter v2 is now used by default instead of orbs access. Rate limited API requests are automatically retried
- Removed
@orbs-network/ton-access
dependency
- Added support for scripts in subdirectories, for example
scripts/counter/deploy.ts
- Added the ability to specify test files in
blueprint test
command, for exampleblueprint test Counter
- Separated compilables and wrappers
- Fixed
code overflow
error when generating QR code for ton:// link
- Changed
contract.tact.template
counter template to return remaining value from the message - Updated TON Connect manifest
- Added auto-sourcing of root
tact.config.json
files for merging compilation options withwrappers/*.compile.ts
- Added a warning for disabling
debug
in contract wrappers of Tact before doing production deployments
- Changed
@tact-lang/compiler
dependency to be^1.3.0
instead of^1.2.0
- Changed
compile.ts.template
template for Tact to havedebug
set totrue
by default - Changed
contract.tact.template
empty template for Tact to mention implicit emptyinit()
function
- Fixed
verify
command
- Updated readme to reflect the fact that blueprint no longer automatically adds
jsonRPC
to custom v2 endpoints
- Updated dependencies: func-js to 0.7.0, tonconnect sdk to 2.2.0
- Changed
@tact-lang/compiler
dependency to be^1.2.0
instead of^1.1.5
- Updated the Tact counter template to use the new
+=
operator from Tact v1.2.0
This release contains a breaking change.
- Blueprint no longer automatically adds
jsonRPC
to custom v2 endpoints
- Added
set
command which can currently set func version (runblueprint set func
) - Added
open
andgetTransactions
toWrappedContractProvider
- Added cell hash to build artifacts
- Added the
network
entry to the global config, which allows one to specify a custom network to be used instead of having to add--custom
flags on each run - Added the
convert
command which attempts to convert a legacy bash build script into a blueprint.compile.ts
file - Added the ability to pass any user data into the compile hooks
- Improved the
verify
command
- Added flags
--custom-version
,--custom-key
,--custom-type
torun
andverify
commands to allow better control over custom API behavior
--custom
now always addsjsonRPC
to API URL for v2 APIs
- Fixed argument handling
- Changed
@tact-lang/compiler
dependency to be^1.1.5
instead of^1.1.3
- Fixed test templates (added missing imports)
- Added
verify
command to quickly verify contracts on verifier.ton.org
- Added plugin support
- Added custom API v2 endpoints
- Improved docs
- Changed deployed contract explorer link to use tonviewer
- Moved
deployer
to the globaldescribe
context in default tests
- Updated all dependencies to @ton organization packages
- Fixed TACT imports
- Fixed missing newlines when printing error messages while building contracts
- Added an
options
field to thetact
variant ofCompilerConfig
, which is of the same type as theoptions
of the TACT compiler, and includes fields such asdebug
,experimental
, etc
- Updated TACT to 1.1.3
- Added two optional fields to the
CompilerConfig
:preCompileHook?: () => Promise<void>
andpostCompileHook?: (code: Cell) => Promise<void>
. The former one gets called before any compilation of the respective contract happens, the latter one - after any compilation with the compiled code cell (they are called both during thebuild
command and when calling thecompile
function for the respective contracts)
- Changed the
run
command to only show.ts
scripts
- Updated dependencies, of note: func-js to use func 0.4.3, TACT to 1.1.1
- Changed the
help
command to contain significantly more detailed help for every command - Added the
success: true
requirement to every template test - Updated dependencies
This release contains a breaking change.
- Changed the return type of
networkProvider.api()
and the type used internally inNetworkProvider
fromTonClient
toTonClient4
. This is a breaking change - Updated dependencies
- Changed
UIProvider.prompt
return type fromPromise<void>
toPromise<boolean>
- Added support for TACT, including TACT smart contract templates
- Added
--all
option forbuild
command
- Updated dependencies
SendProvider
now returnsPromise<any>
instead ofPromise<void>
fromsendTransaction
. This allows providers using TON Connect and TonHub to return the results from their backends to the end user
- Changed ton peer dependency version to
>=13.4.1
This release contains a breaking change.
- Changed ton-core peer dependency version to
>=0.48.0
. This is a breaking change
- Added a new mnemonic deployer. Environment variables
WALLET_MNEMONIC
andWALLET_VERSION
must be set, or a .env file with them must be present in order for it to be usable. Tonkeeper's v4R2 wallet corresponds to v4 version in blueprint - Added the ability to choose the explorer for the deployed contracts. Pass one of the CLI flags
--tonscan
,--tonapi
,--toncx
,--dton
to choose. Tonscan is the default - Added ton-crypto peer dependency of version
>=3.2.0
- Fixed TonHub deployer's
Sent transaction
message - Fixed
SendMode.PAY_GAS_SEPARATLY
(missing E) typo in accordance with ton-core update - Fixed a crash when using
blueprint run
with flags but no file name
- Added an increment counter script for the counter template
- Added
isContractDeployed(address)
method toNetworkProvider
- Added
waitForDeploy(address, attempts?, sleepDuration?)
method toNetworkProvider
- Fixed exit code 1 on Windows even in case of successful execution
- Fixed paths to
.fc
files in.compile.ts
files on Windows - Fixed
TonConnectProvider
output
- Converted
Deployer sender does not support `bounce`
error into a warning - Added an optional
init?: { code?: Cell; data?: Cell }
argument toprovider
method onNetworkProvider
createNetworkProvider
now requires aUIProvider
- Removed excessive comments from counter template contract
- Changed deploy script templates to use
sendDeploy
andwaitForDeploy
instead ofdeploy
- Refactored test templates to create
Blockchain
and deploy contract inbeforeEach
- Disabled file choice menu when there is only 1 file
- Deprecated
deploy
method onNetworkProvider
. Users are advised to use self-implementedsendDeploy
(or similar) methods on theirContract
instances together withisContractDeployed
orwaitForDeploy
onNetworkProvider
- Added
blueprint test
command - Added a pretty help message
- Added a hint to indicate that contract names must be PascalCase, and a restriction that contract names must start with a capital letter
- Added a better error message on an unknown command
- Fixed counter templates
- Fixed an issue where using
networkProvider.provider
andnetworkProvider.open
would lead toDeployer sender does not support "bounce"
message when trying to send internal messages
networkProvider.provider
andnetworkProvider.open
now wrapTonClient
'sContractProvider
instead of directly using it for better control over passed arguments- Removed unnecessary
await
keywords from all templates
- Added fully interactive and fully non-interactive modes for the
create
command - Added
input(message)
method toUIProvider
andInquirerUIProvider
- File selection (compilation files in
build
and scripts inrun
) now accepts CLI argument hints in any case