Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ out/

# OS
.DS_Store

# Git worktrees
*.worktrees/
22 changes: 18 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -788,10 +788,13 @@ sequenceDiagram
Required environment variables:
- `DEPLOYER_PRIVATE_KEY`: Private key for deployment transactions
- `SERVER_ADDRESS`: Backend server address
- `ADMIN_ADDRESS`: The admin address for the contract
- `RPC_NODE_URL_8453`: Base network RPC endpoint
- `ETHERSCAN_API_KEY`: For contract verification (optional)

Notes:
- `Deploy.s.sol` currently has swap router/factory addresses hardcoded for Base mainnet (`chainId == 8453`)
- `Deploy.s.sol` is selective and only deploys contracts with missing/zero addresses in `deployments.json`


### Deploy

Expand All @@ -808,11 +811,22 @@ Deployment addresses saved to `deployments.json`.
# Register ERC4626 vaults
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" <VAULT_ADDRESS> erc4626

# Register 0x swap target
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0x0000000000001fF3684f28c67538d4D072C22734 zerox

# Register other vaults
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0x4e65fE4DbA92790696d040ac24Aa414708F5c0AB aave
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0xb125E6687d4313864e53df431d5425969c15Eb2F compound
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0xEdc817A28E8B93B03976FBd4a3dDBc9f7D176c22 moonwell

# Rgister UniswapV3 router
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0x2626664c2603336E57B271c5C0b26F421741e481 uniswapv3
# Rgister AerodromeV2 router
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43 aerodromev2
# Rgister AerodromeCL router
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0xBE6D8f0d05cC4be24d5167a3eF062215bE6D18a5 aerodromecl
# Register Merkl
forge script script/RegisterVault.s.sol:RegisterVaultScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address,string)" 0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae merkl

