feat: bridges, PMM, flash workflow, token-aggregation, and deployment docs
- 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
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
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);
|
||||
});
|
||||
Reference in New Issue
Block a user