Skip to content

Commit 6f2b090

Browse files
committed
feat: proof aggregation service deploy scripts
1 parent 7065367 commit 6f2b090

11 files changed

+134
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
pragma solidity ^0.8.12;
2+
3+
import {AlignedProofAggregationService} from "../../src/core/AlignedProofAggregationService.sol";
4+
import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
5+
6+
import "forge-std/Script.sol";
7+
import "forge-std/StdJson.sol";
8+
9+
contract AlignedProofAggregationServiceDeployer is Script {
10+
function run(string memory configPath, string memory outputPath) external returns (address, address) {
11+
string memory config_data = vm.readFile(configPath);
12+
13+
address alignedAggregatorAddress = stdJson.readAddress(config_data, ".address.alignedAggregatorAddress");
14+
address sp1VerifierAddress = stdJson.readAddress(config_data, ".address.sp1VerifierAddress");
15+
16+
address ownerAddress = stdJson.readAddress(config_data, ".permissions.owner");
17+
18+
vm.startBroadcast();
19+
20+
AlignedProofAggregationService alignedProofAggregationService = new AlignedProofAggregationService();
21+
22+
ERC1967Proxy proxy = new ERC1967Proxy(
23+
address(alignedProofAggregationService),
24+
abi.encodeWithSignature(
25+
"initialize(address,address,address)", ownerAddress, alignedAggregatorAddress, sp1VerifierAddress
26+
)
27+
);
28+
29+
vm.stopBroadcast();
30+
31+
string memory addresses = "addresses";
32+
vm.serializeAddress(addresses, "alignedProofAggregationService", address(proxy));
33+
string memory addressesStr = vm.serializeAddress(
34+
addresses, "alignedProofAggregationServiceImplementation", address(alignedProofAggregationService)
35+
);
36+
37+
string memory parentObject = "parent";
38+
string memory finalJson = vm.serializeString(parentObject, "addresses", addressesStr);
39+
vm.writeJson(finalJson, outputPath);
40+
41+
return (address(proxy), address(alignedProofAggregationService));
42+
}
43+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"address": {
3+
"sp1VerifierAddress": "0x00000000000000000000000000000000000000FF",
4+
"alignedAggregatorAddress": "0xa0Ee7A142d267C1f36714E4a8F75612F20a79720",
5+
"alignedAggregatorAddressPrivateKey": "0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"
6+
},
7+
"permissions": {
8+
"owner": "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955"
9+
}
10+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"address": {
3+
"sp1VerifierAddress": "0x397A5f7f3dBd538f23DE225B51f532c34448dA9B",
4+
"alignedAggregatorAddress": "<aligned_aggregator_address>"
5+
},
6+
"permissions": {
7+
"owner": "<owner_address>"
8+
}
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"address": {
3+
"sp1VerifierAddress": "0x397A5f7f3dBd538f23DE225B51f532c34448dA9B",
4+
"alignedAggregatorAddress": "<aligned_aggregator_address>"
5+
},
6+
"permissions": {
7+
"owner": "<owner_address>"
8+
}
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"address": {
3+
"sp1VerifierAddress": "0x397A5f7f3dBd538f23DE225B51f532c34448dA9B",
4+
"alignedAggregatorAddress": "<aligned_aggregator_address>"
5+
},
6+
"permissions": {
7+
"owner": "<owner_address>"
8+
}
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"address": {
3+
"sp1VerifierAddress": "0x397A5f7f3dBd538f23DE225B51f532c34448dA9B",
4+
"alignedAggregatorAddress": "<aligned_aggregator_address>"
5+
},
6+
"permissions": {
7+
"owner": "<owner_address>"
8+
}
9+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"addresses": {
3+
"alignedProofAggregationService": "0xcbEAF3BDe82155F56486Fb5a1072cb8baAf547cc",
4+
"alignedProofAggregationServiceImplementation": "0xFD471836031dc5108809D173A067e8486B9047A3"
5+
}
6+
}

contracts/scripts/anvil/deploy_aligned_contracts.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,5 +65,14 @@ rm -f "script/output/devnet/alignedlayer_deployment_output.temp1.json"
6565
rm -f "script/output/devnet/alignedlayer_deployment_output.temp2.json"
6666

6767

68+
# Deploy proof aggregation service contract
69+
forge script script/deploy/AlignedProofAggregationServiceDeployer.s.sol \
70+
./script/deploy/config/devnet/proof-aggregator-service.devnet.config.json \
71+
./script/output/devnet/proof_aggregation_service_deployment_output.json \
72+
--rpc-url "http://localhost:8545" \
73+
--private-key "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" \
74+
--broadcast \
75+
--sig "run(string configPath, string outputPath)"
76+
6877
# Kill the anvil process to save state
6978
pkill anvil
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
RPC_URL=<RPC_URL>
2+
PRIVATE_KEY=<YOUR_PRIVATE_KEY>
3+
PROOF_AGGREGATION_SERVICE_CONFIG_PATH=./script/deploy/config/<NETWORK>/.holesky.config.json
4+
PROOF_AGGREGATION_SERVICE_OUTPUT_PATH=./script/output/<NETWORK>/proof-aggregator-service.<NETWORK>.config.json
5+
ETHERSCAN_API_KEY=<ETHERSCAN_API_KEY>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
3+
# cd to the directory of this script so that this can be run from anywhere
4+
parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
5+
# At this point we are in contracts/scripts
6+
cd "$parent_path"
7+
8+
# At this point we are in contracts
9+
cd ../
10+
11+
source scripts/.env
12+
13+
# Deploy Proof Aggregation Service Contract
14+
forge script script/deploy/AlignedProofAggregationServiceDeployer.s.sol \
15+
$PROOF_AGGREGATION_SERVICE_CONFIG_PATH \
16+
$PROOF_AGGREGATION_SERVICE_OUTPUT_PATH \
17+
--rpc-url $RPC_URL \
18+
--private-key $PRIVATE_KEY \
19+
--broadcast \
20+
--verify \
21+
--etherscan-api-key $ETHERSCAN_API_KEY \
22+
--sig "run(string memory batcherConfigPath, string memory outputPath)"

0 commit comments

Comments
 (0)