Merge pull request #30 from TrooperCrypto/master

CLIENT_ID is handled by backend now
This commit is contained in:
Trooper
2022-03-01 11:39:57 +01:00
committed by GitHub
2 changed files with 12 additions and 12 deletions

View File

@@ -91,11 +91,12 @@ Example:
###### Chainlink
With chainlink you have access to price oracles via blockchain. The requests are read calls to a smart contract. The public ethers provider might be too slow for a higher number of pairs or at times of high demand. Therefore, it might be needed to have access to an Infura account (100000 Requests/Day for free). There you can get an endpoint for your market maker (like https://mainnet.infura.io/v3/...), You can add this with the `infuraUrl` field in `config.json`, like this:
```
....
"infuraUrl": "https://mainnet.infura.io/v3/xxxxxxxx",
"zigzagChainId": 1,
"zigzagWsUrl": "wss://zigzag-exchange.herokuapp.com",
....
"ETH-USDC": {
"infuraUrl": "https://mainnet.infura.io/v3/xxxxxxxx",
"zigzagChainId": 1,
"zigzagWsUrl": "wss://zigzag-exchange.herokuapp.com",
....
}
```
You can get the available market contracts [here.](https://docs.chain.link/docs/ethereum-addresses/)Add those to you pair config as "chainlink:<address>", like this:
```
@@ -114,6 +115,7 @@ With constant mode, you can set a fixed price to market make. The bot will not c
"side": "d",
"priceFeedPrimary": "constant:1",
"priceFeedSecondary": null,
....
}
```

View File

@@ -488,9 +488,6 @@ async function setupPriceFeeds() {
for (let market in MM_CONFIG.pairs) {
const pairConfig = MM_CONFIG.pairs[market];
if(!pairConfig.active) { continue; }
const primaryPriceFeed = pairConfig.priceFeedPrimary;
const secondaryPriceFeed = pairConfig.priceFeedSecondary;
// This is needed to make the price feed backwards compatalbe with old constant mode:
// "DYDX-USDC": {
// "mode": "constant",
@@ -499,6 +496,8 @@ async function setupPriceFeeds() {
const initPrice = pairConfig.initPrice;
pairConfig['priceFeedPrimary'] = "constant:" + initPrice.toString();
}
const primaryPriceFeed = pairConfig.priceFeedPrimary;
const secondaryPriceFeed = pairConfig.priceFeedSecondary;
[primaryPriceFeed, secondaryPriceFeed].forEach(priceFeed => {
if(!priceFeed) { return; }
const [provider, id] = priceFeed.split(':');
@@ -518,7 +517,7 @@ async function setupPriceFeeds() {
}
});
}
if(chainlinkSetup.length) await chainlinkSetup(chainlink);
if(chainlink.length) await chainlinkSetup(chainlink);
if(cryptowatch.length) await cryptowatchWsSetup(cryptowatch);
console.log(PRICE_FEEDS);
@@ -607,7 +606,6 @@ async function chainlinkUpdate() {
}));
}
const CLIENT_ID = (Math.random() * 100000).toString(16);
function indicateLiquidity (pairs = MM_CONFIG.pairs) {
for(const marketId in pairs) {
const mmConfig = pairs[marketId];
@@ -657,7 +655,7 @@ function indicateLiquidity (pairs = MM_CONFIG.pairs) {
liquidity.push(["s", sellPrice, maxSellSize / splits, expires]);
}
}
const msg = { op: "indicateliq2", args: [CHAIN_ID, marketId, liquidity, CLIENT_ID] };
const msg = { op: "indicateliq2", args: [CHAIN_ID, marketId, liquidity] };
try {
zigzagws.send(JSON.stringify(msg));
} catch (e) {
@@ -668,7 +666,7 @@ function indicateLiquidity (pairs = MM_CONFIG.pairs) {
}
function cancelLiquidity (chainId, marketId) {
const msg = { op: "indicateliq2", args: [chainId, marketId, [], CLIENT_ID] };
const msg = { op: "indicateliq2", args: [chainId, marketId, []] };
try {
zigzagws.send(JSON.stringify(msg));
} catch (e) {