Skip to content

dolomite-exchange/liquidity-mining-bot

Repository files navigation

Dolomite Logo

Liquidity Mining Bot

Bot to automatically perform level update requests and perform oARB vesting detonations for Dolomite's liquidity mining program.s

Usage

Docker

Requires a running docker engine.

docker run \
  -e ACCOUNT_WALLET_ADDRESS=0x2c7536E3605D9C16a7a3D7b1898e529396a65c23 \
  -e ACCOUNT_WALLET_PRIVATE_KEY=0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318 \
  -e ETHEREUM_NODE_URL=https://matic-mumbai.chainstacklabs.com \
  -e NETWORK_ID=80001 \
  -e SUBGRAPH_URL=https://api.thegraph.com/subgraphs/name/dolomite-exchange/dolomite-v2-arbitrum \
  dolomiteprotocol/liquidity-mining

Overview

This service will automatically fulfill level update requests, perform detonations, and more for Dolomite's liquidity mining program.

Configuration

Environment Variables

ENV Variable Description
ACCOUNT_POLL_INTERVAL_MS How frequently to poll for account positions that need detonation. Defaults to 15000 milliseconds.
ACCOUNT_WALLET_ADDRESS REQUIRED Ethereum address of the Dolomite account owner that will do the liquidations.
ACCOUNT_WALLET_PRIVATE_KEY REQUIRED Ethereum private key the Dolomite account owner that will do the liquidations. Make sure that "0x" is at the start of it (MetaMask exports private keys without it).
BLOCK_POLL_INTERVAL_MS How frequently to poll for the latest block number. Defaults to 5000 milliseconds.
BLOCK_STORE_ENABLED True to enable updating the most recent block from the subgraph. Defaults to true.
DETONATIONS_ENABLED True to enable detonations. Defaults to false
DETONATIONS_KEY_EXPIRATION_SECONDS How long a detonation remains in the cache, preventing it from being resubmitted. Defaults to 30000 (30 seconds)
DETONATIONS_POLL_INTERVAL_MS How frequently to poll for detonations. Defaults to 15000 milliseconds.
ETHEREUM_NODE_URL REQUIRED The URL of the Ethereum node to use (e.g. an Alchemy or Infura endpoint).
IGNORED_MARKETS Any position containing these markets will be ignored. Defaults to nothing (an empty list). An example list is 1,2,4 (a string of market IDs separated by commas)
GAS_PRICE_ADDITION How much to add to any given gas price. Defaults to 0.
GAS_PRICE_MULTIPLIER How much to multiply the fast gas price by when sending transactions. Defaults to 1 but it is recommended users set this variable to something higher.
GAS_PRICE_POLL_INTERVAL_MS How frequently to update the gas price. Defaults to 15000 milliseconds.
GAS_PRICE_UPDATER_ENABLED True to enable updating the latest gas price. Defaults to true.
INITIAL_GAS_PRICE_WEI The initial gas price used by the bot until the first successful poll occurs. Defaults to 10000000000 wei (10 gwei).
LEVEL_REQUESTS_ENABLED True to enable level request handling. Defaults to false
LEVEL_REQUESTS_KEY_EXPIRATION_SECONDS How long a level request remains in the cache, preventing it from being resubmitted. Defaults to 30000 (30 seconds)
LEVEL_REQUESTS_POLL_INTERVAL_MS How frequently to poll for level update requests. Defaults to 3000 milliseconds.
MINERALS_ENABLED True to calculate mineral production every hour. Defaults to false
ODOLO_AGGREGATOR_ENABLED True to aggregate oDOLO data and post it onchain. Defaults to false. This can only run on Berachain
ODOLO_ENABLED True to calculate per-network oDOLO data and save it for aggregation. Defaults to false. This can only run on networks with oDOLO emissions.
NETWORK_ID REQUIRED Ethereum Network ID. This must match the chain ID sent back from ETHEREUM_NODE_URL.
PENDLE_MINERALS_ENABLED True to calculate Pendle mineral production every hour. Defaults to false
SEQUENTIAL_TRANSACTION_DELAY_MS The time delay that passes between sending subsequent transactions. Defaults to 1000 (1 second).
SUBGRAPH_URL REQUIRED The URL of the subgraph instance that contains margin account information. For Arbitrum One, the default URL is https://api.thegraph.com/subgraphs/name/dolomite-exchange/dolomite-v2-arbitrum

About

Bot for running actions for the oARB Liquidity Mining System

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages