Skip to content

Commit

Permalink
Add support for Base network (#31)
Browse files Browse the repository at this point in the history
New deployment on Base with the following parameters:

```sh
export RECEIVER='0xA03be496e67Ec29bC62F01a428683D7F9c204930' # solver reward used in Base (changes depending on the network)
export TO_TOKEN='0x4200000000000000000000000000000000000006' # WETH in Base
export KEEPER='0x05C5494572E4aB2d48D3AB3aAF6bD4e7b1c98382' # same as in mainnet and Gnosis
export SETTLEMENT='0x9008D19f58AAbD9eD0D60971565AA8510560ab41' # same as in every network we support
export APP_DATA='0xbcca8463f460f14bca0185afeeb75923ee4434612f41063d0171b1e743ffe84b' # same as in mainnet and Gnosis
export TARGET_SAFE='0x423cEc87f19F0778f549846e0801ee267a917935' # address that uses the module
export MIN_OUT='100000000000000000' # 0.1 ETH, same as in Arbitrum
```

~Note that I removed the deployment on Gnosis because it's outdated: the
new one is at
[0x18b990DB05Bd4369A1b7259EfE5fC2a362508d7B](https://gnosisscan.io/address/0x18b990DB05Bd4369A1b7259EfE5fC2a362508d7B#readContract)
but there's no corresponding broadcast file available.~ (Addressed in
d2185ff.)

I also regenerated `networks.json` with the script at
`dev/generate-networks-file.sh`.

### How to test

Check the parameters and check verified code on Etherscan.
  • Loading branch information
fedgiac authored Jan 2, 2025
1 parent d2185ff commit 88cf4c7
Show file tree
Hide file tree
Showing 7 changed files with 119 additions and 70 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ out/
!/broadcast
/broadcast/*/31337/
/broadcast/**/dry-run/
/broadcast/**/**/run-latest.json

# Docs
docs/
Expand Down
60 changes: 60 additions & 0 deletions broadcast/COWFeeModule.s.sol/8453/run-1734954773.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"transactions": [
{
"hash": "0xc536a27afaae5136b69b25208c2753dd5e613a183d6a8e0722bed5dc4579c095",
"transactionType": "CREATE",
"contractName": "COWFeeModule",
"contractAddress": "0x1609a54e893f7c1b162fd246ba88039ba15a55b3",
"function": null,
"arguments": [
"0x9008D19f58AAbD9eD0D60971565AA8510560ab41",
"0x423cEc87f19F0778f549846e0801ee267a917935",
"0x4200000000000000000000000000000000000006",
"0x05C5494572E4aB2d48D3AB3aAF6bD4e7b1c98382",
"0xbcca8463f460f14bca0185afeeb75923ee4434612f41063d0171b1e743ffe84b",
"0xA03be496e67Ec29bC62F01a428683D7F9c204930",
"100000000000000000"
],
"transaction": {
"from": "0x600ef266463f2f9654c5cb8297eb833d4aedbfed",
"gas": "0x1b6681",
"value": "0x0",
"input": "0x6101a06040818152346101f65760e082611a978038038091610021828561025a565b8339810103126101f65761003482610291565b916020906004610045838301610291565b93610051818401610291565b9361005e60608501610291565b9660808501519760c061007360a08801610291565b9601519660018060a01b0380931698846101209a808c52875198898092634daa966160e11b82525afa968715610250575f9761020b575b50610140968752831660805260a05260c0528651835163f698da2560e01b815291839183916004918391165afa918215610201575f926101cf575b505060e05261010095865261016092835261018093845251936117f195866102a687396080518681816107340152611753015260a05186818161012e015281816108c60152610b58015260c0518681816103670152818161052d015281816106c60152610839015260e05186818161078d01526112250152518581816105a501526109e70152518481816102630152818161088801528181610cc10152818161127e01526115e301525183818161065801526110700152518281816107fa015281816109a60152610adf0152518181816102bc0152818161091401528181610a840152610c080152f35b90809250813d83116101fa575b6101e6818361025a565b810103126101f657515f806100e5565b5f80fd5b503d6101dc565b83513d5f823e3d90fd5b929096508483819593953d8311610249575b610227818361025a565b810103126101f6576004938261023d8795610291565b989294505091936100aa565b503d61021d565b86513d5f823e3d90fd5b601f909101601f19168101906001600160401b0382119082101761027d57604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101f65756fe60806040526004361015610011575f80fd5b5f3560e01c80633c930575146100e45780633f965e56146100df57806351160630146100da5780635131bf8e146100d55780635744daef146100d057806377a1736b146100cb5780638aebd348146100c6578063904d1da7146100c15780639b552cc2146100bc578063aced1661146100b7578063d6ad7a7e146100b2578063f698da25146100ad5763f7260d3e146100a8575f80fd5b6107b0565b610758565b6106ea565b61067c565b61060e565b6105c8565b610570565b6104c7565b6102df565b610287565b610219565b610187565b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b9181601f840112156101525782359167ffffffffffffffff8311610152576020808501948460051b01011161015257565b346101525760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101525767ffffffffffffffff600435818111610152576101d7903690600401610156565b919060243592828411610152573660238501121561015257836004013592831161015257366024606085028601011161015257602461021794019161081e565b005b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101525760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610152576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610152576004359067ffffffffffffffff908183116101525736602384011215610152578260040135918211610152576024906006933660248560061b830101116101525773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361049d5761039684610ec6565b945f5b8581106103a957610217876114a8565b80600191831b84016104266103cb60446103c48a8501610f89565b9301610f89565b61045260409182519384917f095ea7b3000000000000000000000000000000000000000000000000000000008c8401528c830160205f9193929373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283610de6565b61047961045d610ea1565b73ffffffffffffffffffffffffffffffffffffffff9094168452565b5f8884015282015261048b828a61100a565b52610496818961100a565b5001610399565b60046040517fc60eb335000000000000000000000000000000000000000000000000000000008152fd5b346101525760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101525760043567ffffffffffffffff811161015257610516903690600401610156565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361049d5761056b6102179261056383610ec6565b92839161106e565b6114a8565b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101525760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015257602061060061104b565b63ffffffff60405191168152f35b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101525760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610152575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b73ffffffffffffffffffffffffffffffffffffffff949391927f00000000000000000000000000000000000000000000000000000000000000008616330361049d576040517f70a082310000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000871673ffffffffffffffffffffffffffffffffffffffff1660048201527f00000000000000000000000000000000000000000000000000000000000000008716966020826024818b5afa948515610d775786925f96610d46575b506109576109456109128386610e6e565b7f00000000000000000000000000000000000000000000000000000000000000008910610d3e5760ff60015b1690610e6e565b9561094f87610ec6565b98899161106e565b6109e561096261104b565b61098f61096d610e80565b5f815273ffffffffffffffffffffffffffffffffffffffff909c1660208d0152565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660408c01525f60608c0181905260808c015263ffffffff1660a08b0152565b7f000000000000000000000000000000000000000000000000000000000000000060c08a01525f60e08a01527ff3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee3467756101008a015260016101208a01527f5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9806101408b01526101608a01525f5b818110610ba5575050505050610ab29394507f0000000000000000000000000000000000000000000000000000000000000000821015610ab4575b50506114a8565b565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166024820152604480820193909352918252610b9d9190610b8b90610b39606484610de6565b610b41610ea1565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152925f6020850152604084015261101e565b90610b96828561100a565b528261100a565b505f80610aab565b6040610bb2828488610f74565b610bf4610bda610bc183610f89565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff168d52565b602081013560608d015201358060808c01527f000000000000000000000000000000000000000000000000000000000000000011610d1457600190610d0d610c76610ca2610c418e611188565b6040519283917fec6cb13f00000000000000000000000000000000000000000000000000000000602084015260248301610fed565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610de6565b610caa610ea1565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008816168152905f60208301526040820152610cfb8784610e6e565b90610d06828d61100a565b528a61100a565b5001610a70565b60046040517f529196de000000000000000000000000000000000000000000000000000000008152fd5b60ff5f61093e565b610d6991965060203d602011610d70575b610d618183610de6565b810190610e27565b945f610901565b503d610d57565b610e36565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff821117610dc557604052565b610d7c565b6020810190811067ffffffffffffffff821117610dc557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dc557604052565b90816020910312610152575190565b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b91908201809211610e7b57565b610e41565b60405190610180820182811067ffffffffffffffff821117610dc557604052565b60405190610ab282610da9565b67ffffffffffffffff8111610dc55760051b60200190565b90610ed082610eae565b604090610ee06040519182610de6565b8381527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610f0e8295610eae565b01915f5b838110610f1f5750505050565b6020908251610f2d81610da9565b5f8152825f81830152606085830152828601015201610f12565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9190811015610f84576060020190565b610f47565b3573ffffffffffffffffffffffffffffffffffffffff811681036101525790565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b91906020611005600192604086526040860190610faa565b930152565b8051821015610f845760209160051b010190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211610e7b57565b610e1042064203428111610e7b57611c208101809111610e7b5763ffffffff1690565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16905f5b8381106110b6575050505050565b6110c48160051b8301610f89565b9060409182516020937f095ea7b3000000000000000000000000000000000000000000000000000000008583015286602483015260447fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8184015282526080820182811067ffffffffffffffff821117610dc5576001955f91835261116661114a610ea1565b73ffffffffffffffffffffffffffffffffffffffff9096168652565b840152820152611176828861100a565b52611181818761100a565b50016110a8565b7fffffffff0000000000000000000000000000000000000000000000000000000060a060427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0840180517fd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e48982526101a082209152604051907f190100000000000000000000000000000000000000000000000000000000000082527f000000000000000000000000000000000000000000000000000000000000000060028301526022820152209201516040519260208401527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060601b16604084015260e01b166054820152603881526112bc81610da9565b90565b908082519081815260208091019281808460051b8301019501935f915b8483106112ec5750505050505090565b90919293949584806113bc837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086600196030187528a51906101609082518152848301518582015261135b6040808501519083019073ffffffffffffffffffffffffffffffffffffffff169052565b606083810151908201526080808401519082015260a08084015163ffffffff169082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201528161014080940151938201520190610faa565b98019301930191949392906112dc565b9080606080820193925f915b600383106113e857505050505090565b9091929394848103835285518051918281526020928382019084808260051b8501019401925f5b82811061142f5750505050509080600192970193019301919392906113d8565b9091929394868061149b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe087600196030189528b8a519173ffffffffffffffffffffffffffffffffffffffff8351168152848301518582015281604080940151938201520190610faa565b970195019392910161140f565b9060409182516114b781610dca565b5f81528351936114c685610dca565b5f855280516114d481610dca565b5f81528151916114e383610da9565b80516114ee81610dca565b5f8152835260209485840152805161150581610dca565b5f81528184015251937f13d79a0b000000000000000000000000000000000000000000000000000000008186015260a485016080602487015284518091528160c487019501905f5b81811061161f575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc93848682030160448701528180895192838152019801915f5b82811061160b57505050508284926115bd88610c76946115cc97876116089b9c030160648801526112bf565b918483030160848501526113cc565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166116e0565b50565b83518a529881019892810192600101611591565b825173ffffffffffffffffffffffffffffffffffffffff168752958301959183019160010161154d565b91906040838203126101525782518015158103610152579260208082015167ffffffffffffffff9283821161015257019183601f84011215610152578251908111610dc557604051936116c3837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160186610de6565b8185528282850101116101525780825f94018386015e8301015290565b611749915f809273ffffffffffffffffffffffffffffffffffffffff918291604051968795869485937f5229073f000000000000000000000000000000000000000000000000000000008552166004840152836024840152608060448401526084830190610faa565b82606483015203927f0000000000000000000000000000000000000000000000000000000000000000165af1908115610d77575f905f92611796575b501561178e5790565b602081519101fd5b90506117b491503d805f833e6117ac8183610de6565b810190611649565b905f61178556fea26469706673582212202d143bc56eae9a2e3f5e0075b30fe943ac94cf39d25e0f1c4ef3a97da181b9e064736f6c634300081900330000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41000000000000000000000000423cec87f19f0778f549846e0801ee267a917935000000000000000000000000420000000000000000000000000000000000000600000000000000000000000005c5494572e4ab2d48d3ab3aaf6bd4e7b1c98382bcca8463f460f14bca0185afeeb75923ee4434612f41063d0171b1e743ffe84b000000000000000000000000a03be496e67ec29bc62f01a428683d7f9c204930000000000000000000000000000000000000000000000000016345785d8a0000",
"nonce": "0x1",
"chainId": "0x2105"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0x1474794",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"transactionHash": "0xc536a27afaae5136b69b25208c2753dd5e613a183d6a8e0722bed5dc4579c095",
"transactionIndex": "0x80",
"blockHash": "0xb131f1470a8f87778202cfc2c417f283e6c3b313ac3da1f93af849c4af99cf47",
"blockNumber": "0x16f790d",
"gasUsed": "0x1513c6",
"effectiveGasPrice": "0x691d06",
"from": "0x600ef266463f2f9654c5cb8297eb833d4aedbfed",
"to": null,
"contractAddress": "0x1609a54e893f7c1b162fd246ba88039ba15a55b3",
"l1BaseFeeScalar": "0x8dd",
"l1BlobBaseFee": "0x8a1f51",
"l1BlobBaseFeeScalar": "0x101c12",
"l1Fee": "0xace69253b2",
"l1GasPrice": "0x179b1b493",
"l1GasUsed": "0xc1b4"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1734954773,
"chain": 8453,
"commit": "f55fe3b"
}
1 change: 1 addition & 0 deletions index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const readConfig = async (): Promise<
'mainnet',
'gnosis',
'arbitrum',
'base',
] as const)
)
.addOption(new Option('--rpc-url <rpc-url>'))
Expand Down
12 changes: 10 additions & 2 deletions networks.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
{
"COWFeeModule": {
"1": {
"address": "0x502b16e41830a6f6d6738b93828ba66b42fe2dd9",
"transactionHash": "0x76fddce1f960d344ed9c74bce007f8108d05bcaf891ee5f487735b46e9177b6c"
"address": "0x643adac1a1fc6cce46120bc7fee8f58a7e535328",
"transactionHash": "0x63b794f560f493a627c3acb14f843340cac856fdc84c746d7d2dcff48a51d080"
},
"100": {
"address": "0x18b990db05bd4369a1b7259efe5fc2a362508d7b",
"transactionHash": "0xc075b9c392f7d743050f8e476c5782edce87cd0080017affa4f791e921a6fe82"
},
"42161": {
"address": "0xcddba79f1d999289e8d0173130f6f3e3d38c95dc",
"transactionHash": "0xf49a1a52c595497fbc25e0d829196622dede6ecd6157d71f79b72f2a52586b89"
},
"8453": {
"address": "0x1609a54e893f7c1b162fd246ba88039ba15a55b3",
"transactionHash": "0xc536a27afaae5136b69b25208c2753dd5e613a183d6a8e0722bed5dc4579c095"
}
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"dependencies": {
"@commander-js/extra-typings": "^12.0.1",
"@cowprotocol/app-data": "^2.1.0",
"@cowprotocol/cow-sdk": "^5.2.0",
"@cowprotocol/cow-sdk": "^5.9.0",
"axios": "^1.6.8",
"commander": "^12.0.0",
"ethers": "v5"
Expand Down
7 changes: 7 additions & 0 deletions ts/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ export const networkSpecificConfigs = {
rpcUrl: 'https://arb1.arbitrum.io/rpc',
explorer: 'https://explorer.cow.fi/arb1',
},
base: {
rpcUrl: 'https://base.llamarpc.com',
explorer: 'https://explorer.cow.fi/base',
},
};

export interface IConfig {
Expand Down Expand Up @@ -48,6 +52,9 @@ const toChainId = (network: keyof typeof networkSpecificConfigs) => {
case 'arbitrum': {
return SupportedChainId.ARBITRUM_ONE;
}
case 'base': {
return SupportedChainId.BASE;
}
default: {
throw new Error(`Unsupported network ${network}`);
}
Expand Down
Loading

0 comments on commit 88cf4c7

Please sign in to comment.