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.
- package/README.md +132 -279
- package/dist/__tests__/fork/api.test.js +2 -2
- package/dist/__tests__/harness/Harness.proxy.test.js +7 -11
- package/dist/__tests__/harness/Harness.proxy.test.js.map +1 -1
- package/dist/__tests__/harness/codeObject.deploy.test.js +1 -1
- package/dist/__tests__/harness/codeObject.deploy.test.js.map +1 -1
- package/dist/__tests__/harness/view.test.js +3 -3
- package/dist/commands/__tests__/run.test.js +3 -3
- package/dist/commands/__tests__/run.test.js.map +1 -1
- package/dist/core/AccountManager.d.ts +0 -3
- package/dist/core/AccountManager.d.ts.map +1 -1
- package/dist/core/AccountManager.js +0 -5
- package/dist/core/AccountManager.js.map +1 -1
- package/dist/core/Publisher.d.ts +0 -5
- package/dist/core/Publisher.d.ts.map +1 -1
- package/dist/core/Publisher.js +0 -8
- package/dist/core/Publisher.js.map +1 -1
- package/dist/core/contract.d.ts +0 -3
- package/dist/core/contract.d.ts.map +1 -1
- package/dist/core/contract.js +0 -3
- package/dist/core/contract.js.map +1 -1
- package/dist/core/deployments.d.ts +0 -6
- package/dist/core/deployments.d.ts.map +1 -1
- package/dist/core/deployments.js +0 -12
- package/dist/core/deployments.js.map +1 -1
- package/dist/fork/__tests__/manager.test.js +1 -1
- package/dist/fork/manager.d.ts +1 -21
- package/dist/fork/manager.d.ts.map +1 -1
- package/dist/fork/manager.js +1 -41
- package/dist/fork/manager.js.map +1 -1
- package/dist/fork/test.d.ts +0 -1
- package/dist/fork/test.d.ts.map +1 -1
- package/dist/fork/test.js.map +1 -1
- package/dist/harness/Harness.d.ts +5 -11
- package/dist/harness/Harness.d.ts.map +1 -1
- package/dist/harness/Harness.js +5 -11
- package/dist/harness/Harness.js.map +1 -1
- package/dist/harness/codeObject.js +1 -5
- package/dist/harness/codeObject.js.map +1 -1
- package/dist/helpers/setupLocalTesting.d.ts +1 -2
- package/dist/helpers/setupLocalTesting.d.ts.map +1 -1
- package/dist/helpers/setupLocalTesting.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1 -3
- package/dist/runtime.js.map +1 -1
- package/dist/templates/scripts/deploy-counter.ts +1 -1
- package/dist/templates/tests/Counter.test.ts +2 -2
- package/dist/utils/address.d.ts +0 -4
- package/dist/utils/address.d.ts.map +1 -1
- package/dist/utils/address.js +0 -4
- package/dist/utils/address.js.map +1 -1
- package/dist/utils/childProcessAdapter.d.ts.map +1 -1
- package/dist/utils/childProcessAdapter.js +3 -4
- package/dist/utils/childProcessAdapter.js.map +1 -1
- package/package.json +2 -1
- package/src/__tests__/fork/api.test.ts +2 -2
- package/src/__tests__/harness/Harness.proxy.test.ts +7 -11
- package/src/__tests__/harness/codeObject.deploy.test.ts +1 -1
- package/src/__tests__/harness/view.test.ts +3 -3
- package/src/commands/__tests__/run.test.ts +3 -3
- package/src/core/AccountManager.ts +0 -12
- package/src/core/Publisher.ts +0 -8
- package/src/core/contract.ts +0 -3
- package/src/core/deployments.ts +0 -12
- package/src/fork/__tests__/manager.test.ts +1 -1
- package/src/fork/manager.ts +1 -41
- package/src/fork/test.ts +0 -1
- package/src/harness/Harness.ts +5 -11
- package/src/harness/codeObject.ts +1 -5
- package/src/helpers/setupLocalTesting.ts +1 -2
- package/src/index.ts +0 -1
- package/src/node/__tests__/LocalNodeManager.test.ts +1 -1
- package/src/runtime.ts +1 -3
- package/src/templates/scripts/deploy-counter.ts +1 -1
- package/src/templates/tests/Counter.test.ts +2 -2
- package/src/types/runtime.ts +2 -2
- package/src/utils/address.ts +0 -4
- package/src/utils/childProcessAdapter.ts +3 -4
package/README.md
CHANGED
|
@@ -1,361 +1,214 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./packages/movehat/public/movehat.png" alt="Movehat" width="160"/>
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
# Movehat
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
**A Hardhat-like development framework for Movement L1 smart contracts.**
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Write your tests and deployment scripts in TypeScript while building Move contracts.
|
|
9
|
+
|
|
10
|
+
[](https://www.npmjs.com/package/movehat)
|
|
11
|
+
[](./LICENSE)
|
|
9
12
|
|
|
10
|
-
|
|
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
|
-
|
|
15
|
+
</div>
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
---
|
|
22
18
|
|
|
23
|
-
|
|
24
|
-
- **Movement CLI** - **REQUIRED** for compiling Move contracts
|
|
19
|
+
## Features
|
|
25
20
|
|
|
26
|
-
|
|
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
|
-
|
|
31
|
+
### Prerequisites
|
|
29
32
|
|
|
30
|
-
**
|
|
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
|
-
|
|
36
|
+
### Installation
|
|
33
37
|
|
|
34
38
|
```bash
|
|
35
39
|
npm install -g movehat
|
|
36
40
|
# or
|
|
37
|
-
pnpm
|
|
41
|
+
pnpm install -g movehat
|
|
38
42
|
```
|
|
39
43
|
|
|
40
|
-
|
|
44
|
+
### Five commands to a working test
|
|
41
45
|
|
|
42
46
|
```bash
|
|
43
|
-
#
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
#
|
|
47
|
-
|
|
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
|
-
|
|
54
|
+
That's it — local blockchain starts automatically, accounts get funded, contracts deploy, tests run.
|
|
60
55
|
|
|
61
|
-
|
|
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
|
-
|
|
60
|
+
A minimal `movehat.config.ts` looks like this:
|
|
80
61
|
|
|
81
62
|
```typescript
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
90
|
+
import { Harness } from "movehat";
|
|
91
|
+
import type { MoveContract } from "movehat/helpers";
|
|
113
92
|
|
|
114
93
|
describe("Counter Contract", () => {
|
|
115
|
-
let
|
|
94
|
+
let harness: Harness;
|
|
95
|
+
let counter: MoveContract;
|
|
96
|
+
let counterAddr: string;
|
|
116
97
|
|
|
117
98
|
before(async function () {
|
|
118
|
-
this.timeout(60000); //
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
101
|
+
harness = await Harness.createLocal({
|
|
102
|
+
accountLabels: ["deployer", "alice"],
|
|
103
|
+
autoDeploy: ["counter"],
|
|
104
|
+
});
|
|
135
105
|
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
await
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
-
|
|
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
|
-
|
|
133
|
+
// scripts/deploy-counter.ts
|
|
134
|
+
import { Harness } from "movehat";
|
|
179
135
|
|
|
180
136
|
async function main() {
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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((
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
306
|
-
const tx = await counter.call(account, "increment", []);
|
|
307
|
-
console.log(`Transaction: ${tx.hash}`);
|
|
308
|
-
```
|
|
162
|
+
## Fork System
|
|
309
163
|
|
|
310
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
339
|
-
- `movehat compile` → "movement: command not found"
|
|
340
|
-
- Contract building and deployment will not work
|
|
191
|
+
## Contributing
|
|
341
192
|
|
|
342
|
-
|
|
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
|
-
##
|
|
195
|
+
## License
|
|
347
196
|
|
|
348
|
-
|
|
197
|
+
MIT — see [`LICENSE`](./LICENSE).
|
|
349
198
|
|
|
350
|
-
##
|
|
199
|
+
## Links
|
|
351
200
|
|
|
352
|
-
|
|
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
|
-
##
|
|
208
|
+
## Author
|
|
355
209
|
|
|
356
|
-
|
|
357
|
-
## Links
|
|
210
|
+
**Gilberts Ahumada**
|
|
358
211
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
212
|
+
[](https://x.com/@gilbertsahumada)
|
|
213
|
+
[](https://www.youtube.com/@gilbertsahumada)
|
|
214
|
+
[](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
|
|
5
|
-
*
|
|
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
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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
|
|
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
|
-
//
|
|
75
|
-
//
|
|
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
|
|
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;;;;;;;;;;GAUG;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,sDAAsD;IACtD,qEAAqE;IAErE,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"}
|
|
@@ -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 (
|
|
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`.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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;
|