46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
const { existsSync } = require('fs');
|
|
const path = require('path');
|
|
const { writeFile } = require('./file');
|
|
|
|
const getProxyFilePath = (network) => {
|
|
return path.resolve(__dirname, `../../deployments/${network}/proxy.json`);
|
|
};
|
|
|
|
module.exports.proxyStore = async (contract, proxyAddress, network) => {
|
|
const filePath = getProxyFilePath(network);
|
|
|
|
const file = existsSync(filePath) ? require(filePath) : {};
|
|
const newRecord = {
|
|
address: proxyAddress,
|
|
timestamp: new Date().toLocaleString('en-US'),
|
|
};
|
|
if (file[contract]) {
|
|
file[contract].unshift(newRecord);
|
|
} else {
|
|
file[contract] = [newRecord];
|
|
}
|
|
|
|
try {
|
|
console.log('Writing proxy file', filePath);
|
|
await writeFile(filePath, JSON.stringify(file, null, 2));
|
|
} catch (err) {
|
|
throw `Could not write file: ${err}`;
|
|
}
|
|
};
|
|
|
|
module.exports.getProxyFilePath = getProxyFilePath;
|
|
|
|
module.exports.getProxyAddress = (contract, network) => {
|
|
const filePath = getProxyFilePath(network);
|
|
|
|
return new Promise((resolve) => {
|
|
try {
|
|
const proxyList = require(filePath)[contract];
|
|
const lastItem = proxyList[0];
|
|
resolve(lastItem.address);
|
|
} catch (err) {
|
|
resolve();
|
|
}
|
|
});
|
|
};
|