# Add sellable tokens to the swap sell policy (tokens that agents are allowed to swap)
forge script script/AddSellableTokens.s.sol:AddSellableTokensScript --rpc-url $RPC_NODE_URL_8453 --broadcast --sig "run(address[])" "[<token_1>, <token_2>, ...]"
```

(temp) test with:
Expand Down
175 changes: 175 additions & 0 deletions broadcast/AddSellableTokens.s.sol/8453/run-1771018257824.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
{
"transactions": [
{
"hash": "0x61cade08cfa18bb5c6682db6f94e6193c6d0bce8f325c69558b00e2660f9dc38",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"function": "schedule(address,uint256,bytes,bytes32,bytes32,uint256)",
"arguments": [
"0x153e4801852249d1f7D05CCB13c1D1CF8AE7c466",
"0",
"0x99b39dc100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000590830dfdf9a3f68afcdde2694773debdf267774",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x246250b5c38bf75f992da1df0c5fca203c2c386ab9f5f2876942203e40dfe40f",
"0"
],
"transaction": {
"from": "0xf8cbf6437d2473ec59885299af38d9a13ce97eca",
"to": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"gas": "0x1339b",
"value": "0x0",
"input": "0x01d5062a000000000000000000000000153e4801852249d1f7d05ccb13c1d1cf8ae7c466000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000246250b5c38bf75f992da1df0c5fca203c2c386ab9f5f2876942203e40dfe40f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006499b39dc100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000590830dfdf9a3f68afcdde2694773debdf26777400000000000000000000000000000000000000000000000000000000",
"nonce": "0x2d",
"chainId": "0x2105"
},
"additionalContracts": [],
"isFixedGasLimit": false
},
{
"hash": "0xfa1cc85ceb61494857cc9719cf2721d4e3443c40191211dfe982a2a03c7d74a9",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"function": "execute(address,uint256,bytes,bytes32,bytes32)",
"arguments": [
"0x153e4801852249d1f7D05CCB13c1D1CF8AE7c466",
"0",
"0x99b39dc100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000590830dfdf9a3f68afcdde2694773debdf267774",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x246250b5c38bf75f992da1df0c5fca203c2c386ab9f5f2876942203e40dfe40f"
],
"transaction": {
"from": "0xf8cbf6437d2473ec59885299af38d9a13ce97eca",
"to": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"gas": "0x28318",
"value": "0x0",
"input": "0x134008d3000000000000000000000000153e4801852249d1f7d05ccb13c1d1cf8ae7c466000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000246250b5c38bf75f992da1df0c5fca203c2c386ab9f5f2876942203e40dfe40f000000000000000000000000000000000000000000000000000000000000006499b39dc100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000590830dfdf9a3f68afcdde2694773debdf26777400000000000000000000000000000000000000000000000000000000",
"nonce": "0x2e",
"chainId": "0x2105"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0x25a1abc",
"logs": [
{
"address": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"topics": [
"0x4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca",
"0x0083b1a04ab4ed228c6f5368661700f19d7bff61b4ec91afde90cf6fbc9511e0",
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"data": "0x000000000000000000000000153e4801852249d1f7d05ccb13c1d1cf8ae7c466000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006499b39dc100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000590830dfdf9a3f68afcdde2694773debdf26777400000000000000000000000000000000000000000000000000000000",
"blockHash": "0x369caf199f05644370b644110b6125d6e287709695ba1ec4549036219be03534",
"blockNumber": "0x2829d96",
"blockTimestamp": "0x698f980f",
"transactionHash": "0xfa1cc85ceb61494857cc9719cf2721d4e3443c40191211dfe982a2a03c7d74a9",
"transactionIndex": "0x60",
"logIndex": "0x208",
"removed": false
},
{
"address": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"topics": [
"0x20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387",
"0x0083b1a04ab4ed228c6f5368661700f19d7bff61b4ec91afde90cf6fbc9511e0"
],
"data": "0x246250b5c38bf75f992da1df0c5fca203c2c386ab9f5f2876942203e40dfe40f",
"blockHash": "0x369caf199f05644370b644110b6125d6e287709695ba1ec4549036219be03534",
"blockNumber": "0x2829d96",
"blockTimestamp": "0x698f980f",
"transactionHash": "0xfa1cc85ceb61494857cc9719cf2721d4e3443c40191211dfe982a2a03c7d74a9",
"transactionIndex": "0x60",
"logIndex": "0x209",
"removed": false
}
],
"logsBloom": "0x00000080000000000000000040000000000000000000000000000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000000800000000000000000000000000008000000000000400000000000020000000000000000000800000080000000000000000400001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000400000000000000020000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"transactionHash": "0xfa1cc85ceb61494857cc9719cf2721d4e3443c40191211dfe982a2a03c7d74a9",
"transactionIndex": "0x60",
"blockHash": "0x369caf199f05644370b644110b6125d6e287709695ba1ec4549036219be03534",
"blockNumber": "0x2829d96",
"gasUsed": "0xdeb4",
"effectiveGasPrice": "0x3f1f5c",
"blobGasUsed": "0x56e0",
"from": "0xf8cbf6437d2473ec59885299af38d9a13ce97eca",
"to": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"contractAddress": null,
"daFootprintGasScalar": "0x8b",
"l1BaseFeeScalar": "0x8dd",
"l1BlobBaseFee": "0x33c603",
"l1BlobBaseFeeScalar": "0x101c12",
"l1Fee": "0x37924040",
"l1GasPrice": "0x3a518dd",
"l1GasUsed": "0xa0a"
},
{
"status": "0x1",
"cumulativeGasUsed": "0x25bd275",
"logs": [
{
"address": "0x153e4801852249d1f7d05ccb13c1d1cf8ae7c466",
"topics": [
"0x4ac723403fd9e3f5fbe7116bb75c15981bd5cb9ca32255900e5c29d9597cbee2",
"0x000000000000000000000000590830dfdf9a3f68afcdde2694773debdf267774"
],
"data": "0x",
"blockHash": "0x369caf199f05644370b644110b6125d6e287709695ba1ec4549036219be03534",
"blockNumber": "0x2829d96",
"blockTimestamp": "0x698f980f",
"transactionHash": "0x61cade08cfa18bb5c6682db6f94e6193c6d0bce8f325c69558b00e2660f9dc38",
"transactionIndex": "0x61",
"logIndex": "0x20a",
"removed": false
},
{
"address": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"topics": [
"0xc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58",
"0x0083b1a04ab4ed228c6f5368661700f19d7bff61b4ec91afde90cf6fbc9511e0",
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"data": "0x000000000000000000000000153e4801852249d1f7d05ccb13c1d1cf8ae7c46600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006499b39dc100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000590830dfdf9a3f68afcdde2694773debdf26777400000000000000000000000000000000000000000000000000000000",
"blockHash": "0x369caf199f05644370b644110b6125d6e287709695ba1ec4549036219be03534",
"blockNumber": "0x2829d96",
"blockTimestamp": "0x698f980f",
"transactionHash": "0x61cade08cfa18bb5c6682db6f94e6193c6d0bce8f325c69558b00e2660f9dc38",
"transactionIndex": "0x61",
"logIndex": "0x20b",
"removed": false
}
],
"logsBloom": "0x00000080000000000000000000000001000000000000000000000000000000000000000100000000000000000000000000000000000800400000000000000000000000000000010000800000000000000000000000000000000000000000402000000000020000000000000000000800000000000000000000000400001000000000000000000000000000000000000000000000000000040010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000001000000000000000000000000000000020000000000000000000004000000000000000000000000000000000000820000000",
"type": "0x2",
"transactionHash": "0x61cade08cfa18bb5c6682db6f94e6193c6d0bce8f325c69558b00e2660f9dc38",
"transactionIndex": "0x61",
"blockHash": "0x369caf199f05644370b644110b6125d6e287709695ba1ec4549036219be03534",
"blockNumber": "0x2829d96",
"gasUsed": "0x1b7b9",
"effectiveGasPrice": "0x3f1f5c",
"blobGasUsed": "0x55ca",
"from": "0xf8cbf6437d2473ec59885299af38d9a13ce97eca",
"to": "0x773541f7c38be8106ae966ca9d6fee494a0edd24",
"contractAddress": null,
"daFootprintGasScalar": "0x8b",
"l1BaseFeeScalar": "0x8dd",
"l1BlobBaseFee": "0x33c603",
"l1BlobBaseFeeScalar": "0x101c12",
"l1Fee": "0x36b41220",
"l1GasPrice": "0x3a518dd",
"l1GasUsed": "0x9e2"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1771018257824,
"chain": 8453,
"commit": "feef4c5"
}
Loading