UNPKG

fuel-core

Version:

Essential javascript architecture for the Fuel side chain

66 lines (55 loc) 2 kB
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);