Skip to content

Commit

Permalink
[WIP] Recovery plugin and weighted ecdsa (#31)
Browse files Browse the repository at this point in the history
* draft : need to follow some interfaces and add test cases

* updated weighted ecdsa validator

* change userOpHash to callDataHash

* changed to callDataAndNonceHash

* weigted ecdsa validator to force paymaster

* good old multisig

* fix: disable bug

* chore: added weighted ECDSA deploy script

---------

Co-authored-by: Sahil Vasava <[email protected]>
  • Loading branch information
leekt and SahilVasava committed Oct 19, 2023
1 parent 50bd922 commit 359938c
Show file tree
Hide file tree
Showing 18 changed files with 973 additions and 0 deletions.
33 changes: 33 additions & 0 deletions broadcast/DeployWeightedECDSA.s.sol/80001/run-1694169616.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"transactions": [
{
"hash": "0xd421f4b5694318e9af9b505a9fefa9d22ea3cf8124d9414a872906d53b6e34ed",
"transactionType": "CREATE2",
"contractName": "WeightedECDSAValidator",
"contractAddress": "0xF9B3Dfc8868E9Fa3FDe60F8Fd6e69eD822340afa",
"function": null,
"arguments": null,
"transaction": {
"type": "0x00",
"from": "0xa02cddfa44b8c01b4257f54ac1c43f75801e8175",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"gas": "0x13abed",
"value": "0x0",
"data": "0x00000000000000000000000000000000000000000000000000000000000000006080806040523461001657610fe9908161001c8239f35b600080fdfe608060405260048036101561001357600080fd5b60003560e01c80630c959556146106fe5780633a871cdd146106b85780634f1169a81461065a578063666d05f4146105e85780638025aa49146103a55780639469d1481461032e578063b2e2c99b14610168578063e6f68b9f146101045763fb6f93f91461008057600080fd5b346100ff5760203660031901126100ff578035600052600260205260406000203360005260205260406000209081549060ff82169060038210156100ea5750906100d682600293159081156100df575b50610ca0565b60ff1916179055005b6001915014386100d0565b602190634e487b7160e01b6000525260246000fd5b600080fd5b346100ff5760203660031901126100ff576001600160a01b03610125610baa565b16600052600060205260806040600020546040519062ffffff80821683528160181c16602083015265ffffffffffff8160301c16604083015260601c6060820152f35b50346100ff5760403660031901126100ff578035610184610bc0565b336000526020906001825260406000209060018060a01b03169081600052825262ffffff918260406000205416156102f4578360005260028152604060002082600052815260406000209360ff85541660038110156102df576101e79015610ca0565b6000526003815260406000203360005281526040600020826000528152604060002080549560ff87169060028210156100ea5750906102296000939215610ce3565b600160ff198098161790553382526001815260408220838352815261027b61025d8560408520541686885460381c16610c89565b865462ffffff60381b191660389190911b62ffffff60381b16178655565b84549282525260406000209180835460181c16908260381c16101561029c57005b6102dd93600191161782556102be65ffffffffffff80925460301c1642610d1f565b825466ffffffffffff001916911660081b66ffffffffffff0016179055565b005b602187634e487b7160e01b6000525260246000fd5b846064916040519162461bcd60e51b8352820152601460248201527311dd585c991a585b881b9bdd08195b98589b195960621b6044820152fd5b50346100ff5760403660031901126100ff57610348610bc0565b8135600052600260205260406000209060018060a01b03166000526020526040600020549060ff82166040519160038210156100ea575060609262ffffff91835265ffffffffffff8160081c16602084015260381c166040820152f35b50346100ff5760603660031901126100ff576103bf610bc0565b9060443567ffffffffffffffff81116100ff576103df9036908301610b7c565b92909180356000526002602052604060002060018060a01b03831660005260205260406000209360ff85541660038110156105d35761041e9015610ca0565b60005b604180830482101561057c578082028281048214831517156105525760018301808411610567578281029281840414901517156105525761046a6104789261047192868a610d2c565b3691610d44565b8435610d86565b833560009081526003602090815260408083206001600160a01b038581168552908352818420908916845290915290208054600260ff8216101561053d57906001826104cc60ff6105389796951615610ce3565b60ff191617905560018060a01b03166000526001602052604060002060018060a01b03861660005260205261053361051562ffffff8060406000205416908a5460381c16610c89565b885462ffffff60381b191660389190911b62ffffff60381b16178855565b610c3a565b610421565b602186634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b601186634e487b7160e01b6000525260246000fd5b848780549160018060a01b03166000526000602052604060002062ffffff80825460181c16908460381c1610156105af57005b60016102dd9360ff19161782556102be65ffffffffffff80925460301c1642610d1f565b602183634e487b7160e01b6000525260246000fd5b50346100ff5760603660031901126100ff57610602610bc0565b6044356001600160a01b0381811692918390036100ff57833560005260036020526040600020911660005260205260406000209060005260205260ff604060002054166040519060028110156105d357602092508152f35b346100ff5760403660031901126100ff576040610675610baa565b61067d610bc0565b60018060a01b0380921660005260016020528183600020911660005260205281600020549082519162ffffff8116835260181c166020820152f35b506003196060368201126100ff5781359067ffffffffffffffff82116100ff576101609082360301126100ff576020916106f6916024359101610dfc565b604051908152f35b50346100ff57602090816003193601126100ff5767ffffffffffffffff9080358281116100ff576107329036908301610b7c565b810193906080818603126100ff5780358481116100ff57810185601f820112156100ff5780359061076a61076583610c12565b610bd6565b91848084838152019160051b830101918883116100ff578501905b828210610b5d57505050828201358581116100ff5782019580601f880112156100ff5786356107b661076582610c12565b9785808a848152019260051b8201019283116100ff5785809101915b838310610b4557505050506107e960408301610c2a565b936060809301359565ffffffffffff871687036100ff578251885103610b0f57336000526000855262ffffff958660406000205416610ad9573360005260008652610852336040600020906bffffffffffffffffffffffff82549181199060601b169116179055565b60005b8451811015610a91576001600160a01b03806108718388610c5f565b511615610a565788610883838d610c5f565b511615610a1d57806108958388610c5f565b51166000526001808952604060002033600052895289604060002054166109d957896108c1848e610c5f565b5116903360005260008a52604060002054891c906040519260408401848110898211176109c457916109bf96959391610985959360405283528c83019182528361090b878d610c5f565b51166000528c526040600020336000528c528c60406000209251168254916301000000600160b81b03905160181b169168ffffffffffffffffff60b81b16171790556109578389610c5f565b51163360005260008a526040600020906bffffffffffffffffffffffff82549181199060601b169116179055565b88610990828d610c5f565b511633600052600089526040600020908a6109af835492828416610c89565b169062ffffff1916179055610c3a565b610855565b60418a634e487b7160e01b6000525260246000fd5b60405162461bcd60e51b81528087018a9052601860248201527f477561726469616e20616c726561647920656e61626c656400000000000000006044820152606490fd5b60405162461bcd60e51b8152808601899052601260248201527105765696768742063616e6e6f7420626520360741b6044820152606490fd5b60405162461bcd60e51b815280860189905260146024820152730477561726469616e2063616e6e6f7420626520360641b6044820152606490fd5b5087600087338252526040600020916bffffffffffff00000000000065ffffff00000084549260181b169260301b16906bffffffffffffffffff000000191617179055600080f35b60405162461bcd60e51b8152808401879052600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606490fd5b60405162461bcd60e51b8152808301869052600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b8190610b5084610c2a565b81520191019085906107d2565b81356001600160a01b03811681036100ff578152908501908501610785565b9181601f840112156100ff5782359167ffffffffffffffff83116100ff57602083818601950101116100ff57565b600435906001600160a01b03821682036100ff57565b602435906001600160a01b03821682036100ff57565b6040519190601f01601f1916820167ffffffffffffffff811183821017610bfc57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610bfc5760051b60200190565b359062ffffff821682036100ff57565b6000198114610c495760010190565b634e487b7160e01b600052601160045260246000fd5b8051821015610c735760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b91909162ffffff80809416911601918211610c4957565b15610ca757565b60405162461bcd60e51b815260206004820152601460248201527350726f706f73616c206e6f74206f6e676f696e6760601b6044820152606490fd5b15610cea57565b60405162461bcd60e51b815260206004820152600d60248201526c105b1c9958591e481d9bdd1959609a1b6044820152606490fd5b91908201809211610c4957565b909392938483116100ff5784116100ff578101920390565b92919267ffffffffffffffff8211610bfc57610d69601f8301601f1916602001610bd6565b93828552828201116100ff57816000926020928387013784010152565b60207f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a19392608060405193838301516040526040830151928360605260416000988995869485526060840151851a885210915114165afa508251923d15610def57606052604052565b638baa579f90526004601cfd5b90806000526002602052604060002033600052602052604060002091600060205260406000209083549060ff82166003811015610fa85780610fc8575065ffffffffffff835460301c16610fbe5761014081013590601e19813603018212156100ff57019067ffffffffffffffff8235116100ff578135360360208301136100ff5760381c62ffffff1692600091905b60418235048310610ec35750505062ffffff905460181c161115600014610ebd57805460ff19166001179055600090565b50600190565b9091936041850285810460411486151715610c495760018601808711610c4957604181029080820460411490151715610c495761046a610f0c91610f1293873560208901610d2c565b83610d86565b826000526003602052604060002060018060a01b038216600052602052604060002033600052602052604060002091825491600260ff84161015610fa857610fa193600184610f6760ff610f9b971615610ce3565b60ff191617905560018060a01b0316600052600160205260406000203360005260205262ffffff6040600020541690610d1f565b94610c3a565b9190610e8c565b634e487b7160e01b600052602160045260246000fd5b5050505050600190565b92505092506001915014600014610ebd5760c81b6001600160d01b0319169056",
"nonce": "0x17e"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [],
"libraries": [],
"pending": [
"0xd421f4b5694318e9af9b505a9fefa9d22ea3cf8124d9414a872906d53b6e34ed"
],
"returns": {},
"timestamp": 1694169616,
"chain": 80001,
"multi": false,
"commit": "704ba5b"
}
Loading

0 comments on commit 359938c

Please sign in to comment.