@ton/blueprint 0.42.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/cli.js +0 -0
- package/dist/cli/constants.js +2 -0
- package/dist/cli/verify.js +78 -35
- package/dist/network/createNetworkProvider.d.ts +2 -0
- package/dist/network/createNetworkProvider.js +2 -0
- package/package.json +70 -70
- package/CHANGELOG.md +0 -535
package/dist/cli/cli.js
CHANGED
|
File without changes
|
package/dist/cli/constants.js
CHANGED
|
@@ -142,6 +142,8 @@ Verifies a deployed contract on ${chalk_1.default.underline('https://verifier.to
|
|
|
142
142
|
|
|
143
143
|
${chalk_1.default.bold('Flags:')}
|
|
144
144
|
${chalk_1.default.cyan('--mainnet')}, ${chalk_1.default.cyan('--testnet')} - selects network
|
|
145
|
+
${chalk_1.default.cyan('--verifier')} - specifies the verifier ID to use (default: ${chalk_1.default.cyan('verifier.ton.org')})
|
|
146
|
+
${chalk_1.default.cyan('--list-verifiers')} - lists all available verifiers for the selected network (or both networks if none selected)
|
|
145
147
|
${chalk_1.default.cyan('--compiler-version')} - specifies the exact compiler version to use (e.g. ${chalk_1.default.cyan('0.4.4-newops.1')}). Note: this does not change the underlying compiler itself.
|
|
146
148
|
${chalk_1.default.cyan('--custom')} [api-endpoint] - use custom API (requires --custom-type)
|
|
147
149
|
${chalk_1.default.cyan('--custom-version')} - API version (v2 default)
|
package/dist/cli/verify.js
CHANGED
|
@@ -13,33 +13,68 @@ const createNetworkProvider_1 = require("../network/createNetworkProvider");
|
|
|
13
13
|
const build_1 = require("./build");
|
|
14
14
|
const utils_1 = require("../utils");
|
|
15
15
|
const constants_1 = require("./constants");
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const DEFAULT_VERIFIER_ID = 'verifier.ton.org';
|
|
17
|
+
const VERIFIER_CONFIG_URL = 'https://raw.githubusercontent.com/ton-community/contract-verifier-config/main/config.json';
|
|
18
|
+
const MAINNET_VERIFIER_REGISTRY = core_1.Address.parse('EQD-BJSVUJviud_Qv7Ymfd3qzXdrmV525e3YDzWQoHIAiInL');
|
|
19
|
+
const TESTNET_VERIFIER_REGISTRY = core_1.Address.parse('EQCsdKYwUaXkgJkz2l0ol6qT_WxeRbE_wBCwnEybmR0u5TO8');
|
|
20
|
+
async function getVerifierConfig() {
|
|
19
21
|
try {
|
|
20
|
-
const response = await fetch(
|
|
21
|
-
if (response.
|
|
22
|
-
throw new Error(
|
|
22
|
+
const response = await fetch(VERIFIER_CONFIG_URL);
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(`Failed to fetch verifier config: ${response.status} ${response.statusText}`);
|
|
23
25
|
}
|
|
24
|
-
|
|
25
|
-
backendsProd = config.backends;
|
|
26
|
-
backendsTestnet = config.backendsTestnet;
|
|
26
|
+
return await response.json();
|
|
27
27
|
}
|
|
28
|
-
catch (
|
|
29
|
-
|
|
28
|
+
catch (error) {
|
|
29
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
30
|
+
throw new Error(`Unable to fetch contract verifier config: ${errorMessage}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function listVerifiers(ui) {
|
|
34
|
+
try {
|
|
35
|
+
const config = await getVerifierConfig();
|
|
36
|
+
ui.write('\nAvailable verifiers:');
|
|
37
|
+
const mainnetVerifiers = config.verifiers.filter((v) => v.network === 'mainnet');
|
|
38
|
+
const testnetVerifiers = config.verifiers.filter((v) => v.network === 'testnet');
|
|
39
|
+
if (mainnetVerifiers.length > 0) {
|
|
40
|
+
ui.write('\n Mainnet:');
|
|
41
|
+
mainnetVerifiers.forEach((v) => {
|
|
42
|
+
ui.write(` - ${v.id}`);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (testnetVerifiers.length > 0) {
|
|
46
|
+
ui.write('\n Testnet:');
|
|
47
|
+
testnetVerifiers.forEach((v) => {
|
|
48
|
+
ui.write(` - ${v.id}`);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (mainnetVerifiers.length === 0 && testnetVerifiers.length === 0) {
|
|
52
|
+
ui.write(' (none)');
|
|
53
|
+
}
|
|
54
|
+
ui.write('');
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
58
|
+
throw new Error(`Unable to list verifiers: ${errorMessage}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function getBackends(verifierId, network) {
|
|
62
|
+
try {
|
|
63
|
+
const config = await getVerifierConfig();
|
|
64
|
+
const verifierConfig = config.verifiers.find((v) => v.id === verifierId && v.network === network);
|
|
65
|
+
if (!verifierConfig) {
|
|
66
|
+
const availableVerifiers = config.verifiers
|
|
67
|
+
.filter((v) => v.network === network)
|
|
68
|
+
.map((v) => v.id)
|
|
69
|
+
.join(', ');
|
|
70
|
+
throw new Error(`Verifier '${verifierId}' not found for ${network} network. Available verifiers: ${availableVerifiers || 'none'}`);
|
|
71
|
+
}
|
|
72
|
+
return verifierConfig.backends;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
76
|
+
throw new Error(`Unable to fetch contract verifier backends: ${errorMessage}`);
|
|
30
77
|
}
|
|
31
|
-
return {
|
|
32
|
-
mainnet: {
|
|
33
|
-
sourceRegistry: core_1.Address.parse('EQD-BJSVUJviud_Qv7Ymfd3qzXdrmV525e3YDzWQoHIAiInL'),
|
|
34
|
-
backends: backendsProd,
|
|
35
|
-
id: 'orbs.com',
|
|
36
|
-
},
|
|
37
|
-
testnet: {
|
|
38
|
-
sourceRegistry: core_1.Address.parse('EQCsdKYwUaXkgJkz2l0ol6qT_WxeRbE_wBCwnEybmR0u5TO8'),
|
|
39
|
-
backends: backendsTestnet,
|
|
40
|
-
id: 'orbs-testnet',
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
78
|
}
|
|
44
79
|
function removeRandom(els) {
|
|
45
80
|
return els.splice(Math.floor(Math.random() * els.length), 1)[0];
|
|
@@ -139,6 +174,10 @@ const verify = async (_args, ui, context) => {
|
|
|
139
174
|
ui.write(constants_1.helpMessages['verify']);
|
|
140
175
|
return;
|
|
141
176
|
}
|
|
177
|
+
if (localArgs['--list-verifiers']) {
|
|
178
|
+
await listVerifiers(ui);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
142
181
|
const preciseVersion = localArgs['--compiler-version'];
|
|
143
182
|
const selectedContract = await (0, build_1.selectContract)(ui, (0, Runner_1.extractFirstArg)(localArgs));
|
|
144
183
|
const networkProvider = await (0, createNetworkProvider_1.createNetworkProvider)(ui, localArgs, context.config, false);
|
|
@@ -258,16 +297,19 @@ const verify = async (_args, ui, context) => {
|
|
|
258
297
|
fd.append('json', new Blob([JSON.stringify(src)], {
|
|
259
298
|
type: 'application/json',
|
|
260
299
|
}), 'blob');
|
|
261
|
-
const
|
|
262
|
-
const
|
|
263
|
-
const sourceRegistry = networkProvider.open(new SourceRegistry(
|
|
300
|
+
const verifierId = localArgs['--verifier'] ?? DEFAULT_VERIFIER_ID;
|
|
301
|
+
const sourceRegistryAddress = network === 'mainnet' ? MAINNET_VERIFIER_REGISTRY : TESTNET_VERIFIER_REGISTRY;
|
|
302
|
+
const sourceRegistry = networkProvider.open(new SourceRegistry(sourceRegistryAddress));
|
|
264
303
|
const verifierRegistry = networkProvider.open(new VerifierRegistry(await sourceRegistry.getVerifierRegistry()));
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
|
|
304
|
+
const verifiers = await verifierRegistry.getVerifiers();
|
|
305
|
+
const verifier = verifiers.find((v) => v.name === verifierId);
|
|
306
|
+
if (!verifier) {
|
|
307
|
+
const availableVerifiers = verifiers.map((v) => v.name).join(', ');
|
|
308
|
+
throw new Error(`Verifier '${verifierId}' is not registered in the verifier registry. Available verifiers: ${availableVerifiers || 'none'}`);
|
|
268
309
|
}
|
|
269
|
-
const
|
|
270
|
-
const
|
|
310
|
+
const backends = await getBackends(verifierId, network);
|
|
311
|
+
const backendUrl = removeRandom(backends);
|
|
312
|
+
const sourceResponse = await fetch(`${backendUrl}/source`, {
|
|
271
313
|
method: 'POST',
|
|
272
314
|
body: fd,
|
|
273
315
|
});
|
|
@@ -281,9 +323,9 @@ const verify = async (_args, ui, context) => {
|
|
|
281
323
|
let msgCell = sourceResult.msgCell;
|
|
282
324
|
let acquiredSigs = 1;
|
|
283
325
|
while (acquiredSigs < verifier.quorum) {
|
|
284
|
-
const
|
|
285
|
-
ui.write(`Using backend: ${
|
|
286
|
-
const signResponse = await fetch(
|
|
326
|
+
const backendUrl = removeRandom(backends);
|
|
327
|
+
ui.write(`Using backend: ${backendUrl}`);
|
|
328
|
+
const signResponse = await fetch(`${backendUrl}/sign`, {
|
|
287
329
|
method: 'POST',
|
|
288
330
|
body: JSON.stringify({
|
|
289
331
|
messageCell: msgCell,
|
|
@@ -303,6 +345,7 @@ const verify = async (_args, ui, context) => {
|
|
|
303
345
|
value: (0, core_1.toNano)('0.5'),
|
|
304
346
|
body: c,
|
|
305
347
|
});
|
|
306
|
-
|
|
348
|
+
const testnetFlag = network === 'testnet' ? '?testnet=true' : '';
|
|
349
|
+
ui.write(`Contract successfully verified at https://verifier.ton.org/${addr}${testnetFlag}`);
|
|
307
350
|
};
|
|
308
351
|
exports.verify = verify;
|
|
@@ -17,6 +17,8 @@ export declare const argSpec: {
|
|
|
17
17
|
'--tonviewer': BooleanConstructor;
|
|
18
18
|
'--toncx': BooleanConstructor;
|
|
19
19
|
'--dton': BooleanConstructor;
|
|
20
|
+
'--verifier': StringConstructor;
|
|
21
|
+
'--list-verifiers': BooleanConstructor;
|
|
20
22
|
};
|
|
21
23
|
export type Args = arg.Result<typeof argSpec>;
|
|
22
24
|
export declare function createNetworkProvider(ui: UIProvider, args: Args, config?: Config, allowCustom?: boolean): Promise<NetworkProvider>;
|
package/package.json
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
2
|
+
"name": "@ton/blueprint",
|
|
3
|
+
"version": "0.43.0",
|
|
4
|
+
"description": "Framework for development of TON smart contracts",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": "./dist/cli/cli.js",
|
|
7
|
+
"author": "TonTech",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/ton-org/blueprint.git"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist/**/*"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "rm -rf dist && tsc && cp -r src/templates dist/",
|
|
18
|
+
"test": "jest src",
|
|
19
|
+
"release": "yarn build && yarn publish --access public",
|
|
20
|
+
"lint": "eslint . --max-warnings 0",
|
|
21
|
+
"lint:fix": "eslint . --max-warnings 0 --fix"
|
|
22
|
+
},
|
|
23
|
+
"prettier": "@ton/toolchain/prettier",
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@tact-lang/compiler": "^1.6.13",
|
|
26
|
+
"@ton-community/func-js": "^0.10.0",
|
|
27
|
+
"@ton/core": "^0.61.0",
|
|
28
|
+
"@ton/crypto": "^3.3.0",
|
|
29
|
+
"@ton/sandbox": "^0.40.0",
|
|
30
|
+
"@ton/tolk-js": "^1.0.0",
|
|
31
|
+
"@ton/ton": "^15.3.1",
|
|
32
|
+
"@ton/toolchain": "the-ton-tech/toolchain#v1.6.0",
|
|
33
|
+
"@types/inquirer": "^8.2.6",
|
|
34
|
+
"@types/jest": "^30.0.0",
|
|
35
|
+
"@types/node": "^20.2.5",
|
|
36
|
+
"@types/qrcode-terminal": "^0.12.0",
|
|
37
|
+
"eslint": "^9.28.0",
|
|
38
|
+
"globals": "^16.4.0",
|
|
39
|
+
"jest": "^30.0.5",
|
|
40
|
+
"ts-jest": "^29.4.1",
|
|
41
|
+
"typescript": "^5.8.3"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"@tact-lang/compiler": ">=1.6.5",
|
|
45
|
+
"@ton-community/func-js": ">=0.10.0",
|
|
46
|
+
"@ton/core": ">=0.61.0",
|
|
47
|
+
"@ton/crypto": ">=3.3.0",
|
|
48
|
+
"@ton/sandbox": ">=0.40.0",
|
|
49
|
+
"@ton/tolk-js": ">=0.13.0",
|
|
50
|
+
"@ton/ton": ">=15.2.1"
|
|
51
|
+
},
|
|
52
|
+
"peerDependenciesMeta": {
|
|
53
|
+
"@ton/sandbox": {
|
|
54
|
+
"optional": true
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"@ton-api/client": "^0.2.0",
|
|
59
|
+
"@ton-api/ton-adapter": "^0.2.0",
|
|
60
|
+
"@tonconnect/sdk": "^2.2.0",
|
|
61
|
+
"arg": "^5.0.2",
|
|
62
|
+
"axios": "^1.7.7",
|
|
63
|
+
"chalk": "^4.1.0",
|
|
64
|
+
"dotenv": "^16.1.4",
|
|
65
|
+
"inquirer": "^8.2.5",
|
|
66
|
+
"qrcode-terminal": "^0.12.0",
|
|
67
|
+
"ton-lite-client": "^3.1.1",
|
|
68
|
+
"ts-node": "^10.9.1"
|
|
69
|
+
},
|
|
70
|
+
"packageManager": "yarn@4.9.2"
|
|
71
|
+
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,535 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [0.42.0] - 2025-12-04
|
|
9
|
-
|
|
10
|
-
### Added
|
|
11
|
-
|
|
12
|
-
- Added `blueprint test --ui` command
|
|
13
|
-
|
|
14
|
-
### Changed
|
|
15
|
-
|
|
16
|
-
- Changed `@ton/sandbox` peer dependency to `>=0.40.0`
|
|
17
|
-
|
|
18
|
-
## [0.41.0] - 2025-09-23
|
|
19
|
-
|
|
20
|
-
### Added
|
|
21
|
-
|
|
22
|
-
- Added `blueprint test --coverage` command
|
|
23
|
-
|
|
24
|
-
### Changed
|
|
25
|
-
|
|
26
|
-
- When creating a contract, if the input contract name is invalid, blueprint does not exit, but asks for the name again
|
|
27
|
-
|
|
28
|
-
## [0.40.0] - 2025-08-18
|
|
29
|
-
|
|
30
|
-
### Added
|
|
31
|
-
|
|
32
|
-
- Added `libraryHash` and `libraryBoc` to the build result when building libraries
|
|
33
|
-
|
|
34
|
-
## [0.39.1] - 2025-08-05
|
|
35
|
-
|
|
36
|
-
### Added
|
|
37
|
-
|
|
38
|
-
- Added `--compiler-version` flag to support precise version selection when verifying
|
|
39
|
-
|
|
40
|
-
## [0.39.0] - 2025-08-04
|
|
41
|
-
|
|
42
|
-
### Added
|
|
43
|
-
|
|
44
|
-
- Added `buildLibrary` wrapper compile config and `compile` function option to convert the built code into a library
|
|
45
|
-
|
|
46
|
-
## [0.38.0] - 2025-07-07
|
|
47
|
-
|
|
48
|
-
### Fixed
|
|
49
|
-
|
|
50
|
-
- Fixed contracts not compiling in subfolders
|
|
51
|
-
|
|
52
|
-
### Changed
|
|
53
|
-
|
|
54
|
-
- Changed contracts templates positions in `create` command
|
|
55
|
-
- Changed counter template to match Tolk v1.0
|
|
56
|
-
|
|
57
|
-
## [0.37.0] - 2025-06-26
|
|
58
|
-
|
|
59
|
-
### Added
|
|
60
|
-
|
|
61
|
-
- Added debugger support
|
|
62
|
-
|
|
63
|
-
## [0.36.1] - 2025-06-17
|
|
64
|
-
|
|
65
|
-
### Fixed
|
|
66
|
-
|
|
67
|
-
- Fixed contract creation on Windows
|
|
68
|
-
|
|
69
|
-
## [0.36.0] - 2025-06-16
|
|
70
|
-
|
|
71
|
-
### Added
|
|
72
|
-
|
|
73
|
-
- Added `getConfig` and `getContractState` methods to network provider
|
|
74
|
-
- Added `getNormalizedExtMessageHash` function
|
|
75
|
-
- Added `NetworkProvider.waitForLastTransaction` method
|
|
76
|
-
|
|
77
|
-
### Fixed
|
|
78
|
-
|
|
79
|
-
- Use `Dirent.parentPath` instead of `.path` which is deprecated
|
|
80
|
-
|
|
81
|
-
## [0.35.1] - 2025-06-13
|
|
82
|
-
|
|
83
|
-
### Fixed
|
|
84
|
-
|
|
85
|
-
- Fixed Tolk counter template
|
|
86
|
-
|
|
87
|
-
## [0.35.0] - 2025-06-02
|
|
88
|
-
|
|
89
|
-
### Added
|
|
90
|
-
|
|
91
|
-
- Added ton lite client network provider
|
|
92
|
-
- Added tolk verifier
|
|
93
|
-
- Wallet v4 extended support: added v4r1, v4 is treated as v4r2
|
|
94
|
-
- Added possibility to specify custom `manifestUrl` in blueprint configuration
|
|
95
|
-
- Added documentation about the [Tact plugin by TON Studio](https://plugins.jetbrains.com/plugin/27290-tact)
|
|
96
|
-
- Added tolk v0.13 support
|
|
97
|
-
|
|
98
|
-
### Changed
|
|
99
|
-
|
|
100
|
-
- Updated documentation about Tact wrappers
|
|
101
|
-
|
|
102
|
-
## [0.34.0] - 2025-05-20
|
|
103
|
-
|
|
104
|
-
### Added
|
|
105
|
-
|
|
106
|
-
- Added config option to look for wrappers recursively
|
|
107
|
-
- Exported `getCompilerConfigForContract` function for plugin support
|
|
108
|
-
- Added request timout configuration
|
|
109
|
-
- Added docs for script args
|
|
110
|
-
- Added the `rename` command which renames contracts
|
|
111
|
-
- Added the `pack` command which builds and prepares a publish-ready package of contracts' wrappers
|
|
112
|
-
- Added support for wallet IDs in mnemonic provider. Environment variables `WALLET_ID` or `SUBWALLET_NUMBER` should be set, or a .env file with them must be present in order for it to be usable
|
|
113
|
-
- Added command `blueprint snapshot` to run tests with metric collection and write new benchmark report
|
|
114
|
-
- Added option `blueprint test --gas-report` to run tests and compare with the last snapshot metrics
|
|
115
|
-
|
|
116
|
-
### Fixed
|
|
117
|
-
|
|
118
|
-
- Fix address format in testnet
|
|
119
|
-
|
|
120
|
-
### Changed
|
|
121
|
-
|
|
122
|
-
- Updated FunC stdlib
|
|
123
|
-
|
|
124
|
-
## [0.33.1] - 2025-05-16
|
|
125
|
-
|
|
126
|
-
### Fixed
|
|
127
|
-
|
|
128
|
-
- Fixed blueprint build command failure in Tact projects
|
|
129
|
-
|
|
130
|
-
## [0.33.0] - 2025-05-16
|
|
131
|
-
|
|
132
|
-
### Added
|
|
133
|
-
|
|
134
|
-
- Added `tact.config.json` support
|
|
135
|
-
- Added tolk v0.12 support
|
|
136
|
-
|
|
137
|
-
### Fixed
|
|
138
|
-
|
|
139
|
-
- Fixed tact counter deploy script error
|
|
140
|
-
|
|
141
|
-
## [0.32.1] - 2025-05-06
|
|
142
|
-
|
|
143
|
-
### Fixed
|
|
144
|
-
|
|
145
|
-
- Fix unexpected code duplication on parralel compile
|
|
146
|
-
|
|
147
|
-
## [0.32.0] - 2025-05-02
|
|
148
|
-
|
|
149
|
-
### Added
|
|
150
|
-
|
|
151
|
-
- Compiler version is now shown during contract build
|
|
152
|
-
- Added 'All Contracts' option to build wizard
|
|
153
|
-
- Added function to build all tact contracts, required for rebuilding before tests
|
|
154
|
-
|
|
155
|
-
### Changed
|
|
156
|
-
|
|
157
|
-
- Made error of non-PascalCase contract names nicer
|
|
158
|
-
|
|
159
|
-
### Fixed
|
|
160
|
-
|
|
161
|
-
- `blueprint build --all` now exits with a non-zero exit code on failure
|
|
162
|
-
|
|
163
|
-
## [0.31.1] - 2025-04-24
|
|
164
|
-
|
|
165
|
-
### Fixed
|
|
166
|
-
|
|
167
|
-
- Fixed build directory creation
|
|
168
|
-
|
|
169
|
-
## [0.31.0] - 2025-04-24
|
|
170
|
-
|
|
171
|
-
### Added
|
|
172
|
-
|
|
173
|
-
- Added Fift output for FunC and Tolk build command
|
|
174
|
-
- Added API reference in code
|
|
175
|
-
|
|
176
|
-
### Changed
|
|
177
|
-
|
|
178
|
-
- Improved CLI appearance
|
|
179
|
-
|
|
180
|
-
## [0.30.0] - 2025-04-08
|
|
181
|
-
|
|
182
|
-
### Fixed
|
|
183
|
-
|
|
184
|
-
- Fixed Tact compilation
|
|
185
|
-
|
|
186
|
-
### Changed
|
|
187
|
-
|
|
188
|
-
- Updated Tact templates and `@tact-lang/compiler` dependency to v1.6.5
|
|
189
|
-
|
|
190
|
-
## [0.29.0] - 2025-03-02
|
|
191
|
-
|
|
192
|
-
### Changed
|
|
193
|
-
|
|
194
|
-
- Tolk's stderr is now printed on successful builds
|
|
195
|
-
|
|
196
|
-
## [0.28.0] - 2025-01-17
|
|
197
|
-
|
|
198
|
-
### Changed
|
|
199
|
-
|
|
200
|
-
- Moved compilers to peer dependencies, allowing end users to use their preferred versions of compilers
|
|
201
|
-
|
|
202
|
-
## [0.27.0] - 2024-12-18
|
|
203
|
-
|
|
204
|
-
### Changed
|
|
205
|
-
|
|
206
|
-
- Updated `@ton-community/func-js` dependency to v0.9.0
|
|
207
|
-
|
|
208
|
-
## [0.26.0] - 2024-11-26
|
|
209
|
-
|
|
210
|
-
### Added
|
|
211
|
-
|
|
212
|
-
- Added support for tonapi as an API provider
|
|
213
|
-
|
|
214
|
-
## [0.25.0] - 2024-11-02
|
|
215
|
-
|
|
216
|
-
### Added
|
|
217
|
-
|
|
218
|
-
- Support for Tolk, "next-generation FunC", a new language for writing smart contracts in TON. [Tolk overview](https://docs.ton.org/develop/tolk/overview)
|
|
219
|
-
|
|
220
|
-
## [0.24.0] - 2024-09-16
|
|
221
|
-
|
|
222
|
-
### Added
|
|
223
|
-
|
|
224
|
-
- Added support for wallet v5 in the Mnemonic provider
|
|
225
|
-
|
|
226
|
-
### Changed
|
|
227
|
-
|
|
228
|
-
- Changed the default API provider to Toncenter v2 (instead of Orbs TON Access). Rate limited requests are automatically retried
|
|
229
|
-
- Updated dependencies
|
|
230
|
-
|
|
231
|
-
### Removed
|
|
232
|
-
|
|
233
|
-
- Removed the specialized TonHub connector. Use TON Connect instead
|
|
234
|
-
|
|
235
|
-
## [0.23.0] - 2024-09-11
|
|
236
|
-
|
|
237
|
-
### Changed
|
|
238
|
-
|
|
239
|
-
- Toncenter v2 is now used by default instead of orbs access. Rate limited API requests are automatically retried
|
|
240
|
-
|
|
241
|
-
### Removed
|
|
242
|
-
|
|
243
|
-
- Removed `@orbs-network/ton-access` dependency
|
|
244
|
-
|
|
245
|
-
## [0.22.0] - 2024-07-08
|
|
246
|
-
|
|
247
|
-
### Added
|
|
248
|
-
|
|
249
|
-
- Added support for scripts in subdirectories, for example `scripts/counter/deploy.ts`
|
|
250
|
-
- Added the ability to specify test files in `blueprint test` command, for example `blueprint test Counter`
|
|
251
|
-
|
|
252
|
-
### Changed
|
|
253
|
-
|
|
254
|
-
- Separated compilables and wrappers
|
|
255
|
-
|
|
256
|
-
### Fixed
|
|
257
|
-
|
|
258
|
-
- Fixed `code overflow` error when generating QR code for ton:// link
|
|
259
|
-
|
|
260
|
-
## [0.21.0] - 2024-05-27
|
|
261
|
-
|
|
262
|
-
### Changed
|
|
263
|
-
|
|
264
|
-
- Changed `contract.tact.template` counter template to return remaining value from the message
|
|
265
|
-
- Updated TON Connect manifest
|
|
266
|
-
|
|
267
|
-
## [0.20.0] - 2024-05-07
|
|
268
|
-
|
|
269
|
-
### Added
|
|
270
|
-
|
|
271
|
-
- Added auto-sourcing of root `tact.config.json` files for merging compilation options with `wrappers/*.compile.ts`
|
|
272
|
-
- Added a warning for disabling `debug` in contract wrappers of Tact before doing production deployments
|
|
273
|
-
|
|
274
|
-
### Changed
|
|
275
|
-
|
|
276
|
-
- Changed `@tact-lang/compiler` dependency to be `^1.3.0` instead of `^1.2.0`
|
|
277
|
-
- Changed `compile.ts.template` template for Tact to have `debug` set to `true` by default
|
|
278
|
-
- Changed `contract.tact.template` empty template for Tact to mention implicit empty `init()` function
|
|
279
|
-
|
|
280
|
-
## [0.19.1] - 2024-04-12
|
|
281
|
-
|
|
282
|
-
### Fixed
|
|
283
|
-
|
|
284
|
-
- Fixed `verify` command
|
|
285
|
-
|
|
286
|
-
### Changed
|
|
287
|
-
|
|
288
|
-
- Updated readme to reflect the fact that blueprint no longer automatically adds `jsonRPC` to custom v2 endpoints
|
|
289
|
-
|
|
290
|
-
## [0.19.0] - 2024-03-27
|
|
291
|
-
|
|
292
|
-
### Changed
|
|
293
|
-
|
|
294
|
-
- Updated dependencies: func-js to 0.7.0, tonconnect sdk to 2.2.0
|
|
295
|
-
|
|
296
|
-
## [0.18.0] - 2024-03-13
|
|
297
|
-
|
|
298
|
-
### Changed
|
|
299
|
-
|
|
300
|
-
- Changed `@tact-lang/compiler` dependency to be `^1.2.0` instead of `^1.1.5`
|
|
301
|
-
- Updated the Tact counter template to use the new `+=` operator from Tact v1.2.0
|
|
302
|
-
|
|
303
|
-
## [0.17.0] - 2024-03-01
|
|
304
|
-
|
|
305
|
-
This release contains a breaking change.
|
|
306
|
-
|
|
307
|
-
### Changed
|
|
308
|
-
|
|
309
|
-
- Blueprint no longer automatically adds `jsonRPC` to custom v2 endpoints
|
|
310
|
-
|
|
311
|
-
### Added
|
|
312
|
-
|
|
313
|
-
- Added `set` command which can currently set func version (run `blueprint set func`)
|
|
314
|
-
- Added `open` and `getTransactions` to `WrappedContractProvider`
|
|
315
|
-
- Added cell hash to build artifacts
|
|
316
|
-
|
|
317
|
-
## [0.16.0] - 2024-02-15
|
|
318
|
-
|
|
319
|
-
### Added
|
|
320
|
-
|
|
321
|
-
- 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
|
|
322
|
-
- Added the `convert` command which attempts to convert a legacy bash build script into a blueprint `.compile.ts` file
|
|
323
|
-
- Added the ability to pass any user data into the compile hooks
|
|
324
|
-
|
|
325
|
-
### Changed
|
|
326
|
-
|
|
327
|
-
- Improved the `verify` command
|
|
328
|
-
|
|
329
|
-
## [0.15.0] - 2023-12-15
|
|
330
|
-
|
|
331
|
-
### Added
|
|
332
|
-
|
|
333
|
-
- Added flags `--custom-version`, `--custom-key`, `--custom-type` to `run` and `verify` commands to allow better control over custom API behavior
|
|
334
|
-
|
|
335
|
-
### Changed
|
|
336
|
-
|
|
337
|
-
- `--custom` now always adds `jsonRPC` to API URL for v2 APIs
|
|
338
|
-
|
|
339
|
-
### Fixed
|
|
340
|
-
|
|
341
|
-
- Fixed argument handling
|
|
342
|
-
|
|
343
|
-
## [0.14.2] - 2023-12-01
|
|
344
|
-
|
|
345
|
-
### Changed
|
|
346
|
-
|
|
347
|
-
- Changed `@tact-lang/compiler` dependency to be `^1.1.5` instead of `^1.1.3`
|
|
348
|
-
|
|
349
|
-
## [0.14.1] - 2023-12-01
|
|
350
|
-
|
|
351
|
-
### Fixed
|
|
352
|
-
|
|
353
|
-
- Fixed test templates (added missing imports)
|
|
354
|
-
|
|
355
|
-
## [0.14.0] - 2023-11-23
|
|
356
|
-
|
|
357
|
-
### Added
|
|
358
|
-
|
|
359
|
-
- Added `verify` command to quickly verify contracts on [verifier.ton.org](https://verifier.ton.org)
|
|
360
|
-
|
|
361
|
-
## [0.13.0] - 2023-11-05
|
|
362
|
-
|
|
363
|
-
### Added
|
|
364
|
-
|
|
365
|
-
- Added plugin support
|
|
366
|
-
- Added custom API v2 endpoints
|
|
367
|
-
|
|
368
|
-
### Changed
|
|
369
|
-
|
|
370
|
-
- Improved docs
|
|
371
|
-
- Changed deployed contract explorer link to use tonviewer
|
|
372
|
-
- Moved `deployer` to the global `describe` context in default tests
|
|
373
|
-
|
|
374
|
-
## [0.12.1] - 2023-07-31
|
|
375
|
-
|
|
376
|
-
### Changed
|
|
377
|
-
|
|
378
|
-
- Updated all dependencies to @ton organization packages
|
|
379
|
-
|
|
380
|
-
## [0.12.0] - 2023-07-14
|
|
381
|
-
|
|
382
|
-
### Fixed
|
|
383
|
-
|
|
384
|
-
- Fixed Tact imports
|
|
385
|
-
- Fixed missing newlines when printing error messages while building contracts
|
|
386
|
-
|
|
387
|
-
## [0.11.0] - 2023-07-03
|
|
388
|
-
|
|
389
|
-
### Added
|
|
390
|
-
|
|
391
|
-
- Added an `options` field to the `tact` variant of `CompilerConfig`, which is of the same type as the `options` of the Tact compiler, and includes fields such as `debug`, `experimental`, etc
|
|
392
|
-
|
|
393
|
-
### Changed
|
|
394
|
-
|
|
395
|
-
- Updated Tact to 1.1.3
|
|
396
|
-
|
|
397
|
-
## [0.10.0] - 2023-06-06
|
|
398
|
-
|
|
399
|
-
### Added
|
|
400
|
-
|
|
401
|
-
- Added two optional fields to the `CompilerConfig`: `preCompileHook?: () => Promise<void>` and `postCompileHook?: (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 the `build` command and when calling the `compile` function for the respective contracts)
|
|
402
|
-
|
|
403
|
-
### Changed
|
|
404
|
-
|
|
405
|
-
- Changed the `run` command to only show `.ts` scripts
|
|
406
|
-
|
|
407
|
-
## [0.9.0] - 2023-04-21
|
|
408
|
-
|
|
409
|
-
### Changed
|
|
410
|
-
|
|
411
|
-
- Updated dependencies, of note: func-js to use func 0.4.3, Tact to 1.1.1
|
|
412
|
-
|
|
413
|
-
## [0.8.0] - 2023-04-07
|
|
414
|
-
|
|
415
|
-
### Changed
|
|
416
|
-
|
|
417
|
-
- Changed the `help` command to contain significantly more detailed help for every command
|
|
418
|
-
- Added the `success: true` requirement to every template test
|
|
419
|
-
- Updated dependencies
|
|
420
|
-
|
|
421
|
-
## [0.7.0] - 2023-04-03
|
|
422
|
-
|
|
423
|
-
This release contains a breaking change.
|
|
424
|
-
|
|
425
|
-
### Changed
|
|
426
|
-
|
|
427
|
-
- Changed the return type of `networkProvider.api()` and the type used internally in `NetworkProvider` from `TonClient` to `TonClient4`. This is a breaking change
|
|
428
|
-
- Updated dependencies
|
|
429
|
-
|
|
430
|
-
## [0.6.1] - 2023-03-27
|
|
431
|
-
|
|
432
|
-
### Changed
|
|
433
|
-
|
|
434
|
-
- Changed `UIProvider.prompt` return type from `Promise<void>` to `Promise<boolean>`
|
|
435
|
-
|
|
436
|
-
## [0.6.0] - 2023-03-21
|
|
437
|
-
|
|
438
|
-
### Added
|
|
439
|
-
|
|
440
|
-
- Added support for [Tact](https://github.com/tact-lang/tact), including Tact smart contract templates
|
|
441
|
-
- Added `--all` option for `build` command
|
|
442
|
-
|
|
443
|
-
### Changed
|
|
444
|
-
|
|
445
|
-
- Updated dependencies
|
|
446
|
-
|
|
447
|
-
## [0.5.0] - 2023-03-13
|
|
448
|
-
|
|
449
|
-
### Changed
|
|
450
|
-
|
|
451
|
-
- `SendProvider` now returns `Promise<any>` instead of `Promise<void>` from `sendTransaction`. This allows providers using TON Connect and TonHub to return the results from their backends to the end user
|
|
452
|
-
|
|
453
|
-
## [0.4.1] - 2023-03-02
|
|
454
|
-
|
|
455
|
-
### Changed
|
|
456
|
-
|
|
457
|
-
- Changed ton peer dependency version to `>=13.4.1`
|
|
458
|
-
|
|
459
|
-
## [0.4.0] - 2023-03-01
|
|
460
|
-
|
|
461
|
-
This release contains a breaking change.
|
|
462
|
-
|
|
463
|
-
### Changed
|
|
464
|
-
|
|
465
|
-
- Changed ton-core peer dependency version to `>=0.48.0`. This is a breaking change
|
|
466
|
-
|
|
467
|
-
### Added
|
|
468
|
-
|
|
469
|
-
- Added a new mnemonic deployer. Environment variables `WALLET_MNEMONIC` and `WALLET_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
|
|
470
|
-
- 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
|
|
471
|
-
- Added ton-crypto peer dependency of version `>=3.2.0`
|
|
472
|
-
|
|
473
|
-
### Fixed
|
|
474
|
-
|
|
475
|
-
- Fixed TonHub deployer's `Sent transaction` message
|
|
476
|
-
- Fixed `SendMode.PAY_GAS_SEPARATLY` (missing E) typo in accordance with ton-core update
|
|
477
|
-
- Fixed a crash when using `blueprint run` with flags but no file name
|
|
478
|
-
|
|
479
|
-
## [0.3.0] - 2023-02-27
|
|
480
|
-
|
|
481
|
-
### Added
|
|
482
|
-
|
|
483
|
-
- Added an increment counter script for the counter template
|
|
484
|
-
- Added `isContractDeployed(address)` method to `NetworkProvider`
|
|
485
|
-
- Added `waitForDeploy(address, attempts?, sleepDuration?)` method to `NetworkProvider`
|
|
486
|
-
|
|
487
|
-
### Fixed
|
|
488
|
-
|
|
489
|
-
- Fixed exit code 1 on Windows even in case of successful execution
|
|
490
|
-
- Fixed paths to `.fc` files in `.compile.ts` files on Windows
|
|
491
|
-
- Fixed `TonConnectProvider` output
|
|
492
|
-
|
|
493
|
-
### Changed
|
|
494
|
-
|
|
495
|
-
- Converted ```Deployer sender does not support `bounce` ``` error into a warning
|
|
496
|
-
- Added an optional `init?: { code?: Cell; data?: Cell }` argument to `provider` method on `NetworkProvider`
|
|
497
|
-
- `createNetworkProvider` now requires a `UIProvider`
|
|
498
|
-
- Removed excessive comments from counter template contract
|
|
499
|
-
- Changed deploy script templates to use `sendDeploy` and `waitForDeploy` instead of `deploy`
|
|
500
|
-
- Refactored test templates to create `Blockchain` and deploy contract in `beforeEach`
|
|
501
|
-
- Disabled file choice menu when there is only 1 file
|
|
502
|
-
|
|
503
|
-
### Deprecated
|
|
504
|
-
|
|
505
|
-
- Deprecated `deploy` method on `NetworkProvider`. Users are advised to use self-implemented `sendDeploy` (or similar) methods on their `Contract` instances together with `isContractDeployed` or `waitForDeploy` on `NetworkProvider`
|
|
506
|
-
|
|
507
|
-
## [0.2.0] - 2023-02-09
|
|
508
|
-
|
|
509
|
-
### Added
|
|
510
|
-
|
|
511
|
-
- Added `blueprint test` command
|
|
512
|
-
- Added a pretty help message
|
|
513
|
-
- Added a hint to indicate that contract names must be PascalCase, and a restriction that contract names must start with a capital letter
|
|
514
|
-
- Added a better error message on an unknown command
|
|
515
|
-
|
|
516
|
-
### Fixed
|
|
517
|
-
|
|
518
|
-
- Fixed counter templates
|
|
519
|
-
- Fixed an issue where using `networkProvider.provider` and `networkProvider.open` would lead to `Deployer sender does not support "bounce"` message when trying to send internal messages
|
|
520
|
-
|
|
521
|
-
### Changed
|
|
522
|
-
|
|
523
|
-
- `networkProvider.provider` and `networkProvider.open` now wrap `TonClient`'s `ContractProvider` instead of directly using it for better control over passed arguments
|
|
524
|
-
- Removed unnecessary `await` keywords from all templates
|
|
525
|
-
|
|
526
|
-
## [0.1.0] - 2023-02-03
|
|
527
|
-
|
|
528
|
-
### Added
|
|
529
|
-
|
|
530
|
-
- Added fully interactive and fully non-interactive modes for the `create` command
|
|
531
|
-
- Added `input(message)` method to `UIProvider` and `InquirerUIProvider`
|
|
532
|
-
|
|
533
|
-
### Fixed
|
|
534
|
-
|
|
535
|
-
- File selection (compilation files in `build` and scripts in `run`) now accepts CLI argument hints in any case
|