diff --git a/packages/bitcoin/package.json b/packages/bitcoin/package.json index d3a24d46..b2988043 100644 --- a/packages/bitcoin/package.json +++ b/packages/bitcoin/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/bitcoin", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Mesh Bitcoin package", "main": "./dist/index.cjs", "browser": "./dist/index.js", diff --git a/packages/mesh-common/package.json b/packages/mesh-common/package.json index 308cb186..c353a19d 100644 --- a/packages/mesh-common/package.json +++ b/packages/mesh-common/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/common", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Contains constants, types and interfaces used across the SDK and different serialization libraries", "main": "./dist/index.cjs", "browser": "./dist/index.js", diff --git a/packages/mesh-contract/package.json b/packages/mesh-contract/package.json index 2453c2ae..5d9a8c4e 100644 --- a/packages/mesh-contract/package.json +++ b/packages/mesh-contract/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/contract", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "List of open-source smart contracts, complete with documentation, live demos, and end-to-end source code. https://meshjs.dev/smart-contracts", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -34,8 +34,8 @@ "typescript": "^5.3.3" }, "dependencies": { - "@meshsdk/common": "1.9.0-beta.89", - "@meshsdk/core": "1.9.0-beta.89" + "@meshsdk/common": "1.9.0-beta.90", + "@meshsdk/core": "1.9.0-beta.90" }, "prettier": "@meshsdk/configs/prettier", "publishConfig": { diff --git a/packages/mesh-core-csl/package.json b/packages/mesh-core-csl/package.json index a605b990..bb73f637 100644 --- a/packages/mesh-core-csl/package.json +++ b/packages/mesh-core-csl/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/core-csl", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Types and utilities functions between Mesh and cardano-serialization-lib", "main": "./dist/index.cjs", "module": "./dist/index.js", @@ -31,7 +31,7 @@ }, "devDependencies": { "@meshsdk/configs": "*", - "@meshsdk/provider": "1.9.0-beta.89", + "@meshsdk/provider": "1.9.0-beta.90", "@types/json-bigint": "^1.0.4", "eslint": "^8.57.0", "ts-jest": "^29.1.4", @@ -39,7 +39,7 @@ "typescript": "^5.3.3" }, "dependencies": { - "@meshsdk/common": "1.9.0-beta.89", + "@meshsdk/common": "1.9.0-beta.90", "@sidan-lab/whisky-js-browser": "^1.0.11", "@sidan-lab/whisky-js-nodejs": "^1.0.11", "@types/base32-encoding": "^1.0.2", diff --git a/packages/mesh-core-cst/package.json b/packages/mesh-core-cst/package.json index d98537eb..36a15125 100644 --- a/packages/mesh-core-cst/package.json +++ b/packages/mesh-core-cst/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/core-cst", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Types and utilities functions between Mesh and cardano-js-sdk", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -44,7 +44,7 @@ "@harmoniclabs/plutus-data": "1.2.4", "@harmoniclabs/uplc": "1.2.4", "@harmoniclabs/pair": "^1.0.0", - "@meshsdk/common": "1.9.0-beta.89", + "@meshsdk/common": "1.9.0-beta.90", "@types/base32-encoding": "^1.0.2", "base32-encoding": "^1.0.0", "bech32": "^2.0.0", diff --git a/packages/mesh-core/package.json b/packages/mesh-core/package.json index 012b3662..81889c0b 100644 --- a/packages/mesh-core/package.json +++ b/packages/mesh-core/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/core", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Mesh SDK Core - https://meshjs.dev/", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -33,12 +33,12 @@ "typescript": "^5.3.3" }, "dependencies": { - "@meshsdk/common": "1.9.0-beta.89", - "@meshsdk/core-cst": "1.9.0-beta.89", - "@meshsdk/provider": "1.9.0-beta.89", - "@meshsdk/react": "1.9.0-beta.89", - "@meshsdk/transaction": "1.9.0-beta.89", - "@meshsdk/wallet": "1.9.0-beta.89" + "@meshsdk/common": "1.9.0-beta.90", + "@meshsdk/core-cst": "1.9.0-beta.90", + "@meshsdk/provider": "1.9.0-beta.90", + "@meshsdk/react": "1.9.0-beta.90", + "@meshsdk/transaction": "1.9.0-beta.90", + "@meshsdk/wallet": "1.9.0-beta.90" }, "prettier": "@meshsdk/configs/prettier", "publishConfig": { diff --git a/packages/mesh-hydra/package.json b/packages/mesh-hydra/package.json index a2a88753..b68fc63e 100644 --- a/packages/mesh-hydra/package.json +++ b/packages/mesh-hydra/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/hydra", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Mesh Hydra package", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -27,9 +27,9 @@ "test": "jest" }, "dependencies": { - "@meshsdk/common": "1.9.0-beta.89", - "@meshsdk/core": "1.9.0-beta.89", - "@meshsdk/core-cst": "1.9.0-beta.89", + "@meshsdk/common": "1.9.0-beta.90", + "@meshsdk/core": "1.9.0-beta.90", + "@meshsdk/core-cst": "1.9.0-beta.90", "axios": "^1.7.2" }, "devDependencies": { diff --git a/packages/mesh-provider/package.json b/packages/mesh-provider/package.json index c557ca76..859b5b86 100644 --- a/packages/mesh-provider/package.json +++ b/packages/mesh-provider/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/provider", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Blockchain data providers - https://meshjs.dev/providers", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -35,9 +35,9 @@ "typescript": "^5.3.3" }, "dependencies": { - "@meshsdk/bitcoin": "1.9.0-beta.89", - "@meshsdk/common": "1.9.0-beta.89", - "@meshsdk/core-cst": "1.9.0-beta.89", + "@meshsdk/bitcoin": "1.9.0-beta.90", + "@meshsdk/common": "1.9.0-beta.90", + "@meshsdk/core-cst": "1.9.0-beta.90", "@utxorpc/sdk": "^0.6.7", "@utxorpc/spec": "^0.16.0", "axios": "^1.7.2", diff --git a/packages/mesh-react/package.json b/packages/mesh-react/package.json index 54d20ae1..98f5e411 100644 --- a/packages/mesh-react/package.json +++ b/packages/mesh-react/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/react", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "React component library - https://meshjs.dev/react", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -30,10 +30,10 @@ }, "dependencies": { "@cardananium/cardano-peer-connect": "^1.2.19", - "@meshsdk/bitcoin": "1.9.0-beta.89", - "@meshsdk/common": "1.9.0-beta.89", - "@meshsdk/transaction": "1.9.0-beta.89", - "@meshsdk/wallet": "1.9.0-beta.89", + "@meshsdk/bitcoin": "1.9.0-beta.90", + "@meshsdk/common": "1.9.0-beta.90", + "@meshsdk/transaction": "1.9.0-beta.90", + "@meshsdk/wallet": "1.9.0-beta.90", "@meshsdk/web3-sdk": "0.0.50", "@radix-ui/react-dialog": "^1.1.2", "@radix-ui/react-dropdown-menu": "^2.1.2", diff --git a/packages/mesh-svelte/package.json b/packages/mesh-svelte/package.json index 326e339f..6ab453b3 100644 --- a/packages/mesh-svelte/package.json +++ b/packages/mesh-svelte/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/svelte", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Svelte component library - https://meshjs.dev/svelte", "type": "module", "exports": { @@ -26,7 +26,7 @@ "dev": "vite dev" }, "dependencies": { - "@meshsdk/core": "1.9.0-beta.89", + "@meshsdk/core": "1.9.0-beta.90", "bits-ui": "1.0.0-next.65" }, "devDependencies": { diff --git a/packages/mesh-transaction/package.json b/packages/mesh-transaction/package.json index eac786bf..c7f225e2 100644 --- a/packages/mesh-transaction/package.json +++ b/packages/mesh-transaction/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/transaction", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Transactions - https://meshjs.dev/apis/transaction", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -35,8 +35,8 @@ "typescript": "^5.3.3" }, "dependencies": { - "@meshsdk/common": "1.9.0-beta.89", - "@meshsdk/core-cst": "1.9.0-beta.89", + "@meshsdk/common": "1.9.0-beta.90", + "@meshsdk/core-cst": "1.9.0-beta.90", "@cardano-sdk/core": "^0.45.5", "@cardano-sdk/util": "^0.15.5", "@cardano-sdk/input-selection": "^0.13.33", diff --git a/packages/mesh-wallet/package.json b/packages/mesh-wallet/package.json index 97950d16..4913987d 100644 --- a/packages/mesh-wallet/package.json +++ b/packages/mesh-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/wallet", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Wallets - https://meshjs.dev/apis/wallets", "main": "./dist/index.cjs", "browser": "./dist/index.js", @@ -35,9 +35,9 @@ "typescript": "^5.3.3" }, "dependencies": { - "@meshsdk/common": "1.9.0-beta.89", - "@meshsdk/core-cst": "1.9.0-beta.89", - "@meshsdk/transaction": "1.9.0-beta.89", + "@meshsdk/common": "1.9.0-beta.90", + "@meshsdk/core-cst": "1.9.0-beta.90", + "@meshsdk/transaction": "1.9.0-beta.90", "@simplewebauthn/browser": "^13.0.0" }, "prettier": "@meshsdk/configs/prettier", diff --git a/packages/midnight-contracts-wizard/.npmignore b/packages/midnight-contracts-wizard/.npmignore index 38a35753..81a88799 100644 --- a/packages/midnight-contracts-wizard/.npmignore +++ b/packages/midnight-contracts-wizard/.npmignore @@ -1,6 +1,5 @@ # Source files src/ -contracts/ # Development files jest.config.ts diff --git a/packages/midnight-contracts-wizard/package.json b/packages/midnight-contracts-wizard/package.json index 0f8aa849..6ce1ffe3 100644 --- a/packages/midnight-contracts-wizard/package.json +++ b/packages/midnight-contracts-wizard/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/midnight-contracts-wizard", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Create a new Midnight contracts project with selected smart contracts", "main": "dist/index.js", "bin": { @@ -50,6 +50,12 @@ "engines": { "node": ">=18.0.0" }, + "files": [ + "dist", + "contracts", + "LICENSE", + "README.md" + ], "repository": { "type": "git", "url": "https://github.com/MeshJS/mesh.git", diff --git a/packages/midnight-contracts-wizard/src/index.ts b/packages/midnight-contracts-wizard/src/index.ts index 67af8076..22d7f525 100644 --- a/packages/midnight-contracts-wizard/src/index.ts +++ b/packages/midnight-contracts-wizard/src/index.ts @@ -250,13 +250,18 @@ async function createProject( if (!contract) continue; for (const filePath of contract.files) { // Get the correct path to contracts directory - const currentDir = path.dirname(process.argv[1] || __filename); - const sourcePath = path.join(currentDir, "..", filePath); + const packageRoot = path.resolve(__dirname, ".."); + const sourcePath = path.join(packageRoot, filePath); const destPath = path.join(projectDir, filePath); if (await fs.pathExists(sourcePath)) { await fs.ensureDir(path.dirname(destPath)); await fs.copy(sourcePath, destPath); + } else { + console.error( + chalk.red(`Error: Contract file not found: ${sourcePath}`), + ); + throw new Error(`Contract file not found: ${sourcePath}`); } } } @@ -355,6 +360,84 @@ async function createTsConfig(projectDir: string): Promise { ); } +function generateManagedStructure(selectedContracts: string[]): string { + const managedDirs: string[] = []; + + for (const contractKey of selectedContracts) { + const contract = contracts[contractKey]; + if (!contract) continue; + + for (const filePath of contract.files) { + const fileName = path.basename(filePath, ".compact"); + managedDirs.push(fileName); + } + } + + if (managedDirs.length === 0) { + return "src/managed/\n└── (compiled contracts will appear here)"; + } + + const structure = managedDirs + .map((dir, index) => { + const isLast = index === managedDirs.length - 1; + const prefix = isLast ? "└──" : "├──"; + const indent = isLast ? " " : "│ "; + + return `${prefix} ${dir}/ # Compiled ${dir} contract +${indent}├── compiler/ # Compilation artifacts +${indent}├── contract/ # Contract bytecode +${indent}├── keys/ # Cryptographic keys +${indent}└── zkir/ # ZK proof system files`; + }) + .join("\n"); + + return `src/managed/\n${structure}`; +} + +function generateProjectStructure( + projectName: string, + selectedContracts: string[], +): string { + const contractFiles: string[] = []; + + for (const contractKey of selectedContracts) { + const contract = contracts[contractKey]; + if (!contract) continue; + + for (const filePath of contract.files) { + contractFiles.push(filePath); + } + } + + if (contractFiles.length === 0) { + return `${projectName}/ +├── contracts/ # Source contract files (.compact) +├── src/ +│ ├── managed/ # Compiled contracts (after compact compile) +│ └── index.ts # Your application code +└── package.json # Dependencies and scripts`; + } + + const contractsStructure = contractFiles + .map((file, index) => { + const isLast = index === contractFiles.length - 1; + const prefix = isLast ? "└──" : "├──"; + const relativePath = file.startsWith("contracts/") + ? file.substring("contracts/".length) + : file; + return `${prefix} ${relativePath}`; + }) + .join("\n│ "); + + return `${projectName}/ +├── contracts/ # Source contract files (.compact) +│ ${contractsStructure} +├── src/ +│ ├── managed/ # Compiled contracts (after compact compile) +│ └── index.ts # Your application code +└── package.json # Dependencies and scripts`; +} + async function createReadme( projectDir: string, projectName: string, @@ -367,6 +450,11 @@ async function createReadme( const compileCommands = generateCompileCommands(selectedContracts); const compileCommandsText = compileCommands.join("\n\n"); + const managedStructure = generateManagedStructure(selectedContracts); + const projectStructure = generateProjectStructure( + projectName, + selectedContracts, + ); const readme = `# Midnight Contracts Wizard @@ -393,17 +481,7 @@ ${compileCommandsText} ### What gets generated after compilation: \`\`\` -src/managed/ -├── tokenization/ # Compiled tokenization contract -│ ├── compiler/ # Compilation artifacts -│ ├── contract/ # Contract bytecode -│ ├── keys/ # Cryptographic keys -│ └── zkir/ # ZK proof system files -└── TokenizationLibrary/ # Compiled library - ├── compiler/ - ├── contract/ - ├── keys/ - └── zkir/ +${managedStructure} \`\`\` ## What's Included @@ -421,12 +499,7 @@ src/managed/ ## Project Structure \`\`\` -${projectName}/ -├── contracts/ # Source contract files (.compact) -├── src/ -│ ├── managed/ # Compiled contracts (after compact compile) -│ └── index.ts # Your application code -└── package.json # Dependencies and scripts +${projectStructure} \`\`\` --- diff --git a/packages/midnight-setup/package.json b/packages/midnight-setup/package.json index 7473df0d..34992b9c 100644 --- a/packages/midnight-setup/package.json +++ b/packages/midnight-setup/package.json @@ -1,6 +1,6 @@ { "name": "@meshsdk/midnight-setup", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "description": "Midnight Network integration SDK for MeshSDK - https://meshjs.dev/midnight", "main": "./dist/index.cjs", "browser": "./dist/index.js", diff --git a/scripts/mesh-cli/package.json b/scripts/mesh-cli/package.json index 3d53044d..cd74cdb1 100644 --- a/scripts/mesh-cli/package.json +++ b/scripts/mesh-cli/package.json @@ -3,7 +3,7 @@ "description": "A quick and easy way to bootstrap your Web3 app using Mesh.", "homepage": "https://meshjs.dev", "author": "MeshJS", - "version": "1.9.0-beta.89", + "version": "1.9.0-beta.90", "license": "Apache-2.0", "type": "module", "main": "./dist/index.cjs",