movehat 0.2.0 → 0.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.
Files changed (81) hide show
  1. package/README.md +132 -279
  2. package/dist/__tests__/fork/api.test.js +2 -2
  3. package/dist/__tests__/harness/Harness.proxy.test.js +7 -11
  4. package/dist/__tests__/harness/Harness.proxy.test.js.map +1 -1
  5. package/dist/__tests__/harness/codeObject.deploy.test.js +1 -1
  6. package/dist/__tests__/harness/codeObject.deploy.test.js.map +1 -1
  7. package/dist/__tests__/harness/view.test.js +3 -3
  8. package/dist/commands/__tests__/run.test.js +3 -3
  9. package/dist/commands/__tests__/run.test.js.map +1 -1
  10. package/dist/core/AccountManager.d.ts +0 -3
  11. package/dist/core/AccountManager.d.ts.map +1 -1
  12. package/dist/core/AccountManager.js +0 -5
  13. package/dist/core/AccountManager.js.map +1 -1
  14. package/dist/core/Publisher.d.ts +0 -5
  15. package/dist/core/Publisher.d.ts.map +1 -1
  16. package/dist/core/Publisher.js +0 -8
  17. package/dist/core/Publisher.js.map +1 -1
  18. package/dist/core/contract.d.ts +0 -3
  19. package/dist/core/contract.d.ts.map +1 -1
  20. package/dist/core/contract.js +0 -3
  21. package/dist/core/contract.js.map +1 -1
  22. package/dist/core/deployments.d.ts +0 -6
  23. package/dist/core/deployments.d.ts.map +1 -1
  24. package/dist/core/deployments.js +0 -12
  25. package/dist/core/deployments.js.map +1 -1
  26. package/dist/fork/__tests__/manager.test.js +1 -1
  27. package/dist/fork/manager.d.ts +1 -21
  28. package/dist/fork/manager.d.ts.map +1 -1
  29. package/dist/fork/manager.js +1 -41
  30. package/dist/fork/manager.js.map +1 -1
  31. package/dist/fork/test.d.ts +0 -1
  32. package/dist/fork/test.d.ts.map +1 -1
  33. package/dist/fork/test.js.map +1 -1
  34. package/dist/harness/Harness.d.ts +5 -11
  35. package/dist/harness/Harness.d.ts.map +1 -1
  36. package/dist/harness/Harness.js +5 -11
  37. package/dist/harness/Harness.js.map +1 -1
  38. package/dist/harness/codeObject.js +1 -5
  39. package/dist/harness/codeObject.js.map +1 -1
  40. package/dist/helpers/setupLocalTesting.d.ts +1 -2
  41. package/dist/helpers/setupLocalTesting.d.ts.map +1 -1
  42. package/dist/helpers/setupLocalTesting.js.map +1 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +0 -1
  45. package/dist/index.js.map +1 -1
  46. package/dist/runtime.d.ts.map +1 -1
  47. package/dist/runtime.js +1 -3
  48. package/dist/runtime.js.map +1 -1
  49. package/dist/templates/scripts/deploy-counter.ts +1 -1
  50. package/dist/templates/tests/Counter.test.ts +2 -2
  51. package/dist/utils/address.d.ts +0 -4
  52. package/dist/utils/address.d.ts.map +1 -1
  53. package/dist/utils/address.js +0 -4
  54. package/dist/utils/address.js.map +1 -1
  55. package/dist/utils/childProcessAdapter.d.ts.map +1 -1
  56. package/dist/utils/childProcessAdapter.js +3 -4
  57. package/dist/utils/childProcessAdapter.js.map +1 -1
  58. package/package.json +2 -1
  59. package/src/__tests__/fork/api.test.ts +2 -2
  60. package/src/__tests__/harness/Harness.proxy.test.ts +7 -11
  61. package/src/__tests__/harness/codeObject.deploy.test.ts +1 -1
  62. package/src/__tests__/harness/view.test.ts +3 -3
  63. package/src/commands/__tests__/run.test.ts +3 -3
  64. package/src/core/AccountManager.ts +0 -12
  65. package/src/core/Publisher.ts +0 -8
  66. package/src/core/contract.ts +0 -3
  67. package/src/core/deployments.ts +0 -12
  68. package/src/fork/__tests__/manager.test.ts +1 -1
  69. package/src/fork/manager.ts +1 -41
  70. package/src/fork/test.ts +0 -1
  71. package/src/harness/Harness.ts +5 -11
  72. package/src/harness/codeObject.ts +1 -5
  73. package/src/helpers/setupLocalTesting.ts +1 -2
  74. package/src/index.ts +0 -1
  75. package/src/node/__tests__/LocalNodeManager.test.ts +1 -1
  76. package/src/runtime.ts +1 -3
  77. package/src/templates/scripts/deploy-counter.ts +1 -1
  78. package/src/templates/tests/Counter.test.ts +2 -2
  79. package/src/types/runtime.ts +2 -2
  80. package/src/utils/address.ts +0 -4
  81. package/src/utils/childProcessAdapter.ts +3 -4
