stylus-toolkit 0.2.5 → 0.2.7
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.js +14 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/deploy.d.ts +12 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +340 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +2 -8
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +43 -40
- package/dist/commands/init.js.map +1 -1
- package/dist/profiler/gas-profiler.d.ts +3 -3
- package/dist/profiler/gas-profiler.d.ts.map +1 -1
- package/dist/profiler/gas-profiler.js +29 -92
- package/dist/profiler/gas-profiler.js.map +1 -1
- package/dist/templates/generator.d.ts +2 -0
- package/dist/templates/generator.d.ts.map +1 -1
- package/dist/templates/generator.js +29 -0
- package/dist/templates/generator.js.map +1 -1
- package/dist/templates/templates.d.ts.map +1 -1
- package/dist/templates/templates.js +1 -2
- package/dist/templates/templates.js.map +1 -1
- package/dist/utils/file-system.js +1 -1
- package/dist/utils/file-system.js.map +1 -1
- package/package.json +1 -1
- package/dist/templates/Cargo.lock +0 -5744
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ const commander_1 = require("commander");
|
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
const init_1 = require("./commands/init");
|
|
10
10
|
const build_1 = require("./commands/build");
|
|
11
|
+
const deploy_1 = require("./commands/deploy");
|
|
11
12
|
const dev_1 = require("./commands/dev");
|
|
12
13
|
const profile_1 = require("./commands/profile");
|
|
13
14
|
const benchmark_1 = require("./commands/benchmark");
|
|
@@ -16,12 +17,12 @@ const program = new commander_1.Command();
|
|
|
16
17
|
program
|
|
17
18
|
.name('stylus-toolkit')
|
|
18
19
|
.description('A comprehensive CLI development environment for Arbitrum Stylus smart contracts')
|
|
19
|
-
.version('0.2.
|
|
20
|
+
.version('0.2.7');
|
|
20
21
|
program
|
|
21
22
|
.command('init')
|
|
22
23
|
.description('Initialize a new Stylus project')
|
|
23
24
|
.option('-n, --name <name>', 'Project name')
|
|
24
|
-
.option('-t, --template <template>', 'Project template (erc20, erc721, defi, basic)'
|
|
25
|
+
.option('-t, --template <template>', 'Project template (erc20, erc721, defi, basic)')
|
|
25
26
|
.option('--rust-only', 'Initialize Rust-only project')
|
|
26
27
|
.option('--solidity-only', 'Initialize Solidity-only project')
|
|
27
28
|
.action(init_1.initCommand);
|
|
@@ -32,6 +33,17 @@ program
|
|
|
32
33
|
.option('--no-release', 'Build in debug mode instead of release')
|
|
33
34
|
.option('--no-check', 'Skip cargo stylus check')
|
|
34
35
|
.action(build_1.buildCommand);
|
|
36
|
+
program
|
|
37
|
+
.command('deploy')
|
|
38
|
+
.description('Deploy Stylus contract with automatic gas estimation')
|
|
39
|
+
.option('-n, --network <network>', 'Network name (local, arbitrum-sepolia, arbitrum-one)', 'local')
|
|
40
|
+
.option('-r, --rpc <url>', 'Custom RPC endpoint URL')
|
|
41
|
+
.option('--private-key <key>', 'Private key for deployment (not recommended, use --private-key-path)')
|
|
42
|
+
.option('--private-key-path <path>', 'Path to file containing private key')
|
|
43
|
+
.option('--gas-limit <amount>', 'Manual gas limit (overrides automatic estimation)')
|
|
44
|
+
.option('--estimate-only', 'Only estimate gas, do not deploy')
|
|
45
|
+
.option('--no-activate', 'Skip contract activation step')
|
|
46
|
+
.action(deploy_1.deployCommand);
|
|
35
47
|
program
|
|
36
48
|
.command('dev')
|
|
37
49
|
.description('Start a local Stylus development node')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,4CAAgD;AAChD,wCAA4C;AAC5C,gDAAoD;AACpD,oDAAwD;AACxD,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CAAC,iFAAiF,CAAC;KAC9F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;KAC3C,MAAM,CAAC,2BAA2B,EAAE,+CAA+C,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface DeployOptions {
|
|
2
|
+
network?: string;
|
|
3
|
+
privateKey?: string;
|
|
4
|
+
privateKeyPath?: string;
|
|
5
|
+
rpc?: string;
|
|
6
|
+
gasLimit?: string;
|
|
7
|
+
estimateOnly?: boolean;
|
|
8
|
+
noActivate?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function deployCommand(options: DeployOptions): Promise<void>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA6VzE"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.deployCommand = deployCommand;
|
|
40
|
+
const logger_1 = require("../utils/logger");
|
|
41
|
+
const file_system_1 = require("../utils/file-system");
|
|
42
|
+
const path_1 = __importDefault(require("path"));
|
|
43
|
+
const execa_1 = __importDefault(require("execa"));
|
|
44
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
45
|
+
async function deployCommand(options) {
|
|
46
|
+
logger_1.logger.header('Stylus Toolkit - Deploy Contract');
|
|
47
|
+
try {
|
|
48
|
+
const projectRoot = file_system_1.FileSystem.getProjectRoot();
|
|
49
|
+
const rustProjectPath = path_1.default.join(projectRoot, 'contracts-rust');
|
|
50
|
+
// Check if Rust project exists
|
|
51
|
+
if (!(await file_system_1.FileSystem.fileExists(rustProjectPath))) {
|
|
52
|
+
logger_1.logger.error('Rust project not found. Run "stylus-toolkit init" first.');
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
// Check if cargo-stylus is installed
|
|
56
|
+
logger_1.logger.startSpinner('Checking cargo-stylus installation...');
|
|
57
|
+
try {
|
|
58
|
+
await (0, execa_1.default)('cargo', ['stylus', '--version']);
|
|
59
|
+
logger_1.logger.succeedSpinner('cargo-stylus is installed');
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
logger_1.logger.failSpinner('cargo-stylus not installed');
|
|
63
|
+
logger_1.logger.error('cargo-stylus is required for deployment.');
|
|
64
|
+
logger_1.logger.info('Install with: cargo install cargo-stylus');
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
// Determine RPC endpoint
|
|
68
|
+
let rpcUrl = options.rpc;
|
|
69
|
+
if (!rpcUrl) {
|
|
70
|
+
switch (options.network) {
|
|
71
|
+
case 'arbitrum-sepolia':
|
|
72
|
+
rpcUrl = 'https://sepolia-rollup.arbitrum.io/rpc';
|
|
73
|
+
break;
|
|
74
|
+
case 'arbitrum-one':
|
|
75
|
+
case 'arbitrum-mainnet':
|
|
76
|
+
rpcUrl = 'https://arb1.arbitrum.io/rpc';
|
|
77
|
+
break;
|
|
78
|
+
case 'local':
|
|
79
|
+
default:
|
|
80
|
+
rpcUrl = 'http://localhost:8547';
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const network = options.network || 'local';
|
|
85
|
+
logger_1.logger.newLine();
|
|
86
|
+
logger_1.logger.section('Deployment Configuration');
|
|
87
|
+
logger_1.logger.table({
|
|
88
|
+
'Network': network,
|
|
89
|
+
'RPC URL': rpcUrl,
|
|
90
|
+
'Private Key': options.privateKeyPath ? `From file: ${options.privateKeyPath}` :
|
|
91
|
+
options.privateKey ? 'Provided via --private-key' : 'Not provided',
|
|
92
|
+
});
|
|
93
|
+
logger_1.logger.newLine();
|
|
94
|
+
// Validate private key
|
|
95
|
+
if (!options.privateKey && !options.privateKeyPath) {
|
|
96
|
+
logger_1.logger.error('Private key is required for deployment.');
|
|
97
|
+
logger_1.logger.info('Options:');
|
|
98
|
+
logger_1.logger.info(' 1. Use --private-key-path=<path> (recommended)');
|
|
99
|
+
logger_1.logger.info(' 2. Use --private-key=<key> (not recommended for production)');
|
|
100
|
+
logger_1.logger.info('');
|
|
101
|
+
logger_1.logger.warn('For testnet, create a key.txt file with your private key:');
|
|
102
|
+
logger_1.logger.info(' echo "0xyourprivatekey" > key.txt');
|
|
103
|
+
logger_1.logger.info(' stylus-toolkit deploy --private-key-path=./key.txt --network arbitrum-sepolia');
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
// Get contract name and WASM path
|
|
107
|
+
const cargoTomlPath = path_1.default.join(rustProjectPath, 'Cargo.toml');
|
|
108
|
+
const cargoToml = await file_system_1.FileSystem.readFile(cargoTomlPath);
|
|
109
|
+
const nameMatch = cargoToml.match(/name\s*=\s*"([^"]+)"/);
|
|
110
|
+
const contractName = nameMatch ? nameMatch[1] : 'contract';
|
|
111
|
+
const wasmPath = path_1.default.join(rustProjectPath, 'target', 'wasm32-unknown-unknown', 'release');
|
|
112
|
+
const wasmFileName = `${contractName.replace(/-/g, '_')}.wasm`;
|
|
113
|
+
const wasmFilePath = path_1.default.join(wasmPath, wasmFileName);
|
|
114
|
+
// Check if WASM file exists
|
|
115
|
+
if (!(await file_system_1.FileSystem.fileExists(wasmFilePath))) {
|
|
116
|
+
logger_1.logger.error('WASM file not found. Build the contract first.');
|
|
117
|
+
logger_1.logger.info('Run: stylus-toolkit build');
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
// Show WASM size
|
|
121
|
+
const fs = await Promise.resolve().then(() => __importStar(require('fs-extra')));
|
|
122
|
+
const wasmBinary = await fs.readFile(wasmFilePath);
|
|
123
|
+
const wasmSizeKb = (wasmBinary.length / 1024).toFixed(2);
|
|
124
|
+
logger_1.logger.section('Contract Information');
|
|
125
|
+
logger_1.logger.table({
|
|
126
|
+
'Contract Name': contractName,
|
|
127
|
+
'WASM Size': `${wasmSizeKb} KB`,
|
|
128
|
+
'WASM Path': wasmFilePath,
|
|
129
|
+
});
|
|
130
|
+
logger_1.logger.newLine();
|
|
131
|
+
// Estimate gas if not provided
|
|
132
|
+
let gasLimit = options.gasLimit;
|
|
133
|
+
if (!gasLimit) {
|
|
134
|
+
logger_1.logger.startSpinner('Calculating gas requirements...');
|
|
135
|
+
// Calculate gas based on WASM size
|
|
136
|
+
// Stylus deployment formula:
|
|
137
|
+
// - Base transaction: 21,000 gas
|
|
138
|
+
// - Activation overhead: ~14,000,000 gas (first deployment)
|
|
139
|
+
// - Per-byte storage: ~16 gas per compressed byte
|
|
140
|
+
// - For safety, we use a generous multiplier
|
|
141
|
+
const wasmSizeBytes = wasmBinary.length;
|
|
142
|
+
// Estimated gas: base + (size * gas_per_byte) * safety_multiplier
|
|
143
|
+
// Using 2.5x safety multiplier to ensure deployment always succeeds
|
|
144
|
+
const baseGas = 21000;
|
|
145
|
+
const activationGas = 14000000;
|
|
146
|
+
const perByteGas = 16;
|
|
147
|
+
const safetyMultiplier = 2.5;
|
|
148
|
+
const estimatedGas = Math.ceil(baseGas + activationGas + (wasmSizeBytes * perByteGas * safetyMultiplier));
|
|
149
|
+
gasLimit = estimatedGas.toString();
|
|
150
|
+
logger_1.logger.succeedSpinner(`Gas calculated: ${estimatedGas.toLocaleString()} (WASM: ${wasmSizeKb} KB, 2.5x safety buffer)`);
|
|
151
|
+
// Try to get actual estimate from cargo stylus if network is available
|
|
152
|
+
try {
|
|
153
|
+
const estimateArgs = [
|
|
154
|
+
'stylus',
|
|
155
|
+
'deploy',
|
|
156
|
+
'--estimate-gas',
|
|
157
|
+
'--wasm-file',
|
|
158
|
+
wasmFilePath,
|
|
159
|
+
'--endpoint',
|
|
160
|
+
rpcUrl,
|
|
161
|
+
];
|
|
162
|
+
if (options.privateKeyPath) {
|
|
163
|
+
estimateArgs.push('--private-key-path', options.privateKeyPath);
|
|
164
|
+
}
|
|
165
|
+
else if (options.privateKey) {
|
|
166
|
+
estimateArgs.push('--private-key', options.privateKey);
|
|
167
|
+
}
|
|
168
|
+
logger_1.logger.startSpinner('Verifying gas estimate with network...');
|
|
169
|
+
const { stdout, stderr } = await (0, execa_1.default)('cargo', estimateArgs, {
|
|
170
|
+
cwd: rustProjectPath,
|
|
171
|
+
reject: false,
|
|
172
|
+
timeout: 10000, // 10 second timeout
|
|
173
|
+
});
|
|
174
|
+
// Parse gas estimate from output
|
|
175
|
+
const output = stdout + stderr;
|
|
176
|
+
const gasMatch = output.match(/estimated?\s+gas[:\s]+(\d+)/i) ||
|
|
177
|
+
output.match(/gas\s+estimate[:\s]+(\d+)/i) ||
|
|
178
|
+
output.match(/(\d+)\s+gas/i);
|
|
179
|
+
if (gasMatch) {
|
|
180
|
+
const networkEstimate = parseInt(gasMatch[1]);
|
|
181
|
+
// Add 50% buffer to network estimate
|
|
182
|
+
const gasWithBuffer = Math.ceil(networkEstimate * 1.5);
|
|
183
|
+
// Use the higher of the two estimates for safety
|
|
184
|
+
const finalGas = Math.max(estimatedGas, gasWithBuffer);
|
|
185
|
+
gasLimit = finalGas.toString();
|
|
186
|
+
logger_1.logger.succeedSpinner(`Network estimate: ${networkEstimate.toLocaleString()}, using: ${finalGas.toLocaleString()} (highest with buffer)`);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
logger_1.logger.updateSpinner('Network estimate unavailable, using calculated gas');
|
|
190
|
+
logger_1.logger.succeedSpinner(`Using calculated gas: ${estimatedGas.toLocaleString()}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
// Network estimation failed, use calculated estimate
|
|
195
|
+
logger_1.logger.updateSpinner('Network unavailable, using calculated gas');
|
|
196
|
+
logger_1.logger.succeedSpinner(`Using calculated gas: ${estimatedGas.toLocaleString()}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (options.estimateOnly) {
|
|
200
|
+
logger_1.logger.success('Gas estimation complete!');
|
|
201
|
+
logger_1.logger.info(`Use --gas-limit=${gasLimit} for actual deployment`);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
// Deploy the contract
|
|
205
|
+
logger_1.logger.newLine();
|
|
206
|
+
logger_1.logger.section('Deploying Contract');
|
|
207
|
+
logger_1.logger.startSpinner('Sending deployment transaction...');
|
|
208
|
+
try {
|
|
209
|
+
const deployArgs = [
|
|
210
|
+
'stylus',
|
|
211
|
+
'deploy',
|
|
212
|
+
'--wasm-file',
|
|
213
|
+
wasmFilePath,
|
|
214
|
+
'--endpoint',
|
|
215
|
+
rpcUrl,
|
|
216
|
+
];
|
|
217
|
+
if (options.privateKeyPath) {
|
|
218
|
+
deployArgs.push('--private-key-path', options.privateKeyPath);
|
|
219
|
+
}
|
|
220
|
+
else if (options.privateKey) {
|
|
221
|
+
deployArgs.push('--private-key', options.privateKey);
|
|
222
|
+
}
|
|
223
|
+
// Add gas limit
|
|
224
|
+
if (gasLimit) {
|
|
225
|
+
deployArgs.push('--gas-limit', gasLimit);
|
|
226
|
+
}
|
|
227
|
+
// Add no-activate flag if specified
|
|
228
|
+
if (options.noActivate) {
|
|
229
|
+
deployArgs.push('--no-activate');
|
|
230
|
+
}
|
|
231
|
+
const startTime = Date.now();
|
|
232
|
+
const { stdout, stderr } = await (0, execa_1.default)('cargo', deployArgs, {
|
|
233
|
+
cwd: rustProjectPath,
|
|
234
|
+
});
|
|
235
|
+
const deployTime = ((Date.now() - startTime) / 1000).toFixed(2);
|
|
236
|
+
logger_1.logger.succeedSpinner(`Contract deployed successfully (${deployTime}s)`);
|
|
237
|
+
// Parse deployment output
|
|
238
|
+
const output = stdout + stderr;
|
|
239
|
+
const addressMatch = output.match(/deployed\s+(?:at|to)[:\s]+(0x[a-fA-F0-9]{40})/i) ||
|
|
240
|
+
output.match(/contract[:\s]+(0x[a-fA-F0-9]{40})/i) ||
|
|
241
|
+
output.match(/(0x[a-fA-F0-9]{40})/);
|
|
242
|
+
const txHashMatch = output.match(/transaction[:\s]+(0x[a-fA-F0-9]{64})/i) ||
|
|
243
|
+
output.match(/tx[:\s]+(0x[a-fA-F0-9]{64})/i);
|
|
244
|
+
const gasUsedMatch = output.match(/gas\s+used[:\s]+(\d+)/i);
|
|
245
|
+
logger_1.logger.newLine();
|
|
246
|
+
logger_1.logger.section('Deployment Results');
|
|
247
|
+
const results = {
|
|
248
|
+
'Status': chalk_1.default.green('✓ Deployed'),
|
|
249
|
+
'Network': network,
|
|
250
|
+
};
|
|
251
|
+
if (addressMatch) {
|
|
252
|
+
results['Contract Address'] = chalk_1.default.cyan(addressMatch[1]);
|
|
253
|
+
}
|
|
254
|
+
if (txHashMatch) {
|
|
255
|
+
results['Transaction Hash'] = chalk_1.default.dim(txHashMatch[1]);
|
|
256
|
+
}
|
|
257
|
+
if (gasUsedMatch) {
|
|
258
|
+
results['Gas Used'] = parseInt(gasUsedMatch[1]).toLocaleString();
|
|
259
|
+
}
|
|
260
|
+
if (gasLimit) {
|
|
261
|
+
results['Gas Limit'] = parseInt(gasLimit).toLocaleString();
|
|
262
|
+
}
|
|
263
|
+
logger_1.logger.table(results);
|
|
264
|
+
// Show explorer links for public networks
|
|
265
|
+
if (addressMatch) {
|
|
266
|
+
logger_1.logger.newLine();
|
|
267
|
+
logger_1.logger.section('Explorer Links');
|
|
268
|
+
if (network === 'arbitrum-sepolia') {
|
|
269
|
+
logger_1.logger.info(`Contract: https://sepolia.arbiscan.io/address/${addressMatch[1]}`);
|
|
270
|
+
if (txHashMatch) {
|
|
271
|
+
logger_1.logger.info(`Transaction: https://sepolia.arbiscan.io/tx/${txHashMatch[1]}`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
else if (network === 'arbitrum-one' || network === 'arbitrum-mainnet') {
|
|
275
|
+
logger_1.logger.info(`Contract: https://arbiscan.io/address/${addressMatch[1]}`);
|
|
276
|
+
if (txHashMatch) {
|
|
277
|
+
logger_1.logger.info(`Transaction: https://arbiscan.io/tx/${txHashMatch[1]}`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
logger_1.logger.newLine();
|
|
282
|
+
logger_1.logger.success('Deployment complete!');
|
|
283
|
+
// Show next steps
|
|
284
|
+
logger_1.logger.newLine();
|
|
285
|
+
logger_1.logger.section('Next Steps');
|
|
286
|
+
if (addressMatch) {
|
|
287
|
+
logger_1.logger.info('1. Interact with your contract using the address above');
|
|
288
|
+
logger_1.logger.info('2. Verify on explorer (if on public network)');
|
|
289
|
+
logger_1.logger.info(`3. Test with: cast call ${addressMatch[1]} "<function>" --rpc-url ${rpcUrl}`);
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
logger_1.logger.info('1. Check deployment output above for contract address');
|
|
293
|
+
logger_1.logger.info('2. Verify the deployment on block explorer');
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
logger_1.logger.failSpinner('Deployment failed');
|
|
298
|
+
const errorMessage = error.message;
|
|
299
|
+
// Provide helpful error messages
|
|
300
|
+
if (errorMessage.includes('insufficient funds')) {
|
|
301
|
+
logger_1.logger.error('Insufficient funds for deployment');
|
|
302
|
+
logger_1.logger.newLine();
|
|
303
|
+
logger_1.logger.section('Solutions');
|
|
304
|
+
logger_1.logger.info('1. Get testnet ETH from faucet:');
|
|
305
|
+
logger_1.logger.info(' • Arbitrum Sepolia: https://faucet.quicknode.com/arbitrum/sepolia');
|
|
306
|
+
logger_1.logger.info(' • Check your balance first');
|
|
307
|
+
logger_1.logger.info('');
|
|
308
|
+
logger_1.logger.info('2. Use a different account with sufficient balance');
|
|
309
|
+
}
|
|
310
|
+
else if (errorMessage.includes('out of gas') || errorMessage.includes('gas')) {
|
|
311
|
+
logger_1.logger.error('Transaction ran out of gas');
|
|
312
|
+
logger_1.logger.newLine();
|
|
313
|
+
logger_1.logger.section('Solutions');
|
|
314
|
+
logger_1.logger.info('1. The automatic gas estimation should prevent this.');
|
|
315
|
+
logger_1.logger.info('2. Try manually increasing gas limit:');
|
|
316
|
+
logger_1.logger.info(` stylus-toolkit deploy --gas-limit=150000000 --private-key-path=${options.privateKeyPath || './key.txt'}`);
|
|
317
|
+
logger_1.logger.info('');
|
|
318
|
+
logger_1.logger.info('3. If error persists, there may be an issue with the contract code.');
|
|
319
|
+
}
|
|
320
|
+
else if (errorMessage.includes('nonce')) {
|
|
321
|
+
logger_1.logger.error('Nonce error (transaction ordering issue)');
|
|
322
|
+
logger_1.logger.info('Wait a few seconds and try again.');
|
|
323
|
+
}
|
|
324
|
+
else if (errorMessage.includes('connection')) {
|
|
325
|
+
logger_1.logger.error('Connection to RPC endpoint failed');
|
|
326
|
+
logger_1.logger.info(`Check if ${rpcUrl} is accessible`);
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
logger_1.logger.error('Deployment error:');
|
|
330
|
+
logger_1.logger.info(errorMessage);
|
|
331
|
+
}
|
|
332
|
+
process.exit(1);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
catch (error) {
|
|
336
|
+
logger_1.logger.error(`Deployment failed: ${error.message}`);
|
|
337
|
+
process.exit(1);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA6LnE"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -88,15 +88,9 @@ async function devCommand(options) {
|
|
|
88
88
|
'-p', `${port}:8547`,
|
|
89
89
|
'-p', '8548:8548',
|
|
90
90
|
'offchainlabs/nitro-node:v3.7.1-926f1ab',
|
|
91
|
-
'--
|
|
92
|
-
'--
|
|
93
|
-
'--node.dangerous.no-l1-listener',
|
|
94
|
-
'--parent-chain.id=1337',
|
|
95
|
-
'--chain.id=412346',
|
|
96
|
-
'--http.api=net,web3,eth,debug',
|
|
97
|
-
'--http.corsdomain=*',
|
|
91
|
+
'--dev',
|
|
92
|
+
'--http.port=8547',
|
|
98
93
|
'--http.addr=0.0.0.0',
|
|
99
|
-
'--http.vhosts=*',
|
|
100
94
|
];
|
|
101
95
|
if (options.detach) {
|
|
102
96
|
dockerArgs.splice(1, 0, '-d');
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;AASA,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;AASA,gCA6LC;AAtMD,4CAAyC;AACzC,kDAA0B;AAC1B,kDAA0B;AAOnB,KAAK,UAAU,UAAU,CAAC,OAAmB;IAClD,eAAM,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IAEpC,IAAI,CAAC;QACH,+BAA+B;QAC/B,eAAM,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACrC,eAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,eAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YACvC,eAAM,CAAC,OAAO,EAAE,CAAC;YACjB,eAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACtD,eAAM,CAAC,OAAO,EAAE,CAAC;YACjB,eAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACtC,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAClE,eAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACrD,eAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YAC7E,eAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAClE,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC,CAAC;YACtF,eAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;YAClF,eAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC,CAAC;YAC3F,eAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACpC,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAChF,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACpD,eAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YACrD,eAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC9C,eAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACzD,eAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;YACvF,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,eAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7C,eAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC7B,eAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,eAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,6CAA6C;QAC7C,eAAM,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;QAErD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;YAE9G,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACtC,eAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;gBAClD,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAClD,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAClD,CAAC;YAED,eAAM,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QACjD,CAAC;QAED,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,eAAM,CAAC,YAAY,CAAC,0CAA0C,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,wCAAwC,CAAC,EAAE;gBACxE,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YACH,eAAM,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAC3C,eAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,eAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACtD,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACtE,eAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,MAAM,UAAU,GAAG;YACjB,KAAK;YACL,MAAM;YACN,QAAQ,EAAE,gBAAgB;YAC1B,IAAI,EAAE,GAAG,IAAI,OAAO;YACpB,IAAI,EAAE,WAAW;YACjB,wCAAwC;YACxC,OAAO;YACP,kBAAkB;YAClB,qBAAqB;SACtB,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAE9B,eAAM,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;YAEtD,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAElC,eAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAAC;YACpD,eAAM,CAAC,OAAO,EAAE,CAAC;YACjB,eAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAChD,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACrC,eAAM,CAAC,KAAK,CAAC;gBACX,SAAS,EAAE,oBAAoB,IAAI,EAAE;gBACrC,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,qBAAqB;gBAClC,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;YAEH,eAAM,CAAC,OAAO,EAAE,CAAC;YACjB,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAClC,eAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC7D,eAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC1D,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC/D,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACtC,eAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACnE,eAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACnD,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAC;YAC/E,eAAM,CAAC,IAAI,CAAC,QAAQ,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;QAEhF,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;YACjE,eAAM,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACxD,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,eAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACrC,eAAM,CAAC,KAAK,CAAC;gBACX,SAAS,EAAE,oBAAoB,IAAI,EAAE;gBACrC,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,qBAAqB;aACnC,CAAC,CAAC;YACH,eAAM,CAAC,OAAO,EAAE,CAAC;YAEjB,sCAAsC;YACtC,MAAM,WAAW,GAAG,IAAA,eAAK,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAEhD,2BAA2B;YAC3B,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,gBAAgB;YAChB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC9B,eAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,eAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAEhC,IAAI,CAAC;oBACH,MAAM,IAAA,eAAK,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBAClD,eAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,MAAM,WAAW,CAAC;QACpB,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,eAAM,CAAC,KAAK,CAAC,qCAAsC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9E,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,eAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAClC,eAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,eAAM,CAAC,IAAI,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;QAC5D,eAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACvE,eAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAEhE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;AAKtD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAC;AAKtD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgJrE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -42,49 +42,52 @@ async function initCommand(options) {
|
|
|
42
42
|
]);
|
|
43
43
|
projectName = answers.projectName;
|
|
44
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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
45
|
+
// Prompt for missing options in interactive mode
|
|
46
|
+
const prompts = [];
|
|
47
|
+
if (!template) {
|
|
48
|
+
prompts.push({
|
|
49
|
+
type: 'list',
|
|
50
|
+
name: 'template',
|
|
51
|
+
message: 'Select a template:',
|
|
52
|
+
choices: [
|
|
53
|
+
{ name: 'Basic (Simple counter)', value: 'basic' },
|
|
54
|
+
{ name: 'ERC-20 Token', value: 'erc20' },
|
|
55
|
+
{ name: 'ERC-721 NFT', value: 'erc721' },
|
|
56
|
+
{ name: 'DeFi Protocol', value: 'defi' },
|
|
57
|
+
],
|
|
58
|
+
default: 'basic',
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (!options.rustOnly && !options.solidityOnly) {
|
|
62
|
+
prompts.push({
|
|
63
|
+
type: 'checkbox',
|
|
64
|
+
name: 'languages',
|
|
65
|
+
message: 'Select languages to include:',
|
|
66
|
+
choices: [
|
|
67
|
+
{ name: 'Rust (Stylus)', value: 'rust', checked: true },
|
|
68
|
+
{ name: 'Solidity (for comparison)', value: 'solidity', checked: true },
|
|
69
|
+
],
|
|
70
|
+
validate: (input) => {
|
|
71
|
+
if (input.length === 0)
|
|
72
|
+
return 'Select at least one language';
|
|
73
|
+
return true;
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (prompts.length > 0) {
|
|
78
|
+
const answers = await inquirer_1.default.prompt(prompts);
|
|
79
|
+
if (answers.template) {
|
|
80
|
+
template = answers.template;
|
|
76
81
|
}
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
template = answers.template;
|
|
81
|
-
}
|
|
82
|
-
if (answers.languages) {
|
|
83
|
-
options.rustOnly = answers.languages.includes('rust') && !answers.languages.includes('solidity');
|
|
84
|
-
options.solidityOnly = answers.languages.includes('solidity') && !answers.languages.includes('rust');
|
|
85
|
-
}
|
|
82
|
+
if (answers.languages) {
|
|
83
|
+
options.rustOnly = answers.languages.includes('rust') && !answers.languages.includes('solidity');
|
|
84
|
+
options.solidityOnly = answers.languages.includes('solidity') && !answers.languages.includes('rust');
|
|
86
85
|
}
|
|
87
86
|
}
|
|
87
|
+
// Set default template if still not specified
|
|
88
|
+
if (!template) {
|
|
89
|
+
template = 'basic';
|
|
90
|
+
}
|
|
88
91
|
const hasRust = !options.solidityOnly;
|
|
89
92
|
const hasSolidity = !options.rustOnly;
|
|
90
93
|
logger_1.logger.startSpinner('Creating project structure...');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AASA,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ export declare class GasProfiler {
|
|
|
3
3
|
private provider;
|
|
4
4
|
private signer;
|
|
5
5
|
constructor(rpcUrl: string, privateKey?: string);
|
|
6
|
-
profileContract(compilation: CompilationResult,
|
|
6
|
+
profileContract(compilation: CompilationResult, _testCases?: Map<string, any[][]>): Promise<GasProfile>;
|
|
7
7
|
private estimateGasProfile;
|
|
8
|
-
private
|
|
9
|
-
private
|
|
8
|
+
private estimateDeploymentGas;
|
|
9
|
+
private estimateFunctionGas;
|
|
10
10
|
estimateGas(contractAddress: string, abi: any[], functionName: string, args: any[]): Promise<number>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=gas-profiler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas-profiler.d.ts","sourceRoot":"","sources":["../../src/profiler/gas-profiler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"gas-profiler.d.ts","sourceRoot":"","sources":["../../src/profiler/gas-profiler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEzD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAUzC,eAAe,CACnB,WAAW,EAAE,iBAAiB,EAC9B,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,GAChC,OAAO,CAAC,UAAU,CAAC;IA8CtB,OAAO,CAAC,kBAAkB;IA8C1B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,mBAAmB;IAqBrB,WAAW,CACf,eAAe,EAAE,MAAM,EACvB,GAAG,EAAE,GAAG,EAAE,EACV,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,MAAM,CAAC;CAOnB"}
|