Skip to content

Commit 57c32b2

Browse files
committed
Merge branch 'refs/heads/main' into 480-chore-implement-pausable-in-servicemanager
# Conflicts: # contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json # contracts/src/core/AlignedLayerServiceManager.sol
2 parents 242df3b + 16e0b5b commit 57c32b2

26 files changed

+357
-99
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ on:
66
branches: [main]
77
pull_request:
88
branches: ["*"]
9-
9+
env:
10+
FFI_FOR_RELEASE: false
1011
jobs:
1112
build:
1213
runs-on: ubuntu-latest

Makefile

Lines changed: 43 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
OS := $(shell uname -s)
44

55
CONFIG_FILE?=config-files/config.yaml
6+
AGG_CONFIG_FILE?=config-files/config-aggregator.yaml
67

78
OPERATOR_VERSION=v0.1.6
89

@@ -14,6 +15,17 @@ ifeq ($(OS),Darwin)
1415
BUILD_ALL_FFI = $(MAKE) build_all_ffi_macos
1516
endif
1617

18+
19+
FFI_FOR_RELEASE ?= true
20+
21+
ifeq ($(FFI_FOR_RELEASE),true)
22+
RELEASE_FLAG=--release
23+
TARGET_REL_PATH=release
24+
else
25+
RELEASE_FLAG=
26+
TARGET_REL_PATH=debug
27+
endif
28+
1729
help:
1830
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
1931

@@ -68,10 +80,9 @@ anvil_start_with_block_time:
6880
@echo "Starting Anvil..."
6981
anvil --load-state contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json --block-time 3
7082

71-
# TODO: Allow enviroment variables / different configuration files
7283
aggregator_start:
7384
@echo "Starting Aggregator..."
74-
@go run aggregator/cmd/main.go --config $(CONFIG_FILE) \
85+
@go run aggregator/cmd/main.go --config $(AGG_CONFIG_FILE) \
7586
2>&1 | zap-pretty
7687

7788
aggregator_send_dummy_responses:
@@ -164,10 +175,13 @@ __BATCHER__:
164175

165176
BURST_SIZE=5
166177

178+
batcher_fund_service_manager_balance:
179+
@. ./scripts/fund_batcher_balance_in_aligned_devnet.sh
180+
167181
./batcher/aligned-batcher/.env:
168182
@echo "To start the Batcher ./batcher/aligned-batcher/.env needs to be manually set"; false;
169183

170-
batcher_start: ./batcher/aligned-batcher/.env
184+
batcher_start: ./batcher/aligned-batcher/.env batcher_fund_service_manager_balance
171185
@echo "Starting Batcher..."
172186
@cargo +nightly-2024-04-17 run --manifest-path ./batcher/aligned-batcher/Cargo.toml --release -- --config ./config-files/config.yaml --env-file ./batcher/aligned-batcher/.env
173187

@@ -534,12 +548,12 @@ build_binaries:
534548

535549
__SP1_FFI__: ##
536550
build_sp1_macos:
537-
@cd operator/sp1/lib && cargo build --release
538-
@cp operator/sp1/lib/target/release/libsp1_verifier_ffi.dylib operator/sp1/lib/libsp1_verifier.dylib
551+
@cd operator/sp1/lib && cargo build $(RELEASE_FLAG)
552+
@cp operator/sp1/lib/target/$(TARGET_REL_PATH)/libsp1_verifier_ffi.dylib operator/sp1/lib/libsp1_verifier.dylib
539553

540554
build_sp1_linux:
541-
@cd operator/sp1/lib && cargo build --release
542-
@cp operator/sp1/lib/target/release/libsp1_verifier_ffi.so operator/sp1/lib/libsp1_verifier.so
555+
@cd operator/sp1/lib && cargo build $(RELEASE_FLAG)
556+
@cp operator/sp1/lib/target/$(TARGET_REL_PATH)/libsp1_verifier_ffi.so operator/sp1/lib/libsp1_verifier.so
543557

