skittles 1.1.1 → 1.2.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/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Write, Test and Deploy EVM Smart Contracts with TypeScript.
8
8
 
9
- Skittles compiles TypeScript classes to Solidity source code, then to ABI and EVM bytecode. You get TypeScript tooling (autocomplete, type checking, familiar syntax) while targeting the EVM.
9
+ Skittles compiles TypeScript classes to Solidity source code. Use Hardhat (or any Solidity toolchain) to compile that to ABI and EVM bytecode. You get TypeScript tooling (autocomplete, type checking, familiar syntax) while targeting the EVM.
10
10
 
11
11
  Website: [skittles.dev](https://skittles.dev/)
12
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAuLA,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoKpE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmMA,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKpE"}
@@ -5,10 +5,6 @@ import { writeFile, ensureDirectory } from "../utils/file.js";
5
5
  import { logSuccess, logError, logInfo, logWarning } from "../utils/console.js";
6
6
  const CONFIG_TEMPLATE = JSON.stringify({
7
7
  typeCheck: true,
8
- optimizer: {
9
- enabled: false,
10
- runs: 200,
11
- },
12
8
  contractsDir: "contracts",
13
9
  outputDir: "build",
14
10
  }, null, 2);
@@ -28,31 +24,45 @@ const TSCONFIG_TEMPLATE = JSON.stringify({
28
24
  outDir: "./dist",
29
25
  rootDir: ".",
30
26
  },
31
- include: ["contracts/**/*", "test/**/*"],
27
+ include: ["contracts/**/*", "test/**/*", "types/**/*"],
32
28
  exclude: ["node_modules", "build", "dist"],
33
29
  }, null, 2);
34
- const VITEST_CONFIG_TEMPLATE = `import { defineConfig } from "vitest/config";
30
+ const HARDHAT_CONFIG_TEMPLATE = `import { defineConfig } from "hardhat/config";
31
+ import hardhatEthers from "@nomicfoundation/hardhat-ethers";
32
+ import hardhatTypechain from "@nomicfoundation/hardhat-typechain";
33
+ import hardhatMocha from "@nomicfoundation/hardhat-mocha";
34
+ import hardhatEthersChaiMatchers from "@nomicfoundation/hardhat-ethers-chai-matchers";
35
+ import hardhatNetworkHelpers from "@nomicfoundation/hardhat-network-helpers";
35
36
 
