Smart Account & EntryPoint implementation for Eolia Wallet, deployed on XLayer for the hackathon project.
eolia-contract/
├── contracts/ # Solidity smart contracts
│ ├── accounts/ # Account logic
│ ├── core/ # Core interfaces
│ ├── interfaces/ # ERC-4337 + custom interfaces
│ └── utils/ # Helper libraries
├── deploy/ # hardhat-deploy scripts
│ ├── 0_deploy_entrypoint.ts
│ └── 1_deploy_factory.ts
├── deployments/xlayer/ # Deployment artifacts
├── scripts/ # Utility scripts (recover, create2, generate-userop)
├── test/ # Contract tests
├── hardhat.config.ts # Hardhat configuration
└── package.json # Dependencies
pnpm installpnpm hardhat compilepnpm hardhat deploy --network xlayerpnpm hardhat verify --network xlayer <contractAddress> <constructorArgs...>- EntryPoint:
0x... - SimpleAccountFactory:
0x...
scripts/recoverAddress.ts→ Recover signer address from signaturescripts/create2account.ts→ Predict account address with CREATE2scripts/generate-userop.ts→ Generate UserOperation struct for testing
- Compatible with ERC-4337
- Optimized for XLayer EVM (basefee opcode differences handled)
- Using
hardhat-deployfor deterministic deployments
MIT License