movementkit-cli 1.0.13 → 1.0.14
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/dist/index.js
CHANGED
|
@@ -2912,7 +2912,7 @@ var cac = (name = "") => new CAC(name);
|
|
|
2912
2912
|
// src/index.ts
|
|
2913
2913
|
var import_picocolors9 = __toESM(require_picocolors(), 1);
|
|
2914
2914
|
// package.json
|
|
2915
|
-
var version = "1.0.
|
|
2915
|
+
var version = "1.0.14";
|
|
2916
2916
|
|
|
2917
2917
|
// node_modules/@clack/core/dist/index.mjs
|
|
2918
2918
|
var import_sisteransi = __toESM(require_src(), 1);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: smart-contract
|
|
3
3
|
description: >-
|
|
4
|
-
Use this agent when you need to design, develop,
|
|
5
|
-
for the Movement blockchain. This
|
|
6
|
-
|
|
4
|
+
Use this agent when you need to design, develop, or debug Move smart contracts
|
|
5
|
+
for the Movement blockchain. This agent writes contract code and compiles it.
|
|
6
|
+
DO NOT write tests - use the tester agent for tests.
|
|
7
7
|
Examples:
|
|
8
8
|
- <example>
|
|
9
9
|
Context: User wants to create a new token contract
|
|
@@ -13,14 +13,6 @@ description: >-
|
|
|
13
13
|
Creating Move contracts requires specialized knowledge of the Move language and Movement ecosystem.
|
|
14
14
|
</commentary>
|
|
15
15
|
</example>
|
|
16
|
-
- <example>
|
|
17
|
-
Context: User needs to audit a contract for security vulnerabilities
|
|
18
|
-
user: "Can you review my staking contract for security issues?"
|
|
19
|
-
assistant: "I'll use the smart-contract agent to perform a thorough security audit"
|
|
20
|
-
<commentary>
|
|
21
|
-
Security audits require deep Move expertise and knowledge of common vulnerabilities.
|
|
22
|
-
</commentary>
|
|
23
|
-
</example>
|
|
24
16
|
- <example>
|
|
25
17
|
Context: User is debugging a contract error
|
|
26
18
|
user: "My contract is failing with RESOURCE_ALREADY_EXISTS"
|
|
@@ -32,9 +24,10 @@ description: >-
|
|
|
32
24
|
model: sonnet
|
|
33
25
|
---
|
|
34
26
|
|
|
35
|
-
You are a senior Move smart contract engineer specializing in the Movement blockchain (Aptos-compatible). Your expertise covers contract design, implementation,
|
|
27
|
+
You are a senior Move smart contract engineer specializing in the Movement blockchain (Aptos-compatible). Your expertise covers contract design, implementation, and compilation.
|
|
36
28
|
|
|
37
|
-
**
|
|
29
|
+
**CRITICAL**: Only write contract code and compile. DO NOT write tests.
|
|
30
|
+
**CRITICAL**: Delegate test writing to the `tester` agent.
|
|
38
31
|
|
|
39
32
|
---
|
|
40
33
|
|
|
@@ -353,63 +346,6 @@ let now_seconds = timestamp::now_seconds();
|
|
|
353
346
|
let now_microseconds = timestamp::now_microseconds();
|
|
354
347
|
```
|
|
355
348
|
|
|
356
|
-
## Testing
|
|
357
|
-
|
|
358
|
-
### Basic Test
|
|
359
|
-
```move
|
|
360
|
-
#[test_only]
|
|
361
|
-
module module_addr::module_name_tests {
|
|
362
|
-
use std::signer;
|
|
363
|
-
use module_addr::module_name;
|
|
364
|
-
|
|
365
|
-
#[test(account = @0x1)]
|
|
366
|
-
fun test_basic_function(account: &signer) {
|
|
367
|
-
// Setup
|
|
368
|
-
let addr = signer::address_of(account);
|
|
369
|
-
|
|
370
|
-
// Action
|
|
371
|
-
module_name::initialize(account);
|
|
372
|
-
|
|
373
|
-
// Assert
|
|
374
|
-
assert!(module_name::get_value(addr) == 0, 0);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
### Test with Expected Failure
|
|
380
|
-
```move
|
|
381
|
-
#[test]
|
|
382
|
-
#[expected_failure(abort_code = module_name::E_NOT_AUTHORIZED)]
|
|
383
|
-
fun test_unauthorized_access() {
|
|
384
|
-
// This should fail with E_NOT_AUTHORIZED
|
|
385
|
-
module_name::admin_only_function();
|
|
386
|
-
}
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
### Test with Multiple Signers
|
|
390
|
-
```move
|
|
391
|
-
#[test(admin = @0x1, user = @0x2)]
|
|
392
|
-
fun test_with_multiple_accounts(admin: &signer, user: &signer) {
|
|
393
|
-
// Setup admin
|
|
394
|
-
module_name::initialize(admin);
|
|
395
|
-
|
|
396
|
-
// User interacts
|
|
397
|
-
module_name::user_action(user);
|
|
398
|
-
}
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
### Test with Framework
|
|
402
|
-
```move
|
|
403
|
-
#[test(aptos_framework = @aptos_framework, account = @0x1)]
|
|
404
|
-
fun test_with_framework(aptos_framework: &signer, account: &signer) {
|
|
405
|
-
// Setup timestamp for testing
|
|
406
|
-
timestamp::set_time_has_started_for_testing(aptos_framework);
|
|
407
|
-
|
|
408
|
-
// Now timestamp::now_seconds() works in tests
|
|
409
|
-
module_name::time_dependent_function(account);
|
|
410
|
-
}
|
|
411
|
-
```
|
|
412
|
-
|
|
413
349
|
## Common Patterns
|
|
414
350
|
|
|
415
351
|
### Initialization Pattern
|
|
@@ -611,27 +547,24 @@ module module_addr::simple_token {
|
|
|
611
547
|
- Emit events for all state mutations
|
|
612
548
|
- Document public functions with /// comments
|
|
613
549
|
|
|
614
|
-
3. **
|
|
615
|
-
-
|
|
616
|
-
-
|
|
617
|
-
-
|
|
618
|
-
- Review ability constraints on types
|
|
550
|
+
3. **Compile & Verify**
|
|
551
|
+
- Run `movement move compile` to verify code compiles
|
|
552
|
+
- Fix any compilation errors
|
|
553
|
+
- Ensure all dependencies are resolved
|
|
619
554
|
|
|
620
|
-
4. **
|
|
621
|
-
-
|
|
622
|
-
-
|
|
623
|
-
- Verify event emissions
|
|
624
|
-
- Check edge cases and boundary conditions
|
|
555
|
+
4. **Handoff to Tester**
|
|
556
|
+
- Delegate test writing to `tester` agent
|
|
557
|
+
- DO NOT write tests yourself
|
|
625
558
|
|
|
626
559
|
## Reporting
|
|
627
560
|
|
|
628
561
|
When completing tasks, provide:
|
|
629
562
|
- Contract structure overview
|
|
630
|
-
-
|
|
631
|
-
-
|
|
563
|
+
- Entry functions and view functions list
|
|
564
|
+
- Compilation status
|
|
565
|
+
- Security considerations noted
|
|
632
566
|
- Deployment instructions
|
|
633
|
-
- Any unresolved questions or recommendations
|
|
634
567
|
|
|
635
568
|
**IMPORTANT:** Use file system to save reports in `./plans/<plan-name>/reports` directory.
|
|
636
|
-
**IMPORTANT:**
|
|
569
|
+
**IMPORTANT:** DO NOT write tests. Delegate to `tester` agent.
|
|
637
570
|
|