The GanacheProvider uses an in-memory Ethereum instance (via Ganache) which can be used for testing allowing free transactions and performing explicit operations against an account not normally possible on a real network.
/home/ricmoo> npm install @ethers-ext/provider-ganacheimport { GanacheProvider } from "@ethers-ext/provider-ganache";
// Create a new in-memory GanacheProvider
const provider = new GanacheProvider();
///////////////////
// Snapshots
const revert = await provider.snapshot();
// ... perform operations
// Revert back to the snapshot state
await revert();
///////////////////
// Account State
await provider.setAccount(addr, {
balance: 1000000000000000000n,
nonce: 5,
code: "0x00"
});
await provider.setStorageAt(addr, 123, data);When constructing a GanacheProvider, either the standard options normally passed to Ganache may be used or an existing Ganache instance created with the desired configuration.
Takes a snapshot of the current state and resolves to a function, that
when called will revert the Provider to the state at the time snapshot
was called.
Sets account state for address. The state can include any of the
properties balance, code or nonce.
Sets the storage for address at slot to value.
Mines a block.
MIT License.