├── .env.sample ├── .github └── workflows │ └── test.yml ├── .gitignore ├── .gitmodules ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── audits ├── 2023-05-nethermind.pdf └── 2024-03-openzeppelin.pdf ├── foundry.toml ├── remappings.txt ├── rome.json ├── src ├── ERC20PaymasterV06.sol ├── ERC20PaymasterV07.sol ├── account-abstraction │ ├── v06 │ │ ├── core │ │ │ ├── BaseAccount.sol │ │ │ └── EntryPoint.sol │ │ └── samples │ │ │ ├── SimpleAccount.sol │ │ │ ├── SimpleAccountFactory.sol │ │ │ └── callback │ │ │ └── TokenCallbackHandler.sol │ └── v07 │ │ ├── core │ │ ├── BaseAccount.sol │ │ └── EntryPoint.sol │ │ └── samples │ │ ├── SimpleAccount.sol │ │ ├── SimpleAccountFactory.sol │ │ └── callback │ │ └── TokenCallbackHandler.sol ├── base │ ├── BaseERC20Paymaster.sol │ └── BasePaymaster.sol ├── factory │ ├── ERC20PaymasterFactory.sol │ ├── OracleFactory.sol │ └── PaymasterFactory.sol ├── interfaces │ ├── oracles │ │ └── IOracle.sol │ └── paymasters │ │ ├── IPaymasterV06.sol │ │ └── IPaymasterV07.sol ├── oracles │ ├── FixedOracle.sol │ ├── ManualOracle.sol │ └── TwapOracle.sol └── utils │ └── SafeTransferLib.sol ├── test ├── ERC20Paymaster18.v06.t.sol ├── ERC20Paymaster18.v07.t.sol ├── ERC20PaymasterSymbolic.t.sol ├── oracles │ ├── FixedOracle.t.sol │ ├── ManualOracle.t.sol │ └── TwapOracle.t.sol └── utils │ ├── BytesLib.sol │ ├── Fork.sol │ ├── TestCounter.sol │ ├── TestERC20.sol │ └── TestOracle.sol └── tsconfig.json /.env.sample: -------------------------------------------------------------------------------- 1 | MAINNET_ARCHIVE_RPC_URL="" -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/.gitmodules -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/README.md -------------------------------------------------------------------------------- /audits/2023-05-nethermind.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/audits/2023-05-nethermind.pdf -------------------------------------------------------------------------------- /audits/2024-03-openzeppelin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/audits/2024-03-openzeppelin.pdf -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/foundry.toml -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/remappings.txt -------------------------------------------------------------------------------- /rome.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/rome.json -------------------------------------------------------------------------------- /src/ERC20PaymasterV06.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/ERC20PaymasterV06.sol -------------------------------------------------------------------------------- /src/ERC20PaymasterV07.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/ERC20PaymasterV07.sol -------------------------------------------------------------------------------- /src/account-abstraction/v06/core/BaseAccount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v06/core/BaseAccount.sol -------------------------------------------------------------------------------- /src/account-abstraction/v06/core/EntryPoint.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v06/core/EntryPoint.sol -------------------------------------------------------------------------------- /src/account-abstraction/v06/samples/SimpleAccount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v06/samples/SimpleAccount.sol -------------------------------------------------------------------------------- /src/account-abstraction/v06/samples/SimpleAccountFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v06/samples/SimpleAccountFactory.sol -------------------------------------------------------------------------------- /src/account-abstraction/v06/samples/callback/TokenCallbackHandler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v06/samples/callback/TokenCallbackHandler.sol -------------------------------------------------------------------------------- /src/account-abstraction/v07/core/BaseAccount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v07/core/BaseAccount.sol -------------------------------------------------------------------------------- /src/account-abstraction/v07/core/EntryPoint.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v07/core/EntryPoint.sol -------------------------------------------------------------------------------- /src/account-abstraction/v07/samples/SimpleAccount.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v07/samples/SimpleAccount.sol -------------------------------------------------------------------------------- /src/account-abstraction/v07/samples/SimpleAccountFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v07/samples/SimpleAccountFactory.sol -------------------------------------------------------------------------------- /src/account-abstraction/v07/samples/callback/TokenCallbackHandler.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/account-abstraction/v07/samples/callback/TokenCallbackHandler.sol -------------------------------------------------------------------------------- /src/base/BaseERC20Paymaster.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/base/BaseERC20Paymaster.sol -------------------------------------------------------------------------------- /src/base/BasePaymaster.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/base/BasePaymaster.sol -------------------------------------------------------------------------------- /src/factory/ERC20PaymasterFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/factory/ERC20PaymasterFactory.sol -------------------------------------------------------------------------------- /src/factory/OracleFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/factory/OracleFactory.sol -------------------------------------------------------------------------------- /src/factory/PaymasterFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/factory/PaymasterFactory.sol -------------------------------------------------------------------------------- /src/interfaces/oracles/IOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/interfaces/oracles/IOracle.sol -------------------------------------------------------------------------------- /src/interfaces/paymasters/IPaymasterV06.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/interfaces/paymasters/IPaymasterV06.sol -------------------------------------------------------------------------------- /src/interfaces/paymasters/IPaymasterV07.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/interfaces/paymasters/IPaymasterV07.sol -------------------------------------------------------------------------------- /src/oracles/FixedOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/oracles/FixedOracle.sol -------------------------------------------------------------------------------- /src/oracles/ManualOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/oracles/ManualOracle.sol -------------------------------------------------------------------------------- /src/oracles/TwapOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/oracles/TwapOracle.sol -------------------------------------------------------------------------------- /src/utils/SafeTransferLib.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/src/utils/SafeTransferLib.sol -------------------------------------------------------------------------------- /test/ERC20Paymaster18.v06.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/ERC20Paymaster18.v06.t.sol -------------------------------------------------------------------------------- /test/ERC20Paymaster18.v07.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/ERC20Paymaster18.v07.t.sol -------------------------------------------------------------------------------- /test/ERC20PaymasterSymbolic.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/ERC20PaymasterSymbolic.t.sol -------------------------------------------------------------------------------- /test/oracles/FixedOracle.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/oracles/FixedOracle.t.sol -------------------------------------------------------------------------------- /test/oracles/ManualOracle.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/oracles/ManualOracle.t.sol -------------------------------------------------------------------------------- /test/oracles/TwapOracle.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/oracles/TwapOracle.t.sol -------------------------------------------------------------------------------- /test/utils/BytesLib.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/utils/BytesLib.sol -------------------------------------------------------------------------------- /test/utils/Fork.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/utils/Fork.sol -------------------------------------------------------------------------------- /test/utils/TestCounter.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/utils/TestCounter.sol -------------------------------------------------------------------------------- /test/utils/TestERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/utils/TestERC20.sol -------------------------------------------------------------------------------- /test/utils/TestOracle.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/test/utils/TestOracle.sol -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pimlicolabs/erc20-paymaster/HEAD/tsconfig.json --------------------------------------------------------------------------------