544558
test_sp1_rust_ffi:
545559
@echo "Testing SP1 Rust FFI source code..."
@@ -562,12 +576,12 @@ generate_sp1_fibonacci_proof:
562576

563577
__RISC_ZERO_FFI__: ##
564578
build_risc_zero_macos:
565-
@cd operator/risc_zero/lib && cargo build --release
566-
@cp operator/risc_zero/lib/target/release/librisc_zero_verifier_ffi.dylib operator/risc_zero/lib/librisc_zero_verifier_ffi.dylib
579+
@cd operator/risc_zero/lib && cargo build $(RELEASE_FLAG)
580+
@cp operator/risc_zero/lib/target/$(TARGET_REL_PATH)/librisc_zero_verifier_ffi.dylib operator/risc_zero/lib/librisc_zero_verifier_ffi.dylib
567581

568582
build_risc_zero_linux:
569-
@cd operator/risc_zero/lib && cargo build --release
570-
@cp operator/risc_zero/lib/target/release/librisc_zero_verifier_ffi.so operator/risc_zero/lib/librisc_zero_verifier_ffi.so
583+
@cd operator/risc_zero/lib && cargo build $(RELEASE_FLAG)
584+
@cp operator/risc_zero/lib/target/$(TARGET_REL_PATH)/librisc_zero_verifier_ffi.so operator/risc_zero/lib/librisc_zero_verifier_ffi.so
571585

572586
test_risc_zero_rust_ffi:
573587
@echo "Testing RISC Zero Rust FFI source code..."
@@ -588,14 +602,14 @@ generate_risc_zero_fibonacci_proof:
588602

589603
__MERKLE_TREE_FFI__: ##
590604
build_merkle_tree_macos:
591-
@cd operator/merkle_tree/lib && cargo build --release
592-
@cp operator/merkle_tree/lib/target/release/libmerkle_tree.dylib operator/merkle_tree/lib/libmerkle_tree.dylib
593-
@cp operator/merkle_tree/lib/target/release/libmerkle_tree.a operator/merkle_tree/lib/libmerkle_tree.a
605+
@cd operator/merkle_tree/lib && cargo build $(RELEASE_FLAG)
606+
@cp operator/merkle_tree/lib/target/$(TARGET_REL_PATH)/libmerkle_tree.dylib operator/merkle_tree/lib/libmerkle_tree.dylib
607+
@cp operator/merkle_tree/lib/target/$(TARGET_REL_PATH)/libmerkle_tree.a operator/merkle_tree/lib/libmerkle_tree.a
594608

595609
build_merkle_tree_linux:
596-
@cd operator/merkle_tree/lib && cargo build --release
597-
@cp operator/merkle_tree/lib/target/release/libmerkle_tree.so operator/merkle_tree/lib/libmerkle_tree.so
598-
@cp operator/merkle_tree/lib/target/release/libmerkle_tree.a operator/merkle_tree/lib/libmerkle_tree.a
610+
@cd operator/merkle_tree/lib && cargo build $(RELEASE_FLAG)
611+
@cp operator/merkle_tree/lib/target/$(TARGET_REL_PATH)/libmerkle_tree.so operator/merkle_tree/lib/libmerkle_tree.so
612+
@cp operator/merkle_tree/lib/target/$(TARGET_REL_PATH)/libmerkle_tree.a operator/merkle_tree/lib/libmerkle_tree.a
599613

600614
test_merkle_tree_rust_ffi:
601615
@echo "Testing Merkle Tree Rust FFI source code..."
@@ -611,14 +625,14 @@ test_merkle_tree_go_bindings_linux: build_merkle_tree_linux
611625

