create-mn-app 0.3.6 → 0.3.8
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/bin/create-midnight-app.js +0 -0
- package/dist/installers/wallet-generator.js +2 -2
- package/dist/utils/setup-guide.d.ts.map +1 -1
- package/dist/utils/setup-guide.js +3 -4
- package/dist/utils/setup-guide.js.map +1 -1
- package/package.json +1 -1
- package/templates/hello-world/README.md.template +6 -6
- package/templates/hello-world/contracts/hello-world.compact.template +1 -1
- package/templates/hello-world/package.json.template +1 -1
- package/templates/hello-world/src/check-balance.ts.template +7 -16
- package/templates/hello-world/src/cli.ts.template +2 -5
- package/templates/hello-world/src/deploy.ts.template +3 -6
- package/templates/hello-world/src/providers/midnight-providers.ts.template +4 -0
- package/templates/hello-world/src/utils/environment.ts.template +33 -10
|
File without changes
|
|
@@ -32,7 +32,7 @@ class WalletGenerator {
|
|
|
32
32
|
# Generated on ${new Date().toISOString()}
|
|
33
33
|
|
|
34
34
|
# Network Configuration
|
|
35
|
-
MIDNIGHT_NETWORK=
|
|
35
|
+
MIDNIGHT_NETWORK=preprod
|
|
36
36
|
PROOF_SERVER_URL=http://127.0.0.1:6300
|
|
37
37
|
|
|
38
38
|
# Wallet Configuration (KEEP PRIVATE!)
|
|
@@ -57,7 +57,7 @@ AUTO_START_PROOF_SERVER=true
|
|
|
57
57
|
# Copy this file to .env and fill in your values
|
|
58
58
|
|
|
59
59
|
# Network Configuration
|
|
60
|
-
MIDNIGHT_NETWORK=
|
|
60
|
+
MIDNIGHT_NETWORK=preprod
|
|
61
61
|
PROOF_SERVER_URL=http://127.0.0.1:6300
|
|
62
62
|
|
|
63
63
|
# Wallet Configuration (KEEP PRIVATE!)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-guide.d.ts","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B,IAAI;IAYP;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"setup-guide.d.ts","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B,IAAI;IAYP;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IA6DzC;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;CAY3D"}
|
|
@@ -59,16 +59,15 @@ class SetupGuide {
|
|
|
59
59
|
console.log();
|
|
60
60
|
console.log(chalk_1.default.bold("[" + chalk_1.default.magenta("i") + "] Proof Server\n"));
|
|
61
61
|
console.log(chalk_1.default.gray(" $ ") +
|
|
62
|
-
chalk_1.default.cyan("docker run -p 6300:6300
|
|
62
|
+
chalk_1.default.cyan("docker run -p 6300:6300 midnightntwrk/proof-server -- 'midnight-proof-server -v'"));
|
|
63
63
|
console.log(chalk_1.default.gray(" keep this terminal running"));
|
|
64
64
|
console.log();
|
|
65
65
|
console.log(chalk_1.default.bold("[" + chalk_1.default.green("▶") + "] Run Application\n"));
|
|
66
|
-
console.log(chalk_1.default.gray(" $ ") +
|
|
67
|
-
chalk_1.default.cyan(`cd counter-cli && ${runCmd} start-testnet-remote`));
|
|
66
|
+
console.log(chalk_1.default.gray(" $ ") + chalk_1.default.cyan(`cd counter-cli && ${runCmd} start`));
|
|
68
67
|
console.log();
|
|
69
68
|
console.log(chalk_1.default.bold("[" + chalk_1.default.yellow("!") + "] Important\n"));
|
|
70
69
|
console.log(chalk_1.default.gray(" • create wallet and fund from faucet"));
|
|
71
|
-
console.log(chalk_1.default.gray(" •
|
|
70
|
+
console.log(chalk_1.default.gray(" • Preprod faucet: https://faucet.preprod.midnight.network/"));
|
|
72
71
|
console.log(chalk_1.default.gray(" • funding takes 2-3 minutes"));
|
|
73
72
|
console.log(chalk_1.default.gray(" • see README.md for detailed guide"));
|
|
74
73
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-guide.js","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,yCAAyC;AACzC,sCAAsC;AACtC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;;;;AAEjC,kDAA0B;AAC1B,iDAA6C;AAU7C,MAAa,UAAU;IACrB;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,YAAoB,EACpB,WAAmB,EACnB,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAEpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,GAAG,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;QAEpE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC/D,CAAC;QACD,+CAA+C;IACjD,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,0BAA0B,CACvC,WAAmB,EACnB,EAAkB;QAElB,MAAM,UAAU,GACd,EAAE,KAAK,KAAK;YACV,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,EAAE,KAAK,MAAM;
|
|
1
|
+
{"version":3,"file":"setup-guide.js","sourceRoot":"","sources":["../../src/utils/setup-guide.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -26,7 +26,7 @@ A Midnight Network application created with `create-mn-app`.
|
|
|
26
26
|
|
|
27
27
|
- Compile your Compact contract
|
|
28
28
|
- Build TypeScript to JavaScript
|
|
29
|
-
- Deploy contract to
|
|
29
|
+
- Deploy contract to Preprod
|
|
30
30
|
|
|
31
31
|
3. **Interact with your contract**:
|
|
32
32
|
```bash
|
|
@@ -38,7 +38,7 @@ A Midnight Network application created with `create-mn-app`.
|
|
|
38
38
|
- `npm run setup` - Compile, build, and deploy contract
|
|
39
39
|
- `npm run compile` - Compile Compact contract
|
|
40
40
|
- `npm run build` - Build TypeScript
|
|
41
|
-
- `npm run deploy` - Deploy contract to
|
|
41
|
+
- `npm run deploy` - Deploy contract to Preprod
|
|
42
42
|
- `npm run cli` - Interactive CLI for contract
|
|
43
43
|
- `npm run check-balance` - Check wallet balance
|
|
44
44
|
- `npm run reset` - Reset all compiled/built files
|
|
@@ -49,7 +49,7 @@ A Midnight Network application created with `create-mn-app`.
|
|
|
49
49
|
Copy `.env.example` to `.env` and configure:
|
|
50
50
|
|
|
51
51
|
- `WALLET_SEED` - Your 64-character wallet seed (auto-generated)
|
|
52
|
-
- `MIDNIGHT_NETWORK` - Network to use (
|
|
52
|
+
- `MIDNIGHT_NETWORK` - Network to use (preprod)
|
|
53
53
|
- `PROOF_SERVER_URL` - Proof server URL
|
|
54
54
|
- `CONTRACT_NAME` - Contract name
|
|
55
55
|
|
|
@@ -70,11 +70,11 @@ Copy `.env.example` to `.env` and configure:
|
|
|
70
70
|
└── package.json
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
### Getting
|
|
73
|
+
### Getting Preprod Tokens
|
|
74
74
|
|
|
75
75
|
1. Run `npm run deploy` to see your wallet address
|
|
76
|
-
2. Visit [https://midnight.network/
|
|
77
|
-
3. Enter your address to receive test tokens
|
|
76
|
+
2. Visit [https://faucet.preprod.midnight.network/](https://faucet.preprod.midnight.network/)
|
|
77
|
+
3. Enter your address to receive test tokens (tNight)
|
|
78
78
|
|
|
79
79
|
### Learn More
|
|
80
80
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"reset": "rm -rf contracts/managed deployment.json dist && npm run compile",
|
|
19
19
|
"validate": "tsc --noEmit && npm run compile",
|
|
20
20
|
"clean": "rm -rf dist contracts/managed deployment.json",
|
|
21
|
-
"proof-server": "docker run -p 6300:6300
|
|
21
|
+
"proof-server": "docker run -p 6300:6300 midnightntwrk/proof-server -- 'midnight-proof-server -v'",
|
|
22
22
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import "dotenv/config";
|
|
2
2
|
import { WalletBuilder } from "@midnight-ntwrk/wallet";
|
|
3
|
-
import {
|
|
4
|
-
NetworkId,
|
|
5
|
-
setNetworkId,
|
|
6
|
-
getZswapNetworkId,
|
|
7
|
-
getLedgerNetworkId,
|
|
8
|
-
} from "@midnight-ntwrk/midnight-js-network-id";
|
|
3
|
+
import { getZswapNetworkId } from "@midnight-ntwrk/midnight-js-network-id";
|
|
9
4
|
import { nativeToken } from "@midnight-ntwrk/ledger";
|
|
10
5
|
import { WebSocket } from "ws";
|
|
11
6
|
import * as Rx from "rxjs";
|
|
@@ -16,8 +11,8 @@ import { EnvironmentManager } from "./utils/environment.js";
|
|
|
16
11
|
// @ts-ignore
|
|
17
12
|
globalThis.WebSocket = WebSocket;
|
|
18
13
|
|
|
19
|
-
//
|
|
20
|
-
|
|
14
|
+
// Initialize network from environment config
|
|
15
|
+
const networkConfig = EnvironmentManager.initializeNetwork();
|
|
21
16
|
|
|
22
17
|
async function checkBalance() {
|
|
23
18
|
try {
|
|
@@ -27,17 +22,13 @@ async function checkBalance() {
|
|
|
27
22
|
console.log(chalk.blue.bold("━".repeat(60)));
|
|
28
23
|
console.log();
|
|
29
24
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
25
|
+
// Validate environment (checks WALLET_SEED)
|
|
26
|
+
EnvironmentManager.validateEnvironment();
|
|
27
|
+
const seed = process.env.WALLET_SEED!;
|
|
34
28
|
|
|
35
29
|
console.log(chalk.gray("Building wallet..."));
|
|
36
30
|
console.log();
|
|
37
31
|
|
|
38
|
-
// Get network configuration
|
|
39
|
-
const networkConfig = EnvironmentManager.getNetworkConfig();
|
|
40
|
-
|
|
41
32
|
// Build wallet from seed
|
|
42
33
|
const wallet = await WalletBuilder.buildFromSeed(
|
|
43
34
|
networkConfig.indexer,
|
|
@@ -68,7 +59,7 @@ async function checkBalance() {
|
|
|
68
59
|
console.log(chalk.magenta.bold("📝 How to Get Test Tokens:"));
|
|
69
60
|
console.log(chalk.magenta.bold("━".repeat(60)));
|
|
70
61
|
console.log();
|
|
71
|
-
console.log(chalk.white(" 1. ") + chalk.cyan("Visit: ") + chalk.underline(
|
|
62
|
+
console.log(chalk.white(" 1. ") + chalk.cyan("Visit: ") + chalk.underline(networkConfig.faucetUrl));
|
|
72
63
|
console.log(chalk.white(" 2. ") + chalk.cyan("Paste your wallet address (shown above)"));
|
|
73
64
|
console.log(chalk.white(" 3. ") + chalk.cyan("Request tokens from the faucet"));
|
|
74
65
|
console.log(chalk.white(" 4. ") + chalk.cyan("Wait 2-5 minutes for processing"));
|
|
@@ -3,8 +3,6 @@ import * as readline from "readline/promises";
|
|
|
3
3
|
import { WalletBuilder } from "@midnight-ntwrk/wallet";
|
|
4
4
|
import { findDeployedContract } from "@midnight-ntwrk/midnight-js-contracts";
|
|
5
5
|
import {
|
|
6
|
-
NetworkId,
|
|
7
|
-
setNetworkId,
|
|
8
6
|
getZswapNetworkId,
|
|
9
7
|
getLedgerNetworkId,
|
|
10
8
|
} from "@midnight-ntwrk/midnight-js-network-id";
|
|
@@ -22,8 +20,8 @@ import { EnvironmentManager } from "./utils/environment.js";
|
|
|
22
20
|
// @ts-ignore
|
|
23
21
|
globalThis.WebSocket = WebSocket;
|
|
24
22
|
|
|
25
|
-
//
|
|
26
|
-
|
|
23
|
+
// Initialize network from environment config
|
|
24
|
+
const networkConfig = EnvironmentManager.initializeNetwork();
|
|
27
25
|
|
|
28
26
|
async function main() {
|
|
29
27
|
const rl = readline.createInterface({
|
|
@@ -46,7 +44,6 @@ async function main() {
|
|
|
46
44
|
const deployment = JSON.parse(fs.readFileSync("deployment.json", "utf-8"));
|
|
47
45
|
console.log(`Contract: ${deployment.contractAddress}\n`);
|
|
48
46
|
|
|
49
|
-
const networkConfig = EnvironmentManager.getNetworkConfig();
|
|
50
47
|
const contractName =
|
|
51
48
|
deployment.contractName || process.env.CONTRACT_NAME || "hello-world";
|
|
52
49
|
const walletSeed = process.env.WALLET_SEED!;
|
|
@@ -6,8 +6,6 @@ import { indexerPublicDataProvider } from "@midnight-ntwrk/midnight-js-indexer-p
|
|
|
6
6
|
import { NodeZkConfigProvider } from "@midnight-ntwrk/midnight-js-node-zk-config-provider";
|
|
7
7
|
import { levelPrivateStateProvider } from "@midnight-ntwrk/midnight-js-level-private-state-provider";
|
|
8
8
|
import {
|
|
9
|
-
NetworkId,
|
|
10
|
-
setNetworkId,
|
|
11
9
|
getZswapNetworkId,
|
|
12
10
|
getLedgerNetworkId,
|
|
13
11
|
} from "@midnight-ntwrk/midnight-js-network-id";
|
|
@@ -27,8 +25,8 @@ import { EnvironmentManager } from "./utils/environment.js";
|
|
|
27
25
|
// @ts-ignore
|
|
28
26
|
globalThis.WebSocket = WebSocket;
|
|
29
27
|
|
|
30
|
-
//
|
|
31
|
-
|
|
28
|
+
// Initialize network from environment config
|
|
29
|
+
const networkConfig = EnvironmentManager.initializeNetwork();
|
|
32
30
|
|
|
33
31
|
const waitForFunds = (wallet: Wallet) =>
|
|
34
32
|
Rx.firstValueFrom(
|
|
@@ -58,7 +56,6 @@ async function main() {
|
|
|
58
56
|
// Validate environment
|
|
59
57
|
EnvironmentManager.validateEnvironment();
|
|
60
58
|
|
|
61
|
-
const networkConfig = EnvironmentManager.getNetworkConfig();
|
|
62
59
|
const contractName = process.env.CONTRACT_NAME || "hello-world";
|
|
63
60
|
|
|
64
61
|
// Check if contract is compiled
|
|
@@ -99,7 +96,7 @@ async function main() {
|
|
|
99
96
|
console.log(chalk.magenta.bold("📝 How to Get Test Tokens:"));
|
|
100
97
|
console.log(chalk.magenta.bold("━".repeat(60)));
|
|
101
98
|
console.log();
|
|
102
|
-
console.log(chalk.white(" 1. ") + chalk.cyan("Visit: ") + chalk.underline(
|
|
99
|
+
console.log(chalk.white(" 1. ") + chalk.cyan("Visit: ") + chalk.underline(networkConfig.faucetUrl));
|
|
103
100
|
console.log(chalk.white(" 2. ") + chalk.cyan("Paste your wallet address (shown above)"));
|
|
104
101
|
console.log(chalk.white(" 3. ") + chalk.cyan("Request tokens from the faucet"));
|
|
105
102
|
console.log();
|
|
@@ -4,12 +4,16 @@ import { indexerPublicDataProvider } from "@midnight-ntwrk/midnight-js-indexer-p
|
|
|
4
4
|
import { NodeZkConfigProvider } from "@midnight-ntwrk/midnight-js-node-zk-config-provider";
|
|
5
5
|
import { httpClientProofProvider } from "@midnight-ntwrk/midnight-js-http-client-proof-provider";
|
|
6
6
|
|
|
7
|
+
import { NetworkId } from "@midnight-ntwrk/midnight-js-network-id";
|
|
8
|
+
|
|
7
9
|
export interface NetworkConfig {
|
|
8
10
|
indexer: string;
|
|
9
11
|
indexerWS: string;
|
|
10
12
|
node: string;
|
|
11
13
|
proofServer: string;
|
|
12
14
|
name: string;
|
|
15
|
+
faucetUrl: string;
|
|
16
|
+
networkId: NetworkId;
|
|
13
17
|
}
|
|
14
18
|
|
|
15
19
|
export interface ProviderConfig {
|
|
@@ -1,23 +1,46 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
+
import { NetworkId, setNetworkId } from "@midnight-ntwrk/midnight-js-network-id";
|
|
3
4
|
import { NetworkConfig } from "../providers/midnight-providers.js";
|
|
4
5
|
|
|
6
|
+
const SUPPORTED_NETWORKS = ["preprod"] as const;
|
|
7
|
+
type SupportedNetwork = (typeof SUPPORTED_NETWORKS)[number];
|
|
8
|
+
|
|
5
9
|
export class EnvironmentManager {
|
|
10
|
+
private static networkConfig: NetworkConfig | null = null;
|
|
11
|
+
|
|
6
12
|
static getNetworkConfig(): NetworkConfig {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
if (this.networkConfig) return this.networkConfig;
|
|
14
|
+
|
|
15
|
+
const network = process.env.MIDNIGHT_NETWORK || "preprod";
|
|
16
|
+
|
|
17
|
+
if (!SUPPORTED_NETWORKS.includes(network as SupportedNetwork)) {
|
|
18
|
+
console.warn(
|
|
19
|
+
`Warning: Unknown network "${network}", falling back to "preprod". ` +
|
|
20
|
+
`Supported networks: ${SUPPORTED_NETWORKS.join(", ")}`
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const networks: Record<SupportedNetwork, NetworkConfig> = {
|
|
25
|
+
preprod: {
|
|
26
|
+
indexer: "https://indexer.preprod.midnight.network/api/v3/graphql",
|
|
27
|
+
indexerWS: "wss://indexer.preprod.midnight.network/api/v3/graphql/ws",
|
|
28
|
+
node: "https://rpc.preprod.midnight.network",
|
|
15
29
|
proofServer: process.env.PROOF_SERVER_URL || "http://127.0.0.1:6300",
|
|
16
|
-
name: "
|
|
30
|
+
name: "Preprod",
|
|
31
|
+
faucetUrl: "https://faucet.preprod.midnight.network/",
|
|
32
|
+
networkId: NetworkId.TestNet,
|
|
17
33
|
},
|
|
18
34
|
};
|
|
19
35
|
|
|
20
|
-
|
|
36
|
+
this.networkConfig = networks[network as SupportedNetwork] || networks.preprod;
|
|
37
|
+
return this.networkConfig;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static initializeNetwork(): NetworkConfig {
|
|
41
|
+
const config = this.getNetworkConfig();
|
|
42
|
+
setNetworkId(config.networkId);
|
|
43
|
+
return config;
|
|
21
44
|
}
|
|
22
45
|
|
|
23
46
|
static validateEnvironment(): void {
|