Add CONFIRMATION_TIMEOUT env variable

This commit is contained in:
Riordan Panayides 2022-05-03 17:36:21 +01:00
parent c81f6afce3
commit 3594cc0d8d
2 changed files with 7 additions and 12 deletions

View File

@ -67,6 +67,7 @@ This mode never triggers advanced orders.
| `MIN_EQUITY` | `0` | Minimum account equity required to liquidate |
| `LIQUIDATABLE_FEED_WEBSOCKET_ADDRESS` | N/A | Websocket URL of the liquidatable-accounts-feed service, see above |
| `COMMITMENT_LEVEL` | `processed` | Commitment level for the connection |
| `CONFIRMATION_TIMEOUT` | `30000` | Milliseconds to wait for transaction confirmation |
You can add these variables to a `.env` file in the project root to load automatically on liquidator startup. For example:
```bash

View File

@ -22,12 +22,7 @@ import {
sleep,
ZERO_I80F48,
} from '@blockworks-foundation/mango-client';
import {
Commitment,
Connection,
Keypair,
PublicKey,
} from '@solana/web3.js';
import { Commitment, Connection, Keypair, PublicKey } from '@solana/web3.js';
import { Market, OpenOrders } from '@project-serum/serum';
import BN from 'bn.js';
import { Orderbook } from '@project-serum/serum/lib/market';
@ -67,10 +62,9 @@ const groupIds =
throw new Error(`Group ${groupName} not found`);
})();
// The Triton team recommends using the commitment level `confirmed` in order
// to avoid BlockhashNotFound errors. Adding a parameter.
const commitmentLevel = process.env.COMMITMENT_LEVEL || 'processed'
const commitmentLevel = process.env.COMMITMENT_LEVEL || 'processed';
// Target values to keep in spot, ordered the same as in mango client's ids.json
// Example:
@ -108,7 +102,9 @@ console.log(`Commitment level: ${commitmentLevel}`);
console.log(`Payer: ${payer.publicKey.toBase58()}`);
const rpcEndpoint = process.env.ENDPOINT_URL || config.cluster_urls[cluster];
const connection = new Connection(rpcEndpoint, commitmentLevel as Commitment);
const client = new MangoClient(connection, mangoProgramId);
const client = new MangoClient(connection, mangoProgramId, {
timeout: parseInt(process.env.CONFIRMATION_TIMEOUT || '30000'),
});
let mangoSubscriptionId = -1;
let dexSubscriptionId = -1;
@ -334,9 +330,7 @@ async function maybeLiquidateAccount(
console.log('Liquidated account', mangoAccountKeyString);
notify(`Liquidated account ${mangoAccountKeyString}`);
} catch (err: any) {
console.error(
`Failed to liquidate account ${mangoAccountKeyString}:`, err
);
console.error(`Failed to liquidate account ${mangoAccountKeyString}:`, err);
notify(`Failed to liquidate account ${mangoAccountKeyString}: ${err}`);
}