612626
__HALO2_KZG_FFI__: ##
613627
build_halo2_kzg_macos:
614-
@cd operator/halo2kzg/lib && cargo build --release
615-
@cp operator/halo2kzg/lib/target/release/libhalo2kzg_verifier_ffi.dylib operator/halo2kzg/lib/libhalo2kzg_verifier.dylib
616-
@cp operator/halo2kzg/lib/target/release/libhalo2kzg_verifier_ffi.a operator/halo2kzg/lib/libhalo2kzg_verifier.a
628+
@cd operator/halo2kzg/lib && cargo build $(RELEASE_FLAG)
629+
@cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.dylib operator/halo2kzg/lib/libhalo2kzg_verifier.dylib
630+
@cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.a operator/halo2kzg/lib/libhalo2kzg_verifier.a
617631

618632
build_halo2_kzg_linux:
619-
@cd operator/halo2kzg/lib && cargo build --release
620-
@cp operator/halo2kzg/lib/target/release/libhalo2kzg_verifier_ffi.so operator/halo2kzg/lib/libhalo2kzg_verifier.so
621-
@cp operator/halo2kzg/lib/target/release/libhalo2kzg_verifier_ffi.a operator/halo2kzg/lib/libhalo2kzg_verifier.a
633+
@cd operator/halo2kzg/lib && cargo build $(RELEASE_FLAG)
634+
@cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.so operator/halo2kzg/lib/libhalo2kzg_verifier.so
635+
@cp operator/halo2kzg/lib/target/$(TARGET_REL_PATH)/libhalo2kzg_verifier_ffi.a operator/halo2kzg/lib/libhalo2kzg_verifier.a
622636

623637
test_halo2_kzg_rust_ffi:
624638
@echo "Testing Halo2-KZG Rust FFI source code..."
@@ -642,14 +656,14 @@ generate_halo2_kzg_proof:
642656

643657
__HALO2_IPA_FFI__: ##
644658
build_halo2_ipa_macos:
645-
@cd operator/halo2ipa/lib && cargo build --release
646-
@cp operator/halo2ipa/lib/target/release/libhalo2ipa_verifier_ffi.dylib operator/halo2ipa/lib/libhalo2ipa_verifier.dylib
647-
@cp operator/halo2ipa/lib/target/release/libhalo2ipa_verifier_ffi.a operator/halo2ipa/lib/libhalo2ipa_verifier.a
659+
@cd operator/halo2ipa/lib && cargo build $(RELEASE_FLAG)
660+
@cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.dylib operator/halo2ipa/lib/libhalo2ipa_verifier.dylib
661+
@cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.a operator/halo2ipa/lib/libhalo2ipa_verifier.a
648662

649663
build_halo2_ipa_linux:
650-
@cd operator/halo2ipa/lib && cargo build --release
651-
@cp operator/halo2ipa/lib/target/release/libhalo2ipa_verifier_ffi.so operator/halo2ipa/lib/libhalo2ipa_verifier.so
652-
@cp operator/halo2ipa/lib/target/release/libhalo2ipa_verifier_ffi.a operator/halo2ipa/lib/libhalo2ipa_verifier.a
664+
@cd operator/halo2ipa/lib && cargo build $(RELEASE_FLAG)
665+
@cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.so operator/halo2ipa/lib/libhalo2ipa_verifier.so
666+
@cp operator/halo2ipa/lib/target/$(TARGET_REL_PATH)/libhalo2ipa_verifier_ffi.a operator/halo2ipa/lib/libhalo2ipa_verifier.a
653667

654668
test_halo2_ipa_rust_ffi:
655669
@echo "Testing Halo2-KZG Rust FFI source code..."

batcher/aligned-batcher-lib/src/types/mod.rs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use anyhow::anyhow;
21
use ethers::types::Address;
32
use lambdaworks_crypto::merkle_tree::{
43
merkle::MerkleTree, proof::Proof, traits::IsMerkleTreeBackend,
@@ -130,19 +129,6 @@ impl BatchInclusionData {
130129
}
131130
}
132131

