55 lines
1.9 KiB
TypeScript
55 lines
1.9 KiB
TypeScript
/* eslint-disable */
|
|
import { LoggerFactory, SmartWeaveNodeFactory } from '@smartweave';
|
|
import Arweave from 'arweave';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import { readContract } from 'smartweave';
|
|
|
|
async function main() {
|
|
const arweave = Arweave.init({
|
|
host: 'arweave.net', // Hostname or IP address for a Arweave host
|
|
port: 443, // Port
|
|
protocol: 'https', // Network protocol http or https
|
|
timeout: 60000, // Network request timeouts in milliseconds
|
|
logging: false // Enable network request logging
|
|
});
|
|
const logger = LoggerFactory.INST.create(__filename);
|
|
const smartWeave = SmartWeaveNodeFactory.memCached(arweave);
|
|
|
|
const contractTxId = 'SJ3l7474UHh3Dw6dWVT1bzsJ-8JvOewtGoDdOecWIZo';
|
|
// Kyve:
|
|
// C_1uo08qRuQAeDi9Y1I8fkaWYUC9IWkOrKDNe9EphJo
|
|
// OFD4GqQcqp-Y_Iqh8DN_0s3a_68oMvvnekeOEu_a45I
|
|
// 8cq1wbjWHNiPg7GwYpoDT2m9HX99LY7tklRQWfh1L6c
|
|
|
|
const resultDiffs = [];
|
|
|
|
try {
|
|
logger.info('readContract');
|
|
const { state, validity } = await readContract(arweave, contractTxId, undefined, true);
|
|
logger.debug('readContract validity', validity);
|
|
const resultString = JSON.stringify(state);
|
|
|
|
logger.info('readState');
|
|
const result2 = await smartWeave.contract(contractTxId).readState();
|
|
logger.debug('readState validity', result2.validity);
|
|
const result2String = JSON.stringify(result2.state);
|
|
|
|
if (resultString.localeCompare(result2String) !== 0) {
|
|
console.error('\n\n ====== States differ ======\n\n');
|
|
resultDiffs.push(contractTxId);
|
|
const targetPath = path.join(__dirname, 'diffs', contractTxId);
|
|
if (!fs.existsSync(targetPath)) {
|
|
fs.mkdirSync(targetPath);
|
|
}
|
|
fs.writeFileSync(path.join(targetPath, 'new.json'), result2String);
|
|
fs.writeFileSync(path.join(targetPath, 'old.json'), resultString);
|
|
}
|
|
} catch (e) {
|
|
logger.error(e);
|
|
logger.info('skipping ', contractTxId);
|
|
}
|
|
}
|
|
|
|
main();
|