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.
- Support tetra via
tetranetwork option
- Added
--verifierflag toblueprint verifycommand to specify verifier ID - Added
--list-verifiersflag toblueprint verifycommand to list all available verifiers
blueprint verifyuses a new config structure that supports multiple verifiers
- Verification success message now includes testnet flag in URL when verifying on testnet
- Added
blueprint test --uicommand
- Changed
@ton/sandboxpeer dependency to>=0.40.0
- Added
blueprint test --coveragecommand
- When creating a contract, if the input contract name is invalid, blueprint does not exit, but asks for the name again
- Added
libraryHashandlibraryBocto the build result when building libraries
- Added
--compiler-versionflag to support precise version selection when verifying
- Added
buildLibrarywrapper compile config andcompilefunction option to convert the built code into a library
- Fixed contracts not compiling in subfolders
- Changed contracts templates positions in
createcommand - Changed counter template to match Tolk v1.0
- Added debugger support
- Fixed contract creation on Windows
- Added
getConfigandgetContractStatemethods to network provider - Added
getNormalizedExtMessageHashfunction - Added
NetworkProvider.waitForLastTransactionmethod
- Use
Dirent.parentPathinstead of.pathwhich is deprecated
- Fixed Tolk counter template
- Added ton lite client network provider
- Added tolk verifier
- Wallet v4 extended support: added v4r1, v4 is treated as v4r2
- Added possibility to specify custom
manifestUrlin blueprint configuration - Added documentation about the Tact plugin by TON Studio
- Added tolk v0.13 support
- Updated documentation about Tact wrappers
- Added config option to look for wrappers recursively
- Exported
getCompilerConfigForContractfunction for plugin support - Added request timout configuration
- Added docs for script args
- Added the
renamecommand which renames contracts - Added the
packcommand which builds and prepares a publish-ready package of contracts' wrappers - Added support for wallet IDs in mnemonic provider. Environment variables
WALLET_IDorSUBWALLET_NUMBERshould be set, or a .env file with them must be present in order for it to be usable - Added command
blueprint snapshotto run tests with metric collection and write new benchmark report - Added option
blueprint test --gas-reportto run tests and compare with the last snapshot metrics
- Fix address format in testnet
- Updated FunC stdlib
- Fixed blueprint build command failure in Tact projects
- Added
tact.config.jsonsupport - Added tolk v0.12 support
- Fixed tact counter deploy script error
- Fix unexpected code duplication on parralel compile
- Compiler version is now shown during contract build
- Added 'All Contracts' option to build wizard
- Added function to build all tact contracts, required for rebuilding before tests
- Made error of non-PascalCase contract names nicer
blueprint build --allnow exits with a non-zero exit code on failure
- Fixed build directory creation
- Added Fift output for FunC and Tolk build command
- Added API reference in code
- Improved CLI appearance
- Fixed Tact compilation
- Updated Tact templates and
@tact-lang/compilerdependency to v1.6.5
- Tolk's stderr is now printed on successful builds
- Moved compilers to peer dependencies, allowing end users to use their preferred versions of compilers
- Updated
@ton-community/func-jsdependency 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-accessdependency
- Added support for scripts in subdirectories, for example
scripts/counter/deploy.ts - Added the ability to specify test files in
blueprint testcommand, for exampleblueprint test Counter
- Separated compilables and wrappers
- Fixed
code overflowerror when generating QR code for ton:// link
- Changed
contract.tact.templatecounter template to return remaining value from the message - Updated TON Connect manifest
- Added auto-sourcing of root
tact.config.jsonfiles for merging compilation options withwrappers/*.compile.ts - Added a warning for disabling
debugin contract wrappers of Tact before doing production deployments
- Changed
@tact-lang/compilerdependency to be^1.3.0instead of^1.2.0 - Changed
compile.ts.templatetemplate for Tact to havedebugset totrueby default - Changed
contract.tact.templateempty template for Tact to mention implicit emptyinit()function
- Fixed
verifycommand
- Updated readme to reflect the fact that blueprint no longer automatically adds
jsonRPCto custom v2 endpoints
- Updated dependencies: func-js to 0.7.0, tonconnect sdk to 2.2.0
- Changed
@tact-lang/compilerdependency to be^1.2.0instead 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
jsonRPCto custom v2 endpoints
- Added
setcommand which can currently set func version (runblueprint set func) - Added
openandgetTransactionstoWrappedContractProvider - Added cell hash to build artifacts
- Added the
networkentry to the global config, which allows one to specify a custom network to be used instead of having to add--customflags on each run - Added the
convertcommand which attempts to convert a legacy bash build script into a blueprint.compile.tsfile - Added the ability to pass any user data into the compile hooks
- Improved the
verifycommand
- Added flags
--custom-version,--custom-key,--custom-typetorunandverifycommands to allow better control over custom API behavior
--customnow always addsjsonRPCto API URL for v2 APIs
- Fixed argument handling
- Changed
@tact-lang/compilerdependency to be^1.1.5instead of^1.1.3
- Fixed test templates (added missing imports)
- Added
verifycommand 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
deployerto the globaldescribecontext 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
optionsfield to thetactvariant ofCompilerConfig, which is of the same type as theoptionsof 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 thebuildcommand and when calling thecompilefunction for the respective contracts)
- Changed the
runcommand to only show.tsscripts
- Updated dependencies, of note: func-js to use func 0.4.3, Tact to 1.1.1
- Changed the
helpcommand to contain significantly more detailed help for every command - Added the
success: truerequirement to every template test - Updated dependencies
This release contains a breaking change.
- Changed the return type of
networkProvider.api()and the type used internally inNetworkProviderfromTonClienttoTonClient4. This is a breaking change - Updated dependencies
- Changed
UIProvider.promptreturn type fromPromise<void>toPromise<boolean>
- Added support for Tact, including Tact smart contract templates
- Added
--alloption forbuildcommand
- Updated dependencies
SendProvidernow 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_MNEMONICandWALLET_VERSIONmust 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,--dtonto choose. Tonscan is the default - Added ton-crypto peer dependency of version
>=3.2.0
- Fixed TonHub deployer's
Sent transactionmessage - Fixed
SendMode.PAY_GAS_SEPARATLY(missing E) typo in accordance with ton-core update - Fixed a crash when using
blueprint runwith 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
.fcfiles in.compile.tsfiles on Windows - Fixed
TonConnectProvideroutput
- Converted
Deployer sender does not support `bounce`error into a warning - Added an optional
init?: { code?: Cell; data?: Cell }argument toprovidermethod onNetworkProvider createNetworkProvidernow requires aUIProvider- Removed excessive comments from counter template contract
- Changed deploy script templates to use
sendDeployandwaitForDeployinstead ofdeploy - Refactored test templates to create
Blockchainand deploy contract inbeforeEach - Disabled file choice menu when there is only 1 file
- Deprecated
deploymethod onNetworkProvider. Users are advised to use self-implementedsendDeploy(or similar) methods on theirContractinstances together withisContractDeployedorwaitForDeployonNetworkProvider
- Added
blueprint testcommand - 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.providerandnetworkProvider.openwould lead toDeployer sender does not support "bounce"message when trying to send internal messages
networkProvider.providerandnetworkProvider.opennow wrapTonClient'sContractProviderinstead of directly using it for better control over passed arguments- Removed unnecessary
awaitkeywords from all templates
- Added fully interactive and fully non-interactive modes for the
createcommand - Added
input(message)method toUIProviderandInquirerUIProvider
- File selection (compilation files in
buildand scripts inrun) now accepts CLI argument hints in any case