Skip to content

Commit

Permalink
Ownable L1 Resolver (#6)
Browse files Browse the repository at this point in the history
* Add permissioned setUrl endpoint to L1 Resolver, redeploy to testnet

* Add script to set URL

* Start adding tests for L1 Resolver

* Added more tests

* L1Resolver tests

* Add more tests, reorg existing ones

* More L1Resolver Tests

* Fix fallback, add test

* Updated comments in Constants

* Constructor arg name change to match style guide

* Add supportsInterface call to rootResolver

* Update contracts/src/L1/L1Resolver.sol

Co-authored-by: wilsoncusack <[email protected]>

* Update contracts/src/L1/L1Resolver.sol

Co-authored-by: wilsoncusack <[email protected]>

* Small fixes from PR

---------

Co-authored-by: wilsoncusack <[email protected]>
  • Loading branch information
stevieraykatz and wilsoncusack authored May 23, 2024
1 parent 5f0dc54 commit 27b1857
Show file tree
Hide file tree
Showing 24 changed files with 671 additions and 147 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
{
"transactions": [
{
"hash": "0xc904646584f1fd821c8c30b0f4df2eb69f94abccc5a474397e7e22ba90e51269",
"transactionType": "CREATE",
"contractName": "L1Resolver",
"contractAddress": "0x5F15c3B5949F5767F5Ca9013a8E4Ca4D97a053eD",
"function": null,
"arguments": [
"\"https://localhost:8000/api/v1/domain/resolver/resolveDomain/{sender}/{data}\"",
"[0xa412c16ECd2198A6aBce8235651E105684Fb77ed]",
"0x869140c91eDF43214a3EcEdEAF777cc7107aD71a"
],
"transaction": {
"type": "0x02",
"from": "0x869140c91edf43214a3ecedeaf777cc7107ad71a",
"gas": "0x1475fd",
"value": "0x0",
"data": "0x60806040523480156200001157600080fd5b50604051620013b8380380620013b8833981016040819052620000349162000226565b6000620000428482620003a5565b5060005b8251811015620000a55760018060008584815181106200006a576200006a62000471565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000046565b50620000b181620000f3565b7fab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d782604051620000e2919062000487565b60405180910390a1505050620004d6565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200017057620001706200012f565b604052919050565b80516001600160a01b03811681146200019057600080fd5b919050565b600082601f830112620001a757600080fd5b815160206001600160401b03821115620001c557620001c56200012f565b8160051b620001d682820162000145565b9283528481018201928281019087851115620001f157600080fd5b83870192505b848310156200021b576200020b8362000178565b82529183019190830190620001f7565b979650505050505050565b6000806000606084860312156200023c57600080fd5b83516001600160401b03808211156200025457600080fd5b818601915086601f8301126200026957600080fd5b8151818111156200027e576200027e6200012f565b602062000294601f8301601f1916820162000145565b8281528982848701011115620002a957600080fd5b60005b83811015620002c9578581018301518282018401528201620002ac565b506000928101820192909252870151909550915080821115620002eb57600080fd5b50620002fa8682870162000195565b9250506200030b6040850162000178565b90509250925092565b600181811c908216806200032957607f821691505b6020821081036200034a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003a0576000816000526020600020601f850160051c810160208610156200037b5750805b601f850160051c820191505b818110156200039c5782815560010162000387565b5050505b505050565b81516001600160401b03811115620003c157620003c16200012f565b620003d981620003d2845462000314565b8462000350565b602080601f831160018114620004115760008415620003f85750858301515b600019600386901b1c1916600185901b1785556200039c565b600085815260208120601f198616915b82811015620004425788860151825594840194600190910190840162000421565b5085821015620004615787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015620004ca5783516001600160a01b031683529284019291840191600101620004a3565b50909695505050505050565b610ed280620004e66000396000f3fe6080604052600436106100dd5760003560e01c8063736c0d5b1161007f578063f04e283e11610059578063f04e283e1461021d578063f2fde38b14610230578063f4d4d2f814610243578063fee81cf41461026357600080fd5b8063736c0d5b146101a15780638da5cb5b146101d15780639061b923146101fd57600080fd5b806325692962116100bb578063256929621461016757806354d1f13d1461016f5780635600f04f14610177578063715018a61461019957600080fd5b806301ffc9a7146100e25780631dcfea0914610117578063252498a214610145575b600080fd5b3480156100ee57600080fd5b506101026100fd3660046108c7565b610296565b60405190151581526020015b60405180910390f35b34801561012357600080fd5b506101376101323660046109cf565b6102cd565b60405190815260200161010e565b34801561015157600080fd5b50610165610160366004610a9d565b6102e4565b005b6101656102fe565b61016561034e565b34801561018357600080fd5b5061018c61038a565b60405161010e9190610b25565b610165610418565b3480156101ad57600080fd5b506101026101bc366004610b38565b60016020526000908152604090205460ff1681565b3480156101dd57600080fd5b50638b78c6d819546040516001600160a01b03909116815260200161010e565b34801561020957600080fd5b5061018c610218366004610b53565b61042c565b61016561022b366004610b38565b61058c565b61016561023e366004610b38565b6105cc565b34801561024f57600080fd5b5061018c61025e366004610b53565b6105f3565b34801561026f57600080fd5b5061013761027e366004610b38565b63389a75e1600c908152600091909152602090205490565b60006001600160e01b03198216639061b92360e01b14806102c757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006102db85858585610687565b95945050505050565b6102ec6106ff565b60006102f9828483610c49565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b6000805461039790610bbf565b80601f01602080910402602001604051908101604052809291908181526020018280546103c390610bbf565b80156104105780601f106103e557610100808354040283529160200191610410565b820191906000526020600020905b8154815290600101906020018083116103f357829003601f168201915b505050505081565b6104206106ff565b61042a600061071a565b565b60606000639061b92360e01b8686868660405160240161044f9493929190610d33565b60408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b031995909516949094179093528051600180825281830190925291935060009282015b6060815260200190600190039081610499579050509050600080546104bd90610bbf565b80601f01602080910402602001604051908101604052809291908181526020018280546104e990610bbf565b80156105365780601f1061050b57610100808354040283529160200191610536565b820191906000526020600020905b81548152906001019060200180831161051957829003601f168201915b50505050508160008151811061054e5761054e610d65565b6020908102919091010152604051630556f18360e41b815261058390309083908590631e9a9a5f60e31b908290600401610d7b565b60405180910390fd5b6105946106ff565b63389a75e1600c52806000526020600c2080544211156105bc57636f5e88186000526004601cfd5b600090556105c98161071a565b50565b6105d46106ff565b8060601b6105ea57637448fbae6000526004601cfd5b6105c98161071a565b606060008061060485858989610758565b6001600160a01b038216600090815260016020526040902054919350915060ff1661067d5760405162461bcd60e51b815260206004820152602360248201527f5369676e617475726556657269666965723a20496e76616c696420736967617460448201526275726560e81b6064820152608401610583565b9695505050505050565b815160209283012081519183019190912060408051601960f81b8186015260609690961b6bffffffffffffffffffffffff1916602287015260c09490941b6001600160c01b0319166036860152603e850191909152605e8085019190915282518085039091018152607e909301909152815191012090565b638b78c6d81954331461042a576382b429006000526004601cfd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6000606081808061076b86880188610e28565b92509250925060006107bf6107b930858d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250610687915050565b83610836565b9050428367ffffffffffffffff1610156108275760405162461bcd60e51b8152602060048201526024808201527f5369676e617475726556657269666965723a205369676e6174757265206578706044820152631a5c995960e21b6064820152608401610583565b99929850919650505050505050565b604051600190836000526020830151604052604083510361087257604083015160ff81901c601b016020526001600160ff1b0316606052610898565b604183510361089357606083015160001a6020526040830151606052610898565b600091505b6020600160806000855afa5191503d6108b957638baa579f6000526004601cfd5b600060605260405292915050565b6000602082840312156108d957600080fd5b81356001600160e01b0319811681146108f157600080fd5b9392505050565b80356001600160a01b038116811461090f57600080fd5b919050565b803567ffffffffffffffff8116811461090f57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261095357600080fd5b813567ffffffffffffffff8082111561096e5761096e61092c565b604051601f8301601f19908116603f011681019082821181831017156109965761099661092c565b816040528381528660208588010111156109af57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080608085870312156109e557600080fd5b6109ee856108f8565b93506109fc60208601610914565b9250604085013567ffffffffffffffff80821115610a1957600080fd5b610a2588838901610942565b93506060870135915080821115610a3b57600080fd5b50610a4887828801610942565b91505092959194509250565b60008083601f840112610a6657600080fd5b50813567ffffffffffffffff811115610a7e57600080fd5b602083019150836020828501011115610a9657600080fd5b9250929050565b60008060208385031215610ab057600080fd5b823567ffffffffffffffff811115610ac757600080fd5b610ad385828601610a54565b90969095509350505050565b6000815180845260005b81811015610b0557602081850181015186830182015201610ae9565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006108f16020830184610adf565b600060208284031215610b4a57600080fd5b6108f1826108f8565b60008060008060408587031215610b6957600080fd5b843567ffffffffffffffff80821115610b8157600080fd5b610b8d88838901610a54565b90965094506020870135915080821115610ba657600080fd5b50610bb387828801610a54565b95989497509550505050565b600181811c90821680610bd357607f821691505b602082108103610bf357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156102f9576000816000526020600020601f850160051c81016020861015610c225750805b601f850160051c820191505b81811015610c4157828155600101610c2e565b505050505050565b67ffffffffffffffff831115610c6157610c6161092c565b610c7583610c6f8354610bbf565b83610bf9565b6000601f841160018114610ca95760008515610c915750838201355b600019600387901b1c1916600186901b178355610d03565b600083815260209020601f19861690835b82811015610cda5786850135825560209485019460019092019101610cba565b5086821015610cf75760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610d47604083018688610d0a565b8281036020840152610d5a818587610d0a565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b600060a0820160018060a01b0388168352602060a0602085015281885180845260c08601915060c08160051b870101935060208a0160005b82811015610de15760bf19888703018452610dcf868351610adf565b95509284019290840190600101610db3565b50505050508281036040840152610df88187610adf565b6001600160e01b03198616606085015290508281036080840152610e1c8185610adf565b98975050505050505050565b600080600060608486031215610e3d57600080fd5b833567ffffffffffffffff80821115610e5557600080fd5b610e6187838801610942565b9450610e6f60208701610914565b93506040860135915080821115610e8557600080fd5b50610e9286828701610942565b915050925092509256fea26469706673582212202946e0f9776da0c0f03cc6e0dd2bb4a25cc681e857eaeb649eeb7ba3534bb80364736f6c63430008170033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000869140c91edf43214a3ecedeaf777cc7107ad71a000000000000000000000000000000000000000000000000000000000000004b68747470733a2f2f6c6f63616c686f73743a383030302f6170692f76312f646f6d61696e2f7265736f6c7665722f7265736f6c7665446f6d61696e2f7b73656e6465727d2f7b646174617d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a412c16ecd2198a6abce8235651e105684fb77ed",
"nonce": "0x1",
"accessList": []
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"transactionHash": "0xc904646584f1fd821c8c30b0f4df2eb69f94abccc5a474397e7e22ba90e51269",
"transactionIndex": "0xd",
"blockHash": "0xa18c42d59d547b6d5e389adde6becfad18a06eeea17dd9eccc8d4e75c3d49629",
"blockNumber": "0x59fb34",
"from": "0x869140c91eDF43214a3EcEdEAF777cc7107aD71a",
"to": null,
"cumulativeGasUsed": "0x27273e",
"gasUsed": "0xfbe87",
"contractAddress": "0x5F15c3B5949F5767F5Ca9013a8E4Ca4D97a053eD",
"logs": [
{
"address": "0x5F15c3B5949F5767F5Ca9013a8E4Ca4D97a053eD",
"topics": [
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x000000000000000000000000869140c91edf43214a3ecedeaf777cc7107ad71a"
],
"data": "0x",
"blockHash": "0xa18c42d59d547b6d5e389adde6becfad18a06eeea17dd9eccc8d4e75c3d49629",
"blockNumber": "0x59fb34",
"transactionHash": "0xc904646584f1fd821c8c30b0f4df2eb69f94abccc5a474397e7e22ba90e51269",
"transactionIndex": "0xd",
"logIndex": "0x1e",
"removed": false
},
{
"address": "0x5F15c3B5949F5767F5Ca9013a8E4Ca4D97a053eD",
"topics": [
"0xab0b9cc3a46b568cb08d985497cde8ab7e18892d01f58db7dc7f0d2af859b2d7"
],
"data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a412c16ecd2198a6abce8235651e105684fb77ed",
"blockHash": "0xa18c42d59d547b6d5e389adde6becfad18a06eeea17dd9eccc8d4e75c3d49629",
"blockNumber": "0x59fb34",
"transactionHash": "0xc904646584f1fd821c8c30b0f4df2eb69f94abccc5a474397e7e22ba90e51269",
"transactionIndex": "0xd",
"logIndex": "0x1f",
"removed": false
}
],
"status": "0x1",
"logsBloom": "0x00000000400000000000000000000000000000000000000000800008000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000001000000000000000000000000000000000000020000008000000000000800000000000000000000000000000000400000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000100000000000000000000200000002000000000000000",
"type": "0x2",
"effectiveGasPrice": "0x42d1b609e"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1715636813,
"chain": 11155111,
"commit": "5f0dc54"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"transactions": [
{
"hash": "0x5385b5f8b2376ca4d7888e7b6d7f429ca4e88640292e38ebddfd3bfd9959063e",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0x5F15c3B5949F5767F5Ca9013a8E4Ca4D97a053eD",
"function": "setUrl(string)",
"arguments": [
"\"http://localhost:8000/api/v1/domain/resolver/resolveDomain/{sender}/{data}\""
],
"transaction": {
"type": "0x02",
"from": "0x869140c91edf43214a3ecedeaf777cc7107ad71a",
"to": "0x5f15c3b5949f5767f5ca9013a8e4ca4d97a053ed",
"gas": "0x10736",
"value": "0x0",
"data": "0x252498a20000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004a687474703a2f2f6c6f63616c686f73743a383030302f6170692f76312f646f6d61696e2f7265736f6c7665722f7265736f6c7665446f6d61696e2f7b73656e6465727d2f7b646174617d00000000000000000000000000000000000000000000",
"nonce": "0x2",
"accessList": []
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"transactionHash": "0x5385b5f8b2376ca4d7888e7b6d7f429ca4e88640292e38ebddfd3bfd9959063e",
"transactionIndex": "0x3",
"blockHash": "0x5403573a93adc83ab9b82706d77d82c504b7e8b38921132f0827ee2de56fe02f",
"blockNumber": "0x59fb42",
"from": "0x869140c91eDF43214a3EcEdEAF777cc7107aD71a",
"to": "0x5F15c3B5949F5767F5Ca9013a8E4Ca4D97a053eD",
"cumulativeGasUsed": "0x635df",
"gasUsed": "0xb3fa",
"contractAddress": null,
"logs": [],
"status": "0x1",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"effectiveGasPrice": "0x433be5a18"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1715636990,
"chain": 11155111,
"commit": "5f0dc54"
}
Loading

0 comments on commit 27b1857

Please sign in to comment.