npx lerna bootstrap
cp config.json.default config.json
- edit
config.json
docker run --rm -ti --name geth -p 8545:8545 ethereum/client-go:v1.10.26 \
--miner.gaslimit 12000000 \
--http --http.api personal,eth,net,web3,debug \
--http.vhosts '*,localhost,host.docker.internal' --http.addr "0.0.0.0" \
--ignore-legacy-receipts --allow-insecure-unlock --rpc.allow-unprotected-txs \
--dev \
--nodiscover --maxpeers 0 \
--networkid 1337
- run
./skandha
- Skandha will run for all chains available in
config.json
- Networks will be available at
http://localhost:14337/{chainId}/
(e.g. for devhttp://localhost:14337/1337/
)
cp config.json.default config.json
- edit
config.json
docker build -t etherspot/skandha .
docker run --mount type=bind,source="$(pwd)"/config.json,target=/usr/app/config.json,readonly -dp 14337:14337 etherspot/skandha start
- eth_chainId
- eth_supportedEntryPoints
- eth_sendUserOperation
- eth_estimateUserOperationGas
- eth_getUserOperationReceipt
- eth_getUserOperationByHash
- web3_clientVersion
- debug_bundler_clearState
- debug_bundler_dumpMempool
- debug_bundler_setReputation
- debug_bundler_dumpReputation
- debug_bundler_setBundlingMode
- debug_bundler_setBundleInterval
- debug_bundler_sendBundleNow
- rocksdb
- validation by opcodes (partial, need reputation management for 100% support)
- support multiple entry points
- reputation management
- e2e tests
- additional rpc methods (which one?)
- hooks for mev-boost
{
"networks": {
"dev": { # network Id (check packages/types/src/networks/networks.ts)
"entryPoints": [ # supported entry points
"0x0576a174D229E3cFA37253523E645A78A0C91B57"
],
"relayer": "0xprivateKey", # relayer private key, can access from here or via environment variables (SKANDHA_MUMBAI_RELAYER | SKANDHA_DEV_RELAYER | etc.)
"beneficiary": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", # fee collector, avaiable via env var (SKANDHA_MUMBAI_BENEFICIARY | etc)
"rpcEndpoint": "http:#localhost:8545", # rpc provider, also available via env variable (SKANDHA_MUMBAI_RPC | etc)
"minInclusionDenominator": 10, # optional, see EIP-4337
"throttlingSlack": 10, # optional, see EIP-4337
"banSlack": 10 # optional, see EIP-4337
"minSignerBalance": 1, # optional, default is 0.1 ETH. If the relayer's balance drops lower than this, it will be selected as a fee collector
"multicall": "0x", # optional, address of multicall3 contract, default is 0xcA11bde05977b3631167028862bE2a173976CA11 (see https://github.com/mds1/multicall#multicall3-contract-addresses)
}
}
}