Skip to content

SpaceMonkeyForever/openbook-cranker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenBook crank script

OpenBook needs to be cranked to process orderbook events. The initial code was taken from the same crank script for openbook in mango-v3-client, so most credit goes to Mango team.

Install deps first:

yarn install

Run:

make sure to create a JSON file containing the keypair formatted as a byte array e.g. [1,3,4...]

ENDPOINT_URL=... WALLET_PATH=./path/to/wallet.json ./start-cranker.sh

Or run with KEYPAIR directly:

ENDPOINT_URL=... KEYPAIR=[1,3,4...] ./start-cranker.sh

to run in the background, pass "-d" or "--daemon"

Optional Environment Variables:

  CLUSTER              // Cluster to use. 'mainnet' or 'devnet'. Default is 
                       // mainnet.
  CONSUME_EVENTS_LIMIT // Max number of events to consume in each TX. Default is
                       // 19 events.
  CU_PRICE             // Minimum additional micro lamports for all 
                       // transactions. Default is 0. Raise this above 0 if
                       // you want all transactions to pay a priority fee for 
                       // every market.
  INTERVAL             // Sleep interval, in ms, between each loop. Default is 
                       // 1000 ms
  MARKETS_FILE         // Specify the full path to an alternate markets.json 
                       // file. Default is '../markets.json'. This option will
                       // let you run multiple instances with different 
                       // settings for the markets. e.g. bump with "high fees"
                       // or "medium fees" or other markets not included in the
                       // default markets.json file.
  MAX_TX_INSTRUCTIONS  // Max number of instructions for each transaction. 
                       // Default is 1.
  MAX_UNIQUE_ACCOUNTS  // Max number of unique accounts to process in each
                       // transaction. Default is 10.
  POLL_MARKETS         // If true, ignore the local markets.json file and crank
                       // the top markets, by volume, on openserum.com above a
                       // minimum threshold of 1000 (hard-coded). Default is 
                       // undefined (false).
  PRIORITY_CU_LIMIT    // Compute unit limit per instruction. Default is 50000.
  PRIORITY_CU_PRICE    // Additional micro lamports for PRIORITY_MARKETS & 
                       // PRIORITY_QUEUE_LIMIT. Default is 100000.
  PRIORITY_MARKETS     // Input to a comma separated list of market IDs that 
                       // receive fee bump. Transactions for the markets on this 
                       // list will include higher priority fees.
                       // e.g. PRIORITY_MARKETS=ID-1,ID-2,ID-3.
  PRIORITY_QUEUE_LIMIT // Force PRIORITY_CU_PRICE for transactions when the size 
                       // of the event queue exceeds this value. Default is 100. 
  PROGRAM_ID           // OpenBook program to use. Default for mainnet is
                       // srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX.

TODO:

  • Dynamic priority fee using getRecentPrioritizationFees
  • Dynamic frequency based on queue length

About

crank openbook markets to keep it running

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published