- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault. - Token-aggregation service routes, planner, chain config, relay env templates. - Config snapshots and multi-chain deployment markdown updates. - gitignore services/btc-intake/dist/ (tsc output); do not track dist. Run forge build && forge test before deploy (large solc graph). Made-with: Cursor
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import path from 'path';
|
|
import { existsSync } from 'fs';
|
|
import * as dotenv from 'dotenv';
|
|
import { AggregatorRouteMatrixGenerator } from '../src/services/aggregator-route-matrix-generator';
|
|
import { closeDatabasePool } from '../src/database/client';
|
|
|
|
const rootEnvCandidates = [
|
|
path.resolve(__dirname, '../../.env'),
|
|
path.resolve(__dirname, '../../../.env'),
|
|
];
|
|
|
|
for (const candidate of rootEnvCandidates) {
|
|
if (existsSync(candidate)) {
|
|
dotenv.config({ path: candidate });
|
|
break;
|
|
}
|
|
}
|
|
dotenv.config();
|
|
|
|
async function main() {
|
|
const outputPath = process.argv[2]
|
|
? path.resolve(process.cwd(), process.argv[2])
|
|
: path.resolve(__dirname, '../../../../config/aggregator-route-matrix.json');
|
|
|
|
const generator = new AggregatorRouteMatrixGenerator();
|
|
try {
|
|
const writtenPath = await generator.writeToFile(outputPath, 138);
|
|
process.stdout.write(`${writtenPath}\n`);
|
|
} finally {
|
|
await closeDatabasePool();
|
|
}
|
|
}
|
|
|
|
main()
|
|
.then(() => {
|
|
process.exit(0);
|
|
})
|
|
.catch((error) => {
|
|
process.stderr.write(`${error instanceof Error ? error.stack || error.message : String(error)}\n`);
|
|
process.exit(1);
|
|
});
|