36
37
  export default defineConfig({
37
- test: {
38
- environment: "node",
39
- include: ["test/**/*.test.ts"],
40
- testTimeout: 30000,
41
- server: {
42
- deps: {
43
- inline: ["skittles"],
44
- },
38
+ plugins: [
39
+ hardhatEthers,
40
+ hardhatTypechain,
41
+ hardhatMocha,
42
+ hardhatEthersChaiMatchers,
43
+ hardhatNetworkHelpers,
44
+ ],
45
+ paths: {
46
+ sources: "./build/solidity",
47
+ tests: "./test",
48
+ },
49
+ solidity: {
50
+ version: "0.8.20",
51
+ settings: {
52
+ optimizer: { enabled: false, runs: 200 },
45
53
  },
46
54
  },
47
55
  });
48
56
  `;
49
- const HARDHAT_CONFIG_TEMPLATE = `import { defineConfig } from "hardhat/config";
50
-
51
- export default defineConfig({});
52
- `;
53
- const EXAMPLE_CONTRACT = `import { address, msg } from "skittles";
57
+ const EXAMPLE_CONTRACT = `import { address, msg, SkittlesEvent, Indexed } from "skittles";
54
58
 
55
59
  export class Token {
60
+ Transfer: SkittlesEvent<{
61
+ from: Indexed<address>;
62
+ to: Indexed<address>;
63
+ value: number;
64
+ }>;
65
+
56
66
  public name: string = "MyToken";
57
67
  public symbol: string = "MTK";
58
68
  public totalSupply: number = 0;
@@ -74,53 +84,49 @@ export class Token {
74
84
  }
75
85
  this.balances[sender] -= amount;
76
86
  this.balances[to] += amount;
87
+ this.Transfer.emit(sender, to, amount);
77
88
  return true;
78
89
  }
79
90
  }
80
91
  `;
81
- const EXAMPLE_TEST = `import { describe, it, expect, beforeAll } from "vitest";
82
- import { setup } from "skittles/testing";
92
+ const EXAMPLE_TEST = `import "@nomicfoundation/hardhat-ethers";
93
+ import "@nomicfoundation/hardhat-ethers-chai-matchers";
94
+ import "@nomicfoundation/hardhat-network-helpers";
95
+ import { expect } from "chai";
96
+ import hre from "hardhat";
83
97
 
98
+ const { ethers, networkHelpers } = await hre.network.connect();
84
99
  const INITIAL_SUPPLY = 1_000_000n;
85
100
 
86
- describe("Token", () => {
87
- const env = setup();
88
- let token: any;
89
-
90
- beforeAll(async () => {
91
- token = await env.deploy("Token", [INITIAL_SUPPLY]);
92
- });
93
-
94
- it("has the correct name", async () => {
95
- expect(await token.name()).toBe("MyToken");
96
- });
97
-
98
- it("has the correct symbol", async () => {
99
- expect(await token.symbol()).toBe("MTK");
100
- });
101
+ describe("Token", function () {
102
+ async function deployTokenFixture() {
103
+ const token = await ethers.deployContract("Token", [INITIAL_SUPPLY]);
104
+ const [owner, alice, bob] = await ethers.getSigners();
105
+ const addr = await token.getAddress();
106
+ const tokenAsAlice = await ethers.getContractAt("Token", addr, alice);
107
+ return { token, tokenAsAlice, owner, alice, bob };
108
+ }
101
109
 
102
- it("assigns initial supply to the deployer", async () => {
103
- const [deployer] = env.accounts;
104
- const balance = await token.balanceOf(await deployer.getAddress());
105
- expect(balance).toBe(INITIAL_SUPPLY);
110
+ it("has the correct name", async function () {
111
+ const { token } = await networkHelpers.loadFixture(deployTokenFixture);
112
+ expect(await token.name()).to.equal("MyToken");
106
113
  });
107
114
 
108
- it("transfers tokens between accounts", async () => {
109
- const [, alice] = env.accounts;
110
- const aliceAddr = await alice.getAddress();
115
+ it("emits Transfer event when transferring tokens", async function () {
116
+ const { token, owner, alice } = await networkHelpers.loadFixture(deployTokenFixture);
117
+ const amount = 100n;
111
118
 
112
- await token.transfer(aliceAddr, 100n);
113
- expect(await token.balanceOf(aliceAddr)).toBe(100n);
119
+ await expect(token.transfer(alice.address, amount))
120
+ .to.emit(token, "Transfer")
121
+ .withArgs(owner.address, alice.address, amount);
114
122
  });
115
123
 
116
- it("reverts on insufficient balance", async () => {
117
- const [, alice, bob] = env.accounts;
118
- const bobAddr = await bob.getAddress();
119
- const aliceToken = env.connectAs(token, alice);
124
+ it("reverts on insufficient balance", async function () {
125
+ const { token, tokenAsAlice, bob } = await networkHelpers.loadFixture(deployTokenFixture);
120
126
 
121
127
  await expect(
122
- aliceToken.transfer(bobAddr, 999_999_999n)
123
- ).rejects.toThrow();
128
+ tokenAsAlice.transfer(bob.address, 999_999_999n)
129
+ ).to.be.revertedWith("Insufficient balance");
124
130
  });
125
131
  });
126
132
  `;
@@ -145,20 +151,27 @@ function buildPackageJson(projectName) {
145
151
  type: "module",
146
152
  scripts: {
147
153
  compile: "skittles compile",
154
+ build: "skittles compile && hardhat build",
148
155
  clean: "skittles clean",
149
- test: "skittles test",
150
- "test:watch": "skittles test --watch",
156
+ test: "skittles compile && hardhat test",
151
157
  },
152
158
  dependencies: {
153
159
  skittles: "latest",
154
160
  },
155
161
  devDependencies: {
162
+ "@nomicfoundation/hardhat-ethers": "^4.0.0",
163
+ "@nomicfoundation/hardhat-ethers-chai-matchers": "^3.0.0",
164
+ "@nomicfoundation/hardhat-mocha": "^3.0.0",
165
+ "@nomicfoundation/hardhat-network-helpers": "^3.0.0",
166
+ "@nomicfoundation/hardhat-typechain": "^3.0.0",
167
+ chai: "^5.1.2",
156
168
  ethers: "^6.16.0",
157
169
  hardhat: "^3.0.0",
158
- vitest: "^2.0.0",
170
+ mocha: "^10.0.0",
171
+ "@types/mocha": "^10.0.0",
159
172
  },
160
173
  engines: {
161
- node: ">=20.0.0",
174
+ node: ">=22.0.0",
162
175
  },
163
176
  }, null, 2);
164
177
  }
@@ -178,9 +191,16 @@ export async function initCommand(projectRoot) {
178
191
  if (!pkg.devDependencies)
179
192
  pkg.devDependencies = {};
180
193
  const requiredDevDeps = {
194
+ "@nomicfoundation/hardhat-ethers": "^4.0.0",
195
+ "@nomicfoundation/hardhat-ethers-chai-matchers": "^3.0.0",
196
+ "@nomicfoundation/hardhat-mocha": "^3.0.0",
197
+ "@nomicfoundation/hardhat-network-helpers": "^3.0.0",
198
+ "@nomicfoundation/hardhat-typechain": "^3.0.0",
199
+ chai: "^5.1.2",
181
200
  ethers: "^6.16.0",
182
201
  hardhat: "^3.0.0",
183
- vitest: "^2.0.0",
202
+ mocha: "^10.0.0",
203
+ "@types/mocha": "^10.0.0",
184
204
  };
185
205
  for (const [dep, version] of Object.entries(requiredDevDeps)) {
186
206
  if (!pkg.devDependencies[dep] && !pkg.dependencies?.[dep]) {
@@ -198,9 +218,9 @@ export async function initCommand(projectRoot) {
198
218
  pkg.scripts = {};
199
219
  const defaultScripts = {
200
220
  compile: "skittles compile",
221
+ build: "skittles compile && hardhat build",
201
222
  clean: "skittles clean",
202
- test: "skittles test",
203
- "test:watch": "skittles test --watch",
223
+ test: "skittles compile && hardhat test",
204
224
  };
205
225
  for (const [name, cmd] of Object.entries(defaultScripts)) {
206
226
  if (!pkg.scripts[name]) {
@@ -267,15 +287,6 @@ export async function initCommand(projectRoot) {
267
287
  writeFile(tsconfigPath, TSCONFIG_TEMPLATE + "\n");
268
288
  logSuccess("Created tsconfig.json");
269
289
  }
270
- // Write vitest.config.ts
271
- const vitestConfigPath = path.join(projectRoot, "vitest.config.ts");
272
- if (fs.existsSync(vitestConfigPath)) {
273
- logWarning("vitest.config.ts already exists, skipping");
274
- }
275
- else {
276
- writeFile(vitestConfigPath, VITEST_CONFIG_TEMPLATE);
277
- logSuccess("Created vitest.config.ts");
278
- }
279
290
  // Write hardhat.config.ts
280
291
  const hardhatConfigPath = path.join(projectRoot, "hardhat.config.ts");
281
292
  if (fs.existsSync(hardhatConfigPath)) {
@@ -287,7 +298,7 @@ export async function initCommand(projectRoot) {
287
298
  }
288
299
  // Update .gitignore
289
300
  const gitignorePath = path.join(projectRoot, ".gitignore");
290
- const gitignoreEntries = ["build/", "dist/", "node_modules/"];
301
+ const gitignoreEntries = ["build/", "dist/", "types/", "node_modules/"];
291
302
  if (fs.existsSync(gitignorePath)) {
292
303
  const existing = fs.readFileSync(gitignorePath, "utf-8");
293
304
  const toAdd = gitignoreEntries.filter((entry) => !existing.includes(entry));
@@ -319,6 +330,6 @@ export async function initCommand(projectRoot) {
319
330
  logInfo("");
320
331
  logInfo("Next steps:");
321
332
  logInfo(" Compile and test:");
322
- logInfo(" npx skittles test");
333
+ logInfo(" npm run test");
323
334
  }
324
335
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * The `skittles test` command.
3
3
  * 1. Compiles all contracts (same as `skittles compile`)
4
- * 2. Runs vitest
4
+ * 2. Runs hardhat test
5
5
  */
6
6
  export declare function testCommand(projectRoot: string, watch: boolean): Promise<void>;
7
7
  //# sourceMappingURL=test.d.ts.map
@@ -18,7 +18,7 @@ function resolveLocalBin(projectRoot, bin) {
18
18
  /**
19
19
  * The `skittles test` command.
20
20
  * 1. Compiles all contracts (same as `skittles compile`)
21
- * 2. Runs vitest
21
+ * 2. Runs hardhat test
22
22
  */
23
23
  export async function testCommand(projectRoot, watch) {
24
24
  // Step 1: Compile contracts
@@ -39,11 +39,11 @@ export async function testCommand(projectRoot, watch) {
39
39
  logError(`Compilation failed: ${message}`);
40
40
  process.exit(1);
41
41
  }
42
- // Step 2: Run vitest using the locally installed binary
43
- logInfo(watch ? "Starting vitest in watch mode..." : "Running tests...");
44
- const vitestBin = resolveLocalBin(projectRoot, "vitest");
45
- const args = watch ? ["--watch"] : ["run"];
46
- const child = spawn(vitestBin, args, {
42
+ // Step 2: Run hardhat test using the locally installed binary
43
+ logInfo(watch ? "Starting tests in watch mode..." : "Running tests...");
44
+ const hardhatBin = resolveLocalBin(projectRoot, "hardhat");
45
+ const args = watch ? ["test", "--watch"] : ["test"];
46
+ const child = spawn(hardhatBin, args, {
47
47
  cwd: projectRoot,
48
48
  stdio: "inherit",
49
49
  shell: true,
@@ -52,8 +52,8 @@ export async function testCommand(projectRoot, watch) {
52
52
  process.exit(code ?? 0);
53
53
  });
54
54
  child.on("error", (err) => {
55
- logError(`Failed to start vitest: ${err.message}`);
56
- logInfo("Make sure vitest is installed: npm install --save-dev vitest");
55
+ logError(`Failed to start hardhat: ${err.message}`);
56
+ logInfo("Make sure hardhat is installed: npm install --save-dev hardhat");
57
57
  process.exit(1);
58
58
  });
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,SAAS,eAAe,CAAC,WAAmB,EAAE,GAAW;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACtE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,KAAc;IAEd,4BAA4B;IAC5B,OAAO,CAAC,6CAA6C,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,UAAU,CACR,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,oCAAoC,CAC/D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAChE,QAAQ,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;QACnC,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACxB,QAAQ,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CACL,8DAA8D,CAC/D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,SAAS,eAAe,CAAC,WAAmB,EAAE,GAAW;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACtE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,KAAc;IAEd,4BAA4B;IAC5B,OAAO,CAAC,6CAA6C,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,UAAU,CACR,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,oCAAoC,CAC/D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAChE,QAAQ,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8DAA8D;IAC9D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAExE,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;QACpC,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QACzB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACxB,QAAQ,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CACL,gEAAgE,CACjE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -9,8 +9,7 @@ export interface CompilationResult {
9
9
  * 1. Find all TypeScript contract files
10
10
  * 2. Parse each file into a SkittlesContract IR
11
11
  * 3. Generate Solidity source from each contract
12
- * 4. Compile Solidity to ABI + bytecode via solc
13
- * 5. Write build artifacts to output directory
12
+ * 4. Write Solidity to build/solidity (Hardhat compiles to ABI + bytecode)
14
13
  */
15
14
  export declare function compile(projectRoot: string, config: Required<SkittlesConfig>): Promise<CompilationResult>;
16
15
  //# sourceMappingURL=compiler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/compiler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA+CD;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA4L5B"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/compiler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACd,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AA6CD;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAoJ5B"}
@@ -2,14 +2,13 @@ import crypto from "crypto";
2
2
  import fs from "fs";
3
3
  import path from "path";
4
4
  import { findTypeScriptFiles, readFile, writeFile } from "../utils/file.js";
5
- import { logInfo, logSuccess, logError, logWarning } from "../utils/console.js";
5
+ import { logInfo, logSuccess, logError } from "../utils/console.js";
6
6
  import { parse, collectTypes, collectFunctions } from "./parser.js";
7
7
  import { generateSolidity, generateSolidityFile } from "./codegen.js";
8
- import { compileSolidityBatch } from "./solc.js";
9
8
  // ============================================================
10
9
  // Incremental compilation cache
11
10
  // ============================================================
12
- const CACHE_VERSION = "1";
11
+ const CACHE_VERSION = "2";
13
12
  function hashString(input) {
14
13
  return crypto.createHash("sha256").update(input).digest("hex").slice(0, 16);
15
14
  }
@@ -37,8 +36,7 @@ function saveCache(outputDir, cache) {
37
36
  * 1. Find all TypeScript contract files
38
37
  * 2. Parse each file into a SkittlesContract IR
39
38
  * 3. Generate Solidity source from each contract
40
- * 4. Compile Solidity to ABI + bytecode via solc
41
- * 5. Write build artifacts to output directory
39
+ * 4. Write Solidity to build/solidity (Hardhat compiles to ABI + bytecode)
42
40
  */
43
41
  export async function compile(projectRoot, config) {
44
42
  const contractsDir = path.join(projectRoot, config.contractsDir);
@@ -106,17 +104,14 @@ export async function compile(projectRoot, config) {
106
104
  const cached = cache.files[relativePath];
107
105
  if (cached && cached.fileHash === fileHash && cached.sharedHash === sharedHash) {
108
106
  logInfo(`${relativePath} unchanged, using cache`);
107
+ const cachedBaseName = path.basename(filePath, path.extname(filePath));
108
+ writeFile(path.join(outputDir, "solidity", `${cachedBaseName}.sol`), cached.contracts[0].solidity);
109
109
  for (const c of cached.contracts) {
110
110
  const artifact = {
111
111
  contractName: c.name,
112
- abi: c.abi,
113
- bytecode: c.bytecode,
114
112
  solidity: c.solidity,
115
113
  };
116
114
  artifacts.push(artifact);
117
- writeFile(path.join(outputDir, "abi", `${c.name}.json`), JSON.stringify(c.abi, null, 2));
118
- writeFile(path.join(outputDir, "bytecode", `${c.name}.bin`), c.bytecode);
119
- writeFile(path.join(outputDir, "solidity", `${c.name}.sol`), c.solidity);
120
115
  logSuccess(`${c.name} compiled successfully (cached)`);
121
116
  }
122
117
  newCache.files[relativePath] = cached;
@@ -134,42 +129,16 @@ export async function compile(projectRoot, config) {
134
129
  if (!solidity)
135
130
  continue;
136
131
  const cacheEntry = { fileHash, sharedHash, contracts: [] };
137
- // Step 4: Compile Solidity via solc (once per file, not per contract)
138
- const contractNames = contracts.map((c) => c.name);
139
- const compiled = compileSolidityBatch(solidity, contractNames, config);
140
- for (const warning of compiled.warnings) {
141
- logWarning(warning);
142
- }
143
- if (compiled.errors.length > 0) {
144
- const contextualErrors = compiled.errors.map((e) => `${relativePath}: ${e}`);
145
- errors.push(...contextualErrors);
146
- }
147
- else {
148
- for (const contract of contracts) {
149
- const result = compiled.contracts[contract.name];
150
- if (!result) {
151
- errors.push(`${relativePath}:${contract.name}: No output found for contract ${contract.name}`);
152
- continue;
153
- }
154
- const artifact = {
155
- contractName: contract.name,
156
- abi: result.abi,
157
- bytecode: result.bytecode,
158
- solidity,
159
- };
160
- artifacts.push(artifact);
161
- cacheEntry.contracts.push({
162
- name: contract.name,
163
- abi: result.abi,
164
- bytecode: result.bytecode,
165
- solidity,
166
- });
167
- // Step 5: Write artifacts
168
- writeFile(path.join(outputDir, "abi", `${contract.name}.json`), JSON.stringify(result.abi, null, 2));
169
- writeFile(path.join(outputDir, "bytecode", `${contract.name}.bin`), result.bytecode);
170
- writeFile(path.join(outputDir, "solidity", `${contract.name}.sol`), solidity);
171
- logSuccess(`${contract.name} compiled successfully`);
172
- }
132
+ const sourceBaseName = path.basename(filePath, path.extname(filePath));
133
+ writeFile(path.join(outputDir, "solidity", `${sourceBaseName}.sol`), solidity);
134
+ for (const contract of contracts) {
135
+ const artifact = {
136
+ contractName: contract.name,
137
+ solidity,
138
+ };
139
+ artifacts.push(artifact);
140
+ cacheEntry.contracts.push({ name: contract.name, solidity });
141
+ logSuccess(`${contract.name} compiled successfully`);
173
142
  }
174
143
  newCache.files[relativePath] = cacheEntry;
175
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/compiler/compiler.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,13 +4,12 @@ import { hideBin } from "yargs/helpers";
4
4
  import { compileCommand } from "./commands/compile.js";
5
5
  import { cleanCommand } from "./commands/clean.js";
6
6
  import { initCommand } from "./commands/init.js";
7
- import { testCommand } from "./commands/test.js";
8
7
  import { printLogo } from "./utils/console.js";
9
8
  printLogo();
10
9
  yargs(hideBin(process.argv))
11
10
  .scriptName("skittles")
12
11
  .usage("$0 <command> [options]")
13
- .command("compile", "Compile TypeScript contracts to EVM bytecode", () => { }, async () => {
12
+ .command("compile", "Compile TypeScript contracts to Solidity", () => { }, async () => {
14
13
  await compileCommand(process.cwd());
15
14
  })
16
15
  .command("clean", "Remove build artifacts", () => { }, async () => {
@@ -18,16 +17,6 @@ yargs(hideBin(process.argv))
18
17
  })
19
18
  .command("init", "Initialize a new Skittles project", () => { }, async () => {
20
19
  await initCommand(process.cwd());
21
- })
22
- .command("test", "Compile contracts and run tests with vitest", (yargs) => {
23
- return yargs.option("watch", {
24
- alias: "w",
25
- type: "boolean",
26
- description: "Run vitest in watch mode",
27
- default: false,
28
- });
29
- }, async (argv) => {
30
- await testCommand(process.cwd(), argv.watch);
31
20
  })
32
21
  .demandCommand(1, "Please specify a command")
33
22
  .strict()
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,SAAS,EAAE,CAAC;AAEZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,UAAU,CAAC;KACtB,KAAK,CAAC,wBAAwB,CAAC;KAC/B,OAAO,CACN,SAAS,EACT,8CAA8C,EAC9C,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE;IACT,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACtC,CAAC,CACF;KACA,OAAO,CACN,OAAO,EACP,wBAAwB,EACxB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE;IACT,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC,CACF;KACA,OAAO,CACN,MAAM,EACN,mCAAmC,EACnC,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE;IACT,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACnC,CAAC,CACF;KACA,OAAO,CACN,MAAM,EACN,6CAA6C,EAC7C,CAAC,KAAK,EAAE,EAAE;IACR,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;QAC3B,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAgB,CAAC,CAAC;AAC1D,CAAC,CACF;KACA,aAAa,CAAC,CAAC,EAAE,0BAA0B,CAAC;KAC5C,MAAM,EAAE;KACR,IAAI,EAAE;KACN,OAAO,EAAE;KACT,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,SAAS,EAAE,CAAC;AAEZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,UAAU,CAAC;KACtB,KAAK,CAAC,wBAAwB,CAAC;KAC/B,OAAO,CACN,SAAS,EACT,0CAA0C,EAC1C,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE;IACT,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACtC,CAAC,CACF;KACA,OAAO,CACN,OAAO,EACP,wBAAwB,EACxB,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE;IACT,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACpC,CAAC,CACF;KACA,OAAO,CACN,MAAM,EACN,mCAAmC,EACnC,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE;IACT,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AACnC,CAAC,CACF;KACA,aAAa,CAAC,CAAC,EAAE,0BAA0B,CAAC;KAC5C,MAAM,EAAE;KACR,IAAI,EAAE;KACN,OAAO,EAAE;KACT,UAAU,EAAE,CAAC"}
package/dist/testing.d.ts CHANGED
@@ -8,39 +8,39 @@
8
8
  * Most users should import from "skittles/testing" which provides the
9
9
  * higher level `setup()` function with automatic lifecycle management.
10
10
  *
11
- * Requirements for the core utilities (devDependencies in your project):
11
+ * Requirements (devDependencies in your project):
12
12
  * - ethers ^6.0.0
13
- * - hardhat ^3.0.0
13
+ * - hardhat ^2.22.0
14
+ * - @nomicfoundation/hardhat-toolbox ^5.0.0
14
15
  *
15
- * Additional tooling (used by the higher level ESM wrapper `"skittles/testing"`, not by this core module):
16
- * - vitest ^2.0.0 (or another compatible test runner)
16
+ * Tests are run via `hardhat test` which uses Mocha under the hood.
17
17
  */
18
18
  import { ethers } from "ethers";
19
19
  /**
20
- * A test environment backed by an in memory Hardhat EDR node.
20
+ * A test environment backed by an in memory Hardhat Network.
21
21
  * Create one per test suite with `createTestEnv()`.
22
22
  */
23
23
  export interface TestEnv {
24
- /** JSON RPC provider connected to the in memory EVM. */
25
- provider: ethers.JsonRpcProvider;
24
+ /** ethers provider connected to Hardhat Network. */
25
+ provider: ethers.BrowserProvider;
26
26
  /** Ten pre-funded signer accounts. */
27
27
  accounts: ethers.Signer[];
28
- /** Shut down the in memory EVM. Call this in afterAll. */
28
+ /** Shut down the environment. No-op for Hardhat 2 (network lifecycle is managed by Hardhat). */
29
29
  close: () => Promise<void>;
30
30
  }
31
31
  /**
32
- * Create a fresh in memory EVM backed by Hardhat's EDR runtime.
33
- * Each test suite should call this once in `beforeAll` and tear it
34
- * down with `env.close()` in `afterAll`.
32
+ * Create a test environment backed by Hardhat Network.
33
+ * Uses the Hardhat Runtime Environment's in memory EVM and wraps it
34
+ * with an ethers BrowserProvider.
35
+ *
36
+ * Each test suite should call this once in a `before` hook.
35
37
  *
36
38
  * ```ts
37
39
  * let env: TestEnv;
38
- * beforeAll(async () => { env = await createTestEnv(); });
39
- * afterAll(async () => { await env.close(); });
40
+ * before(async function () { env = await createTestEnv(); });
40
41
  * ```
41
42
  *
42
- * @param dynamicImport Optional custom import function. The ESM wrapper
43
- * passes native import() here so it works inside vitest's runtime.
43
+ * @param dynamicImport Optional custom import function.
44
44
  */
45
45
  export declare function createTestEnv(dynamicImport?: (specifier: string) => Promise<any>): Promise<TestEnv>;
46
46
  /**
@@ -67,7 +67,7 @@ export interface DeployOptions {
67
67
  *
68
68
  * ```ts
69
69
  * const token = await deploy(env, "Token", [1_000_000n]);
70
- * expect(await token.name()).toBe("MyToken");
70
+ * expect(await token.name()).to.equal("MyToken");
71
71
  * ```
72
72
  */
73
73
  export declare function deploy(env: TestEnv, contractName: string, constructorArgs?: unknown[], options?: DeployOptions): Promise<ethers.Contract>;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;IACjC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,aAAa,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAgB,GAChE,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAqBhD;AAMD,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,MAAM,CAC1B,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,EACpB,eAAe,GAAE,OAAO,EAAO,EAC/B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAW1B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GACpB,MAAM,CAAC,QAAQ,CAEjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAEjB"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;IACjC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1B,gGAAgG;IAChG,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,aAAa,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAgB,GAChE,OAAO,CAAC,OAAO,CAAC,CAelB;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAqBhD;AAMD,MAAM,WAAW,aAAa;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,MAAM,CAC1B,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,EACpB,eAAe,GAAE,OAAO,EAAO,EAC/B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAW1B;AAMD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,GACpB,MAAM,CAAC,QAAQ,CAEjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAEjB"}
package/dist/testing.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * skittles/testing (core)
3
4
  *
@@ -8,13 +9,16 @@
8
9
  * Most users should import from "skittles/testing" which provides the
9
10
  * higher level `setup()` function with automatic lifecycle management.
10
11
  *
11
- * Requirements for the core utilities (devDependencies in your project):
12
+ * Requirements (devDependencies in your project):
12
13
  * - ethers ^6.0.0
13
- * - hardhat ^3.0.0
14
+ * - hardhat ^2.22.0
15
+ * - @nomicfoundation/hardhat-toolbox ^5.0.0
14
16
  *
15
- * Additional tooling (used by the higher level ESM wrapper `"skittles/testing"`, not by this core module):
16
- * - vitest ^2.0.0 (or another compatible test runner)
17
+ * Tests are run via `hardhat test` which uses Mocha under the hood.
17
18
  */
19
+ var __importDefault = (this && this.__importDefault) || function (mod) {
20
+ return (mod && mod.__esModule) ? mod : { "default": mod };
21
+ };
18
22
  var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
19
23
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
20
24
  return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
@@ -23,36 +27,41 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
23
27
  }
24
28
  return path;
25
29
  };
26
- import path from "path";
27
- import fs from "fs";
28
- import { ethers } from "ethers";
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.createTestEnv = createTestEnv;
32
+ exports.loadArtifact = loadArtifact;
33
+ exports.deploy = deploy;
34
+ exports.connectAs = connectAs;
35
+ exports.getBalance = getBalance;
36
+ const path_1 = __importDefault(require("path"));
37
+ const fs_1 = __importDefault(require("fs"));
38
+ const ethers_1 = require("ethers");
29
39
  // ============================================================
30
40
  // Internal helpers
31
41
  // ============================================================
32
- /** Dynamic import wrapper for loading ESM packages like Hardhat v3. */
42
+ /** Dynamic import wrapper for loading ESM packages like Hardhat. */
33
43
  const importModule = (specifier) => import(__rewriteRelativeImportExtension(specifier));
34
44
  // ============================================================
35
45
  // Environment setup
36
46
  // ============================================================
37
47
  /**
38
- * Create a fresh in memory EVM backed by Hardhat's EDR runtime.
39
- * Each test suite should call this once in `beforeAll` and tear it
40
- * down with `env.close()` in `afterAll`.
48
+ * Create a test environment backed by Hardhat Network.
49
+ * Uses the Hardhat Runtime Environment's in memory EVM and wraps it
50
+ * with an ethers BrowserProvider.
51
+ *
52
+ * Each test suite should call this once in a `before` hook.
41
53
  *
42
54
  * ```ts
43
55
  * let env: TestEnv;
44
- * beforeAll(async () => { env = await createTestEnv(); });
45
- * afterAll(async () => { await env.close(); });
56
+ * before(async function () { env = await createTestEnv(); });
46
57
  * ```
47
58
  *
48
- * @param dynamicImport Optional custom import function. The ESM wrapper
49
- * passes native import() here so it works inside vitest's runtime.
59
+ * @param dynamicImport Optional custom import function.
50
60
  */
51
- export async function createTestEnv(dynamicImport = importModule) {
52
- const { network } = await dynamicImport("hardhat");
53
- const server = await network.createServer();
54
- const { address, port } = await server.listen();
55
- const provider = new ethers.JsonRpcProvider(`http://${address}:${port}`);
61
+ async function createTestEnv(dynamicImport = importModule) {
62
+ const hardhatModule = await dynamicImport("hardhat");
63
+ const hre = hardhatModule.default || hardhatModule;
64
+ const provider = new ethers_1.ethers.BrowserProvider(hre.network.provider);
56
65
  const accounts = [];
57
66
  for (let i = 0; i < 10; i++) {
58
67
  accounts.push(await provider.getSigner(i));
@@ -60,7 +69,7 @@ export async function createTestEnv(dynamicImport = importModule) {
60
69
  return {
61
70
  provider,
62
71
  accounts,
63
- close: () => server.close(),
72
+ close: async () => { },
64
73
  };
65
74
  }
66
75
  // ============================================================
@@ -70,18 +79,18 @@ export async function createTestEnv(dynamicImport = importModule) {
70
79
  * Load a compiled contract artifact (ABI + bytecode) from the build directory.
71
80
  * Defaults to `build/` relative to the current working directory.
72
81
  */
73
- export function loadArtifact(contractName, buildDir) {
74
- const dir = buildDir ?? path.join(process.cwd(), "build");
75
- const abiPath = path.join(dir, "abi", `${contractName}.json`);
76
- const bytecodePath = path.join(dir, "bytecode", `${contractName}.bin`);
77
- if (!fs.existsSync(abiPath)) {
78
- throw new Error(`ABI not found for "${contractName}". Did you run "skittles test" (or "skittles compile") first?\n Expected: ${abiPath}`);
82
+ function loadArtifact(contractName, buildDir) {
83
+ const dir = buildDir ?? path_1.default.join(process.cwd(), "build");
84
+ const abiPath = path_1.default.join(dir, "abi", `${contractName}.json`);
85
+ const bytecodePath = path_1.default.join(dir, "bytecode", `${contractName}.bin`);
86
+ if (!fs_1.default.existsSync(abiPath)) {
87
+ throw new Error(`ABI not found for "${contractName}". Did you run "skittles compile" first?\n Expected: ${abiPath}`);
79
88
  }
80
- if (!fs.existsSync(bytecodePath)) {
81
- throw new Error(`Bytecode not found for "${contractName}". Did you run "skittles test" (or "skittles compile") first?\n Expected: ${bytecodePath}`);
89
+ if (!fs_1.default.existsSync(bytecodePath)) {
90
+ throw new Error(`Bytecode not found for "${contractName}". Did you run "skittles compile" first?\n Expected: ${bytecodePath}`);
82
91
  }
83
- const abi = JSON.parse(fs.readFileSync(abiPath, "utf-8"));
84
- const bytecode = fs.readFileSync(bytecodePath, "utf-8");
92
+ const abi = JSON.parse(fs_1.default.readFileSync(abiPath, "utf-8"));
93
+ const bytecode = fs_1.default.readFileSync(bytecodePath, "utf-8");
85
94
  return { abi, bytecode: "0x" + bytecode };
86
95
  }
87
96
  /**
@@ -92,18 +101,18 @@ export function loadArtifact(contractName, buildDir) {
92
101
  *
93
102
  * ```ts
94
103
  * const token = await deploy(env, "Token", [1_000_000n]);
95
- * expect(await token.name()).toBe("MyToken");
104
+ * expect(await token.name()).to.equal("MyToken");
96
105
  * ```
97
106
  */
98
- export async function deploy(env, contractName, constructorArgs = [], options = {}) {
107
+ async function deploy(env, contractName, constructorArgs = [], options = {}) {
99
108
  const { abi, bytecode } = loadArtifact(contractName, options.buildDir);
100
109
  const deployer = env.accounts[options.from ?? 0];
101
- const factory = new ethers.ContractFactory(abi, bytecode, deployer);
110
+ const factory = new ethers_1.ethers.ContractFactory(abi, bytecode, deployer);
102
111
  const overrides = options.value ? { value: options.value } : {};
103
112
  const deployed = await factory.deploy(...constructorArgs, overrides);
104
113
  await deployed.waitForDeployment();
105
114
  const address = await deployed.getAddress();
106
- return new ethers.Contract(address, abi, deployer);
115
+ return new ethers_1.ethers.Contract(address, abi, deployer);
107
116
  }
108
117
  // ============================================================
109
118
  // Utilities
@@ -118,7 +127,7 @@ export async function deploy(env, contractName, constructorArgs = [], options =
118
127
  * await aliceToken.transfer(bobAddr, 100n);
119
128
  * ```
120
129
  */
121
- export function connectAs(contract, signer) {
130
+ function connectAs(contract, signer) {
122
131
  return contract.connect(signer);
123
132
  }
124
133
  /**
@@ -128,7 +137,7 @@ export function connectAs(contract, signer) {
128
137
  * const balance = await getBalance(env, aliceAddr);
129
138
  * ```
130
139
  */
131
- export async function getBalance(env, address) {
140
+ async function getBalance(env, address) {
132
141
  return env.provider.getBalance(address);
133
142
  }
134
143
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
@@ -224,8 +224,6 @@ export interface ObjectLiteralExpression {
224
224
  }
225
225
  export interface BuildArtifact {
226
226
  contractName: string;
227
- abi: AbiItem[];
228
- bytecode: string;
229
227
  solidity: string;
230
228
  }
231
229
  export interface AbiItem {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skittles",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "description": "TypeScript to Solidity to EVM bytecode compiler",
5
5
  "type": "module",
6
6
  "main": "./dist/exports.js",
@@ -10,23 +10,10 @@
10
10
  ".": {
11
11
  "types": "./dist/exports.d.ts",
12
12
  "default": "./dist/exports.js"
13
- },
14
- "./testing": {
15
- "types": "./testing.d.ts",
16
- "import": "./testing.mjs"
17
- }
18
- },
19
- "typesVersions": {
20
- "*": {
21
- "testing": [
22
- "./testing.d.ts"
23
- ]
24
13
  }
25
14
  },
26
15
  "files": [
27
- "dist",
28
- "testing.mjs",
29
- "testing.d.ts"
16
+ "dist"
30
17
  ],
31
18
  "scripts": {
32
19
  "build": "tsc",
@@ -61,8 +48,7 @@
61
48
  },
62
49
  "peerDependencies": {
63
50
  "ethers": "^6.0.0",
64
- "hardhat": "^3.0.0",
65
- "vitest": "^2.0.0"
51
+ "hardhat": "^3.0.0"
66
52
  },
67
53
  "peerDependenciesMeta": {
68
54
  "ethers": {
@@ -70,9 +56,6 @@
70
56
  },
71
57
  "hardhat": {
72
58
  "optional": true
73
- },
74
- "vitest": {
75
- "optional": true
76
59
  }
77
60
  },
78
61
  "devDependencies": {
package/testing.d.ts DELETED
@@ -1,76 +0,0 @@
1
- import { ethers } from "ethers";
2
-
3
- /** A test environment backed by an in memory Hardhat EDR node. */
4
- export interface TestEnv {
5
- /** JSON RPC provider connected to the in memory EVM. */
6
- provider: ethers.JsonRpcProvider;
7
- /** Ten pre funded signer accounts. */
8
- accounts: ethers.Signer[];
9
- /** Shut down the in memory EVM. */
10
- close: () => Promise<void>;
11
- }
12
-
13
- export interface DeployOptions {
14
- /** Override the build directory. Defaults to `build/` in the project root. */
15
- buildDir?: string;
16
- /** Send ETH with deployment (payable constructors). */
17
- value?: bigint;
18
- /** Index of the account to deploy from. Defaults to 0. */
19
- from?: number;
20
- }
21
-
22
- /** The object returned by `setup()`. */
23
- export interface SkittlesTestContext {
24
- /** Ten pre funded signer accounts. Available after beforeAll runs. */
25
- readonly accounts: ethers.Signer[];
26
- /** JSON RPC provider connected to the in memory EVM. */
27
- readonly provider: ethers.JsonRpcProvider;
28
- /** Deploy a compiled contract to the test EVM. */
29
- deploy(
30
- contractName: string,
31
- constructorArgs?: unknown[],
32
- options?: DeployOptions
33
- ): Promise<ethers.Contract>;
34
- /** Connect to a deployed contract from a different signer. */
35
- connectAs(
36
- contract: ethers.Contract,
37
- signer: ethers.Signer
38
- ): ethers.Contract;
39
- /** Get the ETH balance of an address. */
40
- getBalance(address: string): Promise<bigint>;
41
- }
42
-
43
- /**
44
- * Set up a complete test environment with automatic lifecycle management.
45
- * Registers Vitest `beforeAll`/`afterAll` hooks to start and stop an in
46
- * memory EVM automatically.
47
- *
48
- * Call this inside a `describe` block or at the top level of a test file.
49
- */
50
- export function setup(): SkittlesTestContext;
51
-
52
- /** Create a fresh in memory EVM backed by Hardhat's EDR runtime. */
53
- export function createTestEnv(): Promise<TestEnv>;
54
-
55
- /** Deploy a compiled Skittles contract to the test EVM. */
56
- export function deploy(
57
- env: TestEnv,
58
- contractName: string,
59
- constructorArgs?: unknown[],
60
- options?: DeployOptions
61
- ): Promise<ethers.Contract>;
62
-
63
- /** Connect to a deployed contract from a different signer. */
64
- export function connectAs(
65
- contract: ethers.Contract,
66
- signer: ethers.Signer
67
- ): ethers.Contract;
68
-
69
- /** Get the ETH balance of an address. */
70
- export function getBalance(env: TestEnv, address: string): Promise<bigint>;
71
-
72
- /** Load a compiled contract's ABI and bytecode from disk. */
73
- export function loadArtifact(
74
- contractName: string,
75
- buildDir?: string
76
- ): { abi: ethers.InterfaceAbi; bytecode: string };
package/testing.mjs DELETED
@@ -1,83 +0,0 @@
1
- // ESM entry point for skittles/testing.
2
- // Vitest resolves to this file via the package.json "import" condition.
3
-
4
- import { beforeAll, afterAll } from "vitest";
5
- import {
6
- createTestEnv as coreCreateTestEnv,
7
- deploy as coreDeploy,
8
- connectAs,
9
- getBalance as coreGetBalance,
10
- loadArtifact,
11
- } from "./dist/testing.js";
12
-
13
- function createTestEnv() {
14
- return coreCreateTestEnv();
15
- }
16
-
17
- /**
18
- * Set up a complete test environment with automatic lifecycle management.
19
- * Registers beforeAll and afterAll hooks so you never have to create or
20
- * tear down the EVM yourself.
21
- *
22
- * Call this inside a describe block (or at the top level of a test file).
23
- * The returned object's properties (accounts, provider) are populated once
24
- * the internal beforeAll has run, so access them inside beforeAll, it,
25
- * beforeEach, etc.
26
- *
27
- * @example
28
- * import { describe, it, expect, beforeAll } from "vitest";
29
- * import { setup } from "skittles/testing";
30
- *
31
- * describe("Token", () => {
32
- * const env = setup();
33
- * let token;
34
- *
35
- * beforeAll(async () => {
36
- * token = await env.deploy("Token", [1_000_000n]);
37
- * });
38
- *
39
- * it("has the correct name", async () => {
40
- * expect(await token.name()).toBe("MyToken");
41
- * });
42
- * });
43
- */
44
- export function setup() {
45
- let env;
46
-
47
- function requireEnv() {
48
- if (!env) {
49
- throw new Error(
50
- "skittles/testing: setup() environment is not ready yet. " +
51
- "Make sure setup() is called at the top of your describe block " +
52
- "and only access its properties inside beforeAll, beforeEach, it, or afterAll hooks."
53
- );
54
- }
55
- return env;
56
- }
57
-
58
- beforeAll(async () => {
59
- env = await createTestEnv();
60
- }, 30_000);
61
-
62
- afterAll(async () => {
63
- await env?.close();
64
- });
65
-
66
- return {
67
- get accounts() {
68
- return requireEnv().accounts;
69
- },
70
- get provider() {
71
- return requireEnv().provider;
72
- },
73
- deploy(contractName, constructorArgs = [], options = {}) {
74
- return coreDeploy(requireEnv(), contractName, constructorArgs, options);
75
- },
76
- connectAs,
77
- getBalance(address) {
78
- return coreGetBalance(requireEnv(), address);
79
- },
80
- };
81
- }
82
-
83
- export { createTestEnv, coreDeploy as deploy, connectAs, coreGetBalance as getBalance, loadArtifact };