smart-contract api and embedded ethereum virtual machine
Project description
Simular
A Python smart-contract API with a fast (embedded) Ethereum Virtual Machine (EVM). Simular
creates a Python wrapper around production grade Rust based Ethereum APIs.
How is it different than Brownie, Ganache, Anvil?
- It's only an EVM, no blocks or mining
- No HTTP/JSON-RPC. You talk directly to the EVM (and it's fast)
- Full functionality: account transfers, contract interaction, etc...
The primary motivation for this work is to be able to model smart-contract interaction in an Agent Based Modeling environment like Mesa.
Features
EVM
: run a local version with an in-memory database, or fork db state from a remote node.Snapshot
: dump the current state of the EVM to json for future use in pre-populating EVM storageABI
: parse compiled Solidity json files or define a specific set of functions usinghuman-readable
notationContract
: high-level, user-friendy Python API
Build from source
- You need
Rust
andPython
, and optionallyMake
. We usehatch
for Python project management, but it's not required - Create a local Python virtual environment. Within that environment install Python dependencies
- Run
make build
orhatch run maturin develop
- See
simular/
for the main python api
Getting Started
See Simular Documentation for examples and API details.
Standing on the shoulders of giants...
Thanks to the following projects for making this work possible!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
simular_evm-0.2.3.tar.gz
(57.6 kB
view hashes)
Built Distributions
Close
Hashes for simular_evm-0.2.3-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36a6b62b48da2ebc61914a5a4a032c7609427a82a87d786d832c88ed345abdb0 |
|
MD5 | 1c784aff695956e00b9a740cd760cd47 |
|
BLAKE2b-256 | 57dfc81ec67560c355f1579f4c592ac1b65985b3090b3ce2aec881eae6492d05 |
Close
Hashes for simular_evm-0.2.3-cp312-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceb4e758f518fb700c9cdc455684e59937656d27e109a8d47af2c3105c8dc6ff |
|
MD5 | d57c875469a882a629a6196132407515 |
|
BLAKE2b-256 | 62a338944afff9f299772592b2be48415fca63f21da3f3242536a806867aec1d |
Close
Hashes for simular_evm-0.2.3-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 911dc91a28e04b6678e686c84c9fdccc0192c407efab23363a27f197657ce217 |
|
MD5 | 02574e5bb58c76ed066f7cb9d89ef0f7 |
|
BLAKE2b-256 | f192fbbb83b4bfc161027932a7d1dc6396fdb69458f7b48e5f72123e6444676e |
Close
Hashes for simular_evm-0.2.3-cp312-cp312-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15ec67cc84f4b216fae880abd8276e18baf2b4b182565b38572eda9f1eca4327 |
|
MD5 | c2444deb12d085e5cffadc7ff0445400 |
|
BLAKE2b-256 | 561d8eae49c2065a3074f04e57d4dda563d0db1f8fa84730b2d8b8ee31b3ba2a |
Close
Hashes for simular_evm-0.2.3-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23f517c9f456487390b86c44b9460c7147dc2dfc36f677b1646629b3fe5cc82e |
|
MD5 | 8cd60003af8b69d3eddf832dcc64030f |
|
BLAKE2b-256 | 1347c9f4d5d107d065de537fc87f6202d76070d2015d8049cc47b57848bfee92 |
Close
Hashes for simular_evm-0.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 133bafe6daa88c3bdef57d9d2211d1f03a0051aa9ee089e32a7a8ec605293167 |
|
MD5 | 419bf6d8bee4ab49af9e99c6890c9392 |
|
BLAKE2b-256 | 1303037b22fac74173352a46c7f65502bbadc7571475f3e463e30db9fa3e13df |
Close
Hashes for simular_evm-0.2.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b57be0e7f266842ab050eef09b390adf69e7b07d2d2d81f6121fecb7dcad5ece |
|
MD5 | 7429a3a801376804cfbe49b5b922e436 |
|
BLAKE2b-256 | 3e8360cded5f54e11e96176826f3069434e0923e7de81909fbad5ddec374d6ee |
Close
Hashes for simular_evm-0.2.3-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c865a1e71e54ffa27cfb255c437878dd2d73ee3d2edfeff9d1528b1e351072e7 |
|
MD5 | dc59baf3c6061911395c9017b9cd61d3 |
|
BLAKE2b-256 | 7dfc82fb550219694292f96795b4a05048b1d2cd2ecca91f6a9b1d08b8f87ba1 |
Close
Hashes for simular_evm-0.2.3-cp311-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fd819bd6b7cf6bc56b841cec1d0faad214ea8a1c5e97d513a17b046423f7894 |
|
MD5 | f716748cdf9f3a4535ab8bd700953780 |
|
BLAKE2b-256 | 53964a244ae9bc98b60e7ffb004b481f11129a1c1a2071bf01294d3068028163 |
Close
Hashes for simular_evm-0.2.3-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2be7139901726a3322ab3a2a85b33edf366cdc0986feb4f3c0a1618de5c3b0cd |
|
MD5 | 57e9d7a522073039f2c99b0088fc01b4 |
|
BLAKE2b-256 | 043e8aaa4864fde68983d30423f89acca4f3a887dd3999c31f1545ddb0df2b04 |
Close
Hashes for simular_evm-0.2.3-cp311-cp311-manylinux_2_28_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a1d43a6fb2f3c2604766d43c0903659ee075fe59eb2a7655267c21d0912fc4f |
|
MD5 | 928dd847fbcde05b73deedc5737ba089 |
|
BLAKE2b-256 | 62cb5651c240f2a6e454f29ef81ddde2055124fc3a2619ac0e4ae1437ec501a9 |
Close
Hashes for simular_evm-0.2.3-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58203c6eada45302e0952553cc4b469c71875eea7476bd769784328018db899f |
|
MD5 | 60aa3cf08961c9885277d0ba41f87feb |
|
BLAKE2b-256 | e46c32b3045bf7c28d48d06a98520e6d30477fedf1b3e3bcc05fb57fd1ddd791 |
Close
Hashes for simular_evm-0.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4533f75959514e3320b02885e5e3c06c4d6c3d792b082589d1ddcc81e3938b6 |
|
MD5 | d9cfda74256091dc8f6819a223716307 |
|
BLAKE2b-256 | 29d437f32c97d0b1262adfd47eaae2076a48fc844c5a09e6d45410a74a057829 |
Close
Hashes for simular_evm-0.2.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b502f373b9cc96d173287bad46fab76bfce1b41935b7785fc53d007facbbccb |
|
MD5 | 9f7ed78334cd23f328a577034903ed1c |
|
BLAKE2b-256 | 9c1dd1e4b137f6a6a9c001db81679337235c7e685dda2b9cebdd4ebca86cfa89 |