create-stylus 1.1.0 → 1.1.1
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/package.json +1 -1
- package/templates/base/.gitignore.template.mjs +2 -2
- package/templates/base/dist/cli.js +683 -0
- package/templates/base/dist/cli.js.map +1 -0
- package/templates/base/package.json +1 -0
- package/templates/base/packages/nextjs/.gitignore.template.mjs +3 -3
- package/templates/base/packages/nextjs/scaffold.config.ts +2 -2
- package/templates/base/packages/stylus/.env.example +5 -2
- package/templates/base/packages/stylus/.gitignore.template.mjs +3 -3
- package/templates/base/packages/stylus/package.json +0 -1
- package/templates/base/packages/stylus/scripts/deploy.ts +29 -12
- package/templates/base/packages/stylus/scripts/deploy_contract.ts +34 -43
- package/templates/base/packages/stylus/scripts/deploy_wrapper.ts +4 -44
- package/templates/base/packages/stylus/scripts/export_abi.ts +13 -13
- package/templates/base/packages/stylus/scripts/utils/command.ts +18 -31
- package/templates/base/packages/stylus/scripts/utils/contract.ts +23 -14
- package/templates/base/packages/stylus/scripts/utils/deployment.ts +169 -45
- package/templates/base/packages/stylus/scripts/utils/network.ts +27 -7
- package/templates/base/packages/stylus/scripts/utils/type.ts +13 -10
- package/templates/base/packages/stylus/your-contract/Cargo.lock +35 -18
- package/templates/base/packages/stylus/your-contract/Cargo.toml +3 -1
- package/templates/base/packages/stylus/your-contract/src/lib.rs +51 -21
- package/templates/base/readme.md +208 -43
- package/templates/base/yarn.lock +1 -2
- package/templates/base/packages/stylus/README.md +0 -263
- package/templates/base/packages/stylus/header.png +0 -0
- package/templates/base/packages/stylus/scripts/deploy_all_contracts.ts +0 -59
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sources":["../src/types.ts","../src/utils/consts.ts","../src/utils/extensions-tree.ts","../src/utils/find-files-recursively.ts","../src/utils/merge-package-json.ts","../src/utils/link.ts","../src/tasks/copy-template-files.ts","../src/tasks/create-project-directory.ts","../src/tasks/install-packages.ts","../src/tasks/create-first-git-commit.ts","../src/tasks/prettier-format.ts","../src/utils/render-outro-message.ts","../src/main.ts","../src/utils/parse-arguments-into-options.ts","../src/config.ts","../src/utils/prompt-for-missing-options.ts","../src/utils/render-intro-message.ts","../src/cli.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["link"],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"stylus:format": "yarn workspace @ss/stylus format",
|
|
24
24
|
"stylus:test": "yarn workspace @ss/stylus test",
|
|
25
25
|
"test": "yarn stylus:test",
|
|
26
|
+
"test:networks": "yarn workspace @ss/stylus test:networks",
|
|
26
27
|
"format": "yarn next:format",
|
|
27
28
|
"start": "yarn workspace @ss/nextjs dev",
|
|
28
29
|
"next:lint": "yarn workspace @ss/nextjs lint",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const contents = () =>
|
|
1
|
+
const contents = () =>
|
|
2
2
|
`# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
|
3
3
|
|
|
4
4
|
# dependencies
|
|
@@ -37,6 +37,6 @@ yarn-error.log*
|
|
|
37
37
|
# typescript
|
|
38
38
|
*.tsbuildinfo
|
|
39
39
|
|
|
40
|
-
ipfs-upload.config.json
|
|
40
|
+
ipfs-upload.config.json`
|
|
41
41
|
|
|
42
|
-
export default contents;
|
|
42
|
+
export default contents;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import { arbitrumNitro } from "./utils/scaffold-stylus/chain";
|
|
4
4
|
import * as chains from "viem/chains";
|
|
5
5
|
|
|
@@ -17,7 +17,7 @@ export const DEFAULT_ALCHEMY_API_KEY = "oKxs-03sij-U_N0iOlrSsZFr29-IqbuF";
|
|
|
17
17
|
|
|
18
18
|
const scaffoldConfig = {
|
|
19
19
|
// The networks on which your DApp is live
|
|
20
|
-
targetNetworks: [
|
|
20
|
+
targetNetworks: [arbitrumNitro],
|
|
21
21
|
|
|
22
22
|
// The interval at which your front-end polls the RPC servers for new data
|
|
23
23
|
// it has no effect if you only target the local network (default is 4000)
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
DEPLOYMENT_DIR=
|
|
2
2
|
|
|
3
3
|
## devnet
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
# ACCOUNT_ADDRESS=
|
|
5
|
+
# RPC_URL=
|
|
6
|
+
# PRIVATE_KEY=
|
|
6
7
|
|
|
7
8
|
## sepolia
|
|
9
|
+
ACCOUNT_ADDRESS_SEPOLIA=
|
|
8
10
|
RPC_URL_SEPOLIA=
|
|
9
11
|
PRIVATE_KEY_SEPOLIA=
|
|
10
12
|
|
|
11
13
|
## mainnet
|
|
14
|
+
ACCOUNT_ADDRESS_MAINNET=
|
|
12
15
|
RPC_URL_MAINNET=
|
|
13
16
|
PRIVATE_KEY_MAINNET=
|
|
@@ -1,29 +1,46 @@
|
|
|
1
1
|
import deployStylusContract from "./deploy_contract";
|
|
2
|
-
import {
|
|
3
|
-
getDeploymentConfig,
|
|
4
|
-
printDeployedAddresses,
|
|
5
|
-
} from "./utils/";
|
|
2
|
+
import { getDeploymentConfig, printDeployedAddresses } from "./utils/";
|
|
6
3
|
import { DeployOptions } from "./utils/type";
|
|
4
|
+
import { config as dotenvConfig } from "dotenv";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import * as fs from "fs";
|
|
7
|
+
|
|
8
|
+
const envPath = path.resolve(__dirname, "../.env");
|
|
9
|
+
if (fs.existsSync(envPath)) {
|
|
10
|
+
dotenvConfig({ path: envPath });
|
|
11
|
+
}
|
|
7
12
|
|
|
8
13
|
/**
|
|
9
14
|
* Define your deployment logic here
|
|
10
15
|
*/
|
|
11
16
|
export default async function deployScript(deployOptions: DeployOptions) {
|
|
17
|
+
const config = getDeploymentConfig(deployOptions);
|
|
18
|
+
|
|
19
|
+
console.log(`📡 Using endpoint: ${config.chain?.rpcUrl}`);
|
|
20
|
+
if (config.chain) {
|
|
21
|
+
console.log(`🌐 Network: ${config.chain?.name}`);
|
|
22
|
+
console.log(`🔗 Chain ID: ${config.chain?.id}`);
|
|
23
|
+
}
|
|
24
|
+
console.log(`🔑 Using private key: ${config.privateKey.substring(0, 10)}...`);
|
|
25
|
+
console.log(`📁 Deployment directory: ${config.deploymentDir}`);
|
|
26
|
+
console.log(`\n`);
|
|
27
|
+
|
|
12
28
|
// Deploy a single contract
|
|
13
29
|
await deployStylusContract({
|
|
14
30
|
contract: "your-contract",
|
|
31
|
+
constructorArgs: [config.deployerAddress!],
|
|
15
32
|
...deployOptions,
|
|
16
33
|
});
|
|
17
34
|
|
|
18
|
-
|
|
19
|
-
await deployStylusContract({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
35
|
+
/// Deploy your contract with a custom name
|
|
36
|
+
// await deployStylusContract({
|
|
37
|
+
// contract: "your-contract",
|
|
38
|
+
// constructorArgs: [config.deployerAddress],
|
|
39
|
+
// name: "my-contract",
|
|
40
|
+
// ...deployOptions,
|
|
41
|
+
// });
|
|
24
42
|
|
|
25
43
|
// Print the deployed addresses
|
|
26
|
-
const config = getDeploymentConfig(deployOptions);
|
|
27
44
|
console.log("\n\n");
|
|
28
|
-
printDeployedAddresses(config.deploymentDir);
|
|
45
|
+
printDeployedAddresses(config.deploymentDir, config.chain?.id);
|
|
29
46
|
}
|
|
@@ -2,17 +2,12 @@ import {
|
|
|
2
2
|
getDeploymentConfig,
|
|
3
3
|
ensureDeploymentDirectory,
|
|
4
4
|
executeCommand,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
saveDeployedAddress,
|
|
8
|
-
clearDeploymentDir,
|
|
5
|
+
extractDeploymentInfo,
|
|
6
|
+
saveDeployment,
|
|
9
7
|
// estimateGasPrice,
|
|
10
8
|
} from "./utils/";
|
|
11
9
|
import { exportStylusAbi } from "./export_abi";
|
|
12
|
-
import {
|
|
13
|
-
DeployOptions,
|
|
14
|
-
AdditionalOptions,
|
|
15
|
-
} from "./utils/type";
|
|
10
|
+
import { DeployOptions } from "./utils/type";
|
|
16
11
|
import { buildDeployCommand } from "./utils/command";
|
|
17
12
|
|
|
18
13
|
/**
|
|
@@ -23,34 +18,14 @@ import { buildDeployCommand } from "./utils/command";
|
|
|
23
18
|
*/
|
|
24
19
|
export default async function deployStylusContract(
|
|
25
20
|
deployOptions: DeployOptions,
|
|
26
|
-
additionalOptions: AdditionalOptions = {
|
|
27
|
-
isSingleCommand: true,
|
|
28
|
-
shouldClearDeploymentDir: false,
|
|
29
|
-
},
|
|
30
21
|
) {
|
|
31
22
|
console.log(`\n🚀 Deploying contract in: ${deployOptions.contract}`);
|
|
32
23
|
|
|
33
24
|
const config = getDeploymentConfig(deployOptions);
|
|
34
|
-
|
|
35
|
-
clearDeploymentDir();
|
|
36
|
-
ensureDeploymentDirectory(config.deploymentDir);
|
|
37
|
-
}
|
|
25
|
+
ensureDeploymentDirectory(config.deploymentDir);
|
|
38
26
|
|
|
39
27
|
console.log(`📄 Contract name: ${config.contractName}`);
|
|
40
28
|
|
|
41
|
-
config.contractAddress = generateContractAddress();
|
|
42
|
-
|
|
43
|
-
if (additionalOptions.isSingleCommand) {
|
|
44
|
-
console.log(`📡 Using endpoint: ${config.chain?.rpcUrl}`);
|
|
45
|
-
if (config.chain) {
|
|
46
|
-
console.log(`🌐 Network specified: ${config.chain?.name}`);
|
|
47
|
-
}
|
|
48
|
-
console.log(
|
|
49
|
-
`🔑 Using private key: ${config.privateKey.substring(0, 10)}...`,
|
|
50
|
-
);
|
|
51
|
-
console.log(`📁 Deployment directory: ${config.deploymentDir}`);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
29
|
try {
|
|
55
30
|
// Step 1: Deploy the contract using cargo stylus with contract address
|
|
56
31
|
// --contract-address='${config.contractAddress}' deactivated for now as it's not working. Issue https://github.com/OffchainLabs/cargo-stylus/issues/171
|
|
@@ -63,31 +38,47 @@ export default async function deployStylusContract(
|
|
|
63
38
|
|
|
64
39
|
if (deployOptions.estimateGas) {
|
|
65
40
|
console.log(deployOutput);
|
|
66
|
-
|
|
41
|
+
return;
|
|
67
42
|
}
|
|
68
43
|
|
|
69
44
|
// Extract the actual deployed address from the output
|
|
70
|
-
const
|
|
71
|
-
if (
|
|
72
|
-
|
|
73
|
-
console.log(
|
|
45
|
+
const deploymentInfo = extractDeploymentInfo(deployOutput);
|
|
46
|
+
if (deploymentInfo) {
|
|
47
|
+
console.log(`📋 Contract deployed at address: ${deploymentInfo.address}`);
|
|
48
|
+
console.log("Transaction hash: ", deploymentInfo.txHash);
|
|
74
49
|
} else {
|
|
75
|
-
|
|
50
|
+
throw new Error("Failed to extract deployed address");
|
|
76
51
|
}
|
|
77
52
|
|
|
78
|
-
// Save the deployed address to
|
|
79
|
-
|
|
53
|
+
// Save the deployed address to chain-specific deployment file
|
|
54
|
+
saveDeployment(config, deploymentInfo);
|
|
80
55
|
|
|
81
56
|
// Step 2: Export ABI using the shared function
|
|
82
|
-
await exportStylusAbi(
|
|
57
|
+
await exportStylusAbi(
|
|
58
|
+
config.contractFolder,
|
|
59
|
+
config.contractName,
|
|
60
|
+
false,
|
|
61
|
+
config.chain?.id,
|
|
62
|
+
);
|
|
83
63
|
|
|
84
|
-
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
|
|
64
|
+
// Step 3: Verify the contract
|
|
65
|
+
if (deployOptions.verify) {
|
|
66
|
+
try {
|
|
67
|
+
const output = await executeCommand(
|
|
68
|
+
`cargo stylus verify --endpoint=${config.chain?.rpcUrl} --deployment-tx=${deploymentInfo.txHash}`,
|
|
69
|
+
deployOptions.contract!,
|
|
70
|
+
"Verifying contract with cargo stylus",
|
|
71
|
+
);
|
|
72
|
+
console.log(output);
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.error(
|
|
75
|
+
`❌ Verification failed in: ${deployOptions.contract}`,
|
|
76
|
+
error,
|
|
77
|
+
);
|
|
78
|
+
}
|
|
88
79
|
}
|
|
89
80
|
} catch (error) {
|
|
90
81
|
console.error(`❌ Deployment failed in: ${deployOptions.contract}`, error);
|
|
91
82
|
process.exit(1);
|
|
92
83
|
}
|
|
93
|
-
}
|
|
84
|
+
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import deployStylusContract from "./deploy_contract";
|
|
3
1
|
import { hideBin } from "yargs/helpers";
|
|
4
2
|
import yargs from "yargs";
|
|
5
3
|
import { DeployCommandOptions, DeployOptions } from "./utils/type";
|
|
6
|
-
import deployAllStylusContracts from "./deploy_all_contracts";
|
|
7
4
|
import deployScript from "./deploy";
|
|
8
5
|
|
|
9
6
|
/**
|
|
@@ -14,24 +11,6 @@ if (require.main === module) {
|
|
|
14
11
|
// Use yargs for argument parsing
|
|
15
12
|
const argv = yargs(hideBin(process.argv))
|
|
16
13
|
.usage("Usage: yarn deploy --name <contractName> --network <network>")
|
|
17
|
-
.option("all", {
|
|
18
|
-
alias: "a",
|
|
19
|
-
describe: "Deploy all contracts in the stylus folder",
|
|
20
|
-
type: "boolean",
|
|
21
|
-
demandOption: false,
|
|
22
|
-
})
|
|
23
|
-
.option("contract", {
|
|
24
|
-
alias: "c",
|
|
25
|
-
describe: "Name of the contract folder",
|
|
26
|
-
type: "string",
|
|
27
|
-
demandOption: false,
|
|
28
|
-
})
|
|
29
|
-
.option("name", {
|
|
30
|
-
alias: "n",
|
|
31
|
-
describe: "Name of the contract",
|
|
32
|
-
type: "string",
|
|
33
|
-
demandOption: false,
|
|
34
|
-
})
|
|
35
14
|
.option("network", {
|
|
36
15
|
alias: "net",
|
|
37
16
|
describe: "Network to deploy to",
|
|
@@ -53,27 +32,8 @@ if (require.main === module) {
|
|
|
53
32
|
.help()
|
|
54
33
|
.parseSync() as DeployCommandOptions;
|
|
55
34
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
});
|
|
61
|
-
} else if (argv.contract) {
|
|
62
|
-
if (!fs.existsSync(argv.contract)) {
|
|
63
|
-
console.error(`❌ Contract folder does not exist: ${argv.contract}`);
|
|
64
|
-
process.exit(1);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
deployStylusContract(argv as DeployOptions, {
|
|
68
|
-
shouldClearDeploymentDir: true,
|
|
69
|
-
}).catch((error) => {
|
|
70
|
-
console.error("Fatal error:", error);
|
|
71
|
-
process.exit(1);
|
|
72
|
-
});
|
|
73
|
-
} else {
|
|
74
|
-
deployScript(argv as DeployOptions).catch((error) => {
|
|
75
|
-
console.error("Fatal error:", error);
|
|
76
|
-
process.exit(1);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
35
|
+
deployScript(argv as DeployOptions).catch((error) => {
|
|
36
|
+
console.error("Fatal error:", error);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
});
|
|
79
39
|
}
|
|
@@ -11,21 +11,21 @@ import {
|
|
|
11
11
|
export async function exportStylusAbi(
|
|
12
12
|
contractFolder: string,
|
|
13
13
|
contractName: string,
|
|
14
|
-
|
|
14
|
+
isScript: boolean = true,
|
|
15
|
+
chainId?: string,
|
|
15
16
|
) {
|
|
16
17
|
console.log("📄 Starting Stylus ABI export...");
|
|
17
18
|
|
|
18
|
-
const config = getExportConfig(contractFolder, contractName);
|
|
19
|
+
const config = getExportConfig(contractFolder, contractName, chainId);
|
|
19
20
|
|
|
20
|
-
// If contractAddress is not set, error and exit
|
|
21
21
|
if (!config.contractAddress) {
|
|
22
22
|
console.error(
|
|
23
|
-
`❌ Contract address not found. Please deploy the contract first or ensure it is saved in ${
|
|
23
|
+
`❌ Contract address not found. Please deploy the contract first or ensure it is saved in a chain-specific deployment file in ${config.deploymentDir}`,
|
|
24
24
|
);
|
|
25
25
|
process.exit(1);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
if (
|
|
28
|
+
if (isScript) {
|
|
29
29
|
console.log(`📄 Contract name: ${config.contractName}`);
|
|
30
30
|
console.log(`📁 Deployment directory: ${config.deploymentDir}`);
|
|
31
31
|
console.log(`📍 Contract address: ${config.contractAddress}`);
|
|
@@ -33,7 +33,6 @@ export async function exportStylusAbi(
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
try {
|
|
36
|
-
// Ensure deployment directory exists
|
|
37
36
|
ensureDeploymentDirectory(config.deploymentDir);
|
|
38
37
|
|
|
39
38
|
// Export ABI
|
|
@@ -44,7 +43,6 @@ export async function exportStylusAbi(
|
|
|
44
43
|
`📄 ABI file location: ${config.deploymentDir}/${config.contractFolder}`,
|
|
45
44
|
);
|
|
46
45
|
|
|
47
|
-
// Verify the ABI file was created
|
|
48
46
|
const abiFilePath = path.resolve(
|
|
49
47
|
config.deploymentDir,
|
|
50
48
|
`${config.contractFolder}`,
|
|
@@ -58,11 +56,12 @@ export async function exportStylusAbi(
|
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
// do not Generate TypeScript ABI when called from yarn script
|
|
61
|
-
if (!
|
|
59
|
+
if (!isScript) {
|
|
62
60
|
await generateTsAbi(
|
|
63
61
|
abiFilePath,
|
|
64
62
|
config.contractName,
|
|
65
63
|
config.contractAddress,
|
|
64
|
+
config.txHash,
|
|
66
65
|
config.chainId,
|
|
67
66
|
);
|
|
68
67
|
}
|
|
@@ -72,7 +71,6 @@ export async function exportStylusAbi(
|
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
73
|
|
|
75
|
-
// Allow running this file directly
|
|
76
74
|
if (require.main === module) {
|
|
77
75
|
// Get contract folder from command line args, default to 'your-contract'
|
|
78
76
|
const contractFolder = process.argv[2] || "your-contract";
|
|
@@ -80,8 +78,10 @@ if (require.main === module) {
|
|
|
80
78
|
console.error(`❌ Contract folder does not exist: ${contractFolder}`);
|
|
81
79
|
process.exit(1);
|
|
82
80
|
}
|
|
83
|
-
exportStylusAbi(contractFolder, contractFolder).catch(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
exportStylusAbi(contractFolder, contractFolder).catch(
|
|
82
|
+
(error) => {
|
|
83
|
+
console.error("Fatal error:", error);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
},
|
|
86
|
+
);
|
|
87
87
|
}
|
|
@@ -6,24 +6,38 @@ export async function buildDeployCommand(
|
|
|
6
6
|
config: DeploymentConfig,
|
|
7
7
|
deployOptions: DeployOptions,
|
|
8
8
|
) {
|
|
9
|
-
|
|
9
|
+
let baseCommand = `cargo stylus deploy --endpoint='${config.chain?.rpcUrl}' --private-key='${config.privateKey}'`;
|
|
10
|
+
|
|
11
|
+
if (
|
|
12
|
+
deployOptions.constructorArgs &&
|
|
13
|
+
deployOptions.constructorArgs.length > 0
|
|
14
|
+
) {
|
|
15
|
+
baseCommand += ` --constructor-args='${deployOptions.constructorArgs.join(" ")}'`;
|
|
16
|
+
}
|
|
10
17
|
|
|
11
18
|
if (deployOptions.estimateGas) {
|
|
12
19
|
return `${baseCommand} --estimate-gas`;
|
|
13
20
|
}
|
|
14
21
|
|
|
22
|
+
if (!deployOptions.verify) {
|
|
23
|
+
baseCommand += ` --no-verify`;
|
|
24
|
+
}
|
|
25
|
+
|
|
15
26
|
if (deployOptions.maxFee) {
|
|
16
|
-
|
|
27
|
+
baseCommand += ` --max-fee-per-gas-gwei=${deployOptions.maxFee}`;
|
|
17
28
|
}
|
|
18
29
|
|
|
19
|
-
// const gasPrice = await estimateGasPrice(config);
|
|
20
30
|
return baseCommand;
|
|
21
31
|
}
|
|
22
32
|
|
|
23
33
|
export async function estimateGasPrice(
|
|
24
34
|
config: DeploymentConfig,
|
|
35
|
+
deployOptions: DeployOptions,
|
|
25
36
|
): Promise<string> {
|
|
26
|
-
|
|
37
|
+
let deployCommand = `cargo stylus deploy --endpoint='${config.chain?.rpcUrl}' --private-key='${config.privateKey}' --no-verify --estimate-gas `;
|
|
38
|
+
if (deployOptions.constructorArgs) {
|
|
39
|
+
deployCommand += ` --constructor-args='${deployOptions.constructorArgs.join(" ")}'`;
|
|
40
|
+
}
|
|
27
41
|
const deployOutput = await executeCommand(
|
|
28
42
|
deployCommand,
|
|
29
43
|
config.contractName,
|
|
@@ -88,33 +102,6 @@ export function executeCommand(
|
|
|
88
102
|
childProcess.on("close", (code: number | null) => {
|
|
89
103
|
if (code === 0) {
|
|
90
104
|
console.log(`\n✅ ${description} completed successfully!`);
|
|
91
|
-
// Print output starting from "project metadata hash computed on deployment" or error patterns, or all logs if not found
|
|
92
|
-
// if (outputLines.length > 0) {
|
|
93
|
-
// const metadataIndex = outputLines.findIndex((line) =>
|
|
94
|
-
// line.includes("project metadata hash computed on deployment"),
|
|
95
|
-
// );
|
|
96
|
-
// const errorIndex = outputLines.findIndex((line) =>
|
|
97
|
-
// line.includes("error["),
|
|
98
|
-
// );
|
|
99
|
-
|
|
100
|
-
// let startIndex = -1;
|
|
101
|
-
// if (metadataIndex >= 0) {
|
|
102
|
-
// startIndex = metadataIndex;
|
|
103
|
-
// } else if (errorIndex >= 0) {
|
|
104
|
-
// startIndex = errorIndex;
|
|
105
|
-
// }
|
|
106
|
-
|
|
107
|
-
// if (startIndex >= 0) {
|
|
108
|
-
// const linesToPrint = outputLines.slice(startIndex);
|
|
109
|
-
// linesToPrint.forEach((line) => {
|
|
110
|
-
// if (line.trim()) console.log(line);
|
|
111
|
-
// });
|
|
112
|
-
// } else {
|
|
113
|
-
// outputLines.forEach((line) => {
|
|
114
|
-
// if (line.trim()) console.log(line);
|
|
115
|
-
// });
|
|
116
|
-
// }
|
|
117
|
-
// }
|
|
118
105
|
resolve(output);
|
|
119
106
|
} else {
|
|
120
107
|
console.error(`\n❌ ${description} failed with exit code ${code}`);
|
|
@@ -3,8 +3,9 @@ import * as fs from "fs";
|
|
|
3
3
|
import { ethers } from "ethers";
|
|
4
4
|
import toml from "toml";
|
|
5
5
|
import prettier from "prettier";
|
|
6
|
-
import { ExportConfig } from "./type";
|
|
6
|
+
import { DeploymentData, ExportConfig } from "./type";
|
|
7
7
|
import { getContractDataFromDeployments } from "./deployment";
|
|
8
|
+
import { Address } from "viem";
|
|
8
9
|
|
|
9
10
|
export const generatedContractComment = `
|
|
10
11
|
/**
|
|
@@ -42,6 +43,7 @@ export function getContractNameFromCargoToml(contractFolder: string): string {
|
|
|
42
43
|
export function getExportConfig(
|
|
43
44
|
contractFolder?: string,
|
|
44
45
|
contractName?: string,
|
|
46
|
+
chainId?: string,
|
|
45
47
|
): ExportConfig {
|
|
46
48
|
if (!contractFolder) {
|
|
47
49
|
throw new Error("Contract folder is required");
|
|
@@ -53,10 +55,11 @@ export function getExportConfig(
|
|
|
53
55
|
const deploymentData = getContractDataFromDeployments(
|
|
54
56
|
deploymentDir,
|
|
55
57
|
contractName,
|
|
58
|
+
chainId,
|
|
56
59
|
);
|
|
57
60
|
if (!deploymentData) {
|
|
58
61
|
throw new Error(
|
|
59
|
-
`❌ Contract address for '${contractName}' not found in ${deploymentDir}
|
|
62
|
+
`❌ Contract address for '${contractName}' not found in any chain-specific deployment files in ${deploymentDir}. Please deploy the contract first.`,
|
|
60
63
|
);
|
|
61
64
|
}
|
|
62
65
|
|
|
@@ -64,7 +67,8 @@ export function getExportConfig(
|
|
|
64
67
|
contractFolder,
|
|
65
68
|
contractName,
|
|
66
69
|
deploymentDir,
|
|
67
|
-
contractAddress: deploymentData.address,
|
|
70
|
+
contractAddress: deploymentData.address as Address,
|
|
71
|
+
txHash: deploymentData.txHash,
|
|
68
72
|
chainId: deploymentData.chainId,
|
|
69
73
|
};
|
|
70
74
|
}
|
|
@@ -86,19 +90,28 @@ export function generateContractAddress(): string {
|
|
|
86
90
|
return wallet.address;
|
|
87
91
|
}
|
|
88
92
|
|
|
89
|
-
export function
|
|
90
|
-
|
|
93
|
+
export function extractDeploymentInfo(output: string): DeploymentData | null {
|
|
94
|
+
let result: DeploymentData | null = null;
|
|
91
95
|
const lines = output.split("\n");
|
|
92
96
|
for (const line of lines) {
|
|
93
97
|
if (line.includes("deployed code at address:")) {
|
|
94
|
-
//
|
|
98
|
+
// Extract the hex address directly
|
|
95
99
|
const hexMatch = line.match(/(0x[a-fA-F0-9]{40})/);
|
|
96
100
|
if (hexMatch && hexMatch[1]) {
|
|
97
|
-
|
|
101
|
+
result = { address: hexMatch[1] as Address, txHash: "" };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (line.includes("deployment tx hash:")) {
|
|
105
|
+
const txHashMatch = line.match(/(0x[a-fA-F0-9]{64})/);
|
|
106
|
+
if (txHashMatch && txHashMatch[1]) {
|
|
107
|
+
result = {
|
|
108
|
+
address: result?.address as Address,
|
|
109
|
+
txHash: txHashMatch[1],
|
|
110
|
+
};
|
|
98
111
|
}
|
|
99
112
|
}
|
|
100
113
|
}
|
|
101
|
-
return
|
|
114
|
+
return result;
|
|
102
115
|
}
|
|
103
116
|
|
|
104
117
|
export function extractGasPriceFromOutput(output: string): string | null {
|
|
@@ -109,7 +122,6 @@ export function extractGasPriceFromOutput(output: string): string | null {
|
|
|
109
122
|
// eslint-disable-next-line no-control-regex
|
|
110
123
|
const cleanLine = line.replace(/\x1b\[[0-9;]*m/g, "");
|
|
111
124
|
|
|
112
|
-
// Extract the value inside quotes after 'gas price:'
|
|
113
125
|
const match = cleanLine.match(/gas price:\s*"([^"]+)"/);
|
|
114
126
|
if (match && match[1]) {
|
|
115
127
|
return match[1];
|
|
@@ -123,6 +135,7 @@ export async function generateTsAbi(
|
|
|
123
135
|
abiFilePath: string,
|
|
124
136
|
contractName: string,
|
|
125
137
|
contractAddress: string,
|
|
138
|
+
txHash: string,
|
|
126
139
|
chainId: string,
|
|
127
140
|
) {
|
|
128
141
|
const TARGET_DIR = "../nextjs/contracts/";
|
|
@@ -134,9 +147,9 @@ export async function generateTsAbi(
|
|
|
134
147
|
const extractedAbi = lines.slice(3).join("\n");
|
|
135
148
|
const abiJson = JSON.parse(extractedAbi);
|
|
136
149
|
|
|
137
|
-
// Helper to generate the contract entry
|
|
138
150
|
const newContractEntry = {
|
|
139
151
|
address: contractAddress,
|
|
152
|
+
txHash: txHash,
|
|
140
153
|
abi: abiJson,
|
|
141
154
|
};
|
|
142
155
|
|
|
@@ -146,7 +159,6 @@ export async function generateTsAbi(
|
|
|
146
159
|
'import { GenericContractsDeclaration } from "~~/utils/scaffold-eth/contract";\n\n';
|
|
147
160
|
|
|
148
161
|
if (fs.existsSync(TARGET_FILE)) {
|
|
149
|
-
// Read and parse the existing file
|
|
150
162
|
const fileContent = fs.readFileSync(TARGET_FILE, "utf8");
|
|
151
163
|
// Extract the deployedContracts object using regex
|
|
152
164
|
const match = fileContent.match(
|
|
@@ -158,14 +170,11 @@ export async function generateTsAbi(
|
|
|
158
170
|
}
|
|
159
171
|
}
|
|
160
172
|
|
|
161
|
-
// Ensure the chainId exists
|
|
162
173
|
if (!deployedContractsObj[chainId]) {
|
|
163
174
|
deployedContractsObj[chainId] = {};
|
|
164
175
|
}
|
|
165
|
-
// Update or insert the contract entry
|
|
166
176
|
deployedContractsObj[chainId][contractName] = newContractEntry;
|
|
167
177
|
|
|
168
|
-
// Stringify the object for TypeScript output
|
|
169
178
|
const contractsString = JSON.stringify(deployedContractsObj, null, 2);
|
|
170
179
|
|
|
171
180
|
const output = `${fileHeader}const deployedContracts = ${contractsString} as const;\n\nexport default deployedContracts satisfies GenericContractsDeclaration;\n`;
|