Shared local development environment for VeChain projects.
Brings up one thor-solo node, one mongo, one vechain-indexer, and one block-explorer that multiple projects can share. Each project deploys its own contracts and registers their addresses with the shared stack; the indexer and explorer pick up the union.
A project joins the stack by providing two things:
export default {
project: 'my-project',
profiles: ['safe', 'accounts', 'transactions'],
deploy: 'yarn contracts:deploy:solo',
dev: 'yarn frontend:dev',
// optional:
// overlay: 'docker/overlay.yaml',
}After deploying contracts to thor-solo, the deploy script calls:
import { registerAddresses } from '@vechain/dev-stack'
await registerAddresses({
project: 'my-project',
profiles: ['safe', 'accounts', 'transactions'],
addresses: {
SAFE_EMITTER_CONTRACT: '0x...',
SAFE_PROXY_FACTORY_CONTRACT: '0x...',
},
})This writes ~/.vechain-dev/config/my-project.json.
vechain-dev up # ensure shared infra, run deploy, sync, restart indexer/explorer, exec dev
vechain-dev down # stop only this project's overlay services; shared infra stays up
vechain-dev reset # nuke all shared infra, volumes, and ~/.vechain-dev/Project package.json:
"scripts": {
"dev": "vechain-dev up",
"dev:down": "vechain-dev down",
"dev:reset": "vechain-dev reset"
}| service | URL |
|---|---|
| thor-solo | http://localhost:8669 |
| indexer-api | http://localhost:8089 |
| block-explorer | http://localhost:8088 |
| mongo | mongodb://localhost:27017 |