package/README.md CHANGED
@@ -1,361 +1,214 @@
1
- # Movehat
1
+ <div align="center">
2
+ <img src="./packages/movehat/public/movehat.png" alt="Movehat" width="160"/>
2
3
 
3
- > Hardhat-like development framework for Movement L1 smart contracts
4
+ # Movehat
4
5
 
5
- [![npm version](https://badge.fury.io/js/movehat.svg)](https://www.npmjs.com/package/movehat)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ **A Hardhat-like development framework for Movement L1 smart contracts.**
7
7
 
8
- ## Features
8
+ Write your tests and deployment scripts in TypeScript while building Move contracts.
9
+
10
+ [![NPM Version](https://img.shields.io/npm/v/movehat)](https://www.npmjs.com/package/movehat)
11
+ [![License](https://img.shields.io/npm/l/movehat)](./LICENSE)
9
12
 
10
- - **Local Node Testing** - Run a real Movement blockchain locally for testing (just like Hardhat!)
11
- - **Dual Testing Modes** - Choose between `local-node` (full blockchain) or `fork` (read-only snapshot)
12
- - **Auto-Deploy in Tests** - Contracts deploy automatically when tests run - zero manual setup
13
- - **setupTestFixture Helper** - High-level API for test setup with type-safe contracts
14
- - **Auto-detection of Named Addresses** - Automatically detects and configures addresses from Move code
15
- - **Quick Start** - Scaffold new Move projects in seconds
16
- - **TypeScript Testing** - Write integration tests with familiar tools (Mocha, Chai)
17
- - **Movement CLI Integration** - Seamless compilation and deployment
13
+ **[Full documentation](https://movehat.org/)**
18
14
 
19
- ## Prerequisites
15
+ </div>
20
16
 
21
- Before installing Movehat, ensure you have:
17
+ ---
22
18
 
23
- - **Node.js v18+** - [Download](https://nodejs.org/)
24
- - **Movement CLI** - **REQUIRED** for compiling Move contracts
19
+ ## Features
25
20
 
26
- Install from: [Movement CLI Installation Guide](https://docs.movementnetwork.xyz/devs/movementCLI)
21
+ - **Hardhat-style Harness API** `Harness.createLocal`, `createFork`, `createLive` factory methods with explicit lifecycle (`cleanup()`) and use-after-cleanup safety (Proxy poisoning).
22
+ - **Three execution modes** — full local blockchain, read-only fork of a remote network, or live testnet/mainnet binding.
23
+ - **Auto-deploy in tests + auto-detect named addresses** — contracts compile and deploy automatically; no manual address wiring.
24
+ - **Native fork system** — local JSON-backed snapshots of Movement L1 state, no BCS compatibility issues.
25
+ - **TypeScript-first** — single `PRIVATE_KEY` across all networks (Hardhat-style); deployments tracked per-network in `deployments/`.
26
+ - **SLSA-provenance releases** — every npm release ships with [Trusted Publishers](https://docs.npmjs.com/trusted-publishers) provenance. Verify with `npm view movehat@<version>`.
27
+ - **Security hardening built-in** — path-traversal, command-injection, and YAML-injection protections at every boundary.
28
+
29
+ ## Quick Start
27
30
 
28
- Verify: `movement --version`
31
+ ### Prerequisites
29
32
 
30
- **IMPORTANT: Without Movement CLI:** Compilation will fail with "movement: command not found"
33
+ - **Node.js v20+** ([download](https://nodejs.org/))
34
+ - **Movement CLI** — required for compiling and deploying Move code ([install guide](https://docs.movementnetwork.xyz/devs/movementcli)). For the exact revision Movehat tests against, see [`MOVEMENT_CLI_COMPAT.md`](./MOVEMENT_CLI_COMPAT.md).
31
35
 
32
- ## Installation
36
+ ### Installation
33
37
 
34
38
  ```bash
35
39
  npm install -g movehat
36
40
  # or
37
- pnpm add -g movehat
41
+ pnpm install -g movehat
38
42
  ```
39
43
 
40
- ## Quick Start
44
+ ### Five commands to a working test
41
45
 
42
46
  ```bash
43
- # Create a new project
44
- npx movehat init my-move-project
45
-
46
- # Navigate to project
47
- cd my-move-project
48
-
49
- # Install dependencies
50
- npm install
51
-
52
- # Compile contracts (auto-detects named addresses)
53
- npx movehat compile
54
-
55
- # Run tests
56
- npm test
47
+ npx movehat init my-project # 1. Scaffold project
48
+ cd my-project
49
+ npm install # 2. Install dependencies
50
+ npx movehat compile # 3. Compile contracts (auto-detects addresses)
51
+ npm test # 4. Run tests (auto-starts local node, deploys, runs)
57
52
  ```
58
53
 
59
- **Note:** Movehat automatically detects named addresses from your Move files, so no manual configuration is needed for compilation!
54
+ That's it local blockchain starts automatically, accounts get funded, contracts deploy, tests run.
60
55
 
61
- ## Project Structure
62
-
63
- ```
64
- my-move-project/
65
- ├── move/ # Move smart contracts
66
- │ ├── sources/
67
- │ │ └── Counter.move
68
- │ └── Move.toml
69
- ├── scripts/ # Deployment scripts
70
- │ └── deploy-counter.ts
71
- ├── tests/ # Integration tests
72
- │ └── Counter.test.ts
73
- ├── movehat.config.ts # Configuration
74
- └── .env # Environment variables
75
- ```
56
+ For more depth (project layout, configuration, account model, deployment tracking), browse the [full docs](https://movehat.org/).
76
57
 
77
58
  ## Configuration
78
59
 
79
- Edit `movehat.config.ts`:
60
+ A minimal `movehat.config.ts` looks like this:
80
61
 
81
62
  ```typescript
82
- export default {
83
- network: "movement-testnet",
84
- rpc: "https://testnet.movementnetwork.xyz/v1",
85
- account: process.env.MH_ACCOUNT || "",
86
- privateKey: process.env.MH_PRIVATE_KEY || "",
87
- moveDir: "./move",
63
+ import dotenv from "dotenv";
64
+ dotenv.config();
88
65
 
89
- // Named addresses are auto-detected from your Move files
90
- // Only specify if you need specific production addresses
91
- namedAddresses: {
92
- // Optional: counter: "0xYourProductionAddress",
66
+ export default {
67
+ defaultNetwork: "testnet",
68
+ networks: {
69
+ testnet: { url: process.env.MOVEMENT_RPC_URL || "https://testnet.movementnetwork.xyz/v1", chainId: "testnet" },
70
+ mainnet: { url: "https://mainnet.movementnetwork.xyz/v1", chainId: "mainnet" },
71
+ local: { url: "http://localhost:8080/v1", chainId: "local" },
93
72
  },
73
+ accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
74
+ moveDir: "./move",
94
75
  };
95
76
  ```
96
77
 
97
- Set up your environment variables in `.env`:
78
+ A single `PRIVATE_KEY` is reused across networks (Hardhat-style). For testing, accounts are auto-generated and funded from the local faucet — no `.env` needed.
98
79
 
99
- ```bash
100
- MH_PRIVATE_KEY=your_private_key_here
101
- MH_ACCOUNT=your_account_address_here
102
- MH_NETWORK=testnet
103
- ```
80
+ Full reference: [`/docs/getting-started/configuration`](https://movehat.org/docs/getting-started/configuration).
104
81
 
105
82
  ## Writing Tests
106
83
 
107
- Movehat runs tests on a **real local Movement blockchain** (just like Hardhat!):
84
+ The canonical pattern uses `Harness.createLocal`:
108
85
 
109
86
  ```typescript
87
+ // tests/Counter.test.ts
110
88
  import { describe, it, before, after } from "mocha";
111
89
  import { expect } from "chai";
112
- import { setupTestFixture, teardownTestFixture, type TestFixture } from "movehat/helpers";
90
+ import { Harness } from "movehat";
91
+ import type { MoveContract } from "movehat/helpers";
113
92
 
114
93
  describe("Counter Contract", () => {
115
- let fixture: TestFixture<'counter'>;
94
+ let harness: Harness;
95
+ let counter: MoveContract;
96
+ let counterAddr: string;
116
97
 
117
98
  before(async function () {
118
- this.timeout(60000); // Allow time for local node startup + deployment
119
-
120
- // Setup local testing environment with auto-deployment
121
- // This will:
122
- // 1. Start a local Movement blockchain node
123
- // 2. Generate and fund test accounts from local faucet
124
- // 3. Auto-deploy the counter module
125
- // 4. Return everything ready to use
126
- fixture = await setupTestFixture(['counter'] as const, ['alice', 'bob']);
127
-
128
- console.log(`\n✅ Testing on local blockchain`);
129
- console.log(` Deployer: ${fixture.accounts.deployer.accountAddress.toString()}`);
130
- });
99
+ this.timeout(60000); // Local node startup + autoDeploy
131
100
 
132
- it("should initialize with value 0", async () => {
133
- const counter = fixture.contracts.counter; // Type-safe, no `!` needed
134
- const deployer = fixture.accounts.deployer;
101
+ harness = await Harness.createLocal({
102
+ accountLabels: ["deployer", "alice"],
103
+ autoDeploy: ["counter"],
104
+ });
135
105
 
136
- // Read counter value (returns string from view function)
137
- const value = await counter.view<string>("get", [
138
- deployer.accountAddress.toString()
139
- ]);
140
-
141
- expect(parseInt(value)).to.equal(0);
106
+ counterAddr = harness.runtime.getDeploymentAddress("counter");
107
+ counter = harness.runtime.getContract(counterAddr, "counter");
142
108
  });
143
109
 
144
- it("should increment counter", async () => {
145
- const counter = fixture.contracts.counter;
146
- const deployer = fixture.accounts.deployer;
147
-
148
- // Increment the counter (real transaction on local blockchain!)
149
- const tx = await counter.call(deployer, "increment", []);
150
- console.log(` Transaction: ${tx.hash}`);
151
-
152
- // Read new value
153
- const value = await counter.view<string>("get", [
154
- deployer.accountAddress.toString()
155
- ]);
156
-
157
- expect(parseInt(value)).to.equal(1);
158
- });
110
+ after(async () => { await harness.cleanup(); });
159
111
 
160
- after(async () => {
161
- // Cleanup: Stop local node and clear account pool
162
- await teardownTestFixture();
112
+ it("alice can increment her own counter", async () => {
113
+ const alice = harness.runtime.getAccountByLabel("alice");
114
+ await counter.call(alice, "increment", []);
115
+ const [value] = await harness.runViewFunction({
116
+ function: `${counterAddr}::counter::get`,
117
+ functionArguments: [alice.accountAddress.toString()],
118
+ });
119
+ expect(parseInt(value as string)).to.equal(1);
163
120
  });
164
121
  });
165
122
  ```
166
123
 
167
- **Benefits of Local Node Testing:**
168
- - Real blockchain with actual state changes
169
- - Test real transactions (not just simulations)
170
- - Auto-deploy contracts for each test run
171
- - Type-safe contract access (no `!` operator needed)
172
- - Automatic cleanup after tests
173
- - Just like Hardhat - zero manual setup
124
+ Run with `npm test` (interactive menu) or `movehat test --ts` (TypeScript suite, starts local node).
125
+
126
+ > `setupTestFixture` from `movehat/helpers` is a lighter-weight alternative for tests that don't need the Harness lifecycle — both styles are documented at [`/docs/guides/testing`](https://movehat.org/docs/guides/testing).
174
127
 
175
128
  ## Writing Deployment Scripts
176
129
 
130
+ Deploy as a code object with `Harness.createLive`:
131
+
177
132
  ```typescript
178
- import { getMovehat } from "movehat";
133
+ // scripts/deploy-counter.ts
134
+ import { Harness } from "movehat";
179
135
 
180
136
  async function main() {
181
- const mh = await getMovehat();
182
-
183
- console.log("Deploying from:", mh.account.accountAddress.toString());
184
- console.log("Network:", mh.config.network);
185
-
186
- // Deploy (publish) the module
187
- // Movehat automatically checks if already deployed
188
- const deployment = await mh.deployContract("counter");
189
-
190
- console.log("Module deployed at:", deployment.address);
191
- console.log("Transaction:", deployment.txHash);
192
-
193
- // Get contract instance
194
- const contract = mh.getContract(deployment.address, "counter");
195
-
196
- // Initialize the counter
197
- await contract.call(mh.account, "init", []);
198
-
199
- console.log("Counter initialized!");
200
-
201
- // Verify
202
- const value = await contract.view<string>("get", [
203
- mh.account.accountAddress.toString()
204
- ]);
205
-
206
- console.log(`Initial counter value: ${value}`);
137
+ const harness = await Harness.createLive(process.env.MOVEHAT_NETWORK ?? "testnet");
138
+ try {
139
+ const deployment = await harness.deployCodeObject({
140
+ moduleName: "counter",
141
+ });
142
+ console.log(`Deployed: ${deployment.address}::counter`);
143
+ console.log(`Tx: ${deployment.txHash}`);
144
+
145
+ // Initialize the freshly deployed module
146
+ const counter = harness.runtime.getContract(deployment.address, "counter");
147
+ await counter.call(harness.runtime.account, "init", []);
148
+ } finally {
149
+ await harness.cleanup();
150
+ }
207
151
  }
208
152
 
209
- main().catch((error) => {
210
- console.error(error);
211
- process.exit(1);
212
- });
213
- ```
214
-
215
- ## API Reference
216
-
217
- ### Testing Helpers
218
-
219
- #### `setupTestFixture(modules, accountLabels, options?)`
220
-
221
- High-level API for setting up local testing with auto-deployment. Returns type-safe fixture with contracts and accounts.
222
-
223
- ```typescript
224
- // Setup with type inference
225
- const fixture = await setupTestFixture(
226
- ['counter'] as const, // Modules to deploy
227
- ['alice', 'bob'] // Additional account labels
228
- );
229
-
230
- // Access type-safe contracts (no `!` needed)
231
- const counter = fixture.contracts.counter;
232
-
233
- // Access accounts
234
- const deployer = fixture.accounts.deployer;
235
- const alice = fixture.accounts.alice;
236
-
237
- // Options (all optional)
238
- const fixture = await setupTestFixture(['counter'] as const, ['alice'], {
239
- mode: 'fork', // 'local-node' (default) or 'fork'
240
- defaultBalance: 100_000_000, // Balance per account in octas
241
- nodeForceRestart: true, // Restart node on each run
242
- // ... see LocalTestOptions for more
243
- });
244
- ```
245
-
246
- #### `setupLocalTesting(options?)`
247
-
248
- Lower-level API for setting up local testing environment. Returns MovehatRuntime.
249
-
250
- ```typescript
251
- import { setupLocalTesting } from "movehat/helpers";
252
-
253
- // Local node mode (default) - Full blockchain
254
- const mh = await setupLocalTesting({
255
- mode: 'local-node',
256
- accountLabels: ['deployer', 'alice', 'bob'],
257
- autoDeploy: ['counter'], // Auto-deploy modules
258
- autoFund: true,
259
- defaultBalance: 100_000_000
260
- });
261
-
262
- // Fork mode - Read-only snapshot
263
- const mh = await setupLocalTesting({
264
- mode: 'fork',
265
- forkNetwork: 'testnet',
266
- forkName: 'my-fork',
267
- accountLabels: ['alice', 'bob'],
268
- // Note: autoDeploy doesn't work in fork mode
269
- });
270
- ```
271
-
272
- #### `teardownTestFixture()`
273
-
274
- Cleanup function to stop local node and clear accounts.
275
-
276
- ```typescript
277
- after(async () => {
278
- await teardownTestFixture();
279
- });
280
- ```
281
-
282
- #### `stopLocalTesting()`
283
-
284
- Stops the local testing environment (for lower-level API).
285
-
286
- ```typescript
287
- await stopLocalTesting();
153
+ main().catch((err) => { console.error(err); process.exit(1); });
288
154
  ```
289
155
 
290
- ### Contract Interaction
291
-
292
- #### `mh.getContract(moduleAddress, moduleName)`
293
-
294
- Creates a contract wrapper for easy interaction.
156
+ Run with `movehat run scripts/deploy-counter.ts --network testnet`.
295
157
 
296
- ```typescript
297
- const mh = await getMovehat();
298
- const counter = mh.getContract(deployment.address, "counter");
299
- ```
300
-
301
- #### `contract.call(signer, functionName, args, typeArgs?)`
158
+ Re-running fails with `ModuleAlreadyDeployedError` (local record at `deployments/{network}/counter.json`). Set `MH_CLI_REDEPLOY=true` to force a re-deploy.
302
159
 
303
- Executes an entry function (transaction).
160
+ > Requires `movehat@^0.2.0`. Full deploy guide (named addresses, code-object semantics, redeploy flow, deployment tracking): [`/docs/guides/deployment`](https://movehat.org/docs/guides/deployment).
304
161
 
305
- ```typescript
306
- const tx = await counter.call(account, "increment", []);
307
- console.log(`Transaction: ${tx.hash}`);
308
- ```
162
+ ## Fork System
309
163
 
310
- #### `contract.view<T>(functionName, args, typeArgs?)`
164
+ Movehat ships a native fork system for testing against real Movement L1 state without deploying to testnet. Forks are JSON-backed local snapshots that lazy-load resources as you read them, and `Harness.createFork(network)` binds a Harness to one.
311
165
 
312
- Reads data from a view function (no transaction).
166
+ Full fork docs: [`FORK_GUIDE.md`](./FORK_GUIDE.md) (in-repo, comprehensive) or [`/docs/guides/fork`](https://movehat.org/docs/guides/fork) (live site).
313
167
 
314
- ```typescript
315
- // Note: View functions return strings
316
- const value = await counter.view<string>("get", [address]);
317
- console.log(`Value: ${parseInt(value)}`);
318
- ```
168
+ ## CLI Reference
319
169
 
320
- ## Available Commands
170
+ | Command | Description | Docs |
171
+ |---|---|---|
172
+ | `movehat init [name]` | Scaffold a new Movehat project | [/docs/cli/init](https://movehat.org/docs/cli/init) |
173
+ | `movehat compile` | Compile Move contracts via Movement CLI | [/docs/cli/compile](https://movehat.org/docs/cli/compile) |
174
+ | `movehat test [--move\|--ts\|--all]` | Run Move and/or TypeScript tests (interactive menu by default) | [/docs/cli/test](https://movehat.org/docs/cli/test) |
175
+ | `movehat run <script>` | Execute a TypeScript deployment / interaction script | [/docs/cli/run](https://movehat.org/docs/cli/run) |
176
+ | `movehat fork <subcmd>` | Manage local network forks (create / list / serve / fund / view-resource) | [/docs/cli/fork](https://movehat.org/docs/cli/fork) |
177
+ | `movehat update` | Check npm for a newer version and upgrade | — |
321
178
 
322
- ```bash
323
- npx movehat compile # Compile Move contracts
324
- npx movehat test # Interactive menu to choose test type
325
- npx movehat test --move # Run only Move unit tests (fast)
326
- npx movehat test --ts # Run only TypeScript tests (starts local node)
327
- npx movehat test --all # Run all tests (Move + TypeScript)
328
- npx movehat run scripts/... # Run deployment scripts
329
- ```
179
+ ## Troubleshooting
330
180
 
331
- ## System Requirements
181
+ | Error | Solution |
182
+ |---|---|
183
+ | `movement: command not found` | Install Movement CLI per [the Movement docs](https://docs.movementnetwork.xyz/devs/movementcli) |
184
+ | `Module "X" is already deployed on Y` | Set `MH_CLI_REDEPLOY=true` to force a re-deploy |
185
+ | `Configuration file not found` | Create `movehat.config.ts` or run `movehat init` |
186
+ | `No accounts configured` | Set `PRIVATE_KEY` in `.env` |
187
+ | `Cannot find package 'dotenv'` | Run `npm install` or `pnpm install` in the project dir |
332
188
 
333
- **Required:**
334
- - Node.js v18+
335
- - Movement CLI - **REQUIRED** ([Installation Guide](https://docs.movementnetwork.xyz/devs/movementCLI))
336
- - npm or pnpm
189
+ For anything not on this list, open an issue on [GitHub](https://github.com/gilbertsahumada/movehat/issues).
337
190
 
338
- **What fails without Movement CLI:**
339
- - `movehat compile` → "movement: command not found"
340
- - Contract building and deployment will not work
191
+ ## Contributing
341
192
 
342
- **Recommended:**
343
- - Git
344
- - VS Code with Move syntax extension
193
+ See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for development setup, the dual-tier test infrastructure, and the PR workflow.
345
194
 
346
- ## Documentation
195
+ ## License
347
196
 
348
- Visit [GitHub Repository](https://github.com/gilbertsahumada/movehat) for full documentation and examples.
197
+ MIT — see [`LICENSE`](./LICENSE).
349
198
 
350
- ## Contributing
199
+ ## Links
351
200
 
352
- Contributions are welcome! Please feel free to submit a Pull Request.
201
+ - [Full documentation](https://movehat.org/) guides, CLI reference, auto-generated API reference (50 pages from TypeDoc)
202
+ - [Fork system guide](./FORK_GUIDE.md) — in-repo deep-dive
203
+ - [GitHub repository](https://github.com/gilbertsahumada/movehat)
204
+ - [NPM package](https://www.npmjs.com/package/movehat)
205
+ - [Movement Network](https://movementnetwork.xyz/) — the L1 Movehat targets
206
+ - [Movement Network docs](https://docs.movementnetwork.xyz/)
353
207
 
354
- ## License
208
+ ## Author
355
209
 
356
- MIT ©
357
- ## Links
210
+ **Gilberts Ahumada**
358
211
 
359
- - [Movement Network](https://movementnetwork.xyz)
360
- - [Move Language Book](https://move-language.github.io/move/)
361
- - [GitHub Issues](https://github.com/gilbertsahumada/movehat/issues)
212
+ [![Twitter](https://img.shields.io/badge/Twitter-@gilbertsahumada-1DA1F2?logo=x&logoColor=white)](https://x.com/@gilbertsahumada)
213
+ [![YouTube](https://img.shields.io/badge/YouTube-@gilbertsahumada-FF0000?logo=youtube&logoColor=white)](https://www.youtube.com/@gilbertsahumada)
214
+ [![Website](https://img.shields.io/badge/Website-gilbertsahumada.com-blue)](https://gilbertsahumada.com)
@@ -1,8 +1,8 @@
1
1
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
2
  import { EventEmitter } from "node:events";
3
3
  /**
4
- * Tests for `MovementApiClient` Authorization header injection (M2.4
5
- * follow-up — wires the apiKey threading from `Harness.createFork`).
4
+ * Tests for `MovementApiClient` Authorization header injection
5
+ * verifies the apiKey threading from `Harness.createFork`.
6
6
  *
7
7
  * Strategy: `vi.mock` `node:https` and `node:http` so the test
8
8
  * captures the request options passed to `client.get(url, options, cb)`
@@ -2,17 +2,15 @@ import { afterEach, beforeEach, describe, expect, it } from "vitest";
2
2
  import { Harness, HarnessDisposedError } from "../../harness/index.js";
3
3
  import { setupHarnessTestFixture } from "./_fixture.js";
4
4
  /**
5
- * Proxy poisoning is the load-bearing safety guarantee of M2: once a
6
- * Harness has been cleaned up, any further deploy / view / script /
7
- * upgrade call must throw `HarnessDisposedError` synchronously on
8
- * property access — not after the awaited method body. These tests
9
- * lock that contract.
5
+ * Proxy poisoning is the load-bearing safety guarantee of the Harness:
6
+ * once cleaned up, any further deploy / view / script / upgrade call
7
+ * must throw `HarnessDisposedError` synchronously on property access —
8
+ * not after the awaited method body. These tests lock that contract.
10
9
  *
11
10
  * Uses `Harness.createLive(network)` because it does not spawn a real
12
11
  * Movement node — `initRuntime` only constructs the SDK client (no RPC
13
12
  * round-trip) from the fixture config. `createLocal` / `createFork`
14
- * runtime tests live in the M4 integration suite where spinning a real
15
- * node is acceptable.
13
+ * runtime tests live in the integration suite.
16
14
  */
17
15
  describe("Harness — proxy poisoning", () => {
18
16
  let fixture;
@@ -71,10 +69,8 @@ describe("Harness — proxy poisoning", () => {
71
69
  expect(harness.poisoned).toBe(true);
72
70
  expect(harness.runtime).toBeDefined();
73
71
  });
74
- // The M2.3-era "stubs reject" assertion was retired when M2.3 shipped
75
- // real bodies for runViewFunction and runMoveScript. All four methods
76
- // now have dedicated test suites (codeObject.deploy/upgrade.test.ts,
77
- // view.test.ts, script.test.ts).
72
+ // Dedicated suites exist for each of the four methods
73
+ // (codeObject.deploy/upgrade.test.ts, view.test.ts, script.test.ts).
78
74
  it("await harness.someAsyncMethod() pattern: post-cleanup throw happens before await", async () => {
79
75
  const harness = await Harness.createLive("testnet");
80
76
  await harness.cleanup();
@@ -1 +1 @@
1
- {"version":3,"file":"Harness.proxy.test.js","sourceRoot":"","sources":["../../../src/__tests__/harness/Harness.proxy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAA2B,MAAM,eAAe,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,OAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,uBAAuB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,kEAAkE;QAClE,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,2EAA2E;QAC3E,yEAAyE;QACzE,sCAAsC;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CACjE,oBAAoB,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gHAAgH,EAAE,KAAK,IAAI,EAAE;QAC9H,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,MAAM,CAAC,GAAG,EAAE,CACV,OAAO,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CACrE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,EAAE,CACV,OAAO,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CACnD,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,EAAE,CACV,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CACzD,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,GAAG,GAAG,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QACtD,MAAM,CAAE,QAAiC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,+DAA+D;QAC/D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,sEAAsE;IACtE,qEAAqE;IACrE,iCAAiC;IAEjC,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,GAAG,GAAG,CAAC;QACjB,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Harness.proxy.test.js","sourceRoot":"","sources":["../../../src/__tests__/harness/Harness.proxy.test.ts"],"names":[],"mappings":"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"}
@@ -274,7 +274,7 @@ describe("Harness.deployCodeObject", () => {
274
274
  await harness.cleanup();
275
275
  }
276
276
  });
277
- it("fork-mode harness throws synchronously before any CLI call (covered separately for createLocal/createFork in M4 integration suite)", async () => {
277
+ it("fork-mode harness throws synchronously before any CLI call (createLocal/createFork covered by the integration suite)", async () => {
278
278
  // This case can't be tested with a real createFork (it spawns a fork
279
279
  // server). Instead, prove that the disposed-instance path also fires
280
280
  // synchronously: a poisoned harness throws HarnessDisposedError on
@@ -1 +1 @@
1
- {"version":3,"file":"codeObject.deploy.test.js","sourceRoot":"","sources":["../../../src/__tests__/harness/codeObject.deploy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeObject.deploy.test.js","sourceRoot":"","sources":["../../../src/__tests__/harness/codeObject.deploy.test.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@ import { setupHarnessTestFixture } from "./_fixture.js";
5
5
  * Tests for `Harness.runViewFunction` — the SDK delegation path.
6
6
  *
7
7
  * The Aptos SDK isn't behind an injectable adapter, so we monkey-patch
8
- * `harness.runtime.aptos.view` after `createLive`. One-off for M2.3.
9
- * Acceptable here because the function under test is a 6-line wrapper
10
- * that only forwards options.
8
+ * `harness.runtime.aptos.view` after `createLive`. Acceptable here
9
+ * because the function under test is a 6-line wrapper that only
10
+ * forwards options.
11
11
  */
12
12
  describe("Harness.runViewFunction", () => {
13
13
  let fixture;