├── .env.example ├── .gas-snapshot ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── config └── GoerliConfig.sol ├── foundry.toml ├── package.json ├── remappings.txt ├── script ├── DeployAll.s.sol ├── DeployPayMasterToken.s.sol ├── DeployWallet.s.sol └── DeployWalletFactory.s.sol ├── src ├── AppleSigVerifier.sol ├── PayMaster.sol ├── PayMasterToken.sol ├── SmartWallet.sol ├── WalletFactory.sol ├── external │ ├── EntryPoint.sol │ ├── Exec.sol │ ├── IAccount.sol │ ├── IAggregatedAccount.sol │ ├── IAggregator.sol │ ├── ICreate2Deployer.sol │ ├── IEntryPoint.sol │ ├── IPaymaster.sol │ ├── IStakeManager.sol │ ├── SenderCreator.sol │ ├── StakeManager.sol │ └── UserOperation.sol ├── interfaces │ ├── IPayMaster.sol │ ├── IWallet.sol │ └── IWalletFactory.sol └── verifier │ ├── ECMaths.sol │ └── EllipticCurve.sol └── test ├── fork ├── e2eDeployAndPaymaster.t.sol ├── e2eNoPaymaster.t.sol ├── e2ePaymaster.t.sol └── e2eWalletDeploy.t.sol ├── unit ├── AppleSigVerifier.t.sol ├── Fixtures.sol ├── PayMasterToken.t.sol ├── SmartWallet.t.sol ├── WalletFactory.t.sol └── mock │ ├── MockERC20.sol │ └── MockSetter.sol └── utils ├── createSignature.sol └── getUserOpHash.sol /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/.env.example -------------------------------------------------------------------------------- /.gas-snapshot: -------------------------------------------------------------------------------- 1 | TestContract:testBar() (gas: 401) 2 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .env 4 | broadcast -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/.gitmodules -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/README.md -------------------------------------------------------------------------------- /config/GoerliConfig.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/config/GoerliConfig.sol -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/foundry.toml -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/package.json -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/remappings.txt -------------------------------------------------------------------------------- /script/DeployAll.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/script/DeployAll.s.sol -------------------------------------------------------------------------------- /script/DeployPayMasterToken.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/script/DeployPayMasterToken.s.sol -------------------------------------------------------------------------------- /script/DeployWallet.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/script/DeployWallet.s.sol -------------------------------------------------------------------------------- /script/DeployWalletFactory.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/script/DeployWalletFactory.s.sol -------------------------------------------------------------------------------- /src/AppleSigVerifier.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/AppleSigVerifier.sol -------------------------------------------------------------------------------- /src/PayMaster.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/PayMaster.sol -------------------------------------------------------------------------------- /src/PayMasterToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/PayMasterToken.sol -------------------------------------------------------------------------------- /src/SmartWallet.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/SmartWallet.sol -------------------------------------------------------------------------------- /src/WalletFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/WalletFactory.sol -------------------------------------------------------------------------------- /src/external/EntryPoint.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/EntryPoint.sol -------------------------------------------------------------------------------- /src/external/Exec.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/Exec.sol -------------------------------------------------------------------------------- /src/external/IAccount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/IAccount.sol -------------------------------------------------------------------------------- /src/external/IAggregatedAccount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/IAggregatedAccount.sol -------------------------------------------------------------------------------- /src/external/IAggregator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/IAggregator.sol -------------------------------------------------------------------------------- /src/external/ICreate2Deployer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/ICreate2Deployer.sol -------------------------------------------------------------------------------- /src/external/IEntryPoint.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/IEntryPoint.sol -------------------------------------------------------------------------------- /src/external/IPaymaster.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/IPaymaster.sol -------------------------------------------------------------------------------- /src/external/IStakeManager.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/IStakeManager.sol -------------------------------------------------------------------------------- /src/external/SenderCreator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/SenderCreator.sol -------------------------------------------------------------------------------- /src/external/StakeManager.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/StakeManager.sol -------------------------------------------------------------------------------- /src/external/UserOperation.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/external/UserOperation.sol -------------------------------------------------------------------------------- /src/interfaces/IPayMaster.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/interfaces/IPayMaster.sol -------------------------------------------------------------------------------- /src/interfaces/IWallet.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/interfaces/IWallet.sol -------------------------------------------------------------------------------- /src/interfaces/IWalletFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/interfaces/IWalletFactory.sol -------------------------------------------------------------------------------- /src/verifier/ECMaths.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/verifier/ECMaths.sol -------------------------------------------------------------------------------- /src/verifier/EllipticCurve.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/src/verifier/EllipticCurve.sol -------------------------------------------------------------------------------- /test/fork/e2eDeployAndPaymaster.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/fork/e2eDeployAndPaymaster.t.sol -------------------------------------------------------------------------------- /test/fork/e2eNoPaymaster.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/fork/e2eNoPaymaster.t.sol -------------------------------------------------------------------------------- /test/fork/e2ePaymaster.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/fork/e2ePaymaster.t.sol -------------------------------------------------------------------------------- /test/fork/e2eWalletDeploy.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/fork/e2eWalletDeploy.t.sol -------------------------------------------------------------------------------- /test/unit/AppleSigVerifier.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/unit/AppleSigVerifier.t.sol -------------------------------------------------------------------------------- /test/unit/Fixtures.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/unit/Fixtures.sol -------------------------------------------------------------------------------- /test/unit/PayMasterToken.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/unit/PayMasterToken.t.sol -------------------------------------------------------------------------------- /test/unit/SmartWallet.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/unit/SmartWallet.t.sol -------------------------------------------------------------------------------- /test/unit/WalletFactory.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/unit/WalletFactory.t.sol -------------------------------------------------------------------------------- /test/unit/mock/MockERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/unit/mock/MockERC20.sol -------------------------------------------------------------------------------- /test/unit/mock/MockSetter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/unit/mock/MockSetter.sol -------------------------------------------------------------------------------- /test/utils/createSignature.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/utils/createSignature.sol -------------------------------------------------------------------------------- /test/utils/getUserOpHash.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dawnwallet/erc4337-wallet/HEAD/test/utils/getUserOpHash.sol --------------------------------------------------------------------------------