├── .gas-snapshot ├── .github └── workflows │ ├── certora.yml │ └── test.yml ├── .gitignore ├── .gitmodules ├── LICENSE.md ├── Makefile ├── README.md ├── audits ├── Cantina-April-2024.pdf ├── Cantina-December-2023.pdf ├── Certora-February-2024.pdf └── Code4rena-March-2024.md ├── broadcast └── DeployFactory.s.sol │ ├── 1 │ ├── run-1714757847.json │ └── run-latest.json │ ├── 10 │ ├── run-1714743977.json │ ├── run-1714744077.json │ └── run-latest.json │ ├── 56 │ └── run-latest.json │ ├── 8453 │ ├── run-1713818220.json │ └── run-latest.json │ ├── 43114 │ ├── run-1715187553.json │ └── run-latest.json │ ├── 84532 │ ├── run-1713816554.json │ └── run-latest.json │ ├── 421614 │ └── run-latest.json │ ├── 7777777 │ ├── run-1714757746.json │ └── run-latest.json │ └── 11155111 │ └── run-latest.json ├── certora ├── README.md ├── confs │ ├── ERC4337Account.conf │ └── ERC4337AccountInv.conf ├── harness │ └── CoinbaseSmartWalletHarness.sol ├── helpers │ └── EntryPointMock.sol ├── openzeppelin-contracts-upgradeable │ └── contracts │ │ └── utils │ │ ├── AddressUpgradeable.sol │ │ └── StorageSlotUpgradeable.sol └── specs │ ├── ERC4337Account.spec │ ├── ERC4337AccountInv.spec │ └── sanity.spec ├── foundry.lock ├── foundry.toml ├── remappings.txt ├── script └── DeployFactory.s.sol ├── snapshots └── EndToEndTest.json ├── src ├── CoinbaseSmartWallet.sol ├── CoinbaseSmartWalletFactory.sol ├── ERC1271.sol ├── MultiOwnable.sol └── utils │ └── ERC1271InputGenerator.sol └── test ├── CoinbaseSmartWallet ├── CanSkipChainIdValidation.t.sol ├── Execute.t.sol ├── ExecuteBatch.t.sol ├── ExecuteWithoutChainIdValidation.t.sol ├── Implementation.t.sol ├── Initialize.t.sol ├── IsValidSignature.t.sol ├── SmartWalletTestBase.sol ├── Static.sol ├── UpgradeToAndCall.t.sol └── ValidateUserOp.t.sol ├── CoinbaseSmartWalletFactory.t.sol ├── ERC1271.t.sol ├── ERC1271InputGenerator.t.sol ├── MultiOwnable ├── AddOwnerAddress.t.sol ├── AddOwnerBase.t.sol ├── AddOwnerPublicKey.t.sol ├── Initialize.t.sol ├── MultiOwnableTestBase.t.sol ├── RemoveLastOwner.t.sol ├── RemoveOwnerAtIndex.t.sol └── RemoveOwnerBase.t.sol ├── gas └── EndToEnd.t.sol └── mocks ├── MockCoinbaseSmartWallet.sol ├── MockEntryPoint.sol ├── MockMultiOwnable.sol └── MockTarget.sol /.gas-snapshot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/.gas-snapshot -------------------------------------------------------------------------------- /.github/workflows/certora.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/.github/workflows/certora.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/.gitmodules -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/LICENSE.md -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/README.md -------------------------------------------------------------------------------- /audits/Cantina-April-2024.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/audits/Cantina-April-2024.pdf -------------------------------------------------------------------------------- /audits/Cantina-December-2023.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/audits/Cantina-December-2023.pdf -------------------------------------------------------------------------------- /audits/Certora-February-2024.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/audits/Certora-February-2024.pdf -------------------------------------------------------------------------------- /audits/Code4rena-March-2024.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/audits/Code4rena-March-2024.md -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/1/run-1714757847.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/1/run-1714757847.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/1/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/1/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/10/run-1714743977.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/10/run-1714743977.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/10/run-1714744077.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/10/run-1714744077.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/10/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/10/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/11155111/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/11155111/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/421614/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/421614/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/43114/run-1715187553.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/43114/run-1715187553.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/43114/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/43114/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/56/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/56/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/7777777/run-1714757746.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/7777777/run-1714757746.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/7777777/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/7777777/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/8453/run-1713818220.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/8453/run-1713818220.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/8453/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/8453/run-latest.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/84532/run-1713816554.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/84532/run-1713816554.json -------------------------------------------------------------------------------- /broadcast/DeployFactory.s.sol/84532/run-latest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/broadcast/DeployFactory.s.sol/84532/run-latest.json -------------------------------------------------------------------------------- /certora/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/README.md -------------------------------------------------------------------------------- /certora/confs/ERC4337Account.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/confs/ERC4337Account.conf -------------------------------------------------------------------------------- /certora/confs/ERC4337AccountInv.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/confs/ERC4337AccountInv.conf -------------------------------------------------------------------------------- /certora/harness/CoinbaseSmartWalletHarness.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/harness/CoinbaseSmartWalletHarness.sol -------------------------------------------------------------------------------- /certora/helpers/EntryPointMock.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/helpers/EntryPointMock.sol -------------------------------------------------------------------------------- /certora/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol -------------------------------------------------------------------------------- /certora/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol -------------------------------------------------------------------------------- /certora/specs/ERC4337Account.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/specs/ERC4337Account.spec -------------------------------------------------------------------------------- /certora/specs/ERC4337AccountInv.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/specs/ERC4337AccountInv.spec -------------------------------------------------------------------------------- /certora/specs/sanity.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/certora/specs/sanity.spec -------------------------------------------------------------------------------- /foundry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/foundry.lock -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/foundry.toml -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/remappings.txt -------------------------------------------------------------------------------- /script/DeployFactory.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/script/DeployFactory.s.sol -------------------------------------------------------------------------------- /snapshots/EndToEndTest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/snapshots/EndToEndTest.json -------------------------------------------------------------------------------- /src/CoinbaseSmartWallet.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/src/CoinbaseSmartWallet.sol -------------------------------------------------------------------------------- /src/CoinbaseSmartWalletFactory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/src/CoinbaseSmartWalletFactory.sol -------------------------------------------------------------------------------- /src/ERC1271.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/src/ERC1271.sol -------------------------------------------------------------------------------- /src/MultiOwnable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/src/MultiOwnable.sol -------------------------------------------------------------------------------- /src/utils/ERC1271InputGenerator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/src/utils/ERC1271InputGenerator.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/CanSkipChainIdValidation.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/CanSkipChainIdValidation.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/Execute.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/Execute.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/ExecuteBatch.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/ExecuteBatch.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/ExecuteWithoutChainIdValidation.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/ExecuteWithoutChainIdValidation.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/Implementation.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/Implementation.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/Initialize.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/Initialize.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/IsValidSignature.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/IsValidSignature.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/SmartWalletTestBase.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/SmartWalletTestBase.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/Static.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/Static.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/UpgradeToAndCall.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/UpgradeToAndCall.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWallet/ValidateUserOp.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWallet/ValidateUserOp.t.sol -------------------------------------------------------------------------------- /test/CoinbaseSmartWalletFactory.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/CoinbaseSmartWalletFactory.t.sol -------------------------------------------------------------------------------- /test/ERC1271.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/ERC1271.t.sol -------------------------------------------------------------------------------- /test/ERC1271InputGenerator.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/ERC1271InputGenerator.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/AddOwnerAddress.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/AddOwnerAddress.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/AddOwnerBase.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/AddOwnerBase.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/AddOwnerPublicKey.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/AddOwnerPublicKey.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/Initialize.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/Initialize.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/MultiOwnableTestBase.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/MultiOwnableTestBase.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/RemoveLastOwner.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/RemoveLastOwner.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/RemoveOwnerAtIndex.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/RemoveOwnerAtIndex.t.sol -------------------------------------------------------------------------------- /test/MultiOwnable/RemoveOwnerBase.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/MultiOwnable/RemoveOwnerBase.t.sol -------------------------------------------------------------------------------- /test/gas/EndToEnd.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/gas/EndToEnd.t.sol -------------------------------------------------------------------------------- /test/mocks/MockCoinbaseSmartWallet.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/mocks/MockCoinbaseSmartWallet.sol -------------------------------------------------------------------------------- /test/mocks/MockEntryPoint.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/mocks/MockEntryPoint.sol -------------------------------------------------------------------------------- /test/mocks/MockMultiOwnable.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/mocks/MockMultiOwnable.sol -------------------------------------------------------------------------------- /test/mocks/MockTarget.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coinbase/smart-wallet/HEAD/test/mocks/MockTarget.sol --------------------------------------------------------------------------------