You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Harden the deployer tool and CLI against the issues raised in the #86
review. Each fix verified against current code and covered by tests.
* cli/logger: route `--json` pino logs to STDERR (fd 2) so STDOUT
carries only the single result object.
* cli/prompt: write the passphrase prompt + newline to STDERR, and
settle the promise on stdin `end`/`error` so non-interactive input
(closed/newline-less pipe) can no longer hang the CLI.
* config/schema: mark the file/module ref union members `.strict()`
so an ambiguous `{ file, module }` is rejected instead of silently
dropping a key.
* deployments: write the ledger atomically (temp file + rename) so a
crash mid-write can't truncate `*.json`.
* loaders/artifact: bind compiled assets to `dirname(entry)` rather
than a hardcoded `contract/`, fixing the top-level-`index.js` case.
* loaders/constructor-meta: allow an empty named-args object for a
no-arg constructor (resolves to `[]`); `reorderNamedArgs` still
rejects unexpected keys.
* loaders/contract-resolve: use `path.isAbsolute` instead of
`startsWith('/')` for OS-correct absolute-path detection.
* providers/network: drop `mainnet` from the allow-list while the
deployer is testnet/preview-only.
* providers/proof-server: reject partial-numeric and out-of-range
`PROOF_SERVER_PORT` values (full `\d+` match + 1..65535 bounds).
* wallet/handler: use `path.dirname`/`basename` instead of manual
`/` splitting so cache paths work on Windows.
* wallet/keystore: validate shape in `fromJSON` and throw `WalletError`
(not a raw `TypeError`) on malformed keystore JSON.
Refs: #86
0 commit comments