order placement doesnt crash
This commit is contained in:
6
cache.js
6
cache.js
@@ -30,6 +30,10 @@ export class CacheDict {
|
|||||||
async get(chain, key) {
|
async get(chain, key) {
|
||||||
return await redis.hGet(`${chain}|${this.series}`, key)
|
return await redis.hGet(`${chain}|${this.series}`, key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async contains(chain, key) {
|
||||||
|
return await redis.hExists(`${chain}|${this.series}`, key)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -52,6 +56,6 @@ async function latestBlock(chain) {
|
|||||||
return await blockCaches[chain].get()
|
return await blockCaches[chain].get()
|
||||||
}
|
}
|
||||||
|
|
||||||
export const vaults = new CacheSet('v')
|
export const vaults = new CacheDict('v')
|
||||||
export const vaultTokens = new CacheDict('vt')
|
export const vaultTokens = new CacheDict('vt')
|
||||||
export const prices = new CacheDict('p')
|
export const prices = new CacheDict('p')
|
||||||
|
|||||||
6
misc.js
6
misc.js
@@ -4,8 +4,9 @@ import {keccak256} from "ethers";
|
|||||||
|
|
||||||
export const readFile = (fileName) => util.promisify(fs.readFile)(fileName, 'utf8');
|
export const readFile = (fileName) => util.promisify(fs.readFile)(fileName, 'utf8');
|
||||||
|
|
||||||
const vaultCode = JSON.parse(fs.readFileSync('./contract/out/Vault.sol/Vault.json').toString())
|
const vaultCode = JSON.parse(fs.readFileSync('../contract/out/Vault.sol/Vault.json').toString())
|
||||||
export const VAULT_INIT_CODE_HASH = keccak256(vaultCode.bytecode.object)
|
export const VAULT_INIT_CODE_HASH = keccak256(vaultCode.bytecode.object)
|
||||||
|
console.log('VAULT_INIT_CODE_HASH', VAULT_INIT_CODE_HASH)
|
||||||
|
|
||||||
export const chainInfo = {}
|
export const chainInfo = {}
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ function _setChainInfo(c, k, v) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (const chain of _chains) {
|
for (const chain of _chains) {
|
||||||
const path = `contract/broadcast/Deploy.sol/${chain.id}/run-${process.env['DEXORDER_DEPLOYMENT_' + chain.id]}.json`;
|
const path = `../contract/broadcast/Deploy.sol/${chain.id}/run-${process.env['DEXORDER_DEPLOYMENT_' + chain.id]}.json`;
|
||||||
let deployment
|
let deployment
|
||||||
try {
|
try {
|
||||||
deployment = JSON.parse(fs.readFileSync(path, 'utf8')) //null synchronous is ok we only do this once on init
|
deployment = JSON.parse(fs.readFileSync(path, 'utf8')) //null synchronous is ok we only do this once on init
|
||||||
@@ -42,5 +43,6 @@ for (const chain of _chains) {
|
|||||||
throw Error(`No Factory deployment found for chainId ${chain.id} ${path}`)
|
throw Error(`No Factory deployment found for chainId ${chain.id} ${path}`)
|
||||||
if (chain.helper === undefined)
|
if (chain.helper === undefined)
|
||||||
throw Error(`No QueryHelper deployment found for chainId ${chain.id} ${path}`)
|
throw Error(`No QueryHelper deployment found for chainId ${chain.id} ${path}`)
|
||||||
|
console.log('Factory', chain.factory)
|
||||||
chainInfo[chain.id] = chain
|
chainInfo[chain.id] = chain
|
||||||
}
|
}
|
||||||
|
|||||||
9
vault.js
9
vault.js
@@ -24,6 +24,10 @@ export function vaultAddress(chainId, owner, num=0) {
|
|||||||
export async function loginAddress(socket, chainId, address) {
|
export async function loginAddress(socket, chainId, address) {
|
||||||
if( socket.user_room !== undefined)
|
if( socket.user_room !== undefined)
|
||||||
socket.leave(socket.user_room)
|
socket.leave(socket.user_room)
|
||||||
|
if( address === undefined ) {
|
||||||
|
socket.emit('vaults', [])
|
||||||
|
}
|
||||||
|
else {
|
||||||
socket.user_room = `${chainId}|${address}`
|
socket.user_room = `${chainId}|${address}`
|
||||||
socket.join(socket.user_room)
|
socket.join(socket.user_room)
|
||||||
const found = []
|
const found = []
|
||||||
@@ -35,11 +39,13 @@ export async function loginAddress(socket, chainId, address) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
socket.emit('vaults', found)
|
socket.emit('vaults', found)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function ensureVault(socket, chainId, owner, num) {
|
export async function ensureVault(socket, chainId, owner, num) {
|
||||||
const address = vaultAddress(chainId, owner, num)
|
const address = vaultAddress(chainId, owner, num)
|
||||||
|
console.log('ensureVault', chainId, owner, num, address)
|
||||||
if (!await vaults.contains(chainId,address)) {
|
if (!await vaults.contains(chainId,address)) {
|
||||||
try {
|
try {
|
||||||
await createVault(chainId, owner, num)
|
await createVault(chainId, owner, num)
|
||||||
@@ -53,6 +59,7 @@ export async function ensureVault(socket, chainId, owner, num) {
|
|||||||
|
|
||||||
|
|
||||||
async function createVault(chainId, owner, num) {
|
async function createVault(chainId, owner, num) {
|
||||||
|
console.log('createVault', chainId, owner, )
|
||||||
const signer = getSigner(chainId);
|
const signer = getSigner(chainId);
|
||||||
const deployer = new ethers.Contract(chainInfo[chainId].factory, factoryAbi, signer)
|
const deployer = new ethers.Contract(chainInfo[chainId].factory, factoryAbi, signer)
|
||||||
try {
|
try {
|
||||||
@@ -64,7 +71,7 @@ async function createVault(chainId, owner, num) {
|
|||||||
const vault = new ethers.Contract(addr, vaultAbi, getProvider(chainId))
|
const vault = new ethers.Contract(addr, vaultAbi, getProvider(chainId))
|
||||||
try {
|
try {
|
||||||
const ver = await vault.version()
|
const ver = await vault.version()
|
||||||
// console.log(`vault already deployed at ${addr} with version ${ver}`)
|
console.log(`vault already deployed at ${addr} with version ${ver}`)
|
||||||
}
|
}
|
||||||
catch (e2) {
|
catch (e2) {
|
||||||
console.error('could not deploy vault:',e)
|
console.error('could not deploy vault:',e)
|
||||||
|
|||||||
Reference in New Issue
Block a user