Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: changing Safe core addresses for Base, Optimism, Celo #202

Merged
merged 7 commits into from
Nov 6, 2024
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
42 changes: 0 additions & 42 deletions .github/workflows/release.yaml

This file was deleted.

8 changes: 3 additions & 5 deletions .github/workflows/workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@ jobs:
with:
submodules: recursive

- name: Get a specific Node.js version such that hardhat does not hang periodically
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Other changes are script-package related.

- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: "18.15.0"

# Install modules
- name: Install modules
Expand Down Expand Up @@ -74,7 +72,7 @@ jobs:
with:
go-version: "1.17.7"
- run: |
wget https://github.com/zricethezav/gitleaks/releases/download/v8.10.1/gitleaks_8.10.1_linux_x64.tar.gz && \
tar -xzf gitleaks_8.10.1_linux_x64.tar.gz && \
wget https://github.com/gitleaks/gitleaks/releases/download/v8.21.2/gitleaks_8.21.2_linux_x64.tar.gz && \
tar -xzf gitleaks_8.21.2_linux_x64.tar.gz && \
sudo install gitleaks /usr/bin && \
gitleaks detect --report-format json --report-path leak_report -v
19 changes: 18 additions & 1 deletion .gitleaksignore
Original file line number Diff line number Diff line change
Expand Up @@ -435,4 +435,21 @@ c71519f1ffae8a411ee44ee49de26d13ec6a0ce2:scripts/deployment/l2/globals_mode_main
cd3b8c411856aa346cdcc75db3b819447990d327:scripts/deployment/l2/globals_mode_mainnet.json:generic-api-key:1
cd3b8c411856aa346cdcc75db3b819447990d327:scripts/deployment/l2/globals_mode_mainnet.json:generic-api-key:2
cd3b8c411856aa346cdcc75db3b819447990d327:scripts/deployment/globals_mainnet.json:generic-api-key:1
cd3b8c411856aa346cdcc75db3b819447990d327:scripts/deployment/globals_mainnet.json:generic-api-key:2
cd3b8c411856aa346cdcc75db3b819447990d327:scripts/deployment/globals_mainnet.json:generic-api-key:2
0b8af885e455a5da1f331bb190c75290785bf74f:scripts/deployment/l2/globals_celo_mainnet.json:generic-api-key:1
0b8af885e455a5da1f331bb190c75290785bf74f:scripts/deployment/l2/globals_celo_mainnet.json:generic-api-key:2
0b8af885e455a5da1f331bb190c75290785bf74f:scripts/deployment/l2/globals_celo_mainnet.json:generic-api-key:1
0b8af885e455a5da1f331bb190c75290785bf74f:scripts/deployment/l2/globals_celo_mainnet.json:generic-api-key:2
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_base_mainnet.json:generic-api-key:1
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_base_sepolia.json:generic-api-key:1
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_celo_mainnet.json:generic-api-key:1
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_optimistic_mainnet.json:generic-api-key:1
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_optimistic_sepolia.json:generic-api-key:1
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/wormhole/globals_celo_mainnet.json:generic-api-key:1
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_base_mainnet.json:generic-api-key:2
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_base_sepolia.json:generic-api-key:2
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_celo_mainnet.json:generic-api-key:2
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_optimistic_mainnet.json:generic-api-key:2
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/globals_optimistic_sepolia.json:generic-api-key:2
894bdea54c5b2ec7a853abbad0db1e9bff699976:scripts/deployment/l2/wormhole/globals_celo_mainnet.json:generic-api-key:2
da106fa3b354dc6b8057b9585cbed1b0d4137881:scripts/deployment/l2/globals_optimistic_sepolia.json:generic-api-key:1
25 changes: 13 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "autonolas-registries",
"version": "1.0.0",
"version": "1.2.0",
"description": "Set of Autonolas registries contracts",
"main": "index.js",
"scripts": {
Expand All @@ -20,23 +20,25 @@
"devDependencies": {
"@gnosis.pm/safe-contracts": "^1.3.0",
"@nomicfoundation/hardhat-chai-matchers": "^1.0.6",
"@nomicfoundation/hardhat-network-helpers": "^1.0.9",
"@nomicfoundation/hardhat-network-helpers": "^1.0.10",
"@nomicfoundation/hardhat-toolbox": "^2.0.2",
"@nomicfoundation/hardhat-ethers": "^3.0.5",
"@nomiclabs/hardhat-ethers": "^2.2.3",
"@nomiclabs/hardhat-etherscan": "^3.1.7",
"@typechain/ethers-v5": "^11.1.2",
"@typechain/hardhat": "^9.1.0",
"@types/mocha": "^10.0.3",
"chai": "^4.3.10",
"eslint": "^8.52.0",
"@types/mocha": "^10.0.9",
"chai": "^4.5.0",
"eslint": "^8.57.0",
"solhint": "^5.0.3",
"ethers": "^5.7.2",
"hardhat": "^2.22.13",
"hardhat": "^2.22.15",
"hardhat-contract-sizer": "^2.10.0",
"hardhat-deploy": "^0.11.43",
"hardhat-deploy-ethers": "^0.3.0-beta.13",
"hardhat-gas-reporter": "^1.0.9",
"hardhat-tracer": "^2.6.0",
"solidity-coverage": "^0.8.5"
"hardhat-deploy": "^0.12.1",
"hardhat-deploy-ethers": "^0.4.1",
"hardhat-gas-reporter": "^1.0.10",
"hardhat-tracer": "^2.8.1",
"solidity-coverage": "^0.8.13"
},
"dependencies": {
"@anders-t/ethers-ledger": "^1.0.4",
Expand All @@ -46,7 +48,6 @@
"@ethersproject/wallet": "^5.7.0",
"eth-permit": "^0.2.3",
"ethereum-sources-downloader": "^0.1.21",
"solhint": "^3.6.2",
"@arbitrum/sdk": "^v3.3.3"
}
}
3 changes: 0 additions & 3 deletions scripts/audit_chains/audit_contracts_setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,6 @@ async function checkOwner(chainId, contract, globalsInstance, log) {
customExpect(owner, globalsInstance["timelockAddress"], log + ", function: owner()");
} else {
// BridgeMediator for L2-s
// Note that for chiado bridgeMediatorAddress is the one with the mock Timelock (bridgeMediatorMockTimelockAddress)
// This is done in such a way because it is easier to test cross-chain transactions, as it's not possible via tenderly.
// This can be changed at any time for the bridgeMediator contract with the real Timelock on goerli.
customExpect(owner, globalsInstance["bridgeMediatorAddress"], log + ", function: owner()");
}
}
Expand Down
4 changes: 2 additions & 2 deletions scripts/deployment/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ as described in [deployment.md](https://github.com/valory-xyz/autonolas-registri
in [deploymentL2.md](https://github.com/valory-xyz/autonolas-registries/blob/main/docs/deploymentL2.md) specifically for L2 networks.

## Observations
- There are several files with global parameters based on the corresponding network. In order to work with the configuration, please copy `gobals_network.json` file to file the `gobals.json` one, where `network` is the corresponding network. For example: `cp gobals_goerli.json gobals.json`.
- There are several files with global parameters based on the corresponding network. In order to work with the configuration, please copy `gobals_network.json` file to file the `gobals.json` one, where `network` is the corresponding network. For example: `cp gobals_mainnet.json gobals.json`.
- Please note: if you encounter the `Unknown Error 0x6b0c`, then it is likely because the ledger is not connected or logged in.
- The script to change ownership of the registries to Timelock (`deploy_10_14_change_ownerships.js`) will be done after the DAO members voting.

Expand All @@ -22,7 +22,7 @@ npx hardhat compile
command as described in the [main readme](https://github.com/valory-xyz/autonolas-registries/blob/main/README.md).


Create a `globals.json` file in the root folder, or copy it from the file with pre-defined parameters (i.e., `scripts/deployment/globals_goerli.json` for the goerli testnet).
Create a `globals.json` file in the root folder, or copy it from the file with pre-defined parameters (i.e., `scripts/deployment/globals_mainnet.json` for the mainnet).

Parameters of the `globals.json` file:
- `contractVerification`: a flag for verifying contracts in deployment scripts (`true`) or skipping it (`false`);
Expand Down
4 changes: 2 additions & 2 deletions scripts/deployment/deploy_15_operator_whitelist.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ async function main() {
console.log("Contract address:", operatorWhitelist.address);
console.log("Transaction:", result.deployTransaction.hash);

// If on goerli, wait for half a minute for the transaction completion
if (providerName === "goerli") {
// If on sepolia, wait for half a minute for the transaction completion
if (providerName === "sepolia") {
await new Promise(r => setTimeout(r, 30000));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ async function main() {
console.log("Contract address:", serviceRegistryTokenUtility.address);
console.log("Transaction:", result.deployTransaction.hash);

// If on goerli, wait for half a minute for the transaction completion
if (providerName === "goerli") {
// If on sepolia, wait for half a minute for the transaction completion
if (providerName === "sepolia") {
await new Promise(r => setTimeout(r, 30000));
}

Expand Down
4 changes: 2 additions & 2 deletions scripts/deployment/deploy_17_service_manager_token.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ async function main() {
console.log("Contract address:", serviceManagerToken.address);
console.log("Transaction:", result.deployTransaction.hash);

// If on goerli, wait for half a minute for the transaction completion
if (providerName === "goerli") {
// If on sepolia, wait for half a minute for the transaction completion
if (providerName === "sepolia") {
await new Promise(r => setTimeout(r, 30000));
}

Expand Down
2 changes: 1 addition & 1 deletion scripts/deployment/deploy_21_service_staking_factory.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ async function main() {
console.log("Contract address:", stakingFactory.address);
console.log("Transaction:", result.deployTransaction.hash);

// If on goerli, wait for half a minute for the transaction completion
// If on sepolia, wait for half a minute for the transaction completion
if (providerName === "sepolia") {
await new Promise(r => setTimeout(r, 30000));
}
Expand Down
2 changes: 1 addition & 1 deletion scripts/deployment/l2/globals_base_mainnet.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"contractVerification":true,"useLedger":true,"derivationPath":"m/44'/60'/2'/0/0","providerName":"base","networkURL":"https://mainnet.base.org","gasPriceInGwei":"2","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","baseURI":"https://gateway.autonolas.tech/ipfs/","serviceRegistryName":"Service Registry L2","serviceRegistrySymbol":"AUTONOLAS-SERVICE-L2-V1","bridgeMediatorAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","operatorWhitelistAddress":"0x3d77596beb0f130a4415df3D2D8232B3d3D31e44","serviceRegistryTokenUtilityAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5","serviceManagerTokenAddress":"0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b","gnosisSafeMultisigImplementationAddress":"0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac","gnosisSafeSameAddressMultisigImplementationAddress":"0xFbBEc0C8b13B38a9aC0499694A69a10204c5E2aB","stakingTokenAddress":"0xEB5638eefE289691EcE01943f768EDBF96258a80","stakingNativeTokenAddress":"","minStakingDepositLimit":"10000000000000000000000","timeForEmissionsLimit":"2592000","numServicesLimit":"100","apyLimit":"3000000000000000000","stakingVerifierAddress":"0x10c5525F77F13b28f42c5626240c001c2D57CAd4","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","L1CrossDomainMessengerProxyAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA"}
{"contractVerification":true,"useLedger":true,"derivationPath":"m/44'/60'/2'/0/0","providerName":"base","networkURL":"https://mainnet.base.org","gasPriceInGwei":"2","gnosisSafeAddress":"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552","gnosisSafeProxyFactoryAddress":"0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2","baseURI":"https://gateway.autonolas.tech/ipfs/","serviceRegistryName":"Service Registry L2","serviceRegistrySymbol":"AUTONOLAS-SERVICE-L2-V1","bridgeMediatorAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA","olasAddress":"0x54330d28ca3357F294334BDC454a032e7f353416","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","operatorWhitelistAddress":"0x3d77596beb0f130a4415df3D2D8232B3d3D31e44","serviceRegistryTokenUtilityAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5","serviceManagerTokenAddress":"0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b","gnosisSafeMultisigImplementationAddress":"0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac","gnosisSafeSameAddressMultisigImplementationAddress":"0xFbBEc0C8b13B38a9aC0499694A69a10204c5E2aB","stakingTokenAddress":"0xEB5638eefE289691EcE01943f768EDBF96258a80","stakingNativeTokenAddress":"","minStakingDepositLimit":"10000000000000000000000","timeForEmissionsLimit":"2592000","numServicesLimit":"100","apyLimit":"3000000000000000000","stakingVerifierAddress":"0x10c5525F77F13b28f42c5626240c001c2D57CAd4","stakingFactoryAddress":"0x1cEe30D08943EB58EFF84DD1AB44a6ee6FEff63a","L1CrossDomainMessengerProxyAddress":"0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA"}
2 changes: 1 addition & 1 deletion scripts/deployment/l2/globals_base_sepolia.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"contractVerification":true,"useLedger":false,"derivationPath":"m/44'/60'/2'/0/0","providerName":"baseSepolia","networkURL":"https://sepolia.base.org","gasPriceInGwei":"2","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","baseURI":"https://gateway.autonolas.tech/ipfs/","serviceRegistryName":"Service Registry","serviceRegistrySymbol":"AUTONOLAS-SERVICE-V1","bridgeMediatorAddress":"0xeDd71796B90eaCc56B074C39BAC90ED2Ca6D93Ee","olasAddress":"","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x31D3202d8744B16A120117A053459DDFAE93c855","operatorWhitelistAddress":"0x29086141ecdc310058fc23273F8ef7881d20C2f7","serviceRegistryTokenUtilityAddress":"0xeB49bE5DF00F74bd240DE4535DDe6Bc89CEfb994","serviceManagerTokenAddress":"0x5BA58970c2Ae16Cf6218783018100aF2dCcFc915","gnosisSafeMultisigImplementationAddress":"0x19936159B528C66750992C3cBcEd2e71cF4E4824","gnosisSafeSameAddressMultisigImplementationAddress":"0x10100e74b7F706222F8A7C0be9FC7Ae1717Ad8B2"}
{"contractVerification":true,"useLedger":false,"derivationPath":"m/44'/60'/2'/0/0","providerName":"baseSepolia","networkURL":"https://sepolia.base.org","gasPriceInGwei":"2","gnosisSafeAddress":"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552","gnosisSafeProxyFactoryAddress":"0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2","baseURI":"https://gateway.autonolas.tech/ipfs/","serviceRegistryName":"Service Registry","serviceRegistrySymbol":"AUTONOLAS-SERVICE-V1","bridgeMediatorAddress":"0xeDd71796B90eaCc56B074C39BAC90ED2Ca6D93Ee","olasAddress":"","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0x31D3202d8744B16A120117A053459DDFAE93c855","operatorWhitelistAddress":"0x29086141ecdc310058fc23273F8ef7881d20C2f7","serviceRegistryTokenUtilityAddress":"0xeB49bE5DF00F74bd240DE4535DDe6Bc89CEfb994","serviceManagerTokenAddress":"0x5BA58970c2Ae16Cf6218783018100aF2dCcFc915","gnosisSafeMultisigImplementationAddress":"0x19936159B528C66750992C3cBcEd2e71cF4E4824","gnosisSafeSameAddressMultisigImplementationAddress":"0x10100e74b7F706222F8A7C0be9FC7Ae1717Ad8B2"}
2 changes: 1 addition & 1 deletion scripts/deployment/l2/globals_celo_mainnet.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"contractVerification":true,"useLedger":true,"derivationPath":"m/44'/60'/2'/0/0","providerName":"celo","networkURL":"https://forno.celo.org","gasPriceInGwei":"10","gnosisSafeAddress":"0x69f4D1788e39c87893C980c06EdF4b7f686e2938","gnosisSafeProxyFactoryAddress":"0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC","baseURI":"https://gateway.autonolas.tech/ipfs/","serviceRegistryName":"Service Registry L2","serviceRegistrySymbol":"AUTONOLAS-SERVICE-L2-V1","bridgeMediatorAddress":"0x397125902ED2cA2d42104F621f448A2cE1bC8Fb7","olasAddress":"0xaCFfAe8e57Ec6E394Eb1b41939A8CF7892DbDc51","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0xE3607b00E75f6405248323A9417ff6b39B244b50","operatorWhitelistAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","serviceRegistryTokenUtilityAddress":"0x3d77596beb0f130a4415df3D2D8232B3d3D31e44","serviceManagerTokenAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5","gnosisSafeMultisigImplementationAddress":"0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b","gnosisSafeSameAddressMultisigImplementationAddress":"0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac","stakingTokenAddress":"0xe1E1B286EbE95b39F785d8069f2248ae9C41b7a9","stakingNativeTokenAddress":"","minStakingDepositLimit":"10000000000000000000000","timeForEmissionsLimit":"2592000","numServicesLimit":"100","apyLimit":"3000000000000000000","stakingVerifierAddress":"0xc40C79C275F3fA1F3f4c723755C81ED2D53A8D81","stakingFactoryAddress":"0x1c2cD884127b080F940b7546c1e9aaf525b1FA55","wormholeL1MessageRelayerAddress":"0x27428DD2d3DD32A4D7f7C497eAaa23130d894911","wormholeMessengerAddress":"0x397125902ED2cA2d42104F621f448A2cE1bC8Fb7"}
{"contractVerification":true,"useLedger":true,"derivationPath":"m/44'/60'/2'/0/0","providerName":"celo","networkURL":"https://forno.celo.org","gasPriceInGwei":"10","gnosisSafeAddress":"0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552","gnosisSafeProxyFactoryAddress":"0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2","baseURI":"https://gateway.autonolas.tech/ipfs/","serviceRegistryName":"Service Registry L2","serviceRegistrySymbol":"AUTONOLAS-SERVICE-L2-V1","bridgeMediatorAddress":"0x397125902ED2cA2d42104F621f448A2cE1bC8Fb7","olasAddress":"0xaCFfAe8e57Ec6E394Eb1b41939A8CF7892DbDc51","multisigProxyHash130":"0xb89c1b3bdf2cf8827818646bce9a8f6e372885f8c55e5c07acbd307cb133b000","serviceRegistryAddress":"0xE3607b00E75f6405248323A9417ff6b39B244b50","operatorWhitelistAddress":"0x3C1fF68f5aa342D296d4DEe4Bb1cACCA912D95fE","serviceRegistryTokenUtilityAddress":"0x3d77596beb0f130a4415df3D2D8232B3d3D31e44","serviceManagerTokenAddress":"0x34C895f302D0b5cf52ec0Edd3945321EB0f83dd5","gnosisSafeMultisigImplementationAddress":"0x63e66d7ad413C01A7b49C7FF4e3Bb765C4E4bd1b","gnosisSafeSameAddressMultisigImplementationAddress":"0xBb7e1D6Cb6F243D6bdE81CE92a9f2aFF7Fbe7eac","stakingTokenAddress":"0xe1E1B286EbE95b39F785d8069f2248ae9C41b7a9","stakingNativeTokenAddress":"","minStakingDepositLimit":"10000000000000000000000","timeForEmissionsLimit":"2592000","numServicesLimit":"100","apyLimit":"3000000000000000000","stakingVerifierAddress":"0xc40C79C275F3fA1F3f4c723755C81ED2D53A8D81","stakingFactoryAddress":"0x1c2cD884127b080F940b7546c1e9aaf525b1FA55","wormholeL1MessageRelayerAddress":"0x27428DD2d3DD32A4D7f7C497eAaa23130d894911","wormholeMessengerAddress":"0x397125902ED2cA2d42104F621f448A2cE1bC8Fb7"}
Loading
Loading