133-
pub fn parse_proving_system(proving_system: &str) -> anyhow::Result<ProvingSystemId> {
134-
match proving_system {
135-
"GnarkPlonkBls12_381" => Ok(ProvingSystemId::GnarkPlonkBls12_381),
136-
"GnarkPlonkBn254" => Ok(ProvingSystemId::GnarkPlonkBn254),
137-
"Groth16Bn254" => Ok(ProvingSystemId::Groth16Bn254),
138-
"SP1" => Ok(ProvingSystemId::SP1),
139-
"Halo2IPA" => Ok(ProvingSystemId::Halo2IPA),
140-
"Halo2KZG" => Ok(ProvingSystemId::Halo2KZG),
141-
"Risc0" => Ok(ProvingSystemId::Risc0),
142-
_ => Err(anyhow!("Invalid proving system: {}, Available proving systems are: [GnarkPlonkBls12_381, GnarkPlonkBn254, Groth16Bn254, SP1, Halo2KZG, Halo2IPA]", proving_system))
143-
}
144-
}
145-
146132
#[cfg(test)]
147133
mod test {
148134
use super::*;

batcher/aligned/src/errors.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use ethers::signers::WalletError;
99
pub enum BatcherClientError {
1010
MissingParameter(String),
1111
InvalidUrl(url::ParseError, String),
12-
InvalidProvingSystem(String),
1312
ConnectionError(tokio_tungstenite::tungstenite::Error),
1413
IoError(PathBuf, io::Error),
1514
SerdeError(serde_json::Error),
@@ -57,9 +56,6 @@ impl fmt::Debug for BatcherClientError {
5756
BatcherClientError::InvalidUrl(err, url) => {
5857
write!(f, "Invalid URL \"{}\", {}", url, err)
5958
}
60-
BatcherClientError::InvalidProvingSystem(proving_system) => {
61-
write!(f, "Invalid proving system: {}", proving_system)
62-
}
6359
BatcherClientError::ConnectionError(e) => {
6460
write!(f, "Web Socket Connection error: {}", e)
6561
}

batcher/aligned/src/main.rs

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,16 @@ use tokio_tungstenite::connect_async;
2323
use tokio_tungstenite::tungstenite::Message;
2424
use tokio_tungstenite::{MaybeTlsStream, WebSocketStream};
2525

26-
use aligned_batcher_lib::types::{
27-
parse_proving_system, BatchInclusionData, ProvingSystemId, VerificationData,
28-
};
26+
use aligned_batcher_lib::types::{BatchInclusionData, ProvingSystemId, VerificationData};
2927
use clap::Subcommand;
3028
use ethers::utils::hex;
3129
use sha3::{Digest, Keccak256};
3230

3331
use crate::errors::BatcherClientError;
3432
use crate::types::AlignedVerificationData;
33+
use crate::AlignedCommands::GetVerificationKeyCommitment;
3534
use crate::AlignedCommands::Submit;
3635
use crate::AlignedCommands::VerifyProofOnchain;
37-
use crate::AlignedCommands::GetVerificationKeyCommitment;
3836

3937
use clap::{Parser, ValueEnum};
4038

@@ -53,7 +51,10 @@ pub enum AlignedCommands {
5351
VerifyProofOnchain(VerifyProofOnchainArgs),
5452

5553
// GetVericiationKey, command name is get-vk-commitment
56-
#[clap(about = "Create verification key for proving system", name = "get-vk-commitment")]
54+
#[clap(
55+
about = "Create verification key for proving system",
56+
name = "get-vk-commitment"
57+
)]
5758
GetVerificationKeyCommitment(GetVerificationKeyCommitmentArgs),
5859
}
5960

@@ -67,7 +68,7 @@ pub struct SubmitArgs {
6768
)]
6869
connect_addr: String,
6970
#[arg(name = "Proving system", long = "proving_system")]
70-
proving_system_flag: String,
71+
proving_system_flag: ProvingSystemArg,
7172
#[arg(name = "Proof file path", long = "proof")]
7273
proof_file_name: PathBuf,
7374
#[arg(name = "Public input file name", long = "public_input")]
@@ -130,6 +131,38 @@ pub enum Chain {
130131
Holesky,
131132
}
132133

