$ npm install @ethereumjs/statemanager
TypeScript implementation of the Ethereum StateManager. |
---|
npm install @ethereumjs/statemanager
Note: this library was part of the @ethereumjs/vm package up till VM v5
.
The StateManager
provides high-level access and manipulation methods to and for the Ethereum state, thinking in terms of accounts or contract code rather then the storage operations of the underlying data structure (e.g. a Trie).
The library includes a TypeScript interface StateManager
to ensure a unified interface (e.g. when passed to the VM) as well as a concrete Trie-based implementation DefaultStateManager
.
import { Account, Address } from '@ethereumjs/util'
import { DefaultStateManager } from '@ethereumjs/statemanager'
const stateManager = new DefaultStateManager()
const address = new Address(Buffer.from('a94f5374fce5edbc8e2a8697c15331677e6ebf0b', 'hex'))
const account = new Account(BigInt(0), BigInt(1000))
await stateManager.checkpoint()
await stateManager.putAccount(address, account)
await stateManager.commit()
await stateManager.flush()
Generated TypeDoc API Documentation
Starting with v1 the usage of BN.js for big numbers has been removed from the library and replaced with the usage of the native JS BigInt data type (introduced in ES2020
).
Please note that number-related API signatures have changed along with this version update and the minimal build target has been updated to ES2020
.
Developer documentation - currently mainly with information on testing and debugging - can be found here.
See our organizational documentation for an introduction to EthereumJS
as well as information on current standards and best practices.
If you want to join for work or do improvements on the libraries have a look at our contribution guidelines.
© 2010 - cnpmjs.org x YWFE | Home | YWFE