Problems with run Bundler: FATAL: Invalid entryPoint contract at xxx. wrong version?
shellteo opened this issue · comments
Description
I am having trouble starting the bundler service after successfully deploying the EntryPoint contract.
The error is "FATAL: Invalid entryPoint contract at xxx. wrong version?"
Environment
- Network:Mantle testnet(eip1559 is not supported)
- bundler version: v0.5.0
- account abstraction version: v0.5.0
Steps to Reproduce
1. Deterministic-deployment-proxy deployment on Mantle testnet
1)Modify the JSON_RPC in scripts/test.sh as shown in the figure below
Execute ./scripts/test.sh
and an error is reported as follows.
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"gas price too high: 100000000000 wei, use at most tx.gasPrice = 1 wei"}}
Our mantle testnet transactions are all set to 1wei, so modify the gasPrice
in scripts/compile.ts
to 1wei, as shown in the figure below
Execute npm run build to generate the output/deployment.json file, then execute ./scripts/test.sh to deploy the contract to Mantle.
{
"gasPrice": 1,
"gasLimit": 100000,
"signerAddress": "67318b895775b2aaa9e5330981b620af942b8c73",
"transaction": "f8a08001830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222",
"address": "47416ea33cd1e6026e199d88ae2719f5be3d321d"
}
2. Deploy the EntryPoint contract to Mantle testnet
Add the mantleTestnet
network and deterministicDeployment
configuration to hardhat.config.ts
in the account-abstraction
project.
mantleTestnet: {
accounts: {
mnemonic: mnemonic,
},
chainId: 5001,
url: 'https://rpc.testnet.mantle.xyz',
allowUnlimitedContractSize: true
}
deterministicDeployment: {
"5001": {
factory: "0x47416ea33cd1e6026e199d88ae2719f5be3d321d",
deployer: "0x67318b895775b2aaa9e5330981b620af942b8c73",
funding: "100000",
signedTx: "0xf8a08001830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222",
}
}
Execute yarn run deploy --network mantleTestnet
command to deploy EntryPoint
contract and SimpleAccountFactory
contract, the results are as follows
yarn run v1.22.15
$ ./scripts/hh-wrapper deploy --network mantleTestnet
Nothing to compile
No need to generate any newer typings.
==entrypoint addr= 0x968223e76cD2117a677EB00dC8D299213EC6F155
==SimpleAccountFactory addr= 0x6cf2E0056Bbf79eBa22ad73d2949206911c8eAc9
✨ Done in 7.37s.
3. Run the bundler service
According to the content deployed in the third step, modify the network
, EntryPoint
and beneficiary
in the packages/bundler/localconfig/bundler.config.json
configuration in the bundler project
{
"gasFactor": "1",
"port": "3000",
"network": "https://rpc.testnet.mantle.xyz",
"entryPoint": "0x968223e76cD2117a677EB00dC8D299213EC6F155",
"beneficiary": "0x83165f86c10898dD4a7f33bDe8e5C0e4cC90E424",
"minBalance": "1",
"mnemonic": "./localconfig/mnemonic.txt",
"maxBundleGas": 5e6,
"minStake": "1" ,
"minUnstakeDelay": 0 ,
"autoBundleInterval": 3,
"autoBundleMempoolSize": 10
}
Execute the following command to start bundler
yarn run bundler --network https://rpc.testnet.mantle.xyz --mnemonic ./localconfig/mnemonic.txt --unsafe
and then report an error
Error: missing revert data in call exception; Transaction reverted without a reason string [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (data="0x", transaction={"to":"0x968223e76cD2117a677EB00dC8D299213EC6F155","data":"0xee219423000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","accessList":null}, error={"reason":"processing response error","code":"SERVER_ERROR","body":"{\"jsonrpc\":\"2.0\",\"id\":65,\"error\":{\"code\":-32000,\"message\":\"execution reverted\"}}\n","error":{"code":-32000},"requestBody":"{\"method\":\"eth_call\",\"params\":[{\"to\":\"0x968223e76cd2117a677eb00dc8d299213ec6f155\",\"data\":\"0xee219423000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"},\"latest\"],\"id\":65,\"jsonrpc\":\"2.0\"}","requestMethod":"POST","url":"https://rpc.testnet.mantle.xyz"}, code=CALL_EXCEPTION, version=providers/5.7.2)
at Logger.makeError (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/logger/src.ts/index.ts:269:28)
at Logger.throwError (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/logger/src.ts/index.ts:281:20)
at checkError (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:66:16)
at JsonRpcProvider.<anonymous> (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:642:20)
at step (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)
at Object.throw (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)
at rejected (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
reason: 'missing revert data in call exception; Transaction reverted without a reason string',
code: 'CALL_EXCEPTION',
data: '0x',
transaction: {
to: '0x968223e76cD2117a677EB00dC8D299213EC6F155',
data: '0xee219423000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
accessList: null
},
error: Error: processing response error (body="{\"jsonrpc\":\"2.0\",\"id\":65,\"error\":{\"code\":-32000,\"message\":\"execution reverted\"}}\n", error={"code":-32000}, requestBody="{\"method\":\"eth_call\",\"params\":[{\"to\":\"0x968223e76cd2117a677eb00dc8d299213ec6f155\",\"data\":\"0xee219423000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"},\"latest\"],\"id\":65,\"jsonrpc\":\"2.0\"}", requestMethod="POST", url="https://rpc.testnet.mantle.xyz", code=SERVER_ERROR, version=web/5.7.1)
at Logger.makeError (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/logger/src.ts/index.ts:269:28)
at Logger.throwError (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/logger/src.ts/index.ts:281:20)
at /Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/src.ts/index.ts:341:28
at step (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/lib/index.js:33:23)
at Object.next (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/lib/index.js:14:53)
at fulfilled (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/lib/index.js:5:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
reason: 'processing response error',
code: 'SERVER_ERROR',
body: '{"jsonrpc":"2.0","id":65,"error":{"code":-32000,"message":"execution reverted"}}\n',
error: Error: execution reverted
at getResult (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:142:28)
at processJsonFunc (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/src.ts/index.ts:383:22)
at /Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/src.ts/index.ts:320:42
at step (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/lib/index.js:33:23)
at Object.next (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/lib/index.js:14:53)
at fulfilled (/Users/dl00028ml/workspace/eip4337-bundler/node_modules/@ethersproject/web/lib/index.js:5:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
code: -32000,
data: undefined
},
requestBody: '{"method":"eth_call","params":[{"to":"0x968223e76cd2117a677eb00dc8d299213ec6f155","data":"0xee219423000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"latest"],"id":65,"jsonrpc":"2.0"}',
requestMethod: 'POST',
url: 'https://rpc.testnet.mantle.xyz'
}
}
FATAL: Invalid entryPoint contract at 0x968223e76cD2117a677EB00dC8D299213EC6F155. wrong version?
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
We're currently trying to use same-address on all networks. modifying the "deterministic deployer" is not a solution, since it by itself, modifies the resulting address.
It would be nice to fix the scripts to support non-deterministic EntryPoint addresses, but then it is far more difficult to validate the same implementation is indeed deployed on all networks.
Might be better to persuade the network operator to perform a "state-change" that would let the standard deterministic deployer by deployed on the network, and thus all deployments that depend on it will work seamlessly.
on mantle, it might require just to allow running this single transaction at the cost of 100 gwei