diff --git a/foundry.toml b/foundry.toml index 88a66b9..bff7b5b 100644 --- a/foundry.toml +++ b/foundry.toml @@ -32,6 +32,7 @@ max_test_rejects = 128_000 [etherscan] mainnet = { key = "${API_KEY_ETHERSCAN}" } sepolia = { key = "${API_KEY_ETHERSCAN}" } + 2442 = { key = "${API_KEY_CARDONA}", url = "https://api-cardona-zkevm.polygonscan.com/api" } [fmt] bracket_spacing = true @@ -46,6 +47,10 @@ max_test_rejects = 128_000 [rpc_endpoints] localhost = "http://localhost:8545" sepolia = "https://eth-sepolia.g.alchemy.com/v2/${API_KEY_ALCHEMY}" + 2442 = "https://rpc.cardona.zkevm-rpc.com" [profile.sepolia] libraries = ["node_modules/@zk-kit/imt.sol/contracts/LazyIMT.sol:LazyIMT:0x22317F732AE9f9015b0866d03319a441FB42cd7f", "node_modules/poseidon-solidity/PoseidonT3.sol:PoseidonT3:0x4CF6285AC1E3ddAD6E1E378146CbCd3A6CA3Ed60"] + +[profile.cardona] +libraries = ["node_modules/@zk-kit/imt.sol/contracts/LazyIMT.sol:LazyIMT:0x8176F5f2A49cDBcCB46487D9C839c45D0200A270", "node_modules/poseidon-solidity/PoseidonT3.sol:PoseidonT3:0x99419DF6428Bad6Fe117513129FACaD4864afdcF"] diff --git a/package.json b/package.json index 055091e..7f80cf4 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "release": "commit-and-tag-version", "adorno": "pnpm prettier:write && forge fmt && forge snapshot && pnpm gas-report", "deploy:sepolia": "./envCheck.sh && FOUNDRY_PROFILE=sepolia forge script --chain sepolia script/Deploy.s.sol:Deploy --rpc-url $RPC_URL --broadcast --verify -vv --account $ACCOUNT --legacy", + "deploy:cardona": "./envCheck.sh && FOUNDRY_PROFILE=cardona forge script script/Deploy.s.sol:Deploy --chain 2442 --rpc-url https://rpc.cardona.zkevm-rpc.com --broadcast --verify -vv --account rln --legacy", "deploy:localhost": "./envCheck.sh && forge script script/Deploy.s.sol:Deploy --rpc-url $RPC_URL --broadcast -vv --account $ACCOUNT" } } diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol index fe2630f..2f9144f 100644 --- a/script/Deploy.s.sol +++ b/script/Deploy.s.sol @@ -16,3 +16,17 @@ contract Deploy is BaseScript { w = WakuRlnV2(proxy); } } + +contract DeployLibs is BaseScript { + function run() public broadcast returns (address poseidonT3, address lazyImt) { + bytes memory poseidonT3Bytecode = type(PoseidonT3).creationCode; + assembly { + poseidonT3 := create(0, add(poseidonT3Bytecode, 0x20), mload(poseidonT3Bytecode)) + } + + bytes memory lazyImtBytecode = type(LazyIMT).creationCode; + assembly { + lazyImt := create(0, add(lazyImtBytecode, 0x20), mload(lazyImtBytecode)) + } + } +}