134+
#[derive(Debug, Clone, ValueEnum)]
135+
pub enum ProvingSystemArg {
136+
#[clap(name = "GnarkPlonkBls12_381")]
137+
GnarkPlonkBls12_381,
138+
#[clap(name = "GnarkPlonkBn254")]
139+
GnarkPlonkBn254,
140+
#[clap(name = "Groth16Bn254")]
141+
Groth16Bn254,
142+
#[clap(name = "SP1")]
143+
SP1,
144+
#[clap(name = "Halo2KZG")]
145+
Halo2KZG,
146+
#[clap(name = "Halo2IPA")]
147+
Halo2IPA,
148+
#[clap(name = "Risc0")]
149+
Risc0,
150+
}
151+
152+
impl From<ProvingSystemArg> for ProvingSystemId {
153+
fn from(proving_system: ProvingSystemArg) -> Self {
154+
match proving_system {
155+
ProvingSystemArg::GnarkPlonkBls12_381 => ProvingSystemId::GnarkPlonkBls12_381,
156+
ProvingSystemArg::GnarkPlonkBn254 => ProvingSystemId::GnarkPlonkBn254,
157+
ProvingSystemArg::Groth16Bn254 => ProvingSystemId::Groth16Bn254,
158+
ProvingSystemArg::SP1 => ProvingSystemId::SP1,
159+
ProvingSystemArg::Halo2KZG => ProvingSystemId::Halo2KZG,
160+
ProvingSystemArg::Halo2IPA => ProvingSystemId::Halo2IPA,
161+
ProvingSystemArg::Risc0 => ProvingSystemId::Risc0,
162+
}
163+
}
164+
}
165+
133166
#[tokio::main]
134167
async fn main() -> Result<(), errors::BatcherClientError> {
135168
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init();
@@ -324,8 +357,7 @@ async fn receive(
324357
}
325358

326359
fn verification_data_from_args(args: SubmitArgs) -> Result<VerificationData, BatcherClientError> {
327-
let proving_system = parse_proving_system(&args.proving_system_flag)
328-
.map_err(|_| BatcherClientError::InvalidProvingSystem(args.proving_system_flag))?;
360+
let proving_system = args.proving_system_flag.into();
329361

330362
// Read proof file
331363
let proof = read_file(args.proof_file_name)?;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"pubKey":"E([2836088353050477845347925486470168020568465207212129112527815811278071168630,3160427639470623810295719163087493911148458124491004113623503371537041864385])","crypto":{"cipher":"aes-128-ctr","ciphertext":"208c421cf636f275a42ed905177703c5c33150a405dd9e1b2c7348976f85dcfe","cipherparams":{"iv":"ca35157d20418b2a5f3e08a6e36596fd"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"925af4285f14851f9d83eb7fc2c0ce7ca9f50aa77385519d994ee147f1410607"},"mac":"7e21f43562c4b4cd10b9fe5a149ce66ea17444167f788d6a02a67232d953c4e2"}}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"address":"15d34aaf54267db7d7c367839aaf71a00a2c6a65","crypto":{"cipher":"aes-128-ctr","ciphertext":"c649f534580a3f0bf000b221afb0731052f7699298f618e79b2b99fd974c4b16","cipherparams":{"iv":"2fad203c48a2ae479673b17bf110a988"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"72b1c2700f1cccebc468dafecf8de51f19c969389caae7e414c74d699a21c8c4"},"mac":"f093f9d47d3b9aa19be03f2bb9ae96b8c6da7ad0a7c7c0165bdbf84c54c9e26f"},"id":"f2925fb0-b209-4210-af6d-10c44b0e4a84","version":3}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Common variables for all the services
2+
# 'production' only prints info and above. 'development' also prints debug
3+
environment: "production"
4+
aligned_layer_deployment_config_file_path: "./contracts/script/output/devnet/alignedlayer_deployment_output.json"
5+
eigen_layer_deployment_config_file_path: "./contracts/script/output/devnet/eigenlayer_deployment_output.json"
6+
eth_rpc_url: "http://localhost:8545"
7+
eth_ws_url: "ws://localhost:8545"
8+
eigen_metrics_ip_port_address: "localhost:9090"
9+
10+
## ECDSA Configurations
11+
ecdsa:
12+
private_key_store_path: "config-files/anvil.aggregator.ecdsa.key.json"
13+
private_key_store_password: ""
14+
15+
## BLS Configurations
16+
bls:
17+
private_key_store_path: "config-files/anvil.aggregator.bls.key.json"
18+
private_key_store_password: ""
19+
20+
# ## Batcher configurations # batcher:
21+
# block_interval: 3
22+
# batch_size_interval: 10
23+
# max_proof_size: 67108864 # 64 MiB
24+
# max_batch_size: 268435456 # 256 MiB
25+
# eth_ws_reconnects: 99999999999999
26+
# pre_verification_is_enabled: true
27+
28+
## Aggregator Configurations
29+
aggregator:
30+
server_ip_port_address: localhost:8090
31+
bls_public_key_compendium_address: 0x322813Fd9A801c5507c9de605d63CEA4f2CE6c44
32+
avs_service_manager_address: 0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690
33+
enable_metrics: true
34+
metrics_ip_port_address: localhost:9091
35+
## Operator Configurations
36+
# operator:
37+
# aggregator_rpc_server_ip_port_address: localhost:8090
38+
# address: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
39+
# earnings_receiver_address: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
40+
# delegation_approver_address: "0x0000000000000000000000000000000000000000"
41+
# staker_opt_out_window_blocks: 0
42+
# metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json"
43+
# enable_metrics: true
44+
# metrics_ip_port_address: localhost:9092
45+
# max_batch_size: 268435456 # 256 MiB
46+
# # Operators variables needed for register it in EigenLayer
47+
# el_delegation_manager_address: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9"
48+
# private_key_store_path: config-files/anvil.ecdsa.key.json
49+
# bls_private_key_store_path: config-files/anvil.bls.key.json
50+
# signer_type: local_keystore
51+
# chain_id: 31337

