The exporter
Plain Node scripts that run your tests and write luora-data.json.
luora-export.mjs runs forge build, forge test --json -vvvv and one forge test --debug --dump per unit test, decodes the frames with your ABIs and writes luora-data.json. It needs forge on PATH and Node 20+, and nothing to install.
Commands
node luora-export.mjs # all tests node luora-export.mjs --mt test_deposit # one test node luora-export.mjs --mc VaultTest # one test contract node luora-export.mjs --chain base-sepolia # on a fork of Base Sepolia node luora-export.mjs --forks all # the local run plus one per testnet LUORA_ATLAS=MyVault node luora-export.mjs # the contract the atlas maps
The scripts
| File | Does |
|---|---|
| luora-export.mjs | Entry point: build, test, trace, write the file |
| luora-lib.mjs | ABI decoding, keccak, source maps |
| luora-atlas.mjs | The contract map from the AST and storage layout |
| luora-findings.mjs | Slither and Aderyn reports, merged |
| luora-coverage.mjs | forge coverage mapped onto the atlas |
| luora-chains.mjs | The six testnets for --chain and --forks |
| luora-bridge.mjs | Optional: lets the hosted app run the exporter (bridge) |
If the atlas or coverage step fails, the export still writes the traces and prints luora: atlas skipped or luora: coverage skipped with the reason.