movehat 0.2.1 → 0.2.2

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 (134) hide show
  1. package/dist/__tests__/deployContract.test.js +56 -47
  2. package/dist/__tests__/deployContract.test.js.map +1 -1
  3. package/dist/__tests__/exports.test.d.ts +2 -0
  4. package/dist/__tests__/exports.test.d.ts.map +1 -0
  5. package/dist/__tests__/exports.test.js +30 -0
  6. package/dist/__tests__/exports.test.js.map +1 -0
  7. package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts +4 -3
  8. package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts.map +1 -1
  9. package/dist/__tests__/fixtures/sigint-deploy-harness.js +8 -7
  10. package/dist/__tests__/fixtures/sigint-deploy-harness.js.map +1 -1
  11. package/dist/__tests__/fork/api.test.js +5 -0
  12. package/dist/__tests__/fork/api.test.js.map +1 -1
  13. package/dist/__tests__/fork/api.timeout.test.d.ts +2 -0
  14. package/dist/__tests__/fork/api.timeout.test.d.ts.map +1 -0
  15. package/dist/__tests__/fork/api.timeout.test.js +98 -0
  16. package/dist/__tests__/fork/api.timeout.test.js.map +1 -0
  17. package/dist/commands/__tests__/compile.toml-mutation.test.d.ts +2 -0
  18. package/dist/commands/__tests__/compile.toml-mutation.test.d.ts.map +1 -0
  19. package/dist/commands/__tests__/compile.toml-mutation.test.js +69 -0
  20. package/dist/commands/__tests__/compile.toml-mutation.test.js.map +1 -0
  21. package/dist/commands/__tests__/init.test.js +73 -11
  22. package/dist/commands/__tests__/init.test.js.map +1 -1
  23. package/dist/commands/init.d.ts +22 -0
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +55 -6
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/core/AccountManager.d.ts.map +1 -1
  28. package/dist/core/AccountManager.js +14 -2
  29. package/dist/core/AccountManager.js.map +1 -1
  30. package/dist/core/Publisher.d.ts.map +1 -1
  31. package/dist/core/Publisher.js +52 -68
  32. package/dist/core/Publisher.js.map +1 -1
  33. package/dist/core/__tests__/AccountManager.global-state.test.d.ts +2 -0
  34. package/dist/core/__tests__/AccountManager.global-state.test.d.ts.map +1 -0
  35. package/dist/core/__tests__/AccountManager.global-state.test.js +69 -0
  36. package/dist/core/__tests__/AccountManager.global-state.test.js.map +1 -0
  37. package/dist/core/__tests__/movementProfile.test.d.ts +2 -0
  38. package/dist/core/__tests__/movementProfile.test.d.ts.map +1 -0
  39. package/dist/core/__tests__/movementProfile.test.js +112 -0
  40. package/dist/core/__tests__/movementProfile.test.js.map +1 -0
  41. package/dist/core/config.js +6 -5
  42. package/dist/core/config.js.map +1 -1
  43. package/dist/core/movementProfile.d.ts +55 -22
  44. package/dist/core/movementProfile.d.ts.map +1 -1
  45. package/dist/core/movementProfile.js +77 -99
  46. package/dist/core/movementProfile.js.map +1 -1
  47. package/dist/fork/__tests__/server.cors.test.d.ts +2 -0
  48. package/dist/fork/__tests__/server.cors.test.d.ts.map +1 -0
  49. package/dist/fork/__tests__/server.cors.test.js +79 -0
  50. package/dist/fork/__tests__/server.cors.test.js.map +1 -0
  51. package/dist/fork/api.d.ts +9 -1
  52. package/dist/fork/api.d.ts.map +1 -1
  53. package/dist/fork/api.js +37 -7
  54. package/dist/fork/api.js.map +1 -1
  55. package/dist/fork/server.d.ts +20 -1
  56. package/dist/fork/server.d.ts.map +1 -1
  57. package/dist/fork/server.js +19 -9
  58. package/dist/fork/server.js.map +1 -1
  59. package/dist/harness/Harness.d.ts +6 -2
  60. package/dist/harness/Harness.d.ts.map +1 -1
  61. package/dist/harness/Harness.js +8 -2
  62. package/dist/harness/Harness.js.map +1 -1
  63. package/dist/harness/codeObject.d.ts.map +1 -1
  64. package/dist/harness/codeObject.js +30 -33
  65. package/dist/harness/codeObject.js.map +1 -1
  66. package/dist/harness/script.d.ts +3 -3
  67. package/dist/harness/script.d.ts.map +1 -1
  68. package/dist/harness/script.js +33 -29
  69. package/dist/harness/script.js.map +1 -1
  70. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts +2 -0
  71. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts.map +1 -0
  72. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js +172 -0
  73. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js.map +1 -0
  74. package/dist/helpers/setupLocalTesting.d.ts.map +1 -1
  75. package/dist/helpers/setupLocalTesting.js +28 -2
  76. package/dist/helpers/setupLocalTesting.js.map +1 -1
  77. package/dist/index.d.ts +1 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/node/LocalNodeManager.d.ts +8 -0
  80. package/dist/node/LocalNodeManager.d.ts.map +1 -1
  81. package/dist/node/LocalNodeManager.js +10 -1
  82. package/dist/node/LocalNodeManager.js.map +1 -1
  83. package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts +2 -0
  84. package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts.map +1 -0
  85. package/dist/node/__tests__/LocalNodeManager.api-port.test.js +55 -0
  86. package/dist/node/__tests__/LocalNodeManager.api-port.test.js.map +1 -0
  87. package/dist/node/__tests__/LocalNodeManager.test.js +4 -3
  88. package/dist/node/__tests__/LocalNodeManager.test.js.map +1 -1
  89. package/dist/templates/move/Move.toml +1 -1
  90. package/dist/templates/move/sources/Counter.move +31 -4
  91. package/dist/templates/scripts/deploy-counter.ts +10 -0
  92. package/dist/types/config.d.ts +8 -1
  93. package/dist/types/config.d.ts.map +1 -1
  94. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts +2 -0
  95. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts.map +1 -0
  96. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js +43 -0
  97. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js.map +1 -0
  98. package/dist/utils/childProcessAdapter.d.ts +7 -0
  99. package/dist/utils/childProcessAdapter.d.ts.map +1 -1
  100. package/dist/utils/childProcessAdapter.js +20 -2
  101. package/dist/utils/childProcessAdapter.js.map +1 -1
  102. package/package.json +1 -1
  103. package/src/__tests__/deployContract.test.ts +59 -50
  104. package/src/__tests__/exports.test.ts +32 -0
  105. package/src/__tests__/fixtures/sigint-deploy-harness.ts +8 -7
  106. package/src/__tests__/fork/api.test.ts +5 -0
  107. package/src/__tests__/fork/api.timeout.test.ts +150 -0
  108. package/src/commands/__tests__/compile.toml-mutation.test.ts +77 -0
  109. package/src/commands/__tests__/init.test.ts +96 -11
  110. package/src/commands/init.ts +77 -6
  111. package/src/core/AccountManager.ts +18 -1
  112. package/src/core/Publisher.ts +58 -77
  113. package/src/core/__tests__/AccountManager.global-state.test.ts +83 -0
  114. package/src/core/__tests__/movementProfile.test.ts +131 -0
  115. package/src/core/config.ts +9 -5
  116. package/src/core/movementProfile.ts +75 -127
  117. package/src/fork/__tests__/server.cors.test.ts +101 -0
  118. package/src/fork/api.ts +69 -10
  119. package/src/fork/server.ts +38 -9
  120. package/src/harness/Harness.ts +11 -2
  121. package/src/harness/codeObject.ts +37 -43
  122. package/src/harness/script.ts +40 -39
  123. package/src/helpers/__tests__/setupLocalTesting.fork-network.test.ts +212 -0
  124. package/src/helpers/setupLocalTesting.ts +36 -2
  125. package/src/index.ts +9 -1
  126. package/src/node/LocalNodeManager.ts +24 -2
  127. package/src/node/__tests__/LocalNodeManager.api-port.test.ts +62 -0
  128. package/src/node/__tests__/LocalNodeManager.test.ts +4 -3
  129. package/src/templates/move/Move.toml +1 -1
  130. package/src/templates/move/sources/Counter.move +31 -4
  131. package/src/templates/scripts/deploy-counter.ts +10 -0
  132. package/src/types/config.ts +8 -1
  133. package/src/utils/__tests__/childProcessAdapter.maxBuffer.test.ts +51 -0
  134. package/src/utils/childProcessAdapter.ts +32 -2
@@ -1 +1 @@
1
- {"version":3,"file":"movementProfile.js","sourceRoot":"","sources":["../../src/core/movementProfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"movementProfile.js","sourceRoot":"","sources":["../../src/core/movementProfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3D,+DAA+D;IAC/D,+DAA+D;IAC/D,6DAA6D;IAC7D,0DAA0D;IAC1D,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACtD,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnC,mEAAmE;QACnE,oEAAoE;QACpE,mEAAmE;QACnE,qDAAqD;QACrD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAc,CAAC;AACtD,IAAI,sBAAsB,GAAG,KAAK,CAAC;AAEnC,MAAM,UAAU,mBAAmB;IACjC,IAAI,sBAAsB;QAAE,OAAO;IACnC,sBAAsB,GAAG,IAAI,CAAC;IAC9B,MAAM,OAAO,GAAG,CAAC,GAAmB,EAAE,EAAE;QACtC,0DAA0D;QAC1D,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,EAAE,EAAE,CAAC;YACP,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QACD,kEAAkE;QAClE,8DAA8D;QAC9D,kEAAkE;QAClE,wBAAwB;QACxB,MAAM,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server.cors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.cors.test.d.ts","sourceRoot":"","sources":["../../../src/fork/__tests__/server.cors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ import { afterEach, beforeEach, describe, expect, it } from "vitest";
2
+ import { mkdtempSync, rmSync, mkdirSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { ForkServer } from "../server.js";
6
+ /**
7
+ * F2 — ForkServer must not advertise `Access-Control-Allow-Origin: *`
8
+ * by default. Cached fork state may include account resources fetched
9
+ * from authenticated upstream nodes; any web page open in the dev's
10
+ * browser should not be able to read it through the loopback listener.
11
+ *
12
+ * Default contract:
13
+ * - No CORS header emitted unless the caller opts in via
14
+ * `corsAllowOrigins`.
15
+ * - When opted in, only requests whose `Origin` is in the allowlist
16
+ * receive a matching `Access-Control-Allow-Origin` (echo of origin,
17
+ * not `*`).
18
+ */
19
+ function makeForkDir() {
20
+ const dir = mkdtempSync(join(tmpdir(), "movehat-fork-cors-"));
21
+ mkdirSync(join(dir, "resources"), { recursive: true });
22
+ writeFileSync(join(dir, "metadata.json"), JSON.stringify({
23
+ network: "test",
24
+ nodeUrl: "http://example.invalid/v1",
25
+ chainId: 0,
26
+ ledgerVersion: "0",
27
+ timestamp: "0",
28
+ epoch: "0",
29
+ blockHeight: "0",
30
+ createdAt: new Date().toISOString(),
31
+ }));
32
+ writeFileSync(join(dir, "accounts.json"), "{}");
33
+ return dir;
34
+ }
35
+ function boundPort(server) {
36
+ const internal = server.server;
37
+ const addr = internal.address();
38
+ return addr.port;
39
+ }
40
+ async function fetchFromServer(port, origin) {
41
+ const headers = {};
42
+ if (origin !== undefined)
43
+ headers.Origin = origin;
44
+ return fetch(`http://127.0.0.1:${port}/v1/`, { headers });
45
+ }
46
+ describe("F2 — ForkServer CORS is closed by default", () => {
47
+ let forkDir;
48
+ let server = null;
49
+ beforeEach(() => {
50
+ forkDir = makeForkDir();
51
+ });
52
+ afterEach(async () => {
53
+ if (server) {
54
+ await server.stop();
55
+ server = null;
56
+ }
57
+ rmSync(forkDir, { recursive: true, force: true });
58
+ });
59
+ it("does not emit Access-Control-Allow-Origin by default", async () => {
60
+ server = new ForkServer(forkDir, 0);
61
+ await server.start();
62
+ const port = boundPort(server);
63
+ const res = await fetchFromServer(port, "https://evil.example");
64
+ expect(res.status).toBe(200);
65
+ expect(res.headers.get("access-control-allow-origin")).toBeNull();
66
+ });
67
+ it("echoes only allow-listed origins when corsAllowOrigins is set", async () => {
68
+ server = new ForkServer(forkDir, 0, "127.0.0.1", {
69
+ corsAllowOrigins: ["https://trusted.example"],
70
+ });
71
+ await server.start();
72
+ const port = boundPort(server);
73
+ const allowed = await fetchFromServer(port, "https://trusted.example");
74
+ expect(allowed.headers.get("access-control-allow-origin")).toBe("https://trusted.example");
75
+ const denied = await fetchFromServer(port, "https://evil.example");
76
+ expect(denied.headers.get("access-control-allow-origin")).toBeNull();
77
+ });
78
+ });
79
+ //# sourceMappingURL=server.cors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.cors.test.js","sourceRoot":"","sources":["../../../src/fork/__tests__/server.cors.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import type { LedgerInfo, AccountData, AccountResource } from '../types/fork.js';
2
+ export interface MovementApiClientOptions {
3
+ /** Abort the request after this many ms (default: 30_000). */
4
+ timeoutMs?: number;
5
+ /** Reject responses larger than this many bytes (default: 16 MiB). */
6
+ maxBytes?: number;
7
+ }
2
8
  /**
3
9
  * Client for interacting with Movement L1 JSON API.
4
10
  *
@@ -10,7 +16,9 @@ import type { LedgerInfo, AccountData, AccountResource } from '../types/fork.js'
10
16
  export declare class MovementApiClient {
11
17
  private nodeUrl;
12
18
  private readonly apiKey?;
13
- constructor(nodeUrl: string, apiKey?: string);
19
+ private readonly timeoutMs;
20
+ private readonly maxBytes;
21
+ constructor(nodeUrl: string, apiKey?: string, options?: MovementApiClientOptions);
14
22
  /**
15
23
  * Make a GET request to the API.
16
24
  *
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/fork/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGjF;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAErB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAc5C;;;;;;;OAOG;YACW,GAAG;IA6CjB;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAMvD;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS7E;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAKvE"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/fork/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGjF,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGhC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,wBAA6B;IAiBxC;;;;;;;OAOG;YACW,GAAG;IAsFjB;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAI1C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAMvD;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAS7E;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAKvE"}
package/dist/fork/api.js CHANGED
@@ -2,6 +2,8 @@ import https from 'https';
2
2
  import http from 'http';
3
3
  import { URL } from 'url';
4
4
  import { normalizeAddressShort } from '../utils/address.js';
5
+ const DEFAULT_TIMEOUT_MS = 30_000;
6
+ const DEFAULT_MAX_BYTES = 16 * 1024 * 1024;
5
7
  /**
6
8
  * Client for interacting with Movement L1 JSON API.
7
9
  *
@@ -13,7 +15,9 @@ import { normalizeAddressShort } from '../utils/address.js';
13
15
  export class MovementApiClient {
14
16
  nodeUrl;
15
17
  apiKey;
16
- constructor(nodeUrl, apiKey) {
18
+ timeoutMs;
19
+ maxBytes;
20
+ constructor(nodeUrl, apiKey, options = {}) {
17
21
  // Remove trailing slash
18
22
  let normalized = nodeUrl.replace(/\/$/, '');
19
23
  // If URL already ends with /v1, use as is
@@ -24,6 +28,8 @@ export class MovementApiClient {
24
28
  this.nodeUrl = normalized;
25
29
  if (apiKey !== undefined)
26
30
  this.apiKey = apiKey;
31
+ this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
32
+ this.maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
27
33
  }
28
34
  /**
29
35
  * Make a GET request to the API.
@@ -42,28 +48,52 @@ export class MovementApiClient {
42
48
  if (this.apiKey !== undefined) {
43
49
  requestOptions.headers = { Authorization: `Bearer ${this.apiKey}` };
44
50
  }
51
+ const timeoutMs = this.timeoutMs;
52
+ const maxBytes = this.maxBytes;
45
53
  return new Promise((resolve, reject) => {
54
+ let settled = false;
55
+ const settle = (fn) => {
56
+ if (settled)
57
+ return;
58
+ settled = true;
59
+ fn();
60
+ };
46
61
  const req = client.get(fullUrl, requestOptions, (res) => {
47
- let data = '';
62
+ const chunks = [];
63
+ let totalBytes = 0;
48
64
  res.on('data', (chunk) => {
49
- data += chunk;
65
+ const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
66
+ totalBytes += buf.length;
67
+ if (totalBytes > maxBytes) {
68
+ req.destroy();
69
+ settle(() => reject(new Error(`Response exceeded maxBytes (${maxBytes}); ${totalBytes} bytes received before abort`)));
70
+ return;
71
+ }
72
+ chunks.push(buf);
50
73
  });
51
74
  res.on('end', () => {
75
+ if (settled)
76
+ return;
77
+ const data = Buffer.concat(chunks).toString('utf8');
52
78
  if (res.statusCode !== 200) {
53
- reject(new Error(`API request failed with status ${res.statusCode}: ${data}`));
79
+ settle(() => reject(new Error(`API request failed with status ${res.statusCode}: ${data}`)));
54
80
  return;
55
81
  }
56
82
  try {
57
83
  const parsed = JSON.parse(data);
58
- resolve(parsed);
84
+ settle(() => resolve(parsed));
59
85
  }
60
86
  catch (err) {
61
- reject(new Error(`Failed to parse JSON response: ${err}`));
87
+ settle(() => reject(new Error(`Failed to parse JSON response: ${err}`)));
62
88
  }
63
89
  });
64
90
  });
91
+ req.setTimeout(timeoutMs, () => {
92
+ req.destroy();
93
+ settle(() => reject(new Error(`API request timed out after ${timeoutMs}ms`)));
94
+ });
65
95
  req.on('error', (err) => {
66
- reject(new Error(`API request failed: ${err.message}`));
96
+ settle(() => reject(new Error(`API request failed: ${err.message}`)));
67
97
  });
68
98
  req.end();
69
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/fork/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/fork/api.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,15 @@
1
+ export interface ForkServerOptions {
2
+ /**
3
+ * Origins allowed to make cross-origin requests. When unset (default),
4
+ * no `Access-Control-Allow-Origin` header is emitted — any browser
5
+ * cross-origin read is rejected by the user agent. Setting this to a
6
+ * non-empty list opts into echoing matching `Origin` request headers
7
+ * back. Wildcard `'*'` is intentionally NOT supported: cached fork
8
+ * state may include resources that should not be readable by every
9
+ * page in the dev's browser.
10
+ */
11
+ corsAllowOrigins?: readonly string[];
12
+ }
1
13
  /**
2
14
  * Fork Server - Serves fork data via Movement L1 RPC API
3
15
  * Emulates a Movement L1 node using local fork storage
@@ -7,12 +19,19 @@ export declare class ForkServer {
7
19
  private forkManager;
8
20
  private port;
9
21
  private host;
22
+ private readonly corsAllowOrigins;
10
23
  /**
11
24
  * @param host Interface to bind. Defaults to `127.0.0.1` so cached fork
12
25
  * state (which may include sensitive resources) is not exposed on the LAN.
13
26
  * Pass `'0.0.0.0'` only if you intentionally need to expose the server.
27
+ * @param options Optional CORS allowlist (see {@link ForkServerOptions}).
28
+ */
29
+ constructor(forkPath: string, port?: number, host?: string, options?: ForkServerOptions);
30
+ /**
31
+ * Set CORS headers for a request when the request's `Origin` is in
32
+ * the allowlist. No-op otherwise.
14
33
  */
15
- constructor(forkPath: string, port?: number, host?: string);
34
+ private applyCors;
16
35
  /**
17
36
  * Start the fork server
18
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/fork/server.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IAErB;;;;OAIG;gBACS,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAa,EAAE,IAAI,GAAE,MAAoB;IAM7E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8E5B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAarB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;YACW,aAAa;IA6D3B;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,iBAAiB;IAsB/B;;OAEG;YACW,kBAAkB;IAwBhC;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAiBhB;;OAEG;IACH,OAAO,CAAC,OAAO;IAQf;;OAEG;IACH,OAAO,CAAC,SAAS;CAOlB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/fork/server.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD;;;;;OAKG;gBAED,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAa,EACnB,IAAI,GAAE,MAAoB,EAC1B,OAAO,GAAE,iBAAsB;IAQjC;;;OAGG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2E5B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAarB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;YACW,aAAa;IA0D3B;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,iBAAiB;IAsB/B;;OAEG;YACW,kBAAkB;IAwBhC;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAiBhB;;OAEG;IACH,OAAO,CAAC,OAAO;IAQf;;OAEG;IACH,OAAO,CAAC,SAAS;CAOlB"}
@@ -10,15 +10,31 @@ export class ForkServer {
10
10
  forkManager;
11
11
  port;
12
12
  host;
13
+ corsAllowOrigins;
13
14
  /**
14
15
  * @param host Interface to bind. Defaults to `127.0.0.1` so cached fork
15
16
  * state (which may include sensitive resources) is not exposed on the LAN.
16
17
  * Pass `'0.0.0.0'` only if you intentionally need to expose the server.
18
+ * @param options Optional CORS allowlist (see {@link ForkServerOptions}).
17
19
  */
18
- constructor(forkPath, port = 8080, host = '127.0.0.1') {
20
+ constructor(forkPath, port = 8080, host = '127.0.0.1', options = {}) {
19
21
  this.forkManager = new ForkManager(forkPath);
20
22
  this.port = port;
21
23
  this.host = host;
24
+ this.corsAllowOrigins = new Set(options.corsAllowOrigins ?? []);
25
+ }
26
+ /**
27
+ * Set CORS headers for a request when the request's `Origin` is in
28
+ * the allowlist. No-op otherwise.
29
+ */
30
+ applyCors(req, res) {
31
+ const origin = req.headers.origin;
32
+ if (typeof origin === 'string' && this.corsAllowOrigins.has(origin)) {
33
+ res.setHeader('Access-Control-Allow-Origin', origin);
34
+ res.setHeader('Vary', 'Origin');
35
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
36
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
37
+ }
22
38
  }
23
39
  /**
24
40
  * Start the fork server
@@ -38,10 +54,7 @@ export class ForkServer {
38
54
  console.error(`Error handling request:`, error);
39
55
  // Only send response if headers haven't been sent yet
40
56
  if (!res.headersSent) {
41
- // Add CORS headers (same as in handleRequest)
42
- res.setHeader('Access-Control-Allow-Origin', '*');
43
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
44
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
57
+ this.applyCors(req, res);
45
58
  // Send generic error response (no internal details exposed)
46
59
  this.sendJSON(res, 500, {
47
60
  message: 'Internal server error',
@@ -125,10 +138,7 @@ export class ForkServer {
125
138
  const pathname = url.pathname;
126
139
  // Log request
127
140
  console.log(`[${new Date().toISOString()}] ${req.method} ${pathname}`);
128
- // CORS headers
129
- res.setHeader('Access-Control-Allow-Origin', '*');
130
- res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
131
- res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
141
+ this.applyCors(req, res);
132
142
  // Handle OPTIONS for CORS preflight
133
143
  if (req.method === 'OPTIONS') {
134
144
  res.writeHead(200);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/fork/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/fork/server.ts"],"names":[],"mappings":"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"}
@@ -46,14 +46,18 @@ export declare class Harness {
46
46
  * and `runMoveScript` throw with a message pointing at `createLocal`.
47
47
  * `runViewFunction` works (read-only path).
48
48
  *
49
- * @param network - Network to fork (e.g. `"testnet"`).
49
+ * @param network - Network to fork. Built-ins: `"testnet"`, `"mainnet"`.
50
+ * Any other name requires `rpcUrl`.
50
51
  * @param apiKey - Optional Movement API key. When set, every upstream
51
52
  * request from the fork's `MovementApiClient` carries
52
53
  * `Authorization: Bearer <apiKey>`. Use for rate-limited public
53
54
  * endpoints or auth-gated nodes. The key stays in process memory
54
55
  * (not persisted to the fork's on-disk metadata).
56
+ * @param rpcUrl - Required when forking a non-built-in network.
57
+ * Ignored when a fork already exists on disk (the saved metadata's
58
+ * nodeUrl is reused).
55
59
  */
56
- static createFork(network: string, apiKey?: string): Promise<Harness>;
60
+ static createFork(network: string, apiKey?: string, rpcUrl?: string): Promise<Harness>;
57
61
  /**
58
62
  * Bind a Harness to a real running network (testnet, mainnet, or any
59
63
  * custom network defined in `movehat.config.ts`). No local process is
@@ -1 +1 @@
1
- {"version":3,"file":"Harness.d.ts","sourceRoot":"","sources":["../../src/harness/Harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAUpD;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAO;IAClB,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,OAAO,EAAE,cAAc,CAAC;IAExC,gBAAgB;IAChB,SAAgB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7C,gBAAgB;IAChB,SAAgB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxC,gBAAgB;IAChB,SAAgB,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;IAQP,4DAA4D;IAC5D,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED;;;;;;OAMG;WACU,WAAW,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1E;;;;;;;;;;;;;OAaG;WACU,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB3E;;;;;;;OAOG;WACU,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM/E;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IASjF;;;;;;;;OAQG;IACG,iBAAiB,CACrB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,cAAc,CAAC;IAS1B;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI1E;;;;;;;;OAQG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAQ9E"}
1
+ {"version":3,"file":"Harness.d.ts","sourceRoot":"","sources":["../../src/harness/Harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAUpD;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAO;IAClB,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,OAAO,EAAE,cAAc,CAAC;IAExC,gBAAgB;IAChB,SAAgB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7C,gBAAgB;IAChB,SAAgB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxC,gBAAgB;IAChB,SAAgB,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;IAQP,4DAA4D;IAC5D,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED;;;;;;OAMG;WACU,WAAW,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1E;;;;;;;;;;;;;;;;;OAiBG;WACU,UAAU,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAkBnB;;;;;;;OAOG;WACU,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM/E;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IASjF;;;;;;;;OAQG;IACG,iBAAiB,CACrB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,cAAc,CAAC;IAS1B;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI1E;;;;;;;;OAQG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAQ9E"}
@@ -66,20 +66,26 @@ export class Harness {
66
66
  * and `runMoveScript` throw with a message pointing at `createLocal`.
67
67
  * `runViewFunction` works (read-only path).
68
68
  *
69
- * @param network - Network to fork (e.g. `"testnet"`).
69
+ * @param network - Network to fork. Built-ins: `"testnet"`, `"mainnet"`.
70
+ * Any other name requires `rpcUrl`.
70
71
  * @param apiKey - Optional Movement API key. When set, every upstream
71
72
  * request from the fork's `MovementApiClient` carries
72
73
  * `Authorization: Bearer <apiKey>`. Use for rate-limited public
73
74
  * endpoints or auth-gated nodes. The key stays in process memory
74
75
  * (not persisted to the fork's on-disk metadata).
76
+ * @param rpcUrl - Required when forking a non-built-in network.
77
+ * Ignored when a fork already exists on disk (the saved metadata's
78
+ * nodeUrl is reused).
75
79
  */
76
- static async createFork(network, apiKey) {
80
+ static async createFork(network, apiKey, rpcUrl) {
77
81
  const setupOpts = {
78
82
  mode: "fork",
79
83
  forkNetwork: network,
80
84
  };
81
85
  if (apiKey !== undefined)
82
86
  setupOpts.forkApiKey = apiKey;
87
+ if (rpcUrl !== undefined)
88
+ setupOpts.forkRpcUrl = rpcUrl;
83
89
  const ctx = await setupLocalTesting(setupOpts);
84
90
  const init = {
85
91
  mode: "fork",
@@ -1 +1 @@
1
- {"version":3,"file":"Harness.js","sourceRoot":"","sources":["../../src/harness/Harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Harness.js","sourceRoot":"","sources":["../../src/harness/Harness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codeObject.d.ts","sourceRoot":"","sources":["../../src/harness/codeObject.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,EACf,MAAM,qBAAqB,CAAC;AA0B7B;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAazB;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,cAAc,CAAC,CAmBzB"}
1
+ {"version":3,"file":"codeObject.d.ts","sourceRoot":"","sources":["../../src/harness/codeObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAyB7B;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAazB;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,cAAc,CAAC,CAmBzB"}
@@ -1,14 +1,12 @@
1
- import { homedir } from "os";
2
- import { join } from "path";
3
- import { randomUUID } from "crypto";
1
+ import { PrivateKey, PrivateKeyVariants } from "@aptos-labs/ts-sdk";
4
2
  import { extractNamedAddresses } from "../commands/compile.js";
5
3
  import { saveDeployment, loadDeployment, validateSafeName, } from "../core/deployments.js";
6
- import { validatePathSafety, validateProfileSafety } from "../core/shell.js";
4
+ import { validatePathSafety } from "../core/shell.js";
7
5
  import { CliExecutionError, ModuleAlreadyDeployedError, PostPublishError, } from "../errors.js";
8
6
  import { runCli } from "../utils/runCli.js";
9
7
  import { parseTxHash } from "../utils/parseCliOutput.js";
10
8
  import { logger } from "../ui/index.js";
11
- import { withYamlLock, addProfile, removeProfile, removeProfileSync, ensureSignalHandler, cleanupCallbacks, } from "../core/movementProfile.js";
9
+ import { writeTempKeyFile, removeKeyFile, removeKeyFileSyncBestEffort, ensureSignalHandler, cleanupCallbacks, } from "../core/movementProfile.js";
12
10
  /**
13
11
  * Deploy a Move package as a code object via `movement move deploy-object`.
14
12
  *
@@ -97,9 +95,7 @@ async function executeMovementMoveObject(opts) {
97
95
  }
98
96
  }
99
97
  const dir = opts.packageDir || config.moveDir;
100
- const profile = `movehat-deploy-${randomUUID().slice(0, 8)}`;
101
98
  const safeDir = validatePathSafety(dir, "package directory");
102
- const safeProfile = validateProfileSafety(profile);
103
99
  logger.step(`${subcommand === "deploy-object" ? "Deploying" : "Upgrading"} module "${moduleName}" from ${dir}...`);
104
100
  try {
105
101
  const deployerAddress = account.accountAddress.toString();
@@ -132,24 +128,22 @@ async function executeMovementMoveObject(opts) {
132
128
  }, { adapter: opts.adapter });
133
129
  if (buildResult.stdout)
134
130
  console.log(buildResult.stdout.trim());
135
- // Strip `ed25519-priv-` prefix if present Movement CLI expects the
136
- // raw hex.
137
- let cleanPrivateKey = config.privateKey;
138
- if (cleanPrivateKey.startsWith("ed25519-priv-")) {
139
- cleanPrivateKey = cleanPrivateKey.replace("ed25519-priv-", "");
140
- }
141
- const movementConfigPath = join(homedir(), ".aptos", "config.yaml");
142
- // Register SIGINT-safe sync cleanup BEFORE writing the key (same
143
- // pattern as Publisher — closes bug #36).
131
+ // Format the private key into AIP-80 shape so the Movement CLI
132
+ // doesn't emit its raw-hex deprecation warning. `formatPrivateKey`
133
+ // is idempotent for already-prefixed inputs.
134
+ const formattedPrivateKey = PrivateKey.formatPrivateKey(config.privateKey, PrivateKeyVariants.Ed25519);
135
+ // Pass the private key via a 0o600 temp file (--private-key-file)
136
+ // and the on-chain address via --sender-account. This avoids the
137
+ // CLI's profile-yaml lookup entirely — no CWD / HOME / .aptos /
138
+ // .movement dance, no CLI-variant dependency.
139
+ const keyFilePath = writeTempKeyFile(formattedPrivateKey);
140
+ // Register SIGINT-safe sync cleanup BEFORE invoking the CLI so
141
+ // the private key never persists on disk after an abnormal exit.
142
+ // The signal-handler path uses the best-effort variant because the
143
+ // event loop is dead and we cannot logger.warning.
144
144
  ensureSignalHandler();
145
- const syncCleanup = () => removeProfileSync(movementConfigPath, profile);
145
+ const syncCleanup = () => removeKeyFileSyncBestEffort(keyFilePath);
146
146
  cleanupCallbacks.add(syncCleanup);
147
- await withYamlLock(() => addProfile(movementConfigPath, profile, {
148
- private_key: cleanPrivateKey,
149
- public_key: account.publicKey.toString(),
150
- account: deployerAddress,
151
- rest_url: config.rpc,
152
- }));
153
147
  let deployOut = "";
154
148
  try {
155
149
  logger.step(`Running 'movement move ${subcommand}'${subcommand === "upgrade-object" ? "" : " (this may take a moment)"}...`);
@@ -167,8 +161,10 @@ async function executeMovementMoveObject(opts) {
167
161
  safeDir,
168
162
  "--url",
169
163
  config.rpc,
170
- "--profile",
171
- safeProfile,
164
+ "--private-key-file",
165
+ keyFilePath,
166
+ "--sender-account",
167
+ deployerAddress,
172
168
  "--assume-yes",
173
169
  ...includedArtifacts,
174
170
  ...namedAddrArgs,
@@ -183,14 +179,15 @@ async function executeMovementMoveObject(opts) {
183
179
  console.error(result.stderr.trim());
184
180
  }
185
181
  finally {
186
- // Best-effort profile removal. CRITICAL: catch + log instead of
187
- // re-throwing an await-in-finally that throws would clobber the
188
- // try block's success/error (the bug-#37 lesson from Publisher).
189
- await withYamlLock(() => removeProfile(movementConfigPath, profile)).catch((err) => {
190
- const cleanupMsg = err instanceof Error ? err.message : String(err);
191
- logger.warning(`Failed to remove deploy profile "${profile}" from ${movementConfigPath}: ${cleanupMsg}. ` +
192
- `Run 'movement config delete-profile --profile ${profile}' to clean up manually.`);
193
- });
182
+ // Unlink via the observable helper emit a warning if the file
183
+ // could not be removed AND still exists on disk (private key
184
+ // would persist silently otherwise). ENOENT and races are
185
+ // treated as benign success.
186
+ const cleanupErr = removeKeyFile(keyFilePath);
187
+ if (cleanupErr) {
188
+ logger.warning(`Failed to remove temp key file '${keyFilePath}': ${cleanupErr.message}. ` +
189
+ `The file has mode 0o600 but should be removed manually: rm ${keyFilePath}`);
190
+ }
194
191
  cleanupCallbacks.delete(syncCleanup);
195
192
  }
196
193
  // Parse object address (for deploy-object) and txHash (both flows).