Building a client instance
SimulatorClientis the user entry point of the Tuner. It needs a
SimulationDataManagerto persist internal data supporting functionality of the simulator, while external data refer to state of some Uniswap v3 Core Pool on chain.
We provide an implementation of
SimulationDataManagerusing SQLite, so it's recommended to provide a file path locally to save the internal data(in memory by default), then you can recover a pool from a snapshot. If you are familiar with the interface, it's ok to replace it with a customed implementation, e.g. some database connected remotely.
// 1. Instantiate a SimulationDataManager
// this is for handling the internal data (snapshots, roadmaps, etc.)
let simulationDataManager: SimulationDataManager =
"Your file path to save the internal data"
let clientInstance: SimulatorClient = new SimulatorClient(
It's recommended to close the client when you finish with Tuner.