contracts/script/deploy/AlignedLayerDeployer.s.sol

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser {
119119
* not yet deployed, we give these proxies an empty contract as the initial implementation, to act as if they have no code.
120120
*/
121121
alignedLayerServiceManager = AlignedLayerServiceManager(
122-
address(
122+
payable(
123123
new TransparentUpgradeableProxy(
124124
address(emptyContract),
125125
address(alignedLayerProxyAdmin),
@@ -355,7 +355,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser {
355355
* not yet deployed, we give these proxies an empty contract as the initial implementation, to act as if they have no code.
356356
*/
357357
alignedLayerServiceManager = AlignedLayerServiceManager(
358-
address(
358+
payable(
359359
new TransparentUpgradeableProxy(
360360
address(emptyContract),
361361
address(alignedLayerProxyAdmin),
@@ -720,7 +720,10 @@ contract AlignedLayerDeployer is ExistingDeploymentParser {
720720
);
721721
}
722722

723-
function _writeOutput(string memory config_data, string memory outputPath) internal {
723+
function _writeOutput(
724+
string memory config_data,
725+
string memory outputPath
726+
) internal {
724727
string memory parent_object = "parent object";
725728

726729
string memory deployed_addresses = "addresses";

contracts/script/upgrade/AlignedLayerUpgrader.s.sol

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,11 @@ contract AlignedLayerUpgrader is Script {
7272

7373
// alignedLayerServiceManager is the proxy
7474
AlignedLayerServiceManager alignedLayerServiceManager = AlignedLayerServiceManager(
75-
stdJson.readAddress(
76-
aligned_deployment_file,
77-
".addresses.alignedLayerServiceManager"
75+
payable(
76+
stdJson.readAddress(
77+
aligned_deployment_file,
78+
".addresses.alignedLayerServiceManager"
79+
)
7880
)
7981
);
8082

0 commit comments

Comments
 (0)