movehat 0.1.8 → 0.2.0
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 +2 -2
- package/dist/__tests__/deployContract.test.d.ts +2 -0
- package/dist/__tests__/deployContract.test.d.ts.map +1 -0
- package/dist/__tests__/deployContract.test.js +368 -0
- package/dist/__tests__/deployContract.test.js.map +1 -0
- package/dist/__tests__/errors.test.d.ts +2 -0
- package/dist/__tests__/errors.test.d.ts.map +1 -0
- package/dist/__tests__/errors.test.js +46 -0
- package/dist/__tests__/errors.test.js.map +1 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts +24 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts.map +1 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.js +82 -0
- package/dist/__tests__/fixtures/sigint-deploy-harness.js.map +1 -0
- package/dist/__tests__/fork/api.test.d.ts +2 -0
- package/dist/__tests__/fork/api.test.d.ts.map +1 -0
- package/dist/__tests__/fork/api.test.js +110 -0
- package/dist/__tests__/fork/api.test.js.map +1 -0
- package/dist/__tests__/harness/Harness.createLive.test.d.ts +2 -0
- package/dist/__tests__/harness/Harness.createLive.test.d.ts.map +1 -0
- package/dist/__tests__/harness/Harness.createLive.test.js +53 -0
- package/dist/__tests__/harness/Harness.createLive.test.js.map +1 -0
- package/dist/__tests__/harness/Harness.proxy.test.d.ts +2 -0
- package/dist/__tests__/harness/Harness.proxy.test.d.ts.map +1 -0
- package/dist/__tests__/harness/Harness.proxy.test.js +93 -0
- package/dist/__tests__/harness/Harness.proxy.test.js.map +1 -0
- package/dist/__tests__/harness/_fixture.d.ts +54 -0
- package/dist/__tests__/harness/_fixture.d.ts.map +1 -0
- package/dist/__tests__/harness/_fixture.js +69 -0
- package/dist/__tests__/harness/_fixture.js.map +1 -0
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts +2 -0
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts.map +1 -0
- package/dist/__tests__/harness/codeObject.deploy.test.js +288 -0
- package/dist/__tests__/harness/codeObject.deploy.test.js.map +1 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts +2 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.js +138 -0
- package/dist/__tests__/harness/codeObject.upgrade.test.js.map +1 -0
- package/dist/__tests__/harness/script.test.d.ts +2 -0
- package/dist/__tests__/harness/script.test.d.ts.map +1 -0
- package/dist/__tests__/harness/script.test.js +219 -0
- package/dist/__tests__/harness/script.test.js.map +1 -0
- package/dist/__tests__/harness/view.test.d.ts +2 -0
- package/dist/__tests__/harness/view.test.d.ts.map +1 -0
- package/dist/__tests__/harness/view.test.js +92 -0
- package/dist/__tests__/harness/view.test.js.map +1 -0
- package/dist/__tests__/runtime.test.d.ts +2 -0
- package/dist/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/__tests__/runtime.test.js +141 -0
- package/dist/__tests__/runtime.test.js.map +1 -0
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/__tests__/compile.test.d.ts +2 -0
- package/dist/commands/__tests__/compile.test.d.ts.map +1 -0
- package/dist/commands/__tests__/compile.test.js +351 -0
- package/dist/commands/__tests__/compile.test.js.map +1 -0
- package/dist/commands/__tests__/init.test.d.ts +2 -0
- package/dist/commands/__tests__/init.test.d.ts.map +1 -0
- package/dist/commands/__tests__/init.test.js +101 -0
- package/dist/commands/__tests__/init.test.js.map +1 -0
- package/dist/commands/__tests__/run.test.d.ts +2 -0
- package/dist/commands/__tests__/run.test.d.ts.map +1 -0
- package/dist/commands/__tests__/run.test.js +166 -0
- package/dist/commands/__tests__/run.test.js.map +1 -0
- package/dist/commands/__tests__/test-move.test.d.ts +2 -0
- package/dist/commands/__tests__/test-move.test.d.ts.map +1 -0
- package/dist/commands/__tests__/test-move.test.js +59 -0
- package/dist/commands/__tests__/test-move.test.js.map +1 -0
- package/dist/commands/__tests__/test.test.d.ts +2 -0
- package/dist/commands/__tests__/test.test.d.ts.map +1 -0
- package/dist/commands/__tests__/test.test.js +168 -0
- package/dist/commands/__tests__/test.test.js.map +1 -0
- package/dist/commands/__tests__/update.test.d.ts +2 -0
- package/dist/commands/__tests__/update.test.d.ts.map +1 -0
- package/dist/commands/__tests__/update.test.js +176 -0
- package/dist/commands/__tests__/update.test.js.map +1 -0
- package/dist/commands/compile.d.ts +7 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +150 -33
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/fork/__tests__/create.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/create.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/create.test.js +108 -0
- package/dist/commands/fork/__tests__/create.test.js.map +1 -0
- package/dist/commands/fork/__tests__/fund.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/fund.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/fund.test.js +72 -0
- package/dist/commands/fork/__tests__/fund.test.js.map +1 -0
- package/dist/commands/fork/__tests__/list.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/list.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/list.test.js +119 -0
- package/dist/commands/fork/__tests__/list.test.js.map +1 -0
- package/dist/commands/fork/__tests__/serve.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/serve.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/serve.test.js +97 -0
- package/dist/commands/fork/__tests__/serve.test.js.map +1 -0
- package/dist/commands/fork/__tests__/view-resource.test.d.ts +2 -0
- package/dist/commands/fork/__tests__/view-resource.test.d.ts.map +1 -0
- package/dist/commands/fork/__tests__/view-resource.test.js +77 -0
- package/dist/commands/fork/__tests__/view-resource.test.js.map +1 -0
- package/dist/commands/fork/create.d.ts +1 -1
- package/dist/commands/fork/create.d.ts.map +1 -1
- package/dist/commands/fork/create.js +3 -2
- package/dist/commands/fork/create.js.map +1 -1
- package/dist/commands/fork/fund.d.ts.map +1 -1
- package/dist/commands/fork/fund.js +15 -8
- package/dist/commands/fork/fund.js.map +1 -1
- package/dist/commands/fork/list.d.ts.map +1 -1
- package/dist/commands/fork/list.js +2 -1
- package/dist/commands/fork/list.js.map +1 -1
- package/dist/commands/fork/serve.d.ts +1 -0
- package/dist/commands/fork/serve.d.ts.map +1 -1
- package/dist/commands/fork/serve.js +4 -2
- package/dist/commands/fork/serve.js.map +1 -1
- package/dist/commands/fork/view-resource.d.ts.map +1 -1
- package/dist/commands/fork/view-resource.js +10 -5
- package/dist/commands/fork/view-resource.js.map +1 -1
- package/dist/commands/run.d.ts +15 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +50 -27
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/test-move.d.ts.map +1 -1
- package/dist/commands/test-move.js +3 -2
- package/dist/commands/test-move.js.map +1 -1
- package/dist/commands/test.js +52 -46
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +15 -13
- package/dist/commands/update.js.map +1 -1
- package/dist/core/AccountManager.d.ts +1 -1
- package/dist/core/AccountManager.d.ts.map +1 -1
- package/dist/core/AccountManager.js +20 -7
- package/dist/core/AccountManager.js.map +1 -1
- package/dist/core/Publisher.d.ts +31 -0
- package/dist/core/Publisher.d.ts.map +1 -0
- package/dist/core/Publisher.js +248 -0
- package/dist/core/Publisher.js.map +1 -0
- package/dist/core/__tests__/AccountManager.test.d.ts +2 -0
- package/dist/core/__tests__/AccountManager.test.d.ts.map +1 -0
- package/dist/core/__tests__/AccountManager.test.js +239 -0
- package/dist/core/__tests__/AccountManager.test.js.map +1 -0
- package/dist/core/__tests__/config.test.d.ts +2 -0
- package/dist/core/__tests__/config.test.d.ts.map +1 -0
- package/dist/core/__tests__/config.test.js +311 -0
- package/dist/core/__tests__/config.test.js.map +1 -0
- package/dist/core/__tests__/deployments.test.d.ts +2 -0
- package/dist/core/__tests__/deployments.test.d.ts.map +1 -0
- package/dist/core/__tests__/deployments.test.js +201 -0
- package/dist/core/__tests__/deployments.test.js.map +1 -0
- package/dist/core/__tests__/shell.test.d.ts +2 -0
- package/dist/core/__tests__/shell.test.d.ts.map +1 -0
- package/dist/core/__tests__/shell.test.js +107 -0
- package/dist/core/__tests__/shell.test.js.map +1 -0
- package/dist/core/config.d.ts +13 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +80 -11
- package/dist/core/config.js.map +1 -1
- package/dist/core/contract.d.ts +1 -1
- package/dist/core/contract.d.ts.map +1 -1
- package/dist/core/contract.js +15 -4
- package/dist/core/contract.js.map +1 -1
- package/dist/core/deployments.d.ts +2 -2
- package/dist/core/deployments.d.ts.map +1 -1
- package/dist/core/deployments.js +8 -6
- package/dist/core/deployments.js.map +1 -1
- package/dist/core/movementProfile.d.ts +34 -0
- package/dist/core/movementProfile.d.ts.map +1 -0
- package/dist/core/movementProfile.js +150 -0
- package/dist/core/movementProfile.js.map +1 -0
- package/dist/core/shell.d.ts +23 -7
- package/dist/core/shell.d.ts.map +1 -1
- package/dist/core/shell.js +32 -14
- package/dist/core/shell.js.map +1 -1
- package/dist/errors.d.ts +35 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +54 -0
- package/dist/errors.js.map +1 -1
- package/dist/fork/__tests__/manager.test.d.ts +2 -0
- package/dist/fork/__tests__/manager.test.d.ts.map +1 -0
- package/dist/fork/__tests__/manager.test.js +309 -0
- package/dist/fork/__tests__/manager.test.js.map +1 -0
- package/dist/fork/__tests__/server.test.d.ts +2 -0
- package/dist/fork/__tests__/server.test.d.ts.map +1 -0
- package/dist/fork/__tests__/server.test.js +54 -0
- package/dist/fork/__tests__/server.test.js.map +1 -0
- package/dist/fork/__tests__/storage.test.d.ts +2 -0
- package/dist/fork/__tests__/storage.test.d.ts.map +1 -0
- package/dist/fork/__tests__/storage.test.js +222 -0
- package/dist/fork/__tests__/storage.test.js.map +1 -0
- package/dist/fork/__tests__/test.test.d.ts +2 -0
- package/dist/fork/__tests__/test.test.d.ts.map +1 -0
- package/dist/fork/__tests__/test.test.js +81 -0
- package/dist/fork/__tests__/test.test.js.map +1 -0
- package/dist/fork/api.d.ts +14 -3
- package/dist/fork/api.d.ts.map +1 -1
- package/dist/fork/api.js +25 -14
- package/dist/fork/api.js.map +1 -1
- package/dist/fork/manager.d.ts +23 -9
- package/dist/fork/manager.d.ts.map +1 -1
- package/dist/fork/manager.js +79 -36
- package/dist/fork/manager.js.map +1 -1
- package/dist/fork/server.d.ts +11 -3
- package/dist/fork/server.d.ts.map +1 -1
- package/dist/fork/server.js +45 -13
- package/dist/fork/server.js.map +1 -1
- package/dist/fork/storage.d.ts +4 -4
- package/dist/fork/storage.d.ts.map +1 -1
- package/dist/fork/storage.js +7 -9
- package/dist/fork/storage.js.map +1 -1
- package/dist/fork/test.d.ts +13 -4
- package/dist/fork/test.d.ts.map +1 -1
- package/dist/fork/test.js +36 -27
- package/dist/fork/test.js.map +1 -1
- package/dist/harness/Harness.d.ts +124 -0
- package/dist/harness/Harness.d.ts.map +1 -0
- package/dist/harness/Harness.js +193 -0
- package/dist/harness/Harness.js.map +1 -0
- package/dist/harness/codeObject.d.ts +31 -0
- package/dist/harness/codeObject.d.ts.map +1 -0
- package/dist/harness/codeObject.js +271 -0
- package/dist/harness/codeObject.js.map +1 -0
- package/dist/harness/errors.d.ts +14 -0
- package/dist/harness/errors.d.ts.map +1 -0
- package/dist/harness/errors.js +22 -0
- package/dist/harness/errors.js.map +1 -0
- package/dist/harness/index.d.ts +4 -0
- package/dist/harness/index.d.ts.map +1 -0
- package/dist/harness/index.js +3 -0
- package/dist/harness/index.js.map +1 -0
- package/dist/harness/proxy.d.ts +7 -0
- package/dist/harness/proxy.d.ts.map +1 -0
- package/dist/harness/proxy.js +36 -0
- package/dist/harness/proxy.js.map +1 -0
- package/dist/harness/script.d.ts +21 -0
- package/dist/harness/script.d.ts.map +1 -0
- package/dist/harness/script.js +155 -0
- package/dist/harness/script.js.map +1 -0
- package/dist/harness/view.d.ts +22 -0
- package/dist/harness/view.d.ts.map +1 -0
- package/dist/harness/view.js +28 -0
- package/dist/harness/view.js.map +1 -0
- package/dist/helpers/__tests__/semver-utils.test.d.ts +2 -0
- package/dist/helpers/__tests__/semver-utils.test.d.ts.map +1 -0
- package/dist/helpers/__tests__/semver-utils.test.js +103 -0
- package/dist/helpers/__tests__/semver-utils.test.js.map +1 -0
- package/dist/helpers/index.d.ts +3 -2
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +2 -2
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/move-tests.d.ts +3 -3
- package/dist/helpers/move-tests.d.ts.map +1 -1
- package/dist/helpers/move-tests.js +21 -20
- package/dist/helpers/move-tests.js.map +1 -1
- package/dist/helpers/npm-registry.d.ts.map +1 -1
- package/dist/helpers/npm-registry.js +1 -3
- package/dist/helpers/npm-registry.js.map +1 -1
- package/dist/helpers/semver-utils.d.ts.map +1 -1
- package/dist/helpers/semver-utils.js +4 -3
- package/dist/helpers/semver-utils.js.map +1 -1
- package/dist/helpers/setup.d.ts.map +1 -1
- package/dist/helpers/setup.js +10 -6
- package/dist/helpers/setup.js.map +1 -1
- package/dist/helpers/setupLocalTesting.d.ts +32 -27
- package/dist/helpers/setupLocalTesting.d.ts.map +1 -1
- package/dist/helpers/setupLocalTesting.js +179 -180
- package/dist/helpers/setupLocalTesting.js.map +1 -1
- package/dist/helpers/testFixtures.d.ts +19 -53
- package/dist/helpers/testFixtures.d.ts.map +1 -1
- package/dist/helpers/testFixtures.js +89 -107
- package/dist/helpers/testFixtures.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/node/LocalNodeManager.d.ts +9 -1
- package/dist/node/LocalNodeManager.d.ts.map +1 -1
- package/dist/node/LocalNodeManager.js +75 -58
- package/dist/node/LocalNodeManager.js.map +1 -1
- package/dist/node/__tests__/LocalNodeManager.test.d.ts +2 -0
- package/dist/node/__tests__/LocalNodeManager.test.d.ts.map +1 -0
- package/dist/node/__tests__/LocalNodeManager.test.js +349 -0
- package/dist/node/__tests__/LocalNodeManager.test.js.map +1 -0
- package/dist/runtime.d.ts +12 -15
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +32 -241
- package/dist/runtime.js.map +1 -1
- package/dist/templates/README.md +1 -1
- package/dist/templates/movehat.config.ts +10 -0
- package/dist/templates/package.json +2 -1
- package/dist/templates/scripts/deploy-counter.ts +46 -38
- package/dist/templates/tests/Counter.test.ts +51 -51
- package/dist/templates/types/movehat.d.ts +6 -9
- package/dist/types/config.d.ts +8 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/fork.d.ts +7 -1
- package/dist/types/fork.d.ts.map +1 -1
- package/dist/types/harness.d.ts +166 -0
- package/dist/types/harness.d.ts.map +1 -0
- package/dist/types/harness.js +2 -0
- package/dist/types/harness.js.map +1 -0
- package/dist/types/runtime.d.ts +7 -1
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/ui/__tests__/colors.test.d.ts +2 -0
- package/dist/ui/__tests__/colors.test.d.ts.map +1 -0
- package/dist/ui/__tests__/colors.test.js +127 -0
- package/dist/ui/__tests__/colors.test.js.map +1 -0
- package/dist/ui/colors.d.ts.map +1 -1
- package/dist/ui/colors.js +6 -2
- package/dist/ui/colors.js.map +1 -1
- package/dist/ui/logger.d.ts +17 -0
- package/dist/ui/logger.d.ts.map +1 -1
- package/dist/ui/logger.js +22 -0
- package/dist/ui/logger.js.map +1 -1
- package/dist/ui/symbols.d.ts +1 -0
- package/dist/ui/symbols.d.ts.map +1 -1
- package/dist/ui/symbols.js +7 -1
- package/dist/ui/symbols.js.map +1 -1
- package/dist/utils/__tests__/address.test.d.ts +2 -0
- package/dist/utils/__tests__/address.test.d.ts.map +1 -0
- package/dist/utils/__tests__/address.test.js +70 -0
- package/dist/utils/__tests__/address.test.js.map +1 -0
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts +2 -0
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts.map +1 -0
- package/dist/utils/__tests__/childProcessAdapter.test.js +217 -0
- package/dist/utils/__tests__/childProcessAdapter.test.js.map +1 -0
- package/dist/utils/__tests__/runCli.test.d.ts +2 -0
- package/dist/utils/__tests__/runCli.test.d.ts.map +1 -0
- package/dist/utils/__tests__/runCli.test.js +187 -0
- package/dist/utils/__tests__/runCli.test.js.map +1 -0
- package/dist/utils/address.d.ts +33 -0
- package/dist/utils/address.d.ts.map +1 -0
- package/dist/utils/address.js +52 -0
- package/dist/utils/address.js.map +1 -0
- package/dist/utils/childProcessAdapter.d.ts +93 -0
- package/dist/utils/childProcessAdapter.d.ts.map +1 -0
- package/dist/utils/childProcessAdapter.js +109 -0
- package/dist/utils/childProcessAdapter.js.map +1 -0
- package/dist/utils/parseCliOutput.d.ts +20 -0
- package/dist/utils/parseCliOutput.d.ts.map +1 -0
- package/dist/utils/parseCliOutput.js +26 -0
- package/dist/utils/parseCliOutput.js.map +1 -0
- package/dist/utils/redact.d.ts +15 -0
- package/dist/utils/redact.d.ts.map +1 -0
- package/dist/utils/redact.js +24 -0
- package/dist/utils/redact.js.map +1 -0
- package/dist/utils/runCli.d.ts +24 -0
- package/dist/utils/runCli.d.ts.map +1 -0
- package/dist/utils/runCli.js +37 -0
- package/dist/utils/runCli.js.map +1 -0
- package/package.json +14 -4
- package/src/__tests__/deployContract.test.ts +429 -0
- package/src/__tests__/errors.test.ts +84 -0
- package/src/__tests__/fixtures/sigint-deploy-harness.ts +95 -0
- package/src/__tests__/fork/api.test.ts +143 -0
- package/src/__tests__/harness/Harness.createLive.test.ts +57 -0
- package/src/__tests__/harness/Harness.proxy.test.ts +115 -0
- package/src/__tests__/harness/_fixture.ts +131 -0
- package/src/__tests__/harness/codeObject.deploy.test.ts +319 -0
- package/src/__tests__/harness/codeObject.upgrade.test.ts +156 -0
- package/src/__tests__/harness/script.test.ts +245 -0
- package/src/__tests__/harness/view.test.ts +104 -0
- package/src/__tests__/runtime.test.ts +182 -0
- package/src/cli.ts +2 -1
- package/src/commands/__tests__/compile.test.ts +407 -0
- package/src/commands/__tests__/init.test.ts +125 -0
- package/src/commands/__tests__/run.test.ts +192 -0
- package/src/commands/__tests__/test-move.test.ts +81 -0
- package/src/commands/__tests__/test.test.ts +204 -0
- package/src/commands/__tests__/update.test.ts +223 -0
- package/src/commands/compile.ts +168 -32
- package/src/commands/fork/__tests__/create.test.ts +132 -0
- package/src/commands/fork/__tests__/fund.test.ts +104 -0
- package/src/commands/fork/__tests__/list.test.ts +139 -0
- package/src/commands/fork/__tests__/serve.test.ts +121 -0
- package/src/commands/fork/__tests__/view-resource.test.ts +101 -0
- package/src/commands/fork/create.ts +4 -3
- package/src/commands/fork/fund.ts +16 -9
- package/src/commands/fork/list.ts +3 -2
- package/src/commands/fork/serve.ts +6 -3
- package/src/commands/fork/view-resource.ts +11 -6
- package/src/commands/run.ts +54 -28
- package/src/commands/test-move.ts +4 -3
- package/src/commands/test.ts +56 -44
- package/src/commands/update.ts +19 -16
- package/src/core/AccountManager.ts +23 -10
- package/src/core/Publisher.ts +322 -0
- package/src/core/__tests__/AccountManager.test.ts +290 -0
- package/src/core/__tests__/config.test.ts +377 -0
- package/src/core/__tests__/deployments.test.ts +247 -0
- package/src/core/__tests__/shell.test.ts +138 -0
- package/src/core/config.ts +96 -12
- package/src/core/contract.ts +13 -4
- package/src/core/deployments.ts +13 -11
- package/src/core/movementProfile.ts +179 -0
- package/src/core/shell.ts +34 -14
- package/src/errors.ts +60 -0
- package/src/fork/__tests__/manager.test.ts +385 -0
- package/src/fork/__tests__/server.test.ts +65 -0
- package/src/fork/__tests__/storage.test.ts +281 -0
- package/src/fork/__tests__/test.test.ts +97 -0
- package/src/fork/api.ts +28 -14
- package/src/fork/manager.ts +88 -43
- package/src/fork/server.ts +53 -19
- package/src/fork/storage.ts +12 -15
- package/src/fork/test.ts +58 -32
- package/src/harness/Harness.ts +228 -0
- package/src/harness/codeObject.ts +388 -0
- package/src/harness/errors.ts +22 -0
- package/src/harness/index.ts +3 -0
- package/src/harness/proxy.ts +40 -0
- package/src/harness/script.ts +196 -0
- package/src/harness/view.ts +34 -0
- package/src/helpers/__tests__/semver-utils.test.ts +121 -0
- package/src/helpers/index.ts +2 -8
- package/src/helpers/move-tests.ts +27 -23
- package/src/helpers/npm-registry.ts +4 -3
- package/src/helpers/semver-utils.ts +4 -3
- package/src/helpers/setup.ts +9 -5
- package/src/helpers/setupLocalTesting.ts +219 -200
- package/src/helpers/testFixtures.ts +106 -118
- package/src/index.ts +9 -3
- package/src/node/LocalNodeManager.ts +87 -62
- package/src/node/__tests__/LocalNodeManager.test.ts +452 -0
- package/src/runtime.ts +33 -289
- package/src/templates/README.md +1 -1
- package/src/templates/movehat.config.ts +10 -0
- package/src/templates/package.json +2 -1
- package/src/templates/scripts/deploy-counter.ts +46 -38
- package/src/templates/tests/Counter.test.ts +51 -51
- package/src/templates/types/movehat.d.ts +6 -9
- package/src/types/config.ts +8 -0
- package/src/types/fork.ts +7 -1
- package/src/types/harness.ts +182 -0
- package/src/types/runtime.ts +11 -3
- package/src/ui/__tests__/colors.test.ts +156 -0
- package/src/ui/colors.ts +5 -2
- package/src/ui/logger.ts +22 -0
- package/src/ui/symbols.ts +7 -1
- package/src/utils/__tests__/address.test.ts +93 -0
- package/src/utils/__tests__/childProcessAdapter.test.ts +266 -0
- package/src/utils/__tests__/runCli.test.ts +240 -0
- package/src/utils/address.ts +56 -0
- package/src/utils/childProcessAdapter.ts +215 -0
- package/src/utils/parseCliOutput.ts +27 -0
- package/src/utils/redact.ts +24 -0
- package/src/utils/runCli.ts +64 -0
package/dist/fork/server.js
CHANGED
|
@@ -2,16 +2,23 @@ import http from 'http';
|
|
|
2
2
|
import { URL } from 'url';
|
|
3
3
|
import { ForkManager } from './manager.js';
|
|
4
4
|
/**
|
|
5
|
-
* Fork Server - Serves fork data via Movement
|
|
5
|
+
* Fork Server - Serves fork data via Movement L1 RPC API
|
|
6
6
|
* Emulates a Movement L1 node using local fork storage
|
|
7
7
|
*/
|
|
8
8
|
export class ForkServer {
|
|
9
9
|
server = null;
|
|
10
10
|
forkManager;
|
|
11
11
|
port;
|
|
12
|
-
|
|
12
|
+
host;
|
|
13
|
+
/**
|
|
14
|
+
* @param host Interface to bind. Defaults to `127.0.0.1` so cached fork
|
|
15
|
+
* state (which may include sensitive resources) is not exposed on the LAN.
|
|
16
|
+
* Pass `'0.0.0.0'` only if you intentionally need to expose the server.
|
|
17
|
+
*/
|
|
18
|
+
constructor(forkPath, port = 8080, host = '127.0.0.1') {
|
|
13
19
|
this.forkManager = new ForkManager(forkPath);
|
|
14
20
|
this.port = port;
|
|
21
|
+
this.host = host;
|
|
15
22
|
}
|
|
16
23
|
/**
|
|
17
24
|
* Start the fork server
|
|
@@ -44,6 +51,11 @@ export class ForkServer {
|
|
|
44
51
|
}
|
|
45
52
|
});
|
|
46
53
|
});
|
|
54
|
+
// Capture the just-assigned server into a non-null local so we don't
|
|
55
|
+
// have to repeatedly assert `this.server!` (which TS forces because
|
|
56
|
+
// `http.createServer` returns an unrelated narrow that the field
|
|
57
|
+
// declaration doesn't track).
|
|
58
|
+
const server = this.server;
|
|
47
59
|
return new Promise((resolve, reject) => {
|
|
48
60
|
// Handle server errors (port in use, permission denied, etc.)
|
|
49
61
|
const onError = (error) => {
|
|
@@ -58,12 +70,23 @@ export class ForkServer {
|
|
|
58
70
|
}
|
|
59
71
|
};
|
|
60
72
|
// Listen for errors during startup
|
|
61
|
-
|
|
62
|
-
|
|
73
|
+
server.once('error', onError);
|
|
74
|
+
server.listen(this.port, this.host, () => {
|
|
63
75
|
// Remove error listener after successful start
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
76
|
+
server.removeListener('error', onError);
|
|
77
|
+
// IPv6 literals must be wrapped in brackets in URLs (RFC 3986).
|
|
78
|
+
const isIpv6 = this.host.includes(':');
|
|
79
|
+
const displayHost = this.host === '0.0.0.0'
|
|
80
|
+
? 'localhost'
|
|
81
|
+
: isIpv6
|
|
82
|
+
? `[${this.host}]`
|
|
83
|
+
: this.host;
|
|
84
|
+
console.log(`\nFork Server listening on http://${displayHost}:${this.port}`);
|
|
85
|
+
console.log(` Bound interface: ${this.host}`);
|
|
86
|
+
console.log(` Ledger Info: http://${displayHost}:${this.port}/v1/`);
|
|
87
|
+
if (this.host === '0.0.0.0') {
|
|
88
|
+
console.warn(` Server is bound to 0.0.0.0 — fork state is reachable from the LAN.`);
|
|
89
|
+
}
|
|
67
90
|
console.log(`\nPress Ctrl+C to stop`);
|
|
68
91
|
resolve();
|
|
69
92
|
});
|
|
@@ -127,12 +150,16 @@ export class ForkServer {
|
|
|
127
150
|
const resourceIndex = parts.indexOf('resource') + 1;
|
|
128
151
|
const address = parts[accountIndex];
|
|
129
152
|
const resourceType = decodeURIComponent(parts.slice(resourceIndex).join('/'));
|
|
153
|
+
if (!address) {
|
|
154
|
+
this.send404(res, 'Malformed resource path', 'malformed_path');
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
130
157
|
await this.handleGetResource(address, resourceType, res);
|
|
131
158
|
}
|
|
132
159
|
else {
|
|
133
160
|
// Use regex capture for resources endpoint
|
|
134
161
|
const resourcesMatch = pathname.match(/^\/v1\/accounts\/(0x[a-fA-F0-9]{1,64})\/resources$/);
|
|
135
|
-
if (resourcesMatch) {
|
|
162
|
+
if (resourcesMatch && resourcesMatch[1]) {
|
|
136
163
|
const address = resourcesMatch[1];
|
|
137
164
|
await this.handleGetResources(address, res);
|
|
138
165
|
}
|
|
@@ -188,7 +215,8 @@ export class ForkServer {
|
|
|
188
215
|
});
|
|
189
216
|
}
|
|
190
217
|
catch (error) {
|
|
191
|
-
|
|
218
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
219
|
+
if (msg.includes('not found')) {
|
|
192
220
|
this.send404(res, `Account not found: ${address}`);
|
|
193
221
|
}
|
|
194
222
|
else {
|
|
@@ -208,7 +236,8 @@ export class ForkServer {
|
|
|
208
236
|
});
|
|
209
237
|
}
|
|
210
238
|
catch (error) {
|
|
211
|
-
|
|
239
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
240
|
+
if (msg.includes('not found')) {
|
|
212
241
|
this.send404(res, `Resource not found: ${resourceType}`, 'resource_not_found');
|
|
213
242
|
}
|
|
214
243
|
else {
|
|
@@ -222,7 +251,7 @@ export class ForkServer {
|
|
|
222
251
|
async handleGetResources(address, res) {
|
|
223
252
|
try {
|
|
224
253
|
const resources = await this.forkManager.getAllResources(address);
|
|
225
|
-
// Convert to array format expected by
|
|
254
|
+
// Convert to array format expected by the Movement L1 API
|
|
226
255
|
const resourcesArray = Object.entries(resources).map(([type, data]) => ({
|
|
227
256
|
type,
|
|
228
257
|
data
|
|
@@ -230,7 +259,8 @@ export class ForkServer {
|
|
|
230
259
|
this.sendJSON(res, 200, resourcesArray);
|
|
231
260
|
}
|
|
232
261
|
catch (error) {
|
|
233
|
-
|
|
262
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
263
|
+
if (msg.includes('not found')) {
|
|
234
264
|
this.send404(res, `Account not found: ${address}`);
|
|
235
265
|
}
|
|
236
266
|
else {
|
|
@@ -239,7 +269,9 @@ export class ForkServer {
|
|
|
239
269
|
}
|
|
240
270
|
}
|
|
241
271
|
/**
|
|
242
|
-
* Send JSON response
|
|
272
|
+
* Send JSON response.
|
|
273
|
+
* unknown: arbitrary JSON-serializable payload; structural shape varies by
|
|
274
|
+
* endpoint (account metadata, resource arrays, error envelopes).
|
|
243
275
|
*/
|
|
244
276
|
sendJSON(res, status, data, extraHeaders = {}) {
|
|
245
277
|
const body = JSON.stringify(data, null, 2);
|
package/dist/fork/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/fork/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,MAAM,OAAO,UAAU;IACb,MAAM,GAAuB,IAAI,CAAC;IAClC,WAAW,CAAc;IACzB,IAAI,CAAS;IAErB,YAAY,QAAgB,EAAE,OAAe,IAAI;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/fork/server.ts"],"names":[],"mappings":"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"}
|
package/dist/fork/storage.d.ts
CHANGED
|
@@ -38,19 +38,19 @@ export declare class ForkStorage {
|
|
|
38
38
|
/**
|
|
39
39
|
* Get resource for an account
|
|
40
40
|
*/
|
|
41
|
-
getResource(address: string, resourceType: string):
|
|
41
|
+
getResource(address: string, resourceType: string): unknown | null;
|
|
42
42
|
/**
|
|
43
43
|
* Get all resources for an account
|
|
44
44
|
*/
|
|
45
|
-
getAllResources(address: string): Record<string,
|
|
45
|
+
getAllResources(address: string): Record<string, unknown>;
|
|
46
46
|
/**
|
|
47
47
|
* Save resource for an account
|
|
48
48
|
*/
|
|
49
|
-
saveResource(address: string, resourceType: string, data:
|
|
49
|
+
saveResource(address: string, resourceType: string, data: unknown): void;
|
|
50
50
|
/**
|
|
51
51
|
* Save all resources for an account
|
|
52
52
|
*/
|
|
53
|
-
saveAllResources(address: string, resources: Record<string,
|
|
53
|
+
saveAllResources(address: string, resources: Record<string, unknown>): void;
|
|
54
54
|
/**
|
|
55
55
|
* Check if resource is cached
|
|
56
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/fork/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/fork/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAwBnE;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAI5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,UAAU,IAAI,IAAI;IA8BlB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAK1C;;OAEG;IACH,YAAY,IAAI,YAAY;IAW5B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAWhD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAYvD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAWlE;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUzD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAkBxE;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAY3E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAI3D;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAWxB;;;OAGG;IACH,aAAa,IAAI,IAAI;IAKrB;;;OAGG;IACH,cAAc,IAAI,IAAI;CAkBvB"}
|
package/dist/fork/storage.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync, readdirSync, unlinkSync } from 'fs';
|
|
2
2
|
import { join } from 'path';
|
|
3
|
+
import { isHexAddress } from '../utils/address.js';
|
|
3
4
|
/**
|
|
4
|
-
* Sanitize address to create a safe filename
|
|
5
|
-
*
|
|
5
|
+
* Sanitize address to create a safe filename. Validates the address through
|
|
6
|
+
* the shared `isHexAddress` helper (length 1–64 hex chars, optional `0x`),
|
|
7
|
+
* then rebuilds a canonical `0x…` form. The trailing path-separator check is
|
|
8
|
+
* defense-in-depth: unreachable after `isHexAddress`, but cheap to keep.
|
|
6
9
|
*/
|
|
7
10
|
function sanitizeAddressForFilename(address) {
|
|
8
|
-
|
|
9
|
-
const normalized = address.toLowerCase().replace(/^0x/, '');
|
|
10
|
-
// Validate that it's a valid hex string
|
|
11
|
-
if (!/^[0-9a-f]+$/.test(normalized)) {
|
|
11
|
+
if (!isHexAddress(address)) {
|
|
12
12
|
throw new Error(`Invalid address format: ${address}. Expected hexadecimal string.`);
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
// Use the normalized hex string directly as it's safe
|
|
14
|
+
const normalized = address.toLowerCase().replace(/^0x/, '');
|
|
16
15
|
const safe = `0x${normalized}`;
|
|
17
|
-
// Validate no path separators in result
|
|
18
16
|
if (safe.includes('/') || safe.includes('\\') || safe.includes('..')) {
|
|
19
17
|
throw new Error(`Address contains invalid characters: ${address}`);
|
|
20
18
|
}
|
package/dist/fork/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/fork/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/fork/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/fork/test.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import type { ChildProcessAdapter } from '../utils/childProcessAdapter.js';
|
|
1
2
|
export interface SnapshotOptions {
|
|
2
3
|
path?: string;
|
|
3
4
|
name?: string;
|
|
5
|
+
/**
|
|
6
|
+
* Override the child-process adapter. Test-only — production callers
|
|
7
|
+
* leave this undefined so the default spawn-based adapter is used.
|
|
8
|
+
* Mirrors the M1.3c pattern on `runtime.deployContract`.
|
|
9
|
+
*/
|
|
10
|
+
adapter?: ChildProcessAdapter;
|
|
4
11
|
}
|
|
5
12
|
export interface ForkInfo {
|
|
6
13
|
path: string;
|
|
@@ -51,7 +58,9 @@ export declare function getForkInfo(path: string): Promise<ForkInfo>;
|
|
|
51
58
|
* console.log(`Balance: ${balance.coin.value}`);
|
|
52
59
|
* ```
|
|
53
60
|
*/
|
|
54
|
-
export declare function viewForkResource(sessionPath: string, account: string, resourceType: string
|
|
61
|
+
export declare function viewForkResource(sessionPath: string, account: string, resourceType: string, options?: {
|
|
62
|
+
adapter?: ChildProcessAdapter;
|
|
63
|
+
}): Promise<any>;
|
|
55
64
|
/**
|
|
56
65
|
* Compare a resource between current network state and a fork
|
|
57
66
|
* Useful for verifying state changes after tests
|
|
@@ -62,9 +71,9 @@ export declare function viewForkResource(sessionPath: string, account: string, r
|
|
|
62
71
|
* @param currentValue - Current value from network (pass from your test)
|
|
63
72
|
* @returns Comparison result
|
|
64
73
|
*/
|
|
65
|
-
export declare function compareForkState(forkPath: string, account: string, resourceType: string, currentValue:
|
|
66
|
-
fork:
|
|
67
|
-
current:
|
|
74
|
+
export declare function compareForkState(forkPath: string, account: string, resourceType: string, currentValue: unknown): Promise<{
|
|
75
|
+
fork: unknown;
|
|
76
|
+
current: unknown;
|
|
68
77
|
changed: boolean;
|
|
69
78
|
}>;
|
|
70
79
|
/**
|
package/dist/fork/test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/fork/test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/fork/test.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsC7E;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CA2BjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAO,GAC9C,OAAO,CAAC,GAAG,CAAC,CAsCd;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAQhE;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAavD"}
|
package/dist/fork/test.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { execFile } from 'child_process';
|
|
2
|
-
import { promisify } from 'util';
|
|
3
1
|
import { join } from 'path';
|
|
4
2
|
import { existsSync } from 'fs';
|
|
5
|
-
|
|
3
|
+
import { runCli } from '../utils/runCli.js';
|
|
6
4
|
/**
|
|
7
5
|
* Create a snapshot (fork) of the current network state
|
|
8
6
|
* Useful for debugging test failures or inspecting state after tests
|
|
@@ -24,15 +22,18 @@ export async function snapshot(options = {}) {
|
|
|
24
22
|
const snapshotPath = options.path || join(process.cwd(), '.movehat', 'snapshots', name);
|
|
25
23
|
console.log(`📸 Creating snapshot: ${name}...`);
|
|
26
24
|
try {
|
|
27
|
-
// Initialize fork/snapshot using aptos CLI
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
'
|
|
34
|
-
snapshotPath
|
|
35
|
-
|
|
25
|
+
// Initialize fork/snapshot using aptos CLI.
|
|
26
|
+
// runCli uses spawn-with-args under the hood (no shell), preventing
|
|
27
|
+
// command injection. Pass throwOnNonZeroExit:false so the exitCode is
|
|
28
|
+
// observable below — the stderr/dir defenses are belt-and-suspenders
|
|
29
|
+
// on top of the exitCode check.
|
|
30
|
+
const { stdout, stderr, exitCode } = await runCli({
|
|
31
|
+
command: 'aptos',
|
|
32
|
+
args: ['move', 'sim', 'init', '--path', snapshotPath],
|
|
33
|
+
}, { throwOnNonZeroExit: false, adapter: options.adapter });
|
|
34
|
+
if (exitCode !== 0) {
|
|
35
|
+
throw new Error(stderr || `fork snapshot init failed with exit code ${exitCode}`);
|
|
36
|
+
}
|
|
36
37
|
if (stderr && !stderr.includes('Success')) {
|
|
37
38
|
throw new Error(stderr);
|
|
38
39
|
}
|
|
@@ -43,7 +44,8 @@ export async function snapshot(options = {}) {
|
|
|
43
44
|
return snapshotPath;
|
|
44
45
|
}
|
|
45
46
|
catch (error) {
|
|
46
|
-
|
|
47
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
48
|
+
throw new Error(`Failed to create snapshot: ${msg}`);
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
@@ -97,20 +99,26 @@ export async function getForkInfo(path) {
|
|
|
97
99
|
* console.log(`Balance: ${balance.coin.value}`);
|
|
98
100
|
* ```
|
|
99
101
|
*/
|
|
100
|
-
export async function viewForkResource(sessionPath, account, resourceType) {
|
|
102
|
+
export async function viewForkResource(sessionPath, account, resourceType, options = {}) {
|
|
101
103
|
try {
|
|
102
|
-
//
|
|
103
|
-
const { stdout } = await
|
|
104
|
-
'
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
104
|
+
// runCli uses spawn-with-args (no shell) to prevent command injection.
|
|
105
|
+
const { stdout, stderr, exitCode } = await runCli({
|
|
106
|
+
command: 'aptos',
|
|
107
|
+
args: [
|
|
108
|
+
'move',
|
|
109
|
+
'sim',
|
|
110
|
+
'view-resource',
|
|
111
|
+
'--session',
|
|
112
|
+
sessionPath,
|
|
113
|
+
'--account',
|
|
114
|
+
account,
|
|
115
|
+
'--resource',
|
|
116
|
+
resourceType,
|
|
117
|
+
],
|
|
118
|
+
}, { throwOnNonZeroExit: false, adapter: options.adapter });
|
|
119
|
+
if (exitCode !== 0) {
|
|
120
|
+
throw new Error(stderr || `fork view-resource failed with exit code ${exitCode}`);
|
|
121
|
+
}
|
|
114
122
|
const result = JSON.parse(stdout);
|
|
115
123
|
if (result.Error) {
|
|
116
124
|
throw new Error(result.Error);
|
|
@@ -118,7 +126,8 @@ export async function viewForkResource(sessionPath, account, resourceType) {
|
|
|
118
126
|
return result.Result;
|
|
119
127
|
}
|
|
120
128
|
catch (error) {
|
|
121
|
-
|
|
129
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
130
|
+
throw new Error(`Failed to view resource: ${msg}`);
|
|
122
131
|
}
|
|
123
132
|
}
|
|
124
133
|
/**
|
package/dist/fork/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/fork/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/fork/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAqB5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAA2B,EAAE;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAExF,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,KAAK,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,4CAA4C;QAC5C,oEAAoE;QACpE,sEAAsE;QACtE,qEAAqE;QACrE,gCAAgC;QAChC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAC/C;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC;SACtD,EACD,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACxD,CAAC;QAEF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,4CAA4C,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QACxD,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE7C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAEzC,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe;YACpD,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ;SACvC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,OAAe,EACf,YAAoB,EACpB,UAA6C,EAAE;IAE/C,IAAI,CAAC;QACH,uEAAuE;QACvE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAC/C;YACE,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE;gBACJ,MAAM;gBACN,KAAK;gBACL,eAAe;gBACf,WAAW;gBACX,WAAW;gBACX,WAAW;gBACX,OAAO;gBACP,YAAY;gBACZ,YAAY;aACb;SACF,EACD,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACxD,CAAC;QAEF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,MAAM,IAAI,4CAA4C,QAAQ,EAAE,CACjE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,OAAe,EACf,YAAoB,EACpB,YAAqB;IAErB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE1E,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KACpE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAElE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAExE,OAAO,OAAO;SACX,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACpC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { MovehatRuntime } from "../types/runtime.js";
|
|
2
|
+
import type { LocalNodeManager } from "../node/LocalNodeManager.js";
|
|
3
|
+
import type { ForkServer } from "../fork/server.js";
|
|
4
|
+
import type { ForkManager } from "../fork/manager.js";
|
|
5
|
+
import type { LocalTestOptions } from "../types/config.js";
|
|
6
|
+
import type { DeployCodeObjectOptions, UpgradeCodeObjectOptions, CodeObjectInfo, RunViewFunctionOptions, RunMoveScriptOptions, MoveScriptResult } from "../types/harness.js";
|
|
7
|
+
export type HarnessMode = "local" | "fork" | "live";
|
|
8
|
+
/**
|
|
9
|
+
* Hardhat-style testing harness for Movehat.
|
|
10
|
+
*
|
|
11
|
+
* Construct via the static factories — `createLocal`, `createFork`,
|
|
12
|
+
* `createLive` — never via `new Harness(...)`. The returned instance is
|
|
13
|
+
* a Proxy that synchronously throws {@link HarnessDisposedError} on any
|
|
14
|
+
* post-`cleanup()` call to one of the deployment / script / view methods.
|
|
15
|
+
*
|
|
16
|
+
* Methods `deployCodeObject`, `upgradeCodeObject`, `runViewFunction`,
|
|
17
|
+
* and `runMoveScript` are stubbed in M2.1 — they throw at runtime until
|
|
18
|
+
* M2.2/M2.3 lands. The type surface is complete so callers and docs can
|
|
19
|
+
* be written against it ahead of time.
|
|
20
|
+
*
|
|
21
|
+
* AccountManager note: as of M2.1 the underlying account pool is a
|
|
22
|
+
* process-wide static (see `core/AccountManager.ts`). Two Harness
|
|
23
|
+
* instances in the same process share account labels; this is the same
|
|
24
|
+
* constraint that already governs `setupTestFixture`. A per-Harness pool
|
|
25
|
+
* is a future change.
|
|
26
|
+
*/
|
|
27
|
+
export declare class Harness {
|
|
28
|
+
readonly mode: HarnessMode;
|
|
29
|
+
readonly runtime: MovehatRuntime;
|
|
30
|
+
/** @internal */
|
|
31
|
+
readonly localNode?: LocalNodeManager;
|
|
32
|
+
/** @internal */
|
|
33
|
+
readonly forkServer?: ForkServer;
|
|
34
|
+
/** @internal */
|
|
35
|
+
readonly forkManager?: ForkManager;
|
|
36
|
+
private _poisoned;
|
|
37
|
+
private constructor();
|
|
38
|
+
/** True once `cleanup()` has been awaited at least once. */
|
|
39
|
+
get poisoned(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Spin up a local Movement node and return a Harness bound to it.
|
|
42
|
+
*
|
|
43
|
+
* Forwards to `setupLocalTesting({ mode: 'local-node', ... })` so all
|
|
44
|
+
* existing options (`nodeApiPort`, `accountLabels`, `autoDeploy`, ...)
|
|
45
|
+
* apply unchanged.
|
|
46
|
+
*/
|
|
47
|
+
static createLocal(options?: LocalTestOptions): Promise<Harness>;
|
|
48
|
+
/**
|
|
49
|
+
* Create a fork-mode Harness reading from a snapshot of `network`.
|
|
50
|
+
*
|
|
51
|
+
* Fork mode is read-only: `deployCodeObject`, `upgradeCodeObject`,
|
|
52
|
+
* and `runMoveScript` throw with a message pointing at `createLocal`.
|
|
53
|
+
* `runViewFunction` works (read-only path).
|
|
54
|
+
*
|
|
55
|
+
* @param network - Network to fork (e.g. `"testnet"`).
|
|
56
|
+
* @param apiKey - Optional Movement API key. When set, every upstream
|
|
57
|
+
* request from the fork's `MovementApiClient` carries
|
|
58
|
+
* `Authorization: Bearer <apiKey>`. Use for rate-limited public
|
|
59
|
+
* endpoints or auth-gated nodes. The key stays in process memory
|
|
60
|
+
* (not persisted to the fork's on-disk metadata).
|
|
61
|
+
*/
|
|
62
|
+
static createFork(network: string, apiKey?: string): Promise<Harness>;
|
|
63
|
+
/**
|
|
64
|
+
* Bind a Harness to a real running network (testnet, mainnet, or any
|
|
65
|
+
* custom network defined in `movehat.config.ts`). No local process is
|
|
66
|
+
* spawned; transactions are submitted to the configured RPC.
|
|
67
|
+
*
|
|
68
|
+
* @param network - Named network from movehat.config.ts.
|
|
69
|
+
* @param _faucetUrl - Reserved for M2.2 (auto-fund on networks with a faucet).
|
|
70
|
+
*/
|
|
71
|
+
static createLive(network: string, _faucetUrl?: string): Promise<Harness>;
|
|
72
|
+
/**
|
|
73
|
+
* Release resources owned by this harness (local node or fork server)
|
|
74
|
+
* and poison it. Idempotent: subsequent calls are no-ops.
|
|
75
|
+
*
|
|
76
|
+
* After `cleanup()` resolves, any call to `deployCodeObject`,
|
|
77
|
+
* `upgradeCodeObject`, `runViewFunction`, or `runMoveScript` throws
|
|
78
|
+
* `HarnessDisposedError` synchronously on property access.
|
|
79
|
+
*/
|
|
80
|
+
cleanup(): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Deploy a Move package as a code object via `movement move deploy-object`.
|
|
83
|
+
*
|
|
84
|
+
* The derived object address is bound to `options.moduleName` as a
|
|
85
|
+
* named address at compile time, then captured into the returned
|
|
86
|
+
* {@link CodeObjectInfo.address} for later use with
|
|
87
|
+
* `harness.runtime.getContract(address, moduleName)`.
|
|
88
|
+
*
|
|
89
|
+
* Not available on fork-mode harnesses (forks are read-only). Calling
|
|
90
|
+
* this on a `Harness.createFork(...)` instance throws synchronously.
|
|
91
|
+
*/
|
|
92
|
+
deployCodeObject(options: DeployCodeObjectOptions): Promise<CodeObjectInfo>;
|
|
93
|
+
/**
|
|
94
|
+
* Upgrade an existing code object via `movement move upgrade-object`.
|
|
95
|
+
*
|
|
96
|
+
* Requires {@link UpgradeCodeObjectOptions.objectAddress} (the existing
|
|
97
|
+
* on-chain object). Overwrites the local deployment record's timestamp
|
|
98
|
+
* + txHash; address stays the same.
|
|
99
|
+
*
|
|
100
|
+
* Not available on fork-mode harnesses (forks are read-only).
|
|
101
|
+
*/
|
|
102
|
+
upgradeCodeObject(options: UpgradeCodeObjectOptions): Promise<CodeObjectInfo>;
|
|
103
|
+
/**
|
|
104
|
+
* Execute a Move view function via the Aptos SDK.
|
|
105
|
+
*
|
|
106
|
+
* Returns the raw view-function result array. For single-value
|
|
107
|
+
* returns, destructure: `const [count] = await harness.runViewFunction(...)`.
|
|
108
|
+
*
|
|
109
|
+
* Works on all 3 harness modes (createLocal, createFork, createLive)
|
|
110
|
+
* — view functions are read-only.
|
|
111
|
+
*/
|
|
112
|
+
runViewFunction(options: RunViewFunctionOptions): Promise<unknown[]>;
|
|
113
|
+
/**
|
|
114
|
+
* Execute a Move script via `movement move run-script`.
|
|
115
|
+
*
|
|
116
|
+
* Accepts either a `.move` source path (CLI auto-compiles) or a
|
|
117
|
+
* pre-compiled `.mv` bytecode path. Other extensions throw
|
|
118
|
+
* synchronously.
|
|
119
|
+
*
|
|
120
|
+
* Not available on fork-mode harnesses (forks are read-only).
|
|
121
|
+
*/
|
|
122
|
+
runMoveScript(options: RunMoveScriptOptions): Promise<MoveScriptResult>;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=Harness.d.ts.map
|
|
@@ -0,0 +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;;;;;;;;;;;;;;;;;;GAkBG;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"}
|