mirror of
https://github.com/alexgo-io/DefiLlama-Adapters.git
synced 2026-01-12 22:43:12 +08:00
66 lines
1.5 KiB
JavaScript
66 lines
1.5 KiB
JavaScript
const sdk = require('@defillama/sdk')
|
|
const addressBook = require('../../projects/helper/bitcoin-book/index');
|
|
const { getEnv } = require('../../projects/helper/env');
|
|
const Bucket = "tvl-adapter-cache";
|
|
|
|
console.log('project count: ', Object.keys(addressBook).length);
|
|
const addressProjectMap = {}
|
|
|
|
const projectData = {}
|
|
|
|
async function run() {
|
|
|
|
await Promise.all(Object.keys(addressBook).map(async project => {
|
|
|
|
try {
|
|
|
|
|
|
let addresses = addressBook[project];
|
|
if (!Array.isArray(addresses)) addresses = await addresses()
|
|
|
|
|
|
if (getEnv('STORE_IN_R2')) {
|
|
projectData[project] = addresses
|
|
return;
|
|
}
|
|
|
|
|
|
for (let address of addresses) {
|
|
if (addressProjectMap[address]) {
|
|
addressProjectMap[address].push(project);
|
|
} else {
|
|
addressProjectMap[address] = [project];
|
|
}
|
|
}
|
|
|
|
|
|
} catch (e) {
|
|
console.error(`Error in ${project}: ${e}`)
|
|
}
|
|
}))
|
|
|
|
|
|
|
|
|
|
if (getEnv('STORE_IN_R2')) {
|
|
try {
|
|
await sdk.cache.writeCache(`${Bucket}/bitcoin-addresses.json`, projectData)
|
|
console.log('data written to s3 bucket');
|
|
} catch (e) {
|
|
sdk.log('failed to write data to s3 bucket: ')
|
|
sdk.log(e)
|
|
}
|
|
} else {
|
|
|
|
const duplicates = {}
|
|
for (const [address, projects] of Object.entries(addressProjectMap)) {
|
|
if (projects.length > 1) {
|
|
duplicates[address] = projects.join(', ');
|
|
}
|
|
}
|
|
|
|
console.table(Object.entries(duplicates));
|
|
}
|
|
}
|
|
|
|
run().catch(console.error).then(() => process.exit(0)); |