fuel-core
Version:
Essential javascript architecture for the Fuel side chain
66 lines (55 loc) • 2 kB
JavaScript
const MysqlDB = require('../dbs/MysqlDB');
const env = require('./process');
const { FuelDBKeys } = require('../interfaces/interfaces');
const { decodeUTXORLP } = require('../structs/structs');
const { utils } = require('ethers');
const normalize = (...args) => args[0]
+ String(args[1]).toLowerCase().slice(2)
+ (args[2] !== undefined ? String(args[2]).toLowerCase().slice(2) : '');
// Clear all Databases
async function setupSwap() {
try {
const db = new MysqlDB({ // for storing remotly for lambda processing
host: env.mysql_host,
port: parseInt(env.mysql_port, 10),
database: env.mysql_database,
user: env.mysql_user,
password: env.mysql_password,
table: 'keyvalues',
});
const reserveAUTXO = '0x843cbe031033ef8382f1687027b62f5429a287ee89fbf99ab6d2241ab60a83ac';
const reserveBUTXO = '0x743ebbde2b6410d241f631ff20f7ff54ddbb1d96b4c910fae0b97ef96c5c0709';
let tokenAReserve = await db
.get(normalize(FuelDBKeys.mempool, FuelDBKeys.UTXO, reserveAUTXO));
tokenAReserve = tokenAReserve || await db
.get(normalize(FuelDBKeys.UTXO, reserveAUTXO));
let tokenBReserve = await db
.get(normalize(FuelDBKeys.mempool, FuelDBKeys.UTXO, reserveBUTXO));
tokenBReserve = tokenBReserve || await db
.get(normalize(FuelDBKeys.UTXO, reserveBUTXO));
if (!tokenAReserve || !tokenBReserve) {
throw new Error('Reserve inputs not found!');
}
// setup reserves
const reserves = {
a: decodeUTXORLP(tokenAReserve).proof,
b: decodeUTXORLP(tokenBReserve).proof,
};
// add it to the database
await db.put(FuelDBKeys.swap, utils.RLP.encode([
reserves.a.amount,
reserves.b.amount,
reserveAUTXO,
reserveBUTXO,
reserves.a._ownerAddress,
]));
return true;
} catch(error) {
console.error('Error while resetting production databases..');
console.log(error);
}
}
// Clear execution
setupSwap()
.then(console.log)
.catch(console.log);