movehat 0.2.4 → 0.2.5
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 +1 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -1
- package/dist/commands/compile.d.ts +0 -1
- package/dist/commands/compile.js +0 -1
- package/dist/commands/fork/create.d.ts +1 -1
- package/dist/commands/fork/create.js +18 -3
- package/dist/commands/fork/fund.d.ts +0 -1
- package/dist/commands/fork/fund.js +0 -1
- package/dist/commands/fork/list.d.ts +0 -1
- package/dist/commands/fork/list.js +0 -1
- package/dist/commands/fork/serve.d.ts +0 -1
- package/dist/commands/fork/serve.js +0 -1
- package/dist/commands/fork/view-resource.d.ts +0 -1
- package/dist/commands/fork/view-resource.js +0 -1
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +0 -1
- package/dist/commands/run.d.ts +0 -1
- package/dist/commands/run.js +0 -1
- package/dist/commands/test-move.d.ts +0 -1
- package/dist/commands/test-move.js +0 -1
- package/dist/commands/test.d.ts +0 -1
- package/dist/commands/test.js +8 -1
- package/dist/commands/update.d.ts +0 -1
- package/dist/commands/update.js +0 -1
- package/dist/core/AccountManager.d.ts +15 -2
- package/dist/core/AccountManager.js +32 -20
- package/dist/core/Publisher.d.ts +0 -1
- package/dist/core/Publisher.js +0 -1
- package/dist/core/config.d.ts +0 -1
- package/dist/core/config.js +0 -1
- package/dist/core/contract.d.ts +0 -1
- package/dist/core/contract.js +0 -1
- package/dist/core/deployments.d.ts +0 -1
- package/dist/core/deployments.js +0 -1
- package/dist/core/movementProfile.d.ts +0 -1
- package/dist/core/movementProfile.js +0 -1
- package/dist/core/shell.d.ts +0 -1
- package/dist/core/shell.js +0 -1
- package/dist/errors.d.ts +0 -1
- package/dist/errors.js +0 -1
- package/dist/fork/api.d.ts +24 -1
- package/dist/fork/api.js +95 -1
- package/dist/fork/manager.d.ts +14 -1
- package/dist/fork/manager.js +19 -1
- package/dist/fork/server.d.ts +19 -1
- package/dist/fork/server.js +188 -8
- package/dist/fork/storage.d.ts +0 -1
- package/dist/fork/storage.js +50 -32
- package/dist/fork/test.d.ts +0 -1
- package/dist/fork/test.js +0 -1
- package/dist/harness/Harness.d.ts +0 -1
- package/dist/harness/Harness.js +6 -2
- package/dist/harness/codeObject.d.ts +0 -1
- package/dist/harness/codeObject.js +0 -1
- package/dist/harness/errors.d.ts +0 -1
- package/dist/harness/errors.js +0 -1
- package/dist/harness/index.d.ts +0 -1
- package/dist/harness/index.js +0 -1
- package/dist/harness/proxy.d.ts +12 -1
- package/dist/harness/proxy.js +23 -1
- package/dist/harness/script.d.ts +0 -1
- package/dist/harness/script.js +0 -1
- package/dist/harness/view.d.ts +0 -1
- package/dist/harness/view.js +0 -1
- package/dist/helpers/assertions.d.ts +0 -1
- package/dist/helpers/assertions.js +0 -1
- package/dist/helpers/banner.d.ts +0 -1
- package/dist/helpers/banner.js +0 -1
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/index.js +0 -1
- package/dist/helpers/move-tests.d.ts +0 -1
- package/dist/helpers/move-tests.js +0 -1
- package/dist/helpers/npm-registry.d.ts +0 -1
- package/dist/helpers/npm-registry.js +0 -1
- package/dist/helpers/semver-utils.d.ts +0 -1
- package/dist/helpers/semver-utils.js +0 -1
- package/dist/helpers/setup.d.ts +0 -1
- package/dist/helpers/setup.js +0 -1
- package/dist/helpers/setupLocalTesting.d.ts +2 -5
- package/dist/helpers/setupLocalTesting.js +0 -1
- package/dist/helpers/testFixtures.d.ts +0 -1
- package/dist/helpers/testFixtures.js +0 -1
- package/dist/helpers/version-check.d.ts +0 -1
- package/dist/helpers/version-check.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/node/LocalNodeManager.d.ts +0 -1
- package/dist/node/LocalNodeManager.js +4 -2
- package/dist/runtime.d.ts +0 -1
- package/dist/runtime.js +0 -1
- package/dist/types/config.d.ts +0 -1
- package/dist/types/config.js +0 -1
- package/dist/types/fork.d.ts +0 -1
- package/dist/types/fork.js +0 -1
- package/dist/types/harness.d.ts +0 -1
- package/dist/types/harness.js +0 -1
- package/dist/types/runtime.d.ts +0 -1
- package/dist/types/runtime.js +0 -1
- package/dist/ui/colors.d.ts +0 -1
- package/dist/ui/colors.js +0 -1
- package/dist/ui/formatters.d.ts +0 -1
- package/dist/ui/formatters.js +0 -1
- package/dist/ui/index.d.ts +0 -1
- package/dist/ui/index.js +0 -1
- package/dist/ui/logger.d.ts +0 -1
- package/dist/ui/logger.js +0 -1
- package/dist/ui/spinner.d.ts +0 -1
- package/dist/ui/spinner.js +0 -1
- package/dist/ui/symbols.d.ts +0 -1
- package/dist/ui/symbols.js +0 -1
- package/dist/ui/table.d.ts +0 -1
- package/dist/ui/table.js +0 -1
- package/dist/utils/address.d.ts +0 -1
- package/dist/utils/address.js +0 -1
- package/dist/utils/childProcessAdapter.d.ts +0 -1
- package/dist/utils/childProcessAdapter.js +46 -20
- package/dist/utils/movementCli.d.ts +5 -0
- package/dist/utils/movementCli.js +91 -0
- package/dist/utils/parseCliOutput.d.ts +0 -1
- package/dist/utils/parseCliOutput.js +0 -1
- package/dist/utils/redact.d.ts +3 -3
- package/dist/utils/redact.js +6 -5
- package/dist/utils/runCli.d.ts +0 -1
- package/dist/utils/runCli.js +10 -2
- package/package.json +4 -4
- package/dist/__tests__/deployContract.test.d.ts +0 -2
- package/dist/__tests__/deployContract.test.d.ts.map +0 -1
- package/dist/__tests__/deployContract.test.js +0 -377
- package/dist/__tests__/deployContract.test.js.map +0 -1
- package/dist/__tests__/errors.test.d.ts +0 -2
- package/dist/__tests__/errors.test.d.ts.map +0 -1
- package/dist/__tests__/errors.test.js +0 -46
- package/dist/__tests__/errors.test.js.map +0 -1
- package/dist/__tests__/exports.test.d.ts +0 -2
- package/dist/__tests__/exports.test.d.ts.map +0 -1
- package/dist/__tests__/exports.test.js +0 -30
- package/dist/__tests__/exports.test.js.map +0 -1
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts +0 -25
- package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts.map +0 -1
- package/dist/__tests__/fixtures/sigint-deploy-harness.js +0 -83
- package/dist/__tests__/fixtures/sigint-deploy-harness.js.map +0 -1
- package/dist/__tests__/fork/api.test.d.ts +0 -2
- package/dist/__tests__/fork/api.test.d.ts.map +0 -1
- package/dist/__tests__/fork/api.test.js +0 -115
- package/dist/__tests__/fork/api.test.js.map +0 -1
- package/dist/__tests__/fork/api.timeout.test.d.ts +0 -2
- package/dist/__tests__/fork/api.timeout.test.d.ts.map +0 -1
- package/dist/__tests__/fork/api.timeout.test.js +0 -98
- package/dist/__tests__/fork/api.timeout.test.js.map +0 -1
- package/dist/__tests__/harness/Harness.createLive.test.d.ts +0 -2
- package/dist/__tests__/harness/Harness.createLive.test.d.ts.map +0 -1
- package/dist/__tests__/harness/Harness.createLive.test.js +0 -53
- package/dist/__tests__/harness/Harness.createLive.test.js.map +0 -1
- package/dist/__tests__/harness/Harness.proxy.test.d.ts +0 -2
- package/dist/__tests__/harness/Harness.proxy.test.d.ts.map +0 -1
- package/dist/__tests__/harness/Harness.proxy.test.js +0 -89
- package/dist/__tests__/harness/Harness.proxy.test.js.map +0 -1
- package/dist/__tests__/harness/_fixture.d.ts +0 -54
- package/dist/__tests__/harness/_fixture.d.ts.map +0 -1
- package/dist/__tests__/harness/_fixture.js +0 -69
- package/dist/__tests__/harness/_fixture.js.map +0 -1
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts +0 -2
- package/dist/__tests__/harness/codeObject.deploy.test.d.ts.map +0 -1
- package/dist/__tests__/harness/codeObject.deploy.test.js +0 -288
- package/dist/__tests__/harness/codeObject.deploy.test.js.map +0 -1
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts +0 -2
- package/dist/__tests__/harness/codeObject.upgrade.test.d.ts.map +0 -1
- package/dist/__tests__/harness/codeObject.upgrade.test.js +0 -138
- package/dist/__tests__/harness/codeObject.upgrade.test.js.map +0 -1
- package/dist/__tests__/harness/script.test.d.ts +0 -2
- package/dist/__tests__/harness/script.test.d.ts.map +0 -1
- package/dist/__tests__/harness/script.test.js +0 -219
- package/dist/__tests__/harness/script.test.js.map +0 -1
- package/dist/__tests__/harness/view.test.d.ts +0 -2
- package/dist/__tests__/harness/view.test.d.ts.map +0 -1
- package/dist/__tests__/harness/view.test.js +0 -92
- package/dist/__tests__/harness/view.test.js.map +0 -1
- package/dist/__tests__/runtime.test.d.ts +0 -2
- package/dist/__tests__/runtime.test.d.ts.map +0 -1
- package/dist/__tests__/runtime.test.js +0 -141
- package/dist/__tests__/runtime.test.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/__tests__/compile.test.d.ts +0 -2
- package/dist/commands/__tests__/compile.test.d.ts.map +0 -1
- package/dist/commands/__tests__/compile.test.js +0 -351
- package/dist/commands/__tests__/compile.test.js.map +0 -1
- package/dist/commands/__tests__/compile.toml-mutation.test.d.ts +0 -2
- package/dist/commands/__tests__/compile.toml-mutation.test.d.ts.map +0 -1
- package/dist/commands/__tests__/compile.toml-mutation.test.js +0 -69
- package/dist/commands/__tests__/compile.toml-mutation.test.js.map +0 -1
- package/dist/commands/__tests__/init.test.d.ts +0 -2
- package/dist/commands/__tests__/init.test.d.ts.map +0 -1
- package/dist/commands/__tests__/init.test.js +0 -163
- package/dist/commands/__tests__/init.test.js.map +0 -1
- package/dist/commands/__tests__/run.test.d.ts +0 -2
- package/dist/commands/__tests__/run.test.d.ts.map +0 -1
- package/dist/commands/__tests__/run.test.js +0 -166
- package/dist/commands/__tests__/run.test.js.map +0 -1
- package/dist/commands/__tests__/test-move.test.d.ts +0 -2
- package/dist/commands/__tests__/test-move.test.d.ts.map +0 -1
- package/dist/commands/__tests__/test-move.test.js +0 -59
- package/dist/commands/__tests__/test-move.test.js.map +0 -1
- package/dist/commands/__tests__/test.test.d.ts +0 -2
- package/dist/commands/__tests__/test.test.d.ts.map +0 -1
- package/dist/commands/__tests__/test.test.js +0 -168
- package/dist/commands/__tests__/test.test.js.map +0 -1
- package/dist/commands/__tests__/update.test.d.ts +0 -2
- package/dist/commands/__tests__/update.test.d.ts.map +0 -1
- package/dist/commands/__tests__/update.test.js +0 -176
- package/dist/commands/__tests__/update.test.js.map +0 -1
- package/dist/commands/compile.d.ts.map +0 -1
- package/dist/commands/compile.js.map +0 -1
- package/dist/commands/fork/__tests__/create.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/create.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/create.test.js +0 -108
- package/dist/commands/fork/__tests__/create.test.js.map +0 -1
- package/dist/commands/fork/__tests__/fund.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/fund.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/fund.test.js +0 -72
- package/dist/commands/fork/__tests__/fund.test.js.map +0 -1
- package/dist/commands/fork/__tests__/list.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/list.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/list.test.js +0 -119
- package/dist/commands/fork/__tests__/list.test.js.map +0 -1
- package/dist/commands/fork/__tests__/serve.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/serve.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/serve.test.js +0 -97
- package/dist/commands/fork/__tests__/serve.test.js.map +0 -1
- package/dist/commands/fork/__tests__/view-resource.test.d.ts +0 -2
- package/dist/commands/fork/__tests__/view-resource.test.d.ts.map +0 -1
- package/dist/commands/fork/__tests__/view-resource.test.js +0 -77
- package/dist/commands/fork/__tests__/view-resource.test.js.map +0 -1
- package/dist/commands/fork/create.d.ts.map +0 -1
- package/dist/commands/fork/create.js.map +0 -1
- package/dist/commands/fork/fund.d.ts.map +0 -1
- package/dist/commands/fork/fund.js.map +0 -1
- package/dist/commands/fork/list.d.ts.map +0 -1
- package/dist/commands/fork/list.js.map +0 -1
- package/dist/commands/fork/serve.d.ts.map +0 -1
- package/dist/commands/fork/serve.js.map +0 -1
- package/dist/commands/fork/view-resource.d.ts.map +0 -1
- package/dist/commands/fork/view-resource.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/test-move.d.ts.map +0 -1
- package/dist/commands/test-move.js.map +0 -1
- package/dist/commands/test.d.ts.map +0 -1
- package/dist/commands/test.js.map +0 -1
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js.map +0 -1
- package/dist/core/AccountManager.d.ts.map +0 -1
- package/dist/core/AccountManager.js.map +0 -1
- package/dist/core/Publisher.d.ts.map +0 -1
- package/dist/core/Publisher.js.map +0 -1
- package/dist/core/__tests__/AccountManager.global-state.test.d.ts +0 -2
- package/dist/core/__tests__/AccountManager.global-state.test.d.ts.map +0 -1
- package/dist/core/__tests__/AccountManager.global-state.test.js +0 -69
- package/dist/core/__tests__/AccountManager.global-state.test.js.map +0 -1
- package/dist/core/__tests__/AccountManager.test.d.ts +0 -2
- package/dist/core/__tests__/AccountManager.test.d.ts.map +0 -1
- package/dist/core/__tests__/AccountManager.test.js +0 -239
- package/dist/core/__tests__/AccountManager.test.js.map +0 -1
- package/dist/core/__tests__/config.test.d.ts +0 -2
- package/dist/core/__tests__/config.test.d.ts.map +0 -1
- package/dist/core/__tests__/config.test.js +0 -311
- package/dist/core/__tests__/config.test.js.map +0 -1
- package/dist/core/__tests__/deployments.test.d.ts +0 -2
- package/dist/core/__tests__/deployments.test.d.ts.map +0 -1
- package/dist/core/__tests__/deployments.test.js +0 -201
- package/dist/core/__tests__/deployments.test.js.map +0 -1
- package/dist/core/__tests__/movementProfile.test.d.ts +0 -2
- package/dist/core/__tests__/movementProfile.test.d.ts.map +0 -1
- package/dist/core/__tests__/movementProfile.test.js +0 -112
- package/dist/core/__tests__/movementProfile.test.js.map +0 -1
- package/dist/core/__tests__/shell.test.d.ts +0 -2
- package/dist/core/__tests__/shell.test.d.ts.map +0 -1
- package/dist/core/__tests__/shell.test.js +0 -107
- package/dist/core/__tests__/shell.test.js.map +0 -1
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/contract.d.ts.map +0 -1
- package/dist/core/contract.js.map +0 -1
- package/dist/core/deployments.d.ts.map +0 -1
- package/dist/core/deployments.js.map +0 -1
- package/dist/core/movementProfile.d.ts.map +0 -1
- package/dist/core/movementProfile.js.map +0 -1
- package/dist/core/shell.d.ts.map +0 -1
- package/dist/core/shell.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/fork/__tests__/manager.test.d.ts +0 -2
- package/dist/fork/__tests__/manager.test.d.ts.map +0 -1
- package/dist/fork/__tests__/manager.test.js +0 -309
- package/dist/fork/__tests__/manager.test.js.map +0 -1
- package/dist/fork/__tests__/server.cors.test.d.ts +0 -2
- package/dist/fork/__tests__/server.cors.test.d.ts.map +0 -1
- package/dist/fork/__tests__/server.cors.test.js +0 -79
- package/dist/fork/__tests__/server.cors.test.js.map +0 -1
- package/dist/fork/__tests__/server.test.d.ts +0 -2
- package/dist/fork/__tests__/server.test.d.ts.map +0 -1
- package/dist/fork/__tests__/server.test.js +0 -54
- package/dist/fork/__tests__/server.test.js.map +0 -1
- package/dist/fork/__tests__/storage.test.d.ts +0 -2
- package/dist/fork/__tests__/storage.test.d.ts.map +0 -1
- package/dist/fork/__tests__/storage.test.js +0 -222
- package/dist/fork/__tests__/storage.test.js.map +0 -1
- package/dist/fork/__tests__/test.test.d.ts +0 -2
- package/dist/fork/__tests__/test.test.d.ts.map +0 -1
- package/dist/fork/__tests__/test.test.js +0 -81
- package/dist/fork/__tests__/test.test.js.map +0 -1
- package/dist/fork/api.d.ts.map +0 -1
- package/dist/fork/api.js.map +0 -1
- package/dist/fork/manager.d.ts.map +0 -1
- package/dist/fork/manager.js.map +0 -1
- package/dist/fork/server.d.ts.map +0 -1
- package/dist/fork/server.js.map +0 -1
- package/dist/fork/storage.d.ts.map +0 -1
- package/dist/fork/storage.js.map +0 -1
- package/dist/fork/test.d.ts.map +0 -1
- package/dist/fork/test.js.map +0 -1
- package/dist/harness/Harness.d.ts.map +0 -1
- package/dist/harness/Harness.js.map +0 -1
- package/dist/harness/codeObject.d.ts.map +0 -1
- package/dist/harness/codeObject.js.map +0 -1
- package/dist/harness/errors.d.ts.map +0 -1
- package/dist/harness/errors.js.map +0 -1
- package/dist/harness/index.d.ts.map +0 -1
- package/dist/harness/index.js.map +0 -1
- package/dist/harness/proxy.d.ts.map +0 -1
- package/dist/harness/proxy.js.map +0 -1
- package/dist/harness/script.d.ts.map +0 -1
- package/dist/harness/script.js.map +0 -1
- package/dist/harness/view.d.ts.map +0 -1
- package/dist/harness/view.js.map +0 -1
- package/dist/helpers/__tests__/semver-utils.test.d.ts +0 -2
- package/dist/helpers/__tests__/semver-utils.test.d.ts.map +0 -1
- package/dist/helpers/__tests__/semver-utils.test.js +0 -103
- package/dist/helpers/__tests__/semver-utils.test.js.map +0 -1
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts +0 -2
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts.map +0 -1
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js +0 -172
- package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js.map +0 -1
- package/dist/helpers/assertions.d.ts.map +0 -1
- package/dist/helpers/assertions.js.map +0 -1
- package/dist/helpers/banner.d.ts.map +0 -1
- package/dist/helpers/banner.js.map +0 -1
- package/dist/helpers/index.d.ts.map +0 -1
- package/dist/helpers/index.js.map +0 -1
- package/dist/helpers/move-tests.d.ts.map +0 -1
- package/dist/helpers/move-tests.js.map +0 -1
- package/dist/helpers/npm-registry.d.ts.map +0 -1
- package/dist/helpers/npm-registry.js.map +0 -1
- package/dist/helpers/semver-utils.d.ts.map +0 -1
- package/dist/helpers/semver-utils.js.map +0 -1
- package/dist/helpers/setup.d.ts.map +0 -1
- package/dist/helpers/setup.js.map +0 -1
- package/dist/helpers/setupLocalTesting.d.ts.map +0 -1
- package/dist/helpers/setupLocalTesting.js.map +0 -1
- package/dist/helpers/testFixtures.d.ts.map +0 -1
- package/dist/helpers/testFixtures.js.map +0 -1
- package/dist/helpers/version-check.d.ts.map +0 -1
- package/dist/helpers/version-check.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/node/LocalNodeManager.d.ts.map +0 -1
- package/dist/node/LocalNodeManager.js.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts +0 -2
- package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.api-port.test.js +0 -55
- package/dist/node/__tests__/LocalNodeManager.api-port.test.js.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.test.d.ts +0 -2
- package/dist/node/__tests__/LocalNodeManager.test.d.ts.map +0 -1
- package/dist/node/__tests__/LocalNodeManager.test.js +0 -449
- package/dist/node/__tests__/LocalNodeManager.test.js.map +0 -1
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js.map +0 -1
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js.map +0 -1
- package/dist/types/fork.d.ts.map +0 -1
- package/dist/types/fork.js.map +0 -1
- package/dist/types/harness.d.ts.map +0 -1
- package/dist/types/harness.js.map +0 -1
- package/dist/types/runtime.d.ts.map +0 -1
- package/dist/types/runtime.js.map +0 -1
- package/dist/ui/__tests__/colors.test.d.ts +0 -2
- package/dist/ui/__tests__/colors.test.d.ts.map +0 -1
- package/dist/ui/__tests__/colors.test.js +0 -127
- package/dist/ui/__tests__/colors.test.js.map +0 -1
- package/dist/ui/__tests__/logger.test.d.ts +0 -2
- package/dist/ui/__tests__/logger.test.d.ts.map +0 -1
- package/dist/ui/__tests__/logger.test.js +0 -75
- package/dist/ui/__tests__/logger.test.js.map +0 -1
- package/dist/ui/colors.d.ts.map +0 -1
- package/dist/ui/colors.js.map +0 -1
- package/dist/ui/formatters.d.ts.map +0 -1
- package/dist/ui/formatters.js.map +0 -1
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/logger.d.ts.map +0 -1
- package/dist/ui/logger.js.map +0 -1
- package/dist/ui/spinner.d.ts.map +0 -1
- package/dist/ui/spinner.js.map +0 -1
- package/dist/ui/symbols.d.ts.map +0 -1
- package/dist/ui/symbols.js.map +0 -1
- package/dist/ui/table.d.ts.map +0 -1
- package/dist/ui/table.js.map +0 -1
- package/dist/utils/__tests__/address.test.d.ts +0 -2
- package/dist/utils/__tests__/address.test.d.ts.map +0 -1
- package/dist/utils/__tests__/address.test.js +0 -70
- package/dist/utils/__tests__/address.test.js.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts +0 -2
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js +0 -43
- package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts +0 -2
- package/dist/utils/__tests__/childProcessAdapter.test.d.ts.map +0 -1
- package/dist/utils/__tests__/childProcessAdapter.test.js +0 -217
- package/dist/utils/__tests__/childProcessAdapter.test.js.map +0 -1
- package/dist/utils/__tests__/runCli.test.d.ts +0 -2
- package/dist/utils/__tests__/runCli.test.d.ts.map +0 -1
- package/dist/utils/__tests__/runCli.test.js +0 -187
- package/dist/utils/__tests__/runCli.test.js.map +0 -1
- package/dist/utils/address.d.ts.map +0 -1
- package/dist/utils/address.js.map +0 -1
- package/dist/utils/childProcessAdapter.d.ts.map +0 -1
- package/dist/utils/childProcessAdapter.js.map +0 -1
- package/dist/utils/parseCliOutput.d.ts.map +0 -1
- package/dist/utils/parseCliOutput.js.map +0 -1
- package/dist/utils/redact.d.ts.map +0 -1
- package/dist/utils/redact.js.map +0 -1
- package/dist/utils/runCli.d.ts.map +0 -1
- package/dist/utils/runCli.js.map +0 -1
- package/src/__tests__/deployContract.test.ts +0 -438
- package/src/__tests__/errors.test.ts +0 -84
- package/src/__tests__/exports.test.ts +0 -32
- package/src/__tests__/fixtures/sigint-deploy-harness.ts +0 -96
- package/src/__tests__/fork/api.test.ts +0 -148
- package/src/__tests__/fork/api.timeout.test.ts +0 -150
- package/src/__tests__/harness/Harness.createLive.test.ts +0 -57
- package/src/__tests__/harness/Harness.proxy.test.ts +0 -111
- package/src/__tests__/harness/_fixture.ts +0 -131
- package/src/__tests__/harness/codeObject.deploy.test.ts +0 -319
- package/src/__tests__/harness/codeObject.upgrade.test.ts +0 -156
- package/src/__tests__/harness/script.test.ts +0 -245
- package/src/__tests__/harness/view.test.ts +0 -104
- package/src/__tests__/runtime.test.ts +0 -182
- package/src/cli.ts +0 -164
- package/src/commands/__tests__/compile.test.ts +0 -407
- package/src/commands/__tests__/compile.toml-mutation.test.ts +0 -77
- package/src/commands/__tests__/init.test.ts +0 -210
- package/src/commands/__tests__/run.test.ts +0 -192
- package/src/commands/__tests__/test-move.test.ts +0 -81
- package/src/commands/__tests__/test.test.ts +0 -204
- package/src/commands/__tests__/update.test.ts +0 -223
- package/src/commands/compile.ts +0 -339
- package/src/commands/fork/__tests__/create.test.ts +0 -132
- package/src/commands/fork/__tests__/fund.test.ts +0 -104
- package/src/commands/fork/__tests__/list.test.ts +0 -139
- package/src/commands/fork/__tests__/serve.test.ts +0 -121
- package/src/commands/fork/__tests__/view-resource.test.ts +0 -101
- package/src/commands/fork/create.ts +0 -110
- package/src/commands/fork/fund.ts +0 -64
- package/src/commands/fork/list.ts +0 -98
- package/src/commands/fork/serve.ts +0 -80
- package/src/commands/fork/view-resource.ts +0 -51
- package/src/commands/init.ts +0 -264
- package/src/commands/run.ts +0 -125
- package/src/commands/test-move.ts +0 -27
- package/src/commands/test.ts +0 -255
- package/src/commands/update.ts +0 -201
- package/src/core/AccountManager.ts +0 -457
- package/src/core/Publisher.ts +0 -310
- package/src/core/__tests__/AccountManager.global-state.test.ts +0 -83
- package/src/core/__tests__/AccountManager.test.ts +0 -290
- package/src/core/__tests__/config.test.ts +0 -377
- package/src/core/__tests__/deployments.test.ts +0 -247
- package/src/core/__tests__/movementProfile.test.ts +0 -131
- package/src/core/__tests__/shell.test.ts +0 -138
- package/src/core/config.ts +0 -286
- package/src/core/contract.ts +0 -103
- package/src/core/deployments.ts +0 -155
- package/src/core/movementProfile.ts +0 -127
- package/src/core/shell.ts +0 -86
- package/src/errors.ts +0 -81
- package/src/fork/__tests__/manager.test.ts +0 -385
- package/src/fork/__tests__/server.cors.test.ts +0 -101
- package/src/fork/__tests__/server.test.ts +0 -65
- package/src/fork/__tests__/storage.test.ts +0 -281
- package/src/fork/__tests__/test.test.ts +0 -97
- package/src/fork/api.ts +0 -190
- package/src/fork/manager.ts +0 -343
- package/src/fork/server.ts +0 -380
- package/src/fork/storage.ts +0 -253
- package/src/fork/test.ts +0 -221
- package/src/harness/Harness.ts +0 -231
- package/src/harness/codeObject.ts +0 -381
- package/src/harness/errors.ts +0 -22
- package/src/harness/index.ts +0 -3
- package/src/harness/proxy.ts +0 -40
- package/src/harness/script.ts +0 -200
- package/src/harness/view.ts +0 -34
- package/src/helpers/__tests__/semver-utils.test.ts +0 -121
- package/src/helpers/__tests__/setupLocalTesting.fork-network.test.ts +0 -212
- package/src/helpers/assertions.ts +0 -29
- package/src/helpers/banner.ts +0 -63
- package/src/helpers/index.ts +0 -37
- package/src/helpers/move-tests.ts +0 -72
- package/src/helpers/npm-registry.ts +0 -72
- package/src/helpers/semver-utils.ts +0 -54
- package/src/helpers/setup.ts +0 -54
- package/src/helpers/setupLocalTesting.ts +0 -387
- package/src/helpers/testFixtures.ts +0 -210
- package/src/helpers/version-check.ts +0 -114
- package/src/index.ts +0 -30
- package/src/node/LocalNodeManager.ts +0 -383
- package/src/node/__tests__/LocalNodeManager.api-port.test.ts +0 -62
- package/src/node/__tests__/LocalNodeManager.test.ts +0 -579
- package/src/runtime.ts +0 -157
- package/src/templates/.env.example +0 -9
- package/src/templates/.mocharc.json +0 -8
- package/src/templates/.vscode/settings.json +0 -11
- package/src/templates/README.md +0 -146
- package/src/templates/gitignore +0 -22
- package/src/templates/move/Move.toml +0 -19
- package/src/templates/move/sources/Counter.move +0 -96
- package/src/templates/movehat.config.ts +0 -57
- package/src/templates/package.json +0 -27
- package/src/templates/scripts/deploy-counter.ts +0 -66
- package/src/templates/tests/Counter.test.ts +0 -113
- package/src/templates/tsconfig.json +0 -15
- package/src/templates/types/movehat.d.ts +0 -101
- package/src/types/config.ts +0 -83
- package/src/types/fork.ts +0 -47
- package/src/types/harness.ts +0 -182
- package/src/types/runtime.ts +0 -57
- package/src/ui/__tests__/colors.test.ts +0 -156
- package/src/ui/__tests__/logger.test.ts +0 -89
- package/src/ui/colors.ts +0 -144
- package/src/ui/formatters.ts +0 -246
- package/src/ui/index.ts +0 -62
- package/src/ui/logger.ts +0 -310
- package/src/ui/spinner.ts +0 -218
- package/src/ui/symbols.ts +0 -80
- package/src/ui/table.ts +0 -191
- package/src/utils/__tests__/address.test.ts +0 -93
- package/src/utils/__tests__/childProcessAdapter.maxBuffer.test.ts +0 -51
- package/src/utils/__tests__/childProcessAdapter.test.ts +0 -266
- package/src/utils/__tests__/runCli.test.ts +0 -240
- package/src/utils/address.ts +0 -52
- package/src/utils/childProcessAdapter.ts +0 -244
- package/src/utils/parseCliOutput.ts +0 -27
- package/src/utils/redact.ts +0 -24
- package/src/utils/runCli.ts +0 -64
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
import { PrivateKey, PrivateKeyVariants } from "@aptos-labs/ts-sdk";
|
|
2
|
-
import type { MovehatRuntime } from "../types/runtime.js";
|
|
3
|
-
import type {
|
|
4
|
-
DeployCodeObjectOptions,
|
|
5
|
-
UpgradeCodeObjectOptions,
|
|
6
|
-
CodeObjectInfo,
|
|
7
|
-
} from "../types/harness.js";
|
|
8
|
-
import { extractNamedAddresses } from "../commands/compile.js";
|
|
9
|
-
import {
|
|
10
|
-
saveDeployment,
|
|
11
|
-
loadDeployment,
|
|
12
|
-
validateSafeName,
|
|
13
|
-
type DeploymentInfo,
|
|
14
|
-
} from "../core/deployments.js";
|
|
15
|
-
import { validatePathSafety } from "../core/shell.js";
|
|
16
|
-
import {
|
|
17
|
-
CliExecutionError,
|
|
18
|
-
ModuleAlreadyDeployedError,
|
|
19
|
-
PostPublishError,
|
|
20
|
-
} from "../errors.js";
|
|
21
|
-
import { runCli } from "../utils/runCli.js";
|
|
22
|
-
import { parseTxHash } from "../utils/parseCliOutput.js";
|
|
23
|
-
import { logger, isVerbose } from "../ui/index.js";
|
|
24
|
-
import {
|
|
25
|
-
writeTempKeyFile,
|
|
26
|
-
removeKeyFile,
|
|
27
|
-
removeKeyFileSyncBestEffort,
|
|
28
|
-
ensureSignalHandler,
|
|
29
|
-
cleanupCallbacks,
|
|
30
|
-
} from "../core/movementProfile.js";
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Deploy a Move package as a code object via `movement move deploy-object`.
|
|
34
|
-
*
|
|
35
|
-
* Mirrors `core/Publisher.deploy` exactly for the security-critical parts
|
|
36
|
-
* (per-deploy unique profile, atomic ~/.aptos/config.yaml mutation under
|
|
37
|
-
* the shared mutex, SIGINT-safe sync cleanup, stderr redaction via
|
|
38
|
-
* `runCli`). The only differences are:
|
|
39
|
-
*
|
|
40
|
-
* 1. CLI subcommand: `deploy-object` instead of `publish` + a required
|
|
41
|
-
* `--address-name <moduleName>` flag that binds the derived object
|
|
42
|
-
* address to the package's named-address slot.
|
|
43
|
-
* 2. `DeploymentInfo.address` is the derived **object address** parsed
|
|
44
|
-
* from CLI output, not the deployer's account address.
|
|
45
|
-
*
|
|
46
|
-
* @internal — called from `Harness.deployCodeObject`.
|
|
47
|
-
*/
|
|
48
|
-
export async function deployCodeObject(
|
|
49
|
-
runtime: MovehatRuntime,
|
|
50
|
-
options: DeployCodeObjectOptions
|
|
51
|
-
): Promise<CodeObjectInfo> {
|
|
52
|
-
return executeMovementMoveObject({
|
|
53
|
-
runtime,
|
|
54
|
-
moduleName: options.moduleName,
|
|
55
|
-
addressName: options.addressName,
|
|
56
|
-
packageDir: options.packageDir,
|
|
57
|
-
namedAddresses: options.namedAddresses,
|
|
58
|
-
includedArtifacts: options.includedArtifacts,
|
|
59
|
-
adapter: options.adapter,
|
|
60
|
-
subcommand: "deploy-object",
|
|
61
|
-
extraArgs: [],
|
|
62
|
-
checkIdempotency: true,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Upgrade an existing code object via `movement move upgrade-object`.
|
|
68
|
-
*
|
|
69
|
-
* Requires {@link UpgradeCodeObjectOptions.objectAddress} — the address
|
|
70
|
-
* of the existing on-chain object. The local `DeploymentInfo` record
|
|
71
|
-
* for `moduleName` is overwritten with a new timestamp + txHash; the
|
|
72
|
-
* address stays the same.
|
|
73
|
-
*
|
|
74
|
-
* @internal — called from `Harness.upgradeCodeObject`.
|
|
75
|
-
*/
|
|
76
|
-
export async function upgradeCodeObject(
|
|
77
|
-
runtime: MovehatRuntime,
|
|
78
|
-
options: UpgradeCodeObjectOptions
|
|
79
|
-
): Promise<CodeObjectInfo> {
|
|
80
|
-
if (!options.objectAddress) {
|
|
81
|
-
throw new Error(
|
|
82
|
-
"Harness.upgradeCodeObject requires options.objectAddress (the existing object's address)."
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
return executeMovementMoveObject({
|
|
86
|
-
runtime,
|
|
87
|
-
moduleName: options.moduleName,
|
|
88
|
-
addressName: options.addressName,
|
|
89
|
-
packageDir: options.packageDir,
|
|
90
|
-
namedAddresses: options.namedAddresses,
|
|
91
|
-
includedArtifacts: options.includedArtifacts,
|
|
92
|
-
adapter: options.adapter,
|
|
93
|
-
subcommand: "upgrade-object",
|
|
94
|
-
extraArgs: ["--object-address", options.objectAddress],
|
|
95
|
-
checkIdempotency: false,
|
|
96
|
-
fixedAddress: options.objectAddress,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
interface ExecuteOptions {
|
|
101
|
-
runtime: MovehatRuntime;
|
|
102
|
-
moduleName: string;
|
|
103
|
-
/**
|
|
104
|
-
* Move.toml named address for the `--address-name` CLI flag.
|
|
105
|
-
* Defaults to `moduleName` when undefined.
|
|
106
|
-
*/
|
|
107
|
-
addressName?: string | undefined;
|
|
108
|
-
packageDir?: string | undefined;
|
|
109
|
-
namedAddresses?: Record<string, string> | undefined;
|
|
110
|
-
includedArtifacts?: "none" | "sparse" | "all" | undefined;
|
|
111
|
-
adapter?: import("../utils/childProcessAdapter.js").ChildProcessAdapter | undefined;
|
|
112
|
-
subcommand: "deploy-object" | "upgrade-object";
|
|
113
|
-
extraArgs: readonly string[];
|
|
114
|
-
/** Whether to throw `ModuleAlreadyDeployedError` if a record exists. */
|
|
115
|
-
checkIdempotency: boolean;
|
|
116
|
-
/**
|
|
117
|
-
* For upgrade-object: the object's existing address. Skips the parse-
|
|
118
|
-
* from-stdout step (the address is known up front).
|
|
119
|
-
*/
|
|
120
|
-
fixedAddress?: string;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
async function executeMovementMoveObject(
|
|
124
|
-
opts: ExecuteOptions
|
|
125
|
-
): Promise<CodeObjectInfo> {
|
|
126
|
-
const { runtime, moduleName, subcommand } = opts;
|
|
127
|
-
const config = runtime.config;
|
|
128
|
-
const account = runtime.account;
|
|
129
|
-
|
|
130
|
-
validateSafeName(moduleName, "module");
|
|
131
|
-
|
|
132
|
-
// Idempotency: deploy-object refuses re-deploy unless MH_CLI_REDEPLOY=true.
|
|
133
|
-
// Upgrade does not check this (the whole point is to overwrite).
|
|
134
|
-
const forceRedeploy = process.env.MH_CLI_REDEPLOY === "true";
|
|
135
|
-
if (opts.checkIdempotency) {
|
|
136
|
-
const existing = loadDeployment(config.network, moduleName);
|
|
137
|
-
if (existing && !forceRedeploy) {
|
|
138
|
-
const errorDetails = [
|
|
139
|
-
`Module "${moduleName}" is already deployed on ${config.network}`,
|
|
140
|
-
`Address: ${existing.address}`,
|
|
141
|
-
`Deployed at: ${new Date(existing.timestamp).toLocaleString()}`,
|
|
142
|
-
existing.txHash ? `Transaction: ${existing.txHash}` : null,
|
|
143
|
-
`\nTo redeploy, set MH_CLI_REDEPLOY=true or call harness.upgradeCodeObject({ objectAddress: "${existing.address}", ... }).`,
|
|
144
|
-
]
|
|
145
|
-
.filter(Boolean)
|
|
146
|
-
.join("\n");
|
|
147
|
-
|
|
148
|
-
logger.error(
|
|
149
|
-
`Module "${moduleName}" is already deployed on ${config.network}`
|
|
150
|
-
);
|
|
151
|
-
logger.plain(` Address: ${existing.address}`);
|
|
152
|
-
logger.plain(
|
|
153
|
-
` Deployed at: ${new Date(existing.timestamp).toLocaleString()}`
|
|
154
|
-
);
|
|
155
|
-
if (existing.txHash) logger.plain(` Transaction: ${existing.txHash}`);
|
|
156
|
-
logger.newline();
|
|
157
|
-
|
|
158
|
-
throw new ModuleAlreadyDeployedError(
|
|
159
|
-
errorDetails,
|
|
160
|
-
moduleName,
|
|
161
|
-
config.network,
|
|
162
|
-
existing.address,
|
|
163
|
-
existing.timestamp,
|
|
164
|
-
existing.txHash
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const dir = opts.packageDir || config.moveDir;
|
|
170
|
-
const safeDir = validatePathSafety(dir, "package directory");
|
|
171
|
-
|
|
172
|
-
logger.step(
|
|
173
|
-
`${subcommand === "deploy-object" ? "Deploying" : "Upgrading"} module "${moduleName}" from ${dir}...`
|
|
174
|
-
);
|
|
175
|
-
|
|
176
|
-
try {
|
|
177
|
-
const deployerAddress = account.accountAddress.toString();
|
|
178
|
-
|
|
179
|
-
// Build named-addresses arg: auto-detected names from Move sources
|
|
180
|
-
// are bound to the deployer's address (Publisher convention).
|
|
181
|
-
// Caller-supplied `namedAddresses` overlay on top.
|
|
182
|
-
const detectedAddresses = extractNamedAddresses(dir);
|
|
183
|
-
const addrMap = new Map<string, string>();
|
|
184
|
-
for (const name of detectedAddresses) addrMap.set(name, deployerAddress);
|
|
185
|
-
if (opts.namedAddresses) {
|
|
186
|
-
for (const [k, v] of Object.entries(opts.namedAddresses)) addrMap.set(k, v);
|
|
187
|
-
}
|
|
188
|
-
const namedAddrArgs: string[] =
|
|
189
|
-
addrMap.size > 0
|
|
190
|
-
? [
|
|
191
|
-
"--named-addresses",
|
|
192
|
-
Array.from(addrMap.entries())
|
|
193
|
-
.map(([k, v]) => `${k}=${v}`)
|
|
194
|
-
.join(","),
|
|
195
|
-
]
|
|
196
|
-
: [];
|
|
197
|
-
|
|
198
|
-
// Build step (same as Publisher — produces the bytecode the
|
|
199
|
-
// subcommand will publish/upgrade).
|
|
200
|
-
logger.step("Building package...");
|
|
201
|
-
const buildResult = await runCli(
|
|
202
|
-
{
|
|
203
|
-
command: "movement",
|
|
204
|
-
args: ["move", "build", "--package-dir", safeDir, ...namedAddrArgs],
|
|
205
|
-
timeoutMs: 120000,
|
|
206
|
-
},
|
|
207
|
-
{ adapter: opts.adapter }
|
|
208
|
-
);
|
|
209
|
-
if (isVerbose() && buildResult.stdout) logger.info(buildResult.stdout.trim(), 2);
|
|
210
|
-
|
|
211
|
-
// Format the private key into AIP-80 shape so the Movement CLI
|
|
212
|
-
// doesn't emit its raw-hex deprecation warning. `formatPrivateKey`
|
|
213
|
-
// is idempotent for already-prefixed inputs.
|
|
214
|
-
const formattedPrivateKey = PrivateKey.formatPrivateKey(
|
|
215
|
-
config.privateKey,
|
|
216
|
-
PrivateKeyVariants.Ed25519,
|
|
217
|
-
);
|
|
218
|
-
|
|
219
|
-
// Pass the private key via a 0o600 temp file (--private-key-file)
|
|
220
|
-
// and the on-chain address via --sender-account. This avoids the
|
|
221
|
-
// CLI's profile-yaml lookup entirely — no CWD / HOME / .aptos /
|
|
222
|
-
// .movement dance, no CLI-variant dependency.
|
|
223
|
-
const keyFilePath = writeTempKeyFile(formattedPrivateKey);
|
|
224
|
-
|
|
225
|
-
// Register SIGINT-safe sync cleanup BEFORE invoking the CLI so
|
|
226
|
-
// the private key never persists on disk after an abnormal exit.
|
|
227
|
-
// The signal-handler path uses the best-effort variant because the
|
|
228
|
-
// event loop is dead and we cannot logger.warning.
|
|
229
|
-
ensureSignalHandler();
|
|
230
|
-
const syncCleanup = () => removeKeyFileSyncBestEffort(keyFilePath);
|
|
231
|
-
cleanupCallbacks.add(syncCleanup);
|
|
232
|
-
|
|
233
|
-
let deployOut = "";
|
|
234
|
-
try {
|
|
235
|
-
logger.step(
|
|
236
|
-
`Running 'movement move ${subcommand}'${subcommand === "upgrade-object" ? "" : " (this may take a moment)"}...`
|
|
237
|
-
);
|
|
238
|
-
const includedArtifacts: ("--included-artifacts" | string)[] =
|
|
239
|
-
opts.includedArtifacts
|
|
240
|
-
? ["--included-artifacts", opts.includedArtifacts]
|
|
241
|
-
: [];
|
|
242
|
-
const result = await runCli(
|
|
243
|
-
{
|
|
244
|
-
command: "movement",
|
|
245
|
-
args: [
|
|
246
|
-
"move",
|
|
247
|
-
subcommand,
|
|
248
|
-
"--address-name",
|
|
249
|
-
opts.addressName ?? moduleName,
|
|
250
|
-
"--package-dir",
|
|
251
|
-
safeDir,
|
|
252
|
-
"--url",
|
|
253
|
-
config.rpc,
|
|
254
|
-
"--private-key-file",
|
|
255
|
-
keyFilePath,
|
|
256
|
-
"--sender-account",
|
|
257
|
-
deployerAddress,
|
|
258
|
-
"--assume-yes",
|
|
259
|
-
...includedArtifacts,
|
|
260
|
-
...namedAddrArgs,
|
|
261
|
-
...opts.extraArgs,
|
|
262
|
-
],
|
|
263
|
-
timeoutMs: 180000, // 3 min — deploy-object can be slow with chunked publishing.
|
|
264
|
-
},
|
|
265
|
-
{ adapter: opts.adapter }
|
|
266
|
-
);
|
|
267
|
-
deployOut = result.stdout;
|
|
268
|
-
// Both streams gated behind isVerbose(); see §9 — stream channel
|
|
269
|
-
// is not by itself a failure signal. Real failures throw via
|
|
270
|
-
// CliExecutionError and are surfaced from the catch below.
|
|
271
|
-
if (isVerbose() && result.stdout) logger.info(result.stdout.trim(), 2);
|
|
272
|
-
if (isVerbose() && result.stderr) logger.info(result.stderr.trim(), 2);
|
|
273
|
-
} finally {
|
|
274
|
-
// Unlink via the observable helper — emit a warning if the file
|
|
275
|
-
// could not be removed AND still exists on disk (private key
|
|
276
|
-
// would persist silently otherwise). ENOENT and races are
|
|
277
|
-
// treated as benign success.
|
|
278
|
-
const cleanupErr = removeKeyFile(keyFilePath);
|
|
279
|
-
if (cleanupErr) {
|
|
280
|
-
logger.warning(
|
|
281
|
-
`Failed to remove temp key file '${keyFilePath}': ${cleanupErr.message}. ` +
|
|
282
|
-
`The file has mode 0o600 but should be removed manually: rm ${keyFilePath}`
|
|
283
|
-
);
|
|
284
|
-
}
|
|
285
|
-
cleanupCallbacks.delete(syncCleanup);
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
// Parse object address (for deploy-object) and txHash (both flows).
|
|
289
|
-
const objectAddress = opts.fixedAddress ?? parseObjectAddress(deployOut);
|
|
290
|
-
const txHash = parseTxHash(deployOut);
|
|
291
|
-
|
|
292
|
-
if (!objectAddress) {
|
|
293
|
-
throw new Error(
|
|
294
|
-
`Could not parse object address from '${subcommand}' output. ` +
|
|
295
|
-
`Expected a line containing 'object address 0x...' or a JSON ` +
|
|
296
|
-
`'Result' block with an 'object_address' field. Captured stdout:\n${deployOut.slice(0, 1000)}`
|
|
297
|
-
);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
logger.success(
|
|
301
|
-
`${subcommand === "deploy-object" ? "Module deployed" : "Module upgraded"} successfully!`
|
|
302
|
-
);
|
|
303
|
-
|
|
304
|
-
// Publish/upgrade succeeded. Everything below this point that throws
|
|
305
|
-
// is a local-side bookkeeping failure, not an on-chain failure.
|
|
306
|
-
|
|
307
|
-
const deployment: DeploymentInfo = {
|
|
308
|
-
address: objectAddress,
|
|
309
|
-
moduleName,
|
|
310
|
-
network: config.network,
|
|
311
|
-
deployer: deployerAddress,
|
|
312
|
-
timestamp: Date.now(),
|
|
313
|
-
...(txHash !== undefined ? { txHash } : {}),
|
|
314
|
-
};
|
|
315
|
-
|
|
316
|
-
try {
|
|
317
|
-
saveDeployment(deployment);
|
|
318
|
-
} catch (error) {
|
|
319
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
320
|
-
throw new PostPublishError(
|
|
321
|
-
`Module "${moduleName}" ${subcommand === "deploy-object" ? "deployed" : "upgraded"} to ${deployment.address} ` +
|
|
322
|
-
`but local deployment record could not be written: ${err.message}`,
|
|
323
|
-
deployment,
|
|
324
|
-
err
|
|
325
|
-
);
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
return deployment;
|
|
329
|
-
} catch (error) {
|
|
330
|
-
if (error instanceof PostPublishError) {
|
|
331
|
-
logger.warning(
|
|
332
|
-
`Module ${subcommand === "deploy-object" ? "deployed" : "upgraded"} successfully to ${error.deployment.address} ` +
|
|
333
|
-
`(tx=${error.deployment.txHash ?? "unknown"}) but local deployment record could not be written.`
|
|
334
|
-
);
|
|
335
|
-
logger.warning(` Cause: ${error.cause.message}`);
|
|
336
|
-
logger.warning(
|
|
337
|
-
` To recover, manually write the deployment to deployments/${error.deployment.network}/${error.deployment.moduleName}.json.`
|
|
338
|
-
);
|
|
339
|
-
throw error;
|
|
340
|
-
}
|
|
341
|
-
if (error instanceof CliExecutionError) {
|
|
342
|
-
if (error.stdoutPreview) logger.info(error.stdoutPreview, 2);
|
|
343
|
-
logger.error(
|
|
344
|
-
`Failed to ${subcommand === "deploy-object" ? "deploy" : "upgrade"} module: ${error.message}\n${error.stderr}`
|
|
345
|
-
);
|
|
346
|
-
} else {
|
|
347
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
348
|
-
logger.error(
|
|
349
|
-
`Failed to ${subcommand === "deploy-object" ? "deploy" : "upgrade"} module: ${err.message}`
|
|
350
|
-
);
|
|
351
|
-
}
|
|
352
|
-
throw error;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* Extract a code-object address from `movement move deploy-object` stdout.
|
|
358
|
-
*
|
|
359
|
-
* Movement CLI typically emits the address in one of these shapes:
|
|
360
|
-
*
|
|
361
|
-
* - Free text: `Code was successfully deployed to object address 0x…`
|
|
362
|
-
* - Free text: `Object address: 0x…`
|
|
363
|
-
* - JSON `Result` block with `"object_address": "0x…"`
|
|
364
|
-
*
|
|
365
|
-
* Falls through the patterns in order. Returns `undefined` on no match.
|
|
366
|
-
*/
|
|
367
|
-
function parseObjectAddress(stdout: string): string | undefined {
|
|
368
|
-
// Pattern 1: phrase-context match.
|
|
369
|
-
const phraseMatch = stdout.match(
|
|
370
|
-
/object\s+address[:\s]+\b(0x[a-fA-F0-9]{1,64})\b/i
|
|
371
|
-
);
|
|
372
|
-
if (phraseMatch?.[1]) return phraseMatch[1];
|
|
373
|
-
|
|
374
|
-
// Pattern 2: JSON-shaped key.
|
|
375
|
-
const jsonMatch = stdout.match(
|
|
376
|
-
/"object_address"\s*:\s*"(0x[a-fA-F0-9]{1,64})"/
|
|
377
|
-
);
|
|
378
|
-
if (jsonMatch?.[1]) return jsonMatch[1];
|
|
379
|
-
|
|
380
|
-
return undefined;
|
|
381
|
-
}
|
package/src/harness/errors.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Thrown synchronously when any method other than `cleanup` is invoked
|
|
3
|
-
* on a Harness instance whose `cleanup()` has already run.
|
|
4
|
-
*
|
|
5
|
-
* The throw happens on property access (Proxy `get` trap), not after the
|
|
6
|
-
* async method body. That means `await harness.deployCodeObject(...)`
|
|
7
|
-
* throws *before* the call site awaits — callers can use a plain
|
|
8
|
-
* `try`/`catch` or rely on the rejected promise; either form will fire.
|
|
9
|
-
*/
|
|
10
|
-
export class HarnessDisposedError extends Error {
|
|
11
|
-
constructor(public readonly methodName: string) {
|
|
12
|
-
super(
|
|
13
|
-
`Harness is disposed; call to '${methodName}' is not allowed. ` +
|
|
14
|
-
`Create a new Harness via Harness.createLocal/createFork/createLive instead.`
|
|
15
|
-
);
|
|
16
|
-
this.name = "HarnessDisposedError";
|
|
17
|
-
|
|
18
|
-
if (Error.captureStackTrace) {
|
|
19
|
-
Error.captureStackTrace(this, HarnessDisposedError);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
package/src/harness/index.ts
DELETED
package/src/harness/proxy.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { HarnessDisposedError } from "./errors.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Names of Harness methods that must throw `HarnessDisposedError`
|
|
5
|
-
* synchronously once the harness has been disposed (via `cleanup()`).
|
|
6
|
-
*
|
|
7
|
-
* Properties NOT in this set — `cleanup`, `mode`, `poisoned`, the runtime
|
|
8
|
-
* accessors, well-known Symbols, and the promise-protocol hooks
|
|
9
|
-
* (`then`/`catch`/`finally`) — always pass through. That keeps:
|
|
10
|
-
* - `await harness` from breaking on `.then` access
|
|
11
|
-
* - debug tools (`console.log`, `util.inspect`) from throwing
|
|
12
|
-
* - idempotent `cleanup()` callable post-poisoning
|
|
13
|
-
*
|
|
14
|
-
* New Harness methods that should fail post-cleanup MUST be added here.
|
|
15
|
-
*/
|
|
16
|
-
const POISONED_METHODS: ReadonlySet<string> = new Set([
|
|
17
|
-
"deployCodeObject",
|
|
18
|
-
"upgradeCodeObject",
|
|
19
|
-
"runViewFunction",
|
|
20
|
-
"runMoveScript",
|
|
21
|
-
]);
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Wrap a Harness instance in a Proxy that throws `HarnessDisposedError`
|
|
25
|
-
* synchronously on access to any method in {@link POISONED_METHODS} once
|
|
26
|
-
* `isPoisoned()` returns true.
|
|
27
|
-
*/
|
|
28
|
-
export function createHarnessProxy<T extends object>(
|
|
29
|
-
target: T,
|
|
30
|
-
isPoisoned: () => boolean
|
|
31
|
-
): T {
|
|
32
|
-
return new Proxy(target, {
|
|
33
|
-
get(obj, prop, receiver) {
|
|
34
|
-
if (typeof prop === "string" && POISONED_METHODS.has(prop) && isPoisoned()) {
|
|
35
|
-
throw new HarnessDisposedError(prop);
|
|
36
|
-
}
|
|
37
|
-
return Reflect.get(obj, prop, receiver);
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
}
|
package/src/harness/script.ts
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { existsSync } from "fs";
|
|
2
|
-
import { extname } from "path";
|
|
3
|
-
import { PrivateKey, PrivateKeyVariants } from "@aptos-labs/ts-sdk";
|
|
4
|
-
import type { MovehatRuntime } from "../types/runtime.js";
|
|
5
|
-
import type {
|
|
6
|
-
RunMoveScriptOptions,
|
|
7
|
-
MoveScriptResult,
|
|
8
|
-
} from "../types/harness.js";
|
|
9
|
-
import { validatePathSafety } from "../core/shell.js";
|
|
10
|
-
import { CliExecutionError } from "../errors.js";
|
|
11
|
-
import { runCli } from "../utils/runCli.js";
|
|
12
|
-
import { parseTxHash } from "../utils/parseCliOutput.js";
|
|
13
|
-
import { logger, isVerbose } from "../ui/index.js";
|
|
14
|
-
import {
|
|
15
|
-
writeTempKeyFile,
|
|
16
|
-
removeKeyFile,
|
|
17
|
-
removeKeyFileSyncBestEffort,
|
|
18
|
-
ensureSignalHandler,
|
|
19
|
-
cleanupCallbacks,
|
|
20
|
-
} from "../core/movementProfile.js";
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Execute a Move script via `movement move run-script`.
|
|
24
|
-
*
|
|
25
|
-
* Auto-detects the script kind from the extension:
|
|
26
|
-
* - `.move` source → `--script-path` (CLI compiles inline)
|
|
27
|
-
* - `.mv` compiled bytecode → `--compiled-script-path`
|
|
28
|
-
*
|
|
29
|
-
* Reuses Publisher's security model via the shared `movementProfile`
|
|
30
|
-
* helpers: per-invocation temp key file (0o600), SIGINT-safe sync
|
|
31
|
-
* cleanup, `--private-key-file` auth (key never appears in `ps`
|
|
32
|
-
* output or in the user's `~/.aptos/config.yaml`).
|
|
33
|
-
*
|
|
34
|
-
* Returns {@link MoveScriptResult}. `txHash` is guaranteed; `success`
|
|
35
|
-
* and `vmStatus` are best-effort parsed from the CLI's Result JSON.
|
|
36
|
-
*
|
|
37
|
-
* @internal — called from `Harness.runMoveScript`.
|
|
38
|
-
*/
|
|
39
|
-
export async function runMoveScript(
|
|
40
|
-
runtime: MovehatRuntime,
|
|
41
|
-
options: RunMoveScriptOptions
|
|
42
|
-
): Promise<MoveScriptResult> {
|
|
43
|
-
const config = runtime.config;
|
|
44
|
-
const account = runtime.account;
|
|
45
|
-
|
|
46
|
-
// Synchronous validation before any CLI call.
|
|
47
|
-
if (!options.scriptPath || typeof options.scriptPath !== "string") {
|
|
48
|
-
throw new Error(
|
|
49
|
-
"Harness.runMoveScript requires options.scriptPath (string path to .move or .mv)."
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
const ext = extname(options.scriptPath).toLowerCase();
|
|
53
|
-
let scriptFlag: "--script-path" | "--compiled-script-path";
|
|
54
|
-
if (ext === ".move") {
|
|
55
|
-
scriptFlag = "--script-path";
|
|
56
|
-
} else if (ext === ".mv") {
|
|
57
|
-
scriptFlag = "--compiled-script-path";
|
|
58
|
-
} else {
|
|
59
|
-
throw new Error(
|
|
60
|
-
`Harness.runMoveScript: unsupported script extension '${ext || "<none>"}'. ` +
|
|
61
|
-
`Expected '.move' (source — CLI auto-compiles) or '.mv' (pre-compiled bytecode).`
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
if (!existsSync(options.scriptPath)) {
|
|
65
|
-
throw new Error(
|
|
66
|
-
`Harness.runMoveScript: script not found at '${options.scriptPath}'.`
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const safeScriptPath = validatePathSafety(options.scriptPath, "script path");
|
|
71
|
-
|
|
72
|
-
logger.step(
|
|
73
|
-
`Running Move script '${options.scriptPath}' on ${config.network}...`
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
try {
|
|
77
|
-
const deployerAddress = account.accountAddress.toString();
|
|
78
|
-
|
|
79
|
-
// Format the private key into AIP-80 shape before writing to the
|
|
80
|
-
// temp key file. `formatPrivateKey` is idempotent for already-
|
|
81
|
-
// prefixed inputs.
|
|
82
|
-
const formattedPrivateKey = PrivateKey.formatPrivateKey(
|
|
83
|
-
config.privateKey,
|
|
84
|
-
PrivateKeyVariants.Ed25519,
|
|
85
|
-
);
|
|
86
|
-
|
|
87
|
-
// Pass the private key via a 0o600 temp file (--private-key-file)
|
|
88
|
-
// and the on-chain address via --sender-account. Avoids the CLI's
|
|
89
|
-
// profile-yaml lookup chain entirely (no CWD / HOME / .aptos /
|
|
90
|
-
// .movement dance, no CLI-variant dependency).
|
|
91
|
-
const keyFilePath = writeTempKeyFile(formattedPrivateKey);
|
|
92
|
-
|
|
93
|
-
// SIGINT-safe sync cleanup BEFORE the CLI call so the private key
|
|
94
|
-
// never persists on disk after an abnormal exit. The signal-handler
|
|
95
|
-
// path uses the best-effort variant because the event loop is dead
|
|
96
|
-
// and we cannot logger.warning.
|
|
97
|
-
ensureSignalHandler();
|
|
98
|
-
const syncCleanup = () => removeKeyFileSyncBestEffort(keyFilePath);
|
|
99
|
-
cleanupCallbacks.add(syncCleanup);
|
|
100
|
-
|
|
101
|
-
let scriptOut = "";
|
|
102
|
-
try {
|
|
103
|
-
const typeArgsFragment: string[] =
|
|
104
|
-
options.typeArgs && options.typeArgs.length > 0
|
|
105
|
-
? ["--type-args", ...options.typeArgs]
|
|
106
|
-
: [];
|
|
107
|
-
const argsFragment: string[] =
|
|
108
|
-
options.args && options.args.length > 0
|
|
109
|
-
? ["--args", ...options.args]
|
|
110
|
-
: [];
|
|
111
|
-
|
|
112
|
-
const result = await runCli(
|
|
113
|
-
{
|
|
114
|
-
command: "movement",
|
|
115
|
-
args: [
|
|
116
|
-
"move",
|
|
117
|
-
"run-script",
|
|
118
|
-
"--private-key-file",
|
|
119
|
-
keyFilePath,
|
|
120
|
-
"--sender-account",
|
|
121
|
-
deployerAddress,
|
|
122
|
-
"--url",
|
|
123
|
-
config.rpc,
|
|
124
|
-
"--assume-yes",
|
|
125
|
-
scriptFlag,
|
|
126
|
-
safeScriptPath,
|
|
127
|
-
...typeArgsFragment,
|
|
128
|
-
...argsFragment,
|
|
129
|
-
],
|
|
130
|
-
timeoutMs: 120000,
|
|
131
|
-
},
|
|
132
|
-
{ adapter: options.adapter }
|
|
133
|
-
);
|
|
134
|
-
scriptOut = result.stdout;
|
|
135
|
-
// Both streams gated behind isVerbose(); Movement CLI uses
|
|
136
|
-
// stderr for progress messages too. Real failures throw via
|
|
137
|
-
// CliExecutionError and are surfaced from the catch below.
|
|
138
|
-
if (isVerbose() && result.stdout) logger.info(result.stdout.trim(), 2);
|
|
139
|
-
if (isVerbose() && result.stderr) logger.info(result.stderr.trim(), 2);
|
|
140
|
-
} finally {
|
|
141
|
-
// Observable cleanup — emit a warning if the unlink failed and
|
|
142
|
-
// the file is still on disk (private key would persist silently
|
|
143
|
-
// otherwise).
|
|
144
|
-
const cleanupErr = removeKeyFile(keyFilePath);
|
|
145
|
-
if (cleanupErr) {
|
|
146
|
-
logger.warning(
|
|
147
|
-
`Failed to remove temp key file '${keyFilePath}': ${cleanupErr.message}. ` +
|
|
148
|
-
`The file has mode 0o600 but should be removed manually: rm ${keyFilePath}`
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
cleanupCallbacks.delete(syncCleanup);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
const txHash = parseTxHash(scriptOut);
|
|
155
|
-
if (!txHash) {
|
|
156
|
-
throw new Error(
|
|
157
|
-
`Could not parse transaction hash from 'move run-script' output. ` +
|
|
158
|
-
`Captured stdout:\n${scriptOut.slice(0, 1000)}`
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
const success = parseSuccess(scriptOut);
|
|
163
|
-
const vmStatus = parseVmStatus(scriptOut);
|
|
164
|
-
|
|
165
|
-
logger.success(`Move script executed (tx ${txHash}).`);
|
|
166
|
-
|
|
167
|
-
const out: MoveScriptResult = { txHash };
|
|
168
|
-
if (success !== undefined) out.success = success;
|
|
169
|
-
if (vmStatus !== undefined) out.vmStatus = vmStatus;
|
|
170
|
-
return out;
|
|
171
|
-
} catch (error) {
|
|
172
|
-
if (error instanceof CliExecutionError) {
|
|
173
|
-
if (error.stdoutPreview) logger.info(error.stdoutPreview, 2);
|
|
174
|
-
logger.error(`Failed to run Move script: ${error.message}\n${error.stderr}`);
|
|
175
|
-
} else {
|
|
176
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
177
|
-
logger.error(`Failed to run Move script: ${err.message}`);
|
|
178
|
-
}
|
|
179
|
-
throw error;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Best-effort parse of the `"success": true|false` field from
|
|
185
|
-
* Movement CLI's Result JSON block. Returns `undefined` on no match.
|
|
186
|
-
*/
|
|
187
|
-
function parseSuccess(stdout: string): boolean | undefined {
|
|
188
|
-
const m = stdout.match(/"success"\s*:\s*(true|false)/);
|
|
189
|
-
if (!m) return undefined;
|
|
190
|
-
return m[1] === "true";
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Best-effort parse of the `"vm_status"` string. Returns `undefined`
|
|
195
|
-
* on no match.
|
|
196
|
-
*/
|
|
197
|
-
function parseVmStatus(stdout: string): string | undefined {
|
|
198
|
-
const m = stdout.match(/"vm_status"\s*:\s*"([^"]*)"/);
|
|
199
|
-
return m?.[1];
|
|
200
|
-
}
|
package/src/harness/view.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { MoveFunctionId } from "@aptos-labs/ts-sdk";
|
|
2
|
-
import type { MovehatRuntime } from "../types/runtime.js";
|
|
3
|
-
import type { RunViewFunctionOptions } from "../types/harness.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Execute a Move view function via the Aptos SDK (no CLI invocation).
|
|
7
|
-
*
|
|
8
|
-
* Returns the SDK's raw `unknown[]` — the Move boundary may return a
|
|
9
|
-
* tuple of any arity. Callers destructure:
|
|
10
|
-
*
|
|
11
|
-
* ```ts
|
|
12
|
-
* const [count] = await harness.runViewFunction({
|
|
13
|
-
* function: "0xCAFE::counter::get",
|
|
14
|
-
* functionArguments: ["0xdeployer"],
|
|
15
|
-
* });
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* Works on all 3 harness modes (createLocal, createFork, createLive) —
|
|
19
|
-
* view functions read on-chain state without writing.
|
|
20
|
-
*
|
|
21
|
-
* @internal — called from `Harness.runViewFunction`.
|
|
22
|
-
*/
|
|
23
|
-
export async function runViewFunction(
|
|
24
|
-
runtime: MovehatRuntime,
|
|
25
|
-
options: RunViewFunctionOptions
|
|
26
|
-
): Promise<unknown[]> {
|
|
27
|
-
return runtime.aptos.view({
|
|
28
|
-
payload: {
|
|
29
|
-
function: options.function as MoveFunctionId,
|
|
30
|
-
typeArguments: options.typeArguments ?? [],
|
|
31
|
-
functionArguments: (options.functionArguments ?? []) as never[],
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
}
|