Improve initialization

This commit is contained in:
Râu Cao 2022-11-02 13:27:55 +01:00
parent c21512fa0b
commit 9dffb15f45
Signed by: raucao
GPG Key ID: 15E65F399D084BA9

View File

@ -39,44 +39,45 @@ const ipfsConfig = {
debug(`IPFS node:`, ipfsConfig);
(async () => {
try {
const kredits = await Kredits.for(
{ rpcUrl: argv.rpcUrl },
{ ipfsConfig: ipfsConfig }
).init();
// Check the connection to the IPFS client
// TODO redesign IPFS wrapper API and do not use an internal attribute
const ipfsApi = kredits.ipfs._ipfsAPI;
await ipfsApi.id();
debug(`Connecting to known IPFS node ${argv.bootstrapNode}`);
await ipfsApi.swarm.connect(argv.bootstrapNode);
const ipfsPinner = new IpfsPinner(kredits, {
progress: argv.progress
});
await ipfsPinner.pinAll().then(cids => {
console.log(`\nSuccessfully pinned ${cids.length} documents`)
});
if (argv.watch) {
console.log('\nWatching contract events for new documents...');
ipfsPinner.watch(pin => {
console.log('Pinned a new document:', pin[0]["hash"]);
});
} else {
process.exit(0);
}
// TODO Add new deployment/DAO/org ID or all contract proxy addresses
// console.log(`Subscribed to DAO: ${kredits.Kernel.contract.address}`);
} catch(e) {
console.log('Failed to start');
console.log(e);
const kredits = await Kredits.for(
{ rpcUrl: argv.rpcUrl },
{ ipfsConfig: ipfsConfig }
).init().catch(e => {
console.log('Failed to initialize Kredits:');
console.log(e.message);
process.exit(1);
});
// TODO redesign IPFS wrapper API and do not use an internal attribute
const ipfsApi = kredits.ipfs._ipfsAPI;
await ipfsApi.id().catch(e => {
console.log('Failed to initialize IPFS:');
console.log(e.message);
process.exit(1);
});
debug(`Connecting to known IPFS node ${argv.bootstrapNode}`);
await ipfsApi.swarm.connect(argv.bootstrapNode);
const ipfsPinner = new IpfsPinner(kredits, {
progress: argv.progress
});
await ipfsPinner.pinAll().then(cids => {
console.log(`\nSuccessfully pinned ${cids.length} documents`)
});
if (argv.watch) {
console.log('\nWatching contract events for new documents...');
ipfsPinner.watch(pin => {
console.log('Pinned a new document:', pin[0]["hash"]);
});
} else {
process.exit(0);
}
// TODO Add new deployment/DAO/org ID or all contract proxy addresses
// console.log(`Subscribed to DAO: ${kredits.Kernel.contract.address}`);
})();