Epirus-local is a local ethereum client, similar to what Ganache provides, written in Kotlin.
This project relies on web3-evm to execute user requests.
- Allows json-rpc interactions with a local ethereum blockchain.
- Generates a default genesis file containing 10 ethereum accounts or lets you use your own genesis.
- Provides a CLI to run the client.
- Handles these operations:
- eth_blockNumber
- eth_getTransactionCount
- eth_getBalance
- eth_sendTransaction
- eth_sendRawTransaction
- eth_estimateGas
- eth_getBlockTransactionCountByHash
- eth_getBlockTransactionCountByNumber
- eth_getTransactionReceipt
- eth_getCode
- eth_call
git clone https://github.com/epirus-io/epirus-local && cd epirus-local
./gradlew installDist
build/install/epirus-local/bin/epirus-local [command]
build\install\epirus-local\bin\epirus-local.bat [command]
epirus-local start -d=/path/to/directory -p=9090
This command generates a new genesis file with 10 accounts filled with 100 ether.
epirus-local load -g=/path/to/genesis
This command loads a pre-existing genesis-file from a certain path.
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{
"from": "0x8f496c16955a7bb9b5e1ea0383d01f87372ab520",
"to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
"gas": "0x76c0",
"gasPrice": "0x9184e72a000",
"value": "0x9184e72a",
"nonce": "0x1"
}],"id":1}' host:port
{"id" : 1, "jsonrpc" : "2.0", "result" : "0xc631caa67cab48ead77a58321bbb0c76f4060751a4bb3d5b45b99c4a68b1a7b7"}
For more information about the requests, check out the Ethereum json-rpc api.