From fd275f9f10c69877dd31c9fe5b0c65727b0e1a5f Mon Sep 17 00:00:00 2001 From: Eugene Mamin Date: Sun, 16 Nov 2025 15:57:50 +0300 Subject: [PATCH 1/5] feat: add ink support New network --- diffyscan/utils/explorer.py | 8 +++++++- hardhat_configs/ink_hardhat_config.ts | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 hardhat_configs/ink_hardhat_config.ts diff --git a/diffyscan/utils/explorer.py b/diffyscan/utils/explorer.py index a251901..f4a1561 100644 --- a/diffyscan/utils/explorer.py +++ b/diffyscan/utils/explorer.py @@ -282,7 +282,13 @@ def _get_explorer_fetcher(explorer_hostname: str) -> tuple: ) elif any( explorer_hostname.endswith(domain) - for domain in ["mode.network", "blockscout.com", "swellnetwork.io", "lisk.com"] + for domain in [ + "mode.network", + "blockscout.com", + "swellnetwork.io", + "lisk.com", + "inkonchain.com", + ] ): return _get_contract_from_blockscout, False else: diff --git a/hardhat_configs/ink_hardhat_config.ts b/hardhat_configs/ink_hardhat_config.ts new file mode 100644 index 0000000..29f9102 --- /dev/null +++ b/hardhat_configs/ink_hardhat_config.ts @@ -0,0 +1,15 @@ +import type { HardhatUserConfig } from "hardhat/config"; + +const config: HardhatUserConfig = { + solidity: "0.8.30", + networks: { + hardhat: { + type: "edr-simulated", + chainId: 57073, + blockGasLimit: 92000000, + hardfork: "prague", + }, + }, +}; + +export default config; From 92575e9c2e5be37d3e8e9238d423f911fef2299f Mon Sep 17 00:00:00 2001 From: Eugene Mamin Date: Mon, 17 Nov 2025 00:40:00 +0300 Subject: [PATCH 2/5] fix: add plasma --- .../plasma/ink_deployment_2025-11-16.json | 43 +++++++++++++++++++ .../plasma/plasma_deployment_2025-11-17.json | 42 ++++++++++++++++++ diffyscan/utils/explorer.py | 1 + hardhat_configs/plasma_hardhat_config.ts | 15 +++++++ 4 files changed, 101 insertions(+) create mode 100644 config_samples/plasma/ink_deployment_2025-11-16.json create mode 100644 config_samples/plasma/plasma_deployment_2025-11-17.json create mode 100644 hardhat_configs/plasma_hardhat_config.ts diff --git a/config_samples/plasma/ink_deployment_2025-11-16.json b/config_samples/plasma/ink_deployment_2025-11-16.json new file mode 100644 index 0000000..327f589 --- /dev/null +++ b/config_samples/plasma/ink_deployment_2025-11-16.json @@ -0,0 +1,43 @@ +{ + "contracts": { + "0xe561152e8d3f618b386ef4dd6e3fb980eb2f9e61": "TransparentUpgradeableProxy", + "0xcc6DD2e2341C5b09A6f4F481670E3C39B83810C3": "ProxyAdmin" + }, + "explorer_hostname": "explorer.inkonchain.com", + "explorer_chain_id": 57073, + "explorer_token_env_var": "INK_API_KEY", + "github_repo": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + }, + "dependencies": { + "lib/openzeppelin-contracts/contracts": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + } + }, + "fail_on_bytecode_comparison_error": true, + "bytecode_comparison": { + "constructor_calldata": {}, + "constructor_args": { + "0xe561152e8d3f618b386ef4dd6e3fb980eb2f9e61": [ + "0x03df929510a52c97bb1b3e5f33ea5d9735a50280", + "0x13Ac97663d19fF20fe467BFa580748505e664beB", + "0x2cd77a5a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013ac97663d19ff20fe467bfa580748505e664beb000000000000000000000000000000000000000000000000000000000000001f57726170706564206c6971756964207374616b656420457468657220322e300000000000000000000000000000000000000000000000000000000000000000067773744554480000000000000000000000000000000000000000000000000000" + ], + "0xcc6DD2e2341C5b09A6f4F481670E3C39B83810C3": [ + "0x13Ac97663d19fF20fe467BFa580748505e664beB" + ] + } + }, + "metadata": { + "chain_name": "ink", + "deployment_date": "2025-11-16", + "timelock_address": "0x13Ac97663d19fF20fe467BFa580748505e664beB", + "timelock_requirements": { + "minimum_delay_seconds": 1 + } + } +} diff --git a/config_samples/plasma/plasma_deployment_2025-11-17.json b/config_samples/plasma/plasma_deployment_2025-11-17.json new file mode 100644 index 0000000..a599ac6 --- /dev/null +++ b/config_samples/plasma/plasma_deployment_2025-11-17.json @@ -0,0 +1,42 @@ +{ + "contracts": { + "0x481e638105407Be40c2f2E2e006DE272d05930d0": "TransparentUpgradeableProxy", + "0x36De6840eB576132e1b8e76795fDD693230Ad5ea": "ProxyAdmin" + }, + "explorer_hostname": "api.routescan.io/v2/network/mainnet/evm/9745/etherscan", + "explorer_token_env_var": "PLASMA_API_KEY", + "github_repo": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + }, + "dependencies": { + "lib/openzeppelin-contracts/contracts": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + } + }, + "fail_on_bytecode_comparison_error": true, + "bytecode_comparison": { + "constructor_calldata": {}, + "constructor_args": { + "0x481e638105407Be40c2f2E2e006DE272d05930d0": [ + "0xB9af873C7089CF3a0b6D67538065dD94b5E3208f", + "0x3eC62564F66874f619640cBb7Fd42A157f21A442", + "0x2cd77a5a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013ac97663d19ff20fe467bfa580748505e664beb000000000000000000000000000000000000000000000000000000000000001f57726170706564206c6971756964207374616b656420457468657220322e300000000000000000000000000000000000000000000000000000000000000000067773744554480000000000000000000000000000000000000000000000000000" + ], + "0x36De6840eB576132e1b8e76795fDD693230Ad5ea": [ + "0x3eC62564F66874f619640cBb7Fd42A157f21A442" + ] + } + }, + "metadata": { + "chain_name": "plasma", + "deployment_date": "2025-11-17", + "timelock_address": "0x3eC62564F66874f619640cBb7Fd42A157f21A442", + "timelock_requirements": { + "minimum_delay_seconds": 1 + } + } +} diff --git a/diffyscan/utils/explorer.py b/diffyscan/utils/explorer.py index f4a1561..a378304 100644 --- a/diffyscan/utils/explorer.py +++ b/diffyscan/utils/explorer.py @@ -288,6 +288,7 @@ def _get_explorer_fetcher(explorer_hostname: str) -> tuple: "swellnetwork.io", "lisk.com", "inkonchain.com", + "routescan.io", ] ): return _get_contract_from_blockscout, False diff --git a/hardhat_configs/plasma_hardhat_config.ts b/hardhat_configs/plasma_hardhat_config.ts new file mode 100644 index 0000000..169aa88 --- /dev/null +++ b/hardhat_configs/plasma_hardhat_config.ts @@ -0,0 +1,15 @@ +import type { HardhatUserConfig } from "hardhat/config"; + +const config: HardhatUserConfig = { + solidity: "0.8.30", + networks: { + hardhat: { + type: "edr-simulated", + chainId: 9745, + blockGasLimit: 92000000, + hardfork: "prague", + }, + }, +}; + +export default config; From 2b098fbfcaa5938dc399c2962994a74fc3347818 Mon Sep 17 00:00:00 2001 From: Eugene Mamin Date: Mon, 17 Nov 2025 00:45:32 +0300 Subject: [PATCH 3/5] fix: remove wrong ink cfg --- .../plasma/ink_deployment_2025-11-16.json | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 config_samples/plasma/ink_deployment_2025-11-16.json diff --git a/config_samples/plasma/ink_deployment_2025-11-16.json b/config_samples/plasma/ink_deployment_2025-11-16.json deleted file mode 100644 index 327f589..0000000 --- a/config_samples/plasma/ink_deployment_2025-11-16.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "contracts": { - "0xe561152e8d3f618b386ef4dd6e3fb980eb2f9e61": "TransparentUpgradeableProxy", - "0xcc6DD2e2341C5b09A6f4F481670E3C39B83810C3": "ProxyAdmin" - }, - "explorer_hostname": "explorer.inkonchain.com", - "explorer_chain_id": 57073, - "explorer_token_env_var": "INK_API_KEY", - "github_repo": { - "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", - "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", - "relative_root": "contracts" - }, - "dependencies": { - "lib/openzeppelin-contracts/contracts": { - "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", - "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", - "relative_root": "contracts" - } - }, - "fail_on_bytecode_comparison_error": true, - "bytecode_comparison": { - "constructor_calldata": {}, - "constructor_args": { - "0xe561152e8d3f618b386ef4dd6e3fb980eb2f9e61": [ - "0x03df929510a52c97bb1b3e5f33ea5d9735a50280", - "0x13Ac97663d19fF20fe467BFa580748505e664beB", - "0x2cd77a5a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013ac97663d19ff20fe467bfa580748505e664beb000000000000000000000000000000000000000000000000000000000000001f57726170706564206c6971756964207374616b656420457468657220322e300000000000000000000000000000000000000000000000000000000000000000067773744554480000000000000000000000000000000000000000000000000000" - ], - "0xcc6DD2e2341C5b09A6f4F481670E3C39B83810C3": [ - "0x13Ac97663d19fF20fe467BFa580748505e664beB" - ] - } - }, - "metadata": { - "chain_name": "ink", - "deployment_date": "2025-11-16", - "timelock_address": "0x13Ac97663d19fF20fe467BFa580748505e664beB", - "timelock_requirements": { - "minimum_delay_seconds": 1 - } - } -} From 30b5b6e2ff10774eddc31613180e31b4d7f33bc9 Mon Sep 17 00:00:00 2001 From: Eugene Mamin Date: Tue, 18 Nov 2025 16:30:47 +0300 Subject: [PATCH 4/5] fix: add missing cfg --- .../ink/ink_deployment_2025-11-16.json | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 config_samples/ink/ink_deployment_2025-11-16.json diff --git a/config_samples/ink/ink_deployment_2025-11-16.json b/config_samples/ink/ink_deployment_2025-11-16.json new file mode 100644 index 0000000..327f589 --- /dev/null +++ b/config_samples/ink/ink_deployment_2025-11-16.json @@ -0,0 +1,43 @@ +{ + "contracts": { + "0xe561152e8d3f618b386ef4dd6e3fb980eb2f9e61": "TransparentUpgradeableProxy", + "0xcc6DD2e2341C5b09A6f4F481670E3C39B83810C3": "ProxyAdmin" + }, + "explorer_hostname": "explorer.inkonchain.com", + "explorer_chain_id": 57073, + "explorer_token_env_var": "INK_API_KEY", + "github_repo": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + }, + "dependencies": { + "lib/openzeppelin-contracts/contracts": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + } + }, + "fail_on_bytecode_comparison_error": true, + "bytecode_comparison": { + "constructor_calldata": {}, + "constructor_args": { + "0xe561152e8d3f618b386ef4dd6e3fb980eb2f9e61": [ + "0x03df929510a52c97bb1b3e5f33ea5d9735a50280", + "0x13Ac97663d19fF20fe467BFa580748505e664beB", + "0x2cd77a5a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013ac97663d19ff20fe467bfa580748505e664beb000000000000000000000000000000000000000000000000000000000000001f57726170706564206c6971756964207374616b656420457468657220322e300000000000000000000000000000000000000000000000000000000000000000067773744554480000000000000000000000000000000000000000000000000000" + ], + "0xcc6DD2e2341C5b09A6f4F481670E3C39B83810C3": [ + "0x13Ac97663d19fF20fe467BFa580748505e664beB" + ] + } + }, + "metadata": { + "chain_name": "ink", + "deployment_date": "2025-11-16", + "timelock_address": "0x13Ac97663d19fF20fe467BFa580748505e664beB", + "timelock_requirements": { + "minimum_delay_seconds": 1 + } + } +} From 75fee9426fd4643523a397348e6e9c1170c0a4a9 Mon Sep 17 00:00:00 2001 From: Eugene Mamin Date: Mon, 19 Jan 2026 19:58:30 +0300 Subject: [PATCH 5/5] feat: add megaeth --- .../megaeth_deployment_2026-01-07.json | 43 +++++++++++++++++++ hardhat_configs/megaeth_hardhat_config.ts | 15 +++++++ 2 files changed, 58 insertions(+) create mode 100644 config_samples/megaeth/megaeth_deployment_2026-01-07.json create mode 100644 hardhat_configs/megaeth_hardhat_config.ts diff --git a/config_samples/megaeth/megaeth_deployment_2026-01-07.json b/config_samples/megaeth/megaeth_deployment_2026-01-07.json new file mode 100644 index 0000000..5a5afa6 --- /dev/null +++ b/config_samples/megaeth/megaeth_deployment_2026-01-07.json @@ -0,0 +1,43 @@ +{ + "contracts": { + "0x601aC63637933D88285A025C685AC4e9a92a98dA": "TransparentUpgradeableProxy", + "0x4f17a98eFdd1048B2c7e4a5399ef5B5c3eadE2bF": "ProxyAdmin" + }, + "explorer_hostname": "megaeth.blockscout.com", + "explorer_chain_id": 4326, + "explorer_token_env_var": "MEGAETH_API_KEY", + "github_repo": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + }, + "dependencies": { + "lib/openzeppelin-contracts/contracts": { + "url": "https://github.com/OpenZeppelin/openzeppelin-contracts", + "commit": "fcbae5394ae8ad52d8e580a3477db99814b9d565", + "relative_root": "contracts" + } + }, + "fail_on_bytecode_comparison_error": true, + "bytecode_comparison": { + "constructor_calldata": {}, + "constructor_args": { + "0x601aC63637933D88285A025C685AC4e9a92a98dA": [ + "0x518DD3D8a38ea4FB5f8c06c33b6a32F34F6C3712", + "0x72f6000D70B291C67bED898214156d01383274b1", + "0x2cd77a5a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013ac97663d19ff20fe467bfa580748505e664beb000000000000000000000000000000000000000000000000000000000000001f57726170706564206c6971756964207374616b656420457468657220322e300000000000000000000000000000000000000000000000000000000000000000067773744554480000000000000000000000000000000000000000000000000000" + ], + "0x4f17a98eFdd1048B2c7e4a5399ef5B5c3eadE2bF": [ + "0x72f6000D70B291C67bED898214156d01383274b1" + ] + } + }, + "metadata": { + "chain_name": "megaeth", + "deployment_date": "2026-01-07", + "timelock_address": "0x72f6000D70B291C67bED898214156d01383274b1", + "timelock_requirements": { + "minimum_delay_seconds": 1 + } + } +} diff --git a/hardhat_configs/megaeth_hardhat_config.ts b/hardhat_configs/megaeth_hardhat_config.ts new file mode 100644 index 0000000..5644501 --- /dev/null +++ b/hardhat_configs/megaeth_hardhat_config.ts @@ -0,0 +1,15 @@ +import type { HardhatUserConfig } from "hardhat/config"; + +const config: HardhatUserConfig = { + solidity: "0.8.30", + networks: { + hardhat: { + type: "edr-simulated", + chainId: 4326, + blockGasLimit: 92000000, + hardfork: "prague", + }, + }, +}; + +export default config;