https://github.com/0xeigenlabs/scw
Eigen Non-Custodial and Modular Multisig Wallet, Account Abstraction EIP-2938
https://github.com/0xeigenlabs/scw
ethereum identity multisig web3
Last synced: 11 months ago
JSON representation
Eigen Non-Custodial and Modular Multisig Wallet, Account Abstraction EIP-2938
- Host: GitHub
- URL: https://github.com/0xeigenlabs/scw
- Owner: 0xEigenLabs
- License: apache-2.0
- Created: 2021-11-15T08:50:54.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-07-16T01:15:41.000Z (almost 4 years ago)
- Last Synced: 2023-03-04T00:42:43.575Z (over 3 years ago)
- Topics: ethereum, identity, multisig, web3
- Language: TypeScript
- Homepage:
- Size: 655 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Audit: audit/REP-Eigen-Network__final-20220317T064308Z.pdf
Awesome Lists containing this project
README
# Eigen Self-Custodial Wallet
Eigen SCW(Self-custodial Wallet) allows you:
- [x] Use multi-signature to manager your asset
- [x] Recover the owner by Social Recovery
- [x] Lockable
- [x] Payment Limitation
- Integration with Mixer, ZKDEX, and other DeFi protocols
Implemented by Hardhat and OpenZeppelin, aims to be:
* Upgradeable and Modular, controlled by DAO(Ongoing)
* Security
* Scalablity
* Simplicity
# Test
setup the rpc and account in .env or use `npx hardhat node`.
```
yarn build
yarn test --network localhost
```
# Different operations' gas cost
After running 'yarn test --network localhost', there is a gas report of different operations' gas cost at the end of test result.Here are some operations' gas costs that we tested.
| Operation | 3 signers | 5 signers | 7 signers |
| :------: | :-------: | :-------: | :-------: |
| flush | 30229 | 30229 | 30229 |
| triggerRecovery | 76719 | 76719 | 76719 |
| cancelRecovery | 16253 | 16253 | 16253 |
| executeRecovery | 40939 | 40939 | 40939 |
| lock | 66395 | 72917 | 77241 |
| unlock | 44453 | 50975 | 55299 |
| replaceSigner | 53401 | 59923 | 64235 |
| removeSigner | 51572 | 61995 | 66319 |
| addSigner | 89543 | 97559 | 98697 |
| executeTransaction | 142153 | 142165 | 142165 |
| executeLargeTransaction | 22729 | 22729 | 22729 |
| multicall | 145524 | 167230 | 181109 |
# Verify contract on etherscan
You need to add the following Etherscan config to your hardhat.config.js file:
```
module.exports = {
networks: {
mainnet: { ... }
},
etherscan: {
// Your API key for Etherscan
// Obtain one at https://etherscan.io/
apiKey: "YOUR_ETHERSCAN_API_KEY"
}
};
```
Alternatively you can specify more than one block explorer API key, by passing an object under the apiKey property, see Multiple API keys and alternative block explorers.
Lastly, run the verify task, passing the address of the contract, the network where it's deployed, and the constructor arguments that were used to deploy it (if any):
```
npx hardhat verify --network mainnet DEPLOYED_CONTRACT_ADDRESS "Constructor argument 1"
```