From 04fe4b66fd06b84566e0534b4f41a1d2ed79a802 Mon Sep 17 00:00:00 2001 From: Parinthorn Panya Date: Fri, 2 Jun 2023 16:07:20 +0700 Subject: [PATCH 01/13] Add chain 25925 (Bitkub Chain Testnet) (#1046) * add Bitkub chain testnet (25925) * fix blockscout domain --- src/sourcify-chains.ts | 10 ++++++++-- test/chains/chain-tests.js | 11 ++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/sourcify-chains.ts b/src/sourcify-chains.ts index 3e0f264a2..091f2fcd6 100644 --- a/src/sourcify-chains.ts +++ b/src/sourcify-chains.ts @@ -794,8 +794,14 @@ const sourcifyChainsExtensions: SourcifyChainsExtensionsObject = { // DogeChain Mainnet supported: true, monitored: false, - contractFetchAddress: - "https://explorer.dogechain.dog/" + BLOCKSCOUT_SUFFIX, + contractFetchAddress: "https://explorer.dogechain.dog/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, + "25925": { + // Bitkub Chain Testnet + supported: true, + monitored: false, + contractFetchAddress: "https://testnet.bkcscan.com/" + BLOCKSCOUT_SUFFIX, txRegex: getBlockscoutRegex(), }, }; diff --git a/test/chains/chain-tests.js b/test/chains/chain-tests.js index 778a5d3e2..d59d92254 100644 --- a/test/chains/chain-tests.js +++ b/test/chains/chain-tests.js @@ -809,7 +809,7 @@ describe("Test Supported Chains", function () { ["shared/1_Storage.sol"], "shared/1_Storage.metadata.json" ); - + // DogeChain Mainnet verifyContract( "0x2a35F4AA0d3e417e8896E972f35dba4b39b6305e", @@ -819,6 +819,15 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); + // Bitkub Chain Testnet + verifyContract( + "0x58909Ef2F2b167F52cF46575f1582500287cCE48", + "25925", + "Bitkub Chain Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + // Finally check if all the "supported: true" chains have been tested it("should have tested all supported chains", function (done) { if (newAddedChainId) { From 87db6d48ef9a837cbc2d791c5565d9e5d998a55d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Uzdo=C4=9Fan?= Date: Fri, 2 Jun 2023 11:19:31 +0200 Subject: [PATCH 02/13] Change Moonbeamscan single conract test The test was failing because of the long compilation time of the test contract. --- test/helpers/etherscanInstanceContracts.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/helpers/etherscanInstanceContracts.json b/test/helpers/etherscanInstanceContracts.json index e62e3f6e5..1d9cf021e 100644 --- a/test/helpers/etherscanInstanceContracts.json +++ b/test/helpers/etherscanInstanceContracts.json @@ -229,7 +229,7 @@ ], "1284": [ { - "address": "0x36FdA966CfffF8a9Cdc814f546db0e6378bFef35", + "address": "0xAA0c247E385F2995Fb0d88921470bFb450729A13", "type": "single", "expectedStatus": "partial" }, From 3adb2c7b0ed5741e22f7e2fee2d319201a9b62f4 Mon Sep 17 00:00:00 2001 From: Parinthorn Panya Date: Sat, 3 Jun 2023 15:33:25 +0700 Subject: [PATCH 03/13] add Bitkub chain (96) (#1047) --- src/sourcify-chains.ts | 7 +++++++ test/chains/chain-tests.js | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/src/sourcify-chains.ts b/src/sourcify-chains.ts index 091f2fcd6..b3e4a85b6 100644 --- a/src/sourcify-chains.ts +++ b/src/sourcify-chains.ts @@ -804,6 +804,13 @@ const sourcifyChainsExtensions: SourcifyChainsExtensionsObject = { contractFetchAddress: "https://testnet.bkcscan.com/" + BLOCKSCOUT_SUFFIX, txRegex: getBlockscoutRegex(), }, + "96": { + // Bitkub Chain + supported: true, + monitored: false, + contractFetchAddress: "https://bkcscan.com/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, }; const sourcifyChainsMap: SourcifyChainMap = {}; diff --git a/test/chains/chain-tests.js b/test/chains/chain-tests.js index d59d92254..77c45c4dd 100644 --- a/test/chains/chain-tests.js +++ b/test/chains/chain-tests.js @@ -828,6 +828,15 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); + // Bitkub Chain + verifyContract( + "0xC75f4D89A0DdA70Ad613908D9976E90dAb42035c", + "96", + "Bitkub Chain", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); + // Finally check if all the "supported: true" chains have been tested it("should have tested all supported chains", function (done) { if (newAddedChainId) { From b9547c635e53200d3f636ff796ef49e7ed899b22 Mon Sep 17 00:00:00 2001 From: CRMax <103856188+crmax-it@users.noreply.github.com> Date: Tue, 6 Jun 2023 09:50:20 +0200 Subject: [PATCH 04/13] Add Cronos Chain 25 (#1049) * Update sourcify-chains.ts * Add Cronos chain (25) * Update sourcify-chains.ts --- src/sourcify-chains.ts | 7 +++ test/chains/chain-tests.js | 10 ++++ test/chains/sources/25/metadata.json | 87 ++++++++++++++++++++++++++++ test/chains/sources/25/storage.sol | 28 +++++++++ 4 files changed, 132 insertions(+) create mode 100644 test/chains/sources/25/metadata.json create mode 100644 test/chains/sources/25/storage.sol diff --git a/src/sourcify-chains.ts b/src/sourcify-chains.ts index b3e4a85b6..8ab16805d 100644 --- a/src/sourcify-chains.ts +++ b/src/sourcify-chains.ts @@ -811,6 +811,13 @@ const sourcifyChainsExtensions: SourcifyChainsExtensionsObject = { contractFetchAddress: "https://bkcscan.com/" + BLOCKSCOUT_SUFFIX, txRegex: getBlockscoutRegex(), }, + "25": { + // Cronos Mainnet Beta + supported: true, + monitored: false, + contractFetchAddress: "https://cronoscan.com/" + ETHERSCAN_SUFFIX, + txRegex: ETHERSCAN_REGEX, + }, }; const sourcifyChainsMap: SourcifyChainMap = {}; diff --git a/test/chains/chain-tests.js b/test/chains/chain-tests.js index 77c45c4dd..e2a445a93 100644 --- a/test/chains/chain-tests.js +++ b/test/chains/chain-tests.js @@ -837,6 +837,16 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); + // Cronos Mainnet Beta + verifyContract( + "0xEdE2053329D203E8261B47A10540Ee4b7a596667", + "25", + "Cronos Mainnet Beta", + ["25/storage.sol"], + "25/metadata.json" + ); + + // Finally check if all the "supported: true" chains have been tested it("should have tested all supported chains", function (done) { if (newAddedChainId) { diff --git a/test/chains/sources/25/metadata.json b/test/chains/sources/25/metadata.json new file mode 100644 index 000000000..a93e94756 --- /dev/null +++ b/test/chains/sources/25/metadata.json @@ -0,0 +1,87 @@ +{ + "compiler": { + "version": "0.8.7+commit.e28d00a7" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "name": "retrieve", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "store", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "devdoc": { + "details": "Store & retrieve value in a variable", + "kind": "dev", + "methods": { + "retrieve()": { + "details": "Return value ", + "returns": { + "_0": "value of 'number'" + } + }, + "store(uint256)": { + "details": "Store value in variable", + "params": { + "num": "value to store" + } + } + }, + "title": "Storage", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "compilationTarget": { + "1_Storage.sol": "Storage" + }, + "evmVersion": "london", + "libraries": {}, + "metadata": { + "bytecodeHash": "ipfs" + }, + "optimizer": { + "enabled": false, + "runs": 200 + }, + "remappings": [] + }, + "sources": { + "1_Storage.sol": { + "keccak256": "0xd2f03f0d5e9fad7110f3286b182743f2dde645d3d9dec9d0aa23fd38a32b7135", + "license": "GPL-3.0", + "urls": [ + "bzz-raw://63f0843c2a7d23a0e68db6976bda57ddcc1e2c6aa6decdef6006ba0ba6ae780e", + "dweb:/ipfs/QmWTXv8e35sM4z7MmbBWiErAey4TbyiLRo1ZQnEBrWzyDy" + ] + } + }, + "version": 1 +} \ No newline at end of file diff --git a/test/chains/sources/25/storage.sol b/test/chains/sources/25/storage.sol new file mode 100644 index 000000000..2958b798d --- /dev/null +++ b/test/chains/sources/25/storage.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity >=0.7.0 <0.9.0; + +/** + * @title Storage + * @dev Store & retrieve value in a variable + */ +contract Storage { + + uint256 number; + + /** + * @dev Store value in variable + * @param num value to store + */ + function store(uint256 num) public { + number = num; + } + + /** + * @dev Return value + * @return value of 'number' + */ + function retrieve() public view returns (uint256){ + return number; + } +} \ No newline at end of file From fe298e6c4b2ed48d9596c13a8f99a6858b907871 Mon Sep 17 00:00:00 2001 From: Marco Castignoli Date: Tue, 6 Jun 2023 10:50:12 +0200 Subject: [PATCH 05/13] add cronoscan in etherscanInstanceContracts tests --- environments/.env.dev | 1 + environments/.env.latest | 1 + environments/.env.secrets.gpg | Bin 2682 -> 2744 bytes environments/.env.stable | 1 + package-lock.json | 4 ++-- scripts/find_replace.sh | 4 +++- src/config.ts | 4 ++++ test/helpers/etherscanInstanceContracts.json | 17 +++++++++++++++++ 8 files changed, 29 insertions(+), 3 deletions(-) diff --git a/environments/.env.dev b/environments/.env.dev index 397e7e275..431657424 100644 --- a/environments/.env.dev +++ b/environments/.env.dev @@ -80,6 +80,7 @@ MOONSCAN_MOONRIVER_API_KEY= BOBASCAN_API_KEY= GNOSISSCAN_API_KEY= OPTIMISMSCAN_API_KEY= +CRONOSCAN_API_KEY= # Needed to call create2 APIs, format is: TOKEN1,TOKEN2,... CREATE2_CLIENT_TOKENS= diff --git a/environments/.env.latest b/environments/.env.latest index 05d34d5e5..329ddd605 100644 --- a/environments/.env.latest +++ b/environments/.env.latest @@ -79,6 +79,7 @@ MOONSCAN_MOONRIVER_API_KEY=xxx BOBASCAN_API_KEY=xxx GNOSISSCAN_API_KEY=xxx OPTIMISMSCAN_API_KEY=xxx +CRONOSCAN_API_KEY=xxx CREATE2_CLIENT_TOKENS=xxx diff --git a/environments/.env.secrets.gpg b/environments/.env.secrets.gpg index 075fad5033afd35ccae47f37f9b4451732b831b5..6fcb7484e61cb27087e1daebae79f08608d0158b 100644 GIT binary patch literal 2744 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 literal 2682 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 odE&*%s5)3*JK~&~HBt=qCORk41=WB>pF diff --git a/environments/.env.stable b/environments/.env.stable index 34200569e..5cafa90a1 100644 --- a/environments/.env.stable +++ b/environments/.env.stable @@ -77,6 +77,7 @@ MOONSCAN_MOONRIVER_API_KEY=xxx BOBASCAN_API_KEY=xxx GNOSISSCAN_API_KEY=xxx OPTIMISMSCAN_API_KEY=xxx +CRONOSCAN_API_KEY=xxx CREATE2_CLIENT_TOKENS=xxx diff --git a/package-lock.json b/package-lock.json index e2e20348b..fdc45bee7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23979,7 +23979,7 @@ }, "packages/bytecode-utils": { "name": "@ethereum-sourcify/bytecode-utils", - "version": "1.0.4", + "version": "1.1.0", "license": "MIT", "dependencies": { "@ethersproject/bytes": "^5.7.0", @@ -29515,7 +29515,7 @@ }, "packages/lib-sourcify": { "name": "@ethereum-sourcify/lib-sourcify", - "version": "1.0.2", + "version": "1.1.1", "license": "MIT", "dependencies": { "@ethereum-sourcify/bytecode-utils": "*", diff --git a/scripts/find_replace.sh b/scripts/find_replace.sh index a859276ad..5d69c8cf8 100755 --- a/scripts/find_replace.sh +++ b/scripts/find_replace.sh @@ -39,6 +39,7 @@ if [ "$CIRCLE_BRANCH" == "staging" ]; then BOBASCAN_API_KEY=$BOBASCAN_API_KEY_STAGING GNOSISSCAN_API_KEY=$GNOSISSCAN_API_KEY_STAGING OPTIMISMSCAN_API_KEY=$OPTIMISMSCAN_API_KEY_STAGING + CRONOSCAN_API_KEY=$CRONOSCAN_API_KEY_STAGING fi if [ "$CIRCLE_BRANCH" == "master" ]; then @@ -69,9 +70,10 @@ if [ "$CIRCLE_BRANCH" == "master" ]; then BOBASCAN_API_KEY=$BOBASCAN_API_KEY_MASTER GNOSISSCAN_API_KEY=$GNOSISSCAN_API_KEY_MASTER OPTIMISMSCAN_API_KEY=$OPTIMISMSCAN_API_KEY_MASTER + CRONOSCAN_API_KEY=$CRONOSCAN_API_KEY_MASTER fi -for VAR_NAME in INFURA_ID ALCHEMY_ID AWS_S3_ACCESS_KEY_ID AWS_S3_SECRET_ACCESS_KEY IPFS_SECRET NPM_TOKEN PUBLIC_IP LOCAL_IP SESSION_SECRET ALCHEMY_ID_OPTIMISM ALCHEMY_ID_ARBITRUM CHAINSAFE_S3_ACCESS_KEY_ID CHAINSAFE_S3_SECRET_ACCESS_KEY ESTUARY_PINNING_SECRET WEB3_STORAGE_PINNING_SECRET CREATE2_CLIENT_TOKENS GRAFANA_HTTP_USER GRAFANA_HTTP_PASS ETHERSCAN_API_KEY ARBISCAN_API_KEY POLYGONSCAN_API_KEY BSCSCAN_API_KEY SNOWTRACE_API_KEY CELOSCAN_API_KEY MOONSCAN_MOONBEAM_API_KEY MOONSCAN_MOONRIVER_API_KEY BOBASCAN_API_KEY GNOSISSCAN_API_KEY OPTIMISMSCAN_API_KEY +for VAR_NAME in INFURA_ID ALCHEMY_ID AWS_S3_ACCESS_KEY_ID AWS_S3_SECRET_ACCESS_KEY IPFS_SECRET NPM_TOKEN PUBLIC_IP LOCAL_IP SESSION_SECRET ALCHEMY_ID_OPTIMISM ALCHEMY_ID_ARBITRUM CHAINSAFE_S3_ACCESS_KEY_ID CHAINSAFE_S3_SECRET_ACCESS_KEY ESTUARY_PINNING_SECRET WEB3_STORAGE_PINNING_SECRET CREATE2_CLIENT_TOKENS GRAFANA_HTTP_USER GRAFANA_HTTP_PASS ETHERSCAN_API_KEY ARBISCAN_API_KEY POLYGONSCAN_API_KEY BSCSCAN_API_KEY SNOWTRACE_API_KEY CELOSCAN_API_KEY MOONSCAN_MOONBEAM_API_KEY MOONSCAN_MOONRIVER_API_KEY BOBASCAN_API_KEY GNOSISSCAN_API_KEY OPTIMISMSCAN_API_KEY CRONOSCAN_API_KEY do echo "find_repace.sh: replacing $VAR_NAME" VAR_VAL=$(eval "echo \${$VAR_NAME}") diff --git a/src/config.ts b/src/config.ts index 9e4ac0cae..f54ceee80 100644 --- a/src/config.ts +++ b/src/config.ts @@ -139,6 +139,10 @@ export const etherscanAPIs: EtherscanAPIs = { apiURL: "https://api.gnosisscan.io", apiKey: process.env.GNOSSISCAN_API_KEY, }, + "25": { + apiURL: "https://api.cronoscan.com/", + apiKey: process.env.CRONOSCAN_API_KEY, + }, // Does not require API key "84531": { apiURL: "https://api-goerli.basescan.org/", diff --git a/test/helpers/etherscanInstanceContracts.json b/test/helpers/etherscanInstanceContracts.json index 1d9cf021e..63d0c9d86 100644 --- a/test/helpers/etherscanInstanceContracts.json +++ b/test/helpers/etherscanInstanceContracts.json @@ -335,5 +335,22 @@ "type": "standard-json", "expectedStatus": "perfect" } + ], + "25": [ + { + "address": "0xE3023cd45E2Bc9Dd0e9a3F0484e4fBf40b4DF108", + "type": "single", + "expectedStatus": "partial" + }, + { + "address": "0xc6Cfb3f2D9D33FF1D0B77cE78c5dD6f790B5605A", + "type": "multiple", + "expectedStatus": "partial" + }, + { + "address": "0x17eC36E07897612441463e85E9413891Dc06c1DC", + "type": "standard-json", + "expectedStatus": "perfect" + } ] } From 772ed1dfb2d1abc1748f54fb6572722a477320d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Uzdo=C4=9Fan?= Date: Wed, 7 Jun 2023 15:06:29 +0200 Subject: [PATCH 06/13] Change trust proxy setting --- src/server/server.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/server.ts b/src/server/server.ts index 98dd2ce31..c1875ba2c 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -63,7 +63,11 @@ export class Server { extended: true, }) ); - this.app.set("trust proxy", 1); // trust first proxy, required for secure cookies. + // Need this for secure cookies to work behind a proxy. See https://expressjs.com/en/guide/behind-proxies.html + // true means the leftmost IP in the X-Forwarded-* header is used. + // Assuming the client ip is 2.2.2.2, reverse proxy 192.168.1.5 + // for the case "X-Forwarded-For: 2.2.2.2, 192.168.1.5", we want 2.2.2.2 to be used + this.app.set("trust proxy", true); this.app.use(session(getSessionOptions())); this.app.get("/health", (_req, res) => From 52ce80aad6306e4dd722a9fb12eac9fb960f36d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Uzdo=C4=9Fan?= Date: Wed, 7 Jun 2023 15:22:09 +0200 Subject: [PATCH 07/13] Remove deprecated matomo url --- ui/public/index.html | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/ui/public/index.html b/ui/public/index.html index 97e0c6faf..24ea47d48 100644 --- a/ui/public/index.html +++ b/ui/public/index.html @@ -28,13 +28,9 @@ _paq.push(["trackPageView"]); _paq.push(["enableLinkTracking"]); (function () { - var u = "https://matomo.ethereum.org/"; - _paq.push(["setTrackerUrl", u + "matomo.php"]); - _paq.push(["setSiteId", "30"]); - var secondaryTracker = - "https://ethereumfoundation.matomo.cloud/matomo.php"; - var secondaryWebsiteId = "30"; - _paq.push(["addTracker", secondaryTracker, secondaryWebsiteId]); + var u = "https://ethereumfoundation.matomo.cloud/matomo.php"; + var id = "30"; + _paq.push(["addTracker", u, id]); var d = document, g = d.createElement("script"), s = d.getElementsByTagName("script")[0]; From 88e79d1dedbe4f78d30728ce3c7f00812e586b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Uzdo=C4=9Fan?= Date: Wed, 7 Jun 2023 17:24:39 +0200 Subject: [PATCH 08/13] Change add chain template into single template --- .../PULL_REQUEST_TEMPLATE/add-new-chain.md | 18 --------------- .github/pull_request_template.md | 23 +++++++++++++------ 2 files changed, 16 insertions(+), 25 deletions(-) delete mode 100644 .github/PULL_REQUEST_TEMPLATE/add-new-chain.md diff --git a/.github/PULL_REQUEST_TEMPLATE/add-new-chain.md b/.github/PULL_REQUEST_TEMPLATE/add-new-chain.md deleted file mode 100644 index dcf67a24f..000000000 --- a/.github/PULL_REQUEST_TEMPLATE/add-new-chain.md +++ /dev/null @@ -1,18 +0,0 @@ -# Add New Chain - -Thanks for your pull request to add a new support in Sourcify. - -If you haven't done so, please follow the instructions on [how to request chain support](https://docs.sourcify.dev/docs/chain-support/) in docs. - -Please check the following items before submitting your pull request. - -## Checklist - -- [ ] The branch is named as `add-chain-`. -- [ ] I haven't modified the [chains.json](../../src/chains.json) file directly. -- [ ] In [sourcify-chains.ts](../../src/sourcify-chains.ts) file - - [ ] I've set `supported: true`. - - [ ] I've set `monitored: false`. - - [ ] I haven't added an `rpc` field but the one in [chains.json](../../src/chains.json) is used (if not, please explain why). -- [ ] I've added a test in [chain-tests.js](../../test/chains/chains-test.js) file. -- [ ] `test-new-chain` test in Circle CI is passing. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index edfee2b3e..328949693 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,11 +1,20 @@ -Thank you for your contribution to the Sourcify project! + -Please check if your pull request fits one of the categories. If so, please use the templates provided at the links: +# Add New Chain -- Requesting new chain support: Add your username and the branch name to the link below and open: +Thanks for your pull request to add a new support in Sourcify. -``` -https://github.com/ethereum/sourcify/compare/ethereum:sourcify:staging...:?template=add-new-chain.md&title=Add+New+Chain+%3CchainId%3E -``` +If you haven't done so, please follow the instructions on [how to request chain support](https://docs.sourcify.dev/docs/chain-support/) in docs. -- New release: [release.md](https://github.com/ethereum/sourcify/compare/master...staging?template=release.md&title=Release+%3Cversion%3E) +Please check the following items before submitting your pull request. + +## Checklist + +- [ ] The branch is named as `add-chain-`. +- [ ] I haven't modified the [chains.json](../../src/chains.json) file directly. +- [ ] In [sourcify-chains.ts](../../src/sourcify-chains.ts) file + - [ ] I've set `supported: true`. + - [ ] I've set `monitored: false`. + - [ ] I haven't added an `rpc` field but the one in [chains.json](../../src/chains.json) is used (if not, please explain why). +- [ ] I've added a test in [chain-tests.js](../../test/chains/chains-test.js) file. +- [ ] `test-new-chain` test in Circle CI is passing. From a5d7b516a5f73c2a18f5ce20eca84ce881adbf52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Uzdo=C4=9Fan?= Date: Fri, 9 Jun 2023 12:18:01 +0200 Subject: [PATCH 09/13] npm install before lerna bootstrap Since with lerna v7 the `bootstrap` command is removed, we need to first `npm install` and download an older lerna (v3 for now) and then use the `bootstrap` command. --- .circleci/continue_config.yml | 6 +++--- .circleci/new_branch.yml | 4 ++-- .circleci/nightly.yml | 2 +- .circleci/test-chains-regularly.yml | 2 +- src/Dockerfile.monitor | 2 +- src/Dockerfile.server | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.circleci/continue_config.yml b/.circleci/continue_config.yml index a79f49390..f589a0115 100644 --- a/.circleci/continue_config.yml +++ b/.circleci/continue_config.yml @@ -218,7 +218,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: lint command: npm run lint @@ -236,7 +236,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build command: npx lerna run build @@ -271,7 +271,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build everything command: npx lerna run build diff --git a/.circleci/new_branch.yml b/.circleci/new_branch.yml index 7fb8a7ecf..6b5996db2 100644 --- a/.circleci/new_branch.yml +++ b/.circleci/new_branch.yml @@ -26,7 +26,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: lint command: npm run lint @@ -44,7 +44,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build command: npx lerna run build diff --git a/.circleci/nightly.yml b/.circleci/nightly.yml index bc6ea4c8d..e13123085 100644 --- a/.circleci/nightly.yml +++ b/.circleci/nightly.yml @@ -88,7 +88,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build command: npx lerna run build diff --git a/.circleci/test-chains-regularly.yml b/.circleci/test-chains-regularly.yml index a886a5faa..f3181a08b 100644 --- a/.circleci/test-chains-regularly.yml +++ b/.circleci/test-chains-regularly.yml @@ -18,7 +18,7 @@ jobs: - checkout - run: name: install dependencies - command: npx lerna bootstrap + command: npm install && npx lerna bootstrap - run: name: build and test command: npx lerna run build && npx lerna run test:chains diff --git a/src/Dockerfile.monitor b/src/Dockerfile.monitor index cb7ab870e..99f14be35 100644 --- a/src/Dockerfile.monitor +++ b/src/Dockerfile.monitor @@ -4,6 +4,6 @@ WORKDIR /home/app COPY packages ./packages COPY src ./src COPY *.json ./ -RUN npx lerna bootstrap --ci && npx lerna run build +RUN npm install && npx lerna bootstrap --ci && npx lerna run build CMD ["npm", "run", "monitor:start"] diff --git a/src/Dockerfile.server b/src/Dockerfile.server index 87f24900f..7af114524 100644 --- a/src/Dockerfile.server +++ b/src/Dockerfile.server @@ -4,6 +4,6 @@ WORKDIR /home/app COPY packages ./packages COPY src ./src COPY *.json ./ -RUN npx lerna bootstrap --ci && npx lerna run build +RUN npm install && npx lerna bootstrap --ci && npx lerna run build CMD ["npm", "run", "server:start"] \ No newline at end of file From 4280ab245cf0a9bfd80d8ae4c84611b46c2686df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Uzdo=C4=9Fan?= Date: Sat, 10 Jun 2023 11:44:09 +0200 Subject: [PATCH 10/13] Update chains.json --- src/chains.json | 314 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 271 insertions(+), 43 deletions(-) diff --git a/src/chains.json b/src/chains.json index 4a6439b1a..f8dc5a186 100644 --- a/src/chains.json +++ b/src/chains.json @@ -3435,7 +3435,8 @@ "icon": "LaChain", "rpc": [ "https://rpc1.mainnet.lachain.network", - "https://rpc2.mainnet.lachain.network" + "https://rpc2.mainnet.lachain.network", + "https://lachain.rpc-nodes.cedalio.dev" ], "faucets": [], "nativeCurrency": { "name": "LaCoin", "symbol": "LAC", "decimals": 18 }, @@ -4089,6 +4090,25 @@ } ] }, + { + "name": "Ozone Chain Testnet", + "chain": "OZONE", + "rpc": ["https://node1.testnet.ozonechain.io"], + "faucets": [], + "nativeCurrency": { "name": "OZONE", "symbol": "OZO", "decimals": 18 }, + "infoURL": "https://ozonechain.io", + "shortName": "ozo_tst", + "chainId": 401, + "networkId": 401, + "icon": "ozonechain", + "explorers": [ + { + "name": "OZONE Scan", + "url": "https://testnet.ozonescan.io", + "standard": "EIP3091" + } + ] + }, { "name": "SX Network Mainnet", "chain": "SX", @@ -4112,7 +4132,10 @@ "name": "LaTestnet", "chain": "LaTestnet", "icon": "LaChain", - "rpc": ["https://rpc.testnet.lachain.network"], + "rpc": [ + "https://rpc.testnet.lachain.network", + "https://lachain-testnet.rpc-nodes.cedalio.dev" + ], "faucets": ["https://faucet.lachain.network"], "nativeCurrency": { "name": "Test LaCoin", @@ -4890,6 +4913,29 @@ "chainId": 777, "networkId": 777 }, + { + "name": "MAAL Sharia Chain", + "chain": "MAAL", + "icon": "maal", + "rpc": [ + "https://node1-mainnet.maalscan.io/", + "https://node2-mainnet.maalscan.io/", + "https://node3-mainnet.maalscan.io/" + ], + "faucets": [], + "nativeCurrency": { "name": "MAAL", "symbol": "MAAL", "decimals": 18 }, + "infoURL": "https://www.maalblockchain.com/", + "shortName": "maal", + "chainId": 786, + "networkId": 786, + "explorers": [ + { + "name": "maalscan", + "url": "https://maalscan.io", + "standard": "EIP3091" + } + ] + }, { "name": "Acala Network", "chain": "ACA", @@ -4928,6 +4974,17 @@ } ] }, + { + "name": "Patex", + "chain": "ETH", + "rpc": ["https://rpc.patex.io/"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://patex.io/", + "shortName": "peth", + "chainId": 789, + "networkId": 789 + }, { "name": "Lucid Blockchain", "chain": "Lucid", @@ -6874,6 +6931,21 @@ } ] }, + { + "name": "Living Assets Mainnet", + "chain": "LAS", + "icon": "livingassets", + "rpc": [ + "https://beta.mainnet.livingassets.io/rpc", + "https://gamma.mainnet.livingassets.io/rpc" + ], + "faucets": [], + "nativeCurrency": { "name": "LAS", "symbol": "LAS", "decimals": 18 }, + "infoURL": "https://dev.livingassets.io/", + "shortName": "LAS", + "chainId": 1440, + "networkId": 1440 + }, { "name": "Polygon zkEVM Testnet", "title": "Polygon zkEVM Testnet", @@ -8765,6 +8837,29 @@ } ] }, + { + "name": "WhiteBIT Network Testnet", + "chain": "WBT", + "rpc": ["https://rpc-testnet.whitebit.network"], + "faucets": ["https://explorer.whitebit.network/testnet/faucet"], + "nativeCurrency": { + "name": "WhiteBIT Coin", + "symbol": "WBT", + "decimals": 18 + }, + "infoURL": "https://whitebit.com/wbt", + "shortName": "twbt", + "chainId": 2625, + "networkId": 2625, + "icon": "whitebit-testnet", + "explorers": [ + { + "name": "wb-explorer-testnet", + "url": "https://explorer.whitebit.network/testnet", + "standard": "EIP3091" + } + ] + }, { "name": "Boba Network Goerli Testnet", "chain": "ETH", @@ -8926,14 +9021,11 @@ }, { "name": "Filecoin - Hyperspace testnet", + "status": "deprecated", "chain": "FIL", "icon": "filecoin", - "rpc": [ - "https://api.hyperspace.node.glif.io/rpc/v1", - "https://rpc.ankr.com/filecoin_testnet", - "https://filecoin-hyperspace.chainstacklabs.com/rpc/v1" - ], - "faucets": ["https://hyperspace.yoga/#faucet"], + "rpc": [], + "faucets": [], "nativeCurrency": { "name": "testnet filecoin", "symbol": "tFIL", @@ -8944,29 +9036,7 @@ "chainId": 3141, "networkId": 3141, "slip44": 1, - "explorers": [ - { - "name": "Filfox - Hyperspace", - "url": "https://hyperspace.filfox.info/en", - "standard": "none" - }, - { - "name": "Glif Explorer - Hyperspace", - "url": "https://explorer.glif.io/?network=hyperspace", - "standard": "none" - }, - { "name": "Beryx", "url": "https://beryx.zondax.ch", "standard": "none" }, - { - "name": "Dev.storage", - "url": "https://dev.storage", - "standard": "none" - }, - { - "name": "Filscan - Hyperspace", - "url": "https://hyperspace.filscan.io", - "standard": "none" - } - ] + "explorers": [] }, { "name": "Debounce Subnet Testnet", @@ -9359,6 +9429,25 @@ } ] }, + { + "name": "Ozone Chain Mainnet", + "chain": "OZONE", + "rpc": ["https://node1.ozonechain.io"], + "faucets": [], + "nativeCurrency": { "name": "OZONE", "symbol": "OZO", "decimals": 18 }, + "infoURL": "https://ozonechain.io", + "shortName": "ozo", + "chainId": 4000, + "networkId": 4000, + "icon": "ozonechain", + "explorers": [ + { + "name": "OZONE Scan", + "url": "https://ozonescan.io", + "standard": "EIP3091" + } + ] + }, { "name": "Fantom Testnet", "chain": "FTM", @@ -10051,7 +10140,7 @@ "name": "SatoshiChain Testnet", "chain": "SATS", "icon": "satoshichain", - "rpc": ["https://rpc.satoshichain.io"], + "rpc": ["https://testnet-rpc.satoshichain.io"], "faucets": ["https://faucet.satoshichain.io"], "nativeCurrency": { "name": "SatoshiChain Coin", @@ -10059,13 +10148,13 @@ "decimals": 18 }, "infoURL": "https://satoshichain.net", - "shortName": "sats", + "shortName": "satst", "chainId": 5758, "networkId": 5758, "explorers": [ { - "name": "SatoshiChain Explorer", - "url": "https://satoshiscan.io", + "name": "SatoshiChain Testnet Explorer", + "url": "https://testnet.satoshiscan.io", "standard": "EIP3091" } ] @@ -10387,7 +10476,7 @@ "rpc": ["https://api.mainnet.zetachain.com/evm"], "faucets": [], "nativeCurrency": { "name": "Zeta", "symbol": "ZETA", "decimals": 18 }, - "infoURL": "https://docs.zetachain.com/", + "infoURL": "https://zetachain.com/docs/", "shortName": "zetachain-mainnet", "chainId": 7000, "networkId": 7000, @@ -10404,10 +10493,13 @@ "name": "ZetaChain Athens Testnet", "chain": "ZetaChain", "icon": "zetachain", - "rpc": ["https://api.athens2.zetachain.com/evm"], + "rpc": [ + "https://zetachain-athens-evm.blockpi.network/v1/rpc/public", + "wss://zetachain-athens.blockpi.network/rpc/v1/public/websocket" + ], "faucets": ["https://labs.zetachain.com/get-zeta"], "nativeCurrency": { "name": "Zeta", "symbol": "aZETA", "decimals": 18 }, - "infoURL": "https://docs.zetachain.com/", + "infoURL": "https://zetachain.com/docs", "shortName": "zetachain-athens", "chainId": 7001, "networkId": 7001, @@ -12201,6 +12293,29 @@ } ] }, + { + "name": "SatoshiChain Mainnet", + "chain": "SATS", + "icon": "satoshichain", + "rpc": ["https://mainnet-rpc.satoshichain.io"], + "faucets": [], + "nativeCurrency": { + "name": "SatoshiChain Coin", + "symbol": "SATS", + "decimals": 18 + }, + "infoURL": "https://satoshichain.net", + "shortName": "sats", + "chainId": 12009, + "networkId": 12009, + "explorers": [ + { + "name": "SatoshiChain Explorer", + "url": "https://satoshiscan.io", + "standard": "EIP3091" + } + ] + }, { "name": "Singularity ZERO Testnet", "chain": "ZERO", @@ -13219,10 +13334,11 @@ }, { "name": "Filecoin - Wallaby testnet", + "status": "deprecated", "chain": "FIL", "icon": "filecoin", - "rpc": ["https://wallaby.node.glif.io/rpc/v1"], - "faucets": ["https://wallaby.yoga/#faucet"], + "rpc": [], + "faucets": [], "nativeCurrency": { "name": "testnet filecoin", "symbol": "tFIL", @@ -13806,7 +13922,7 @@ "icon": "wireshape", "rpc": [ "https://rpc-floripa.wireshape.org", - "https://floripa.rpc.thirdweb.com" + "https://wireshape-floripa-testnet.rpc.thirdweb.com" ], "faucets": [], "nativeCurrency": { "name": "WIRE", "symbol": "WIRE", "decimals": 18 }, @@ -14968,6 +15084,30 @@ } ] }, + { + "name": "Nautilus Chain", + "title": "Nautilus Trition Testnet", + "chain": "ETH", + "icon": "nautilus", + "rpc": ["https://triton.api.nautchain.xyz"], + "faucets": ["https://faucet.eclipse.builders"], + "nativeCurrency": { + "name": "Nautilus Zebec Testnet Tokens", + "symbol": "tZBC", + "decimals": 18 + }, + "infoURL": "https://docs.nautchain.xyz", + "shortName": "NAUT", + "chainId": 91002, + "networkId": 91002, + "explorers": [ + { + "name": "Nautscan", + "url": "https://triton.nautscan.com", + "standard": "EIP3091" + } + ] + }, { "name": "Lambda Testnet", "chain": "Lambda", @@ -15557,6 +15697,26 @@ } ] }, + { + "name": "Siberium Test Network", + "chain": "SBR", + "rpc": ["https://rpc.test.siberium.net"], + "faucets": [], + "nativeCurrency": { "name": "TestSIBR", "symbol": "SIBR", "decimals": 18 }, + "infoURL": "https://siberium.net", + "shortName": "testsbr", + "chainId": 111000, + "networkId": 111000, + "icon": "siberium", + "explorers": [ + { + "name": "Siberium Testnet Explorer - blockscout", + "url": "https://explorer.test.siberium.net", + "icon": "siberium", + "standard": "EIP3091" + } + ] + }, { "name": "Siberium Network", "chain": "SBR", @@ -15651,6 +15811,7 @@ { "name": "Taiko (Alpha-2 Testnet)", "chain": "ETH", + "status": "deprecated", "icon": "taiko", "rpc": ["https://rpc.a2.taiko.xyz"], "faucets": [], @@ -15667,6 +15828,26 @@ } ] }, + { + "name": "Taiko (Alpha-3 Testnet)", + "chain": "ETH", + "status": "active", + "icon": "taiko", + "rpc": ["https://rpc.test.taiko.xyz"], + "faucets": [], + "nativeCurrency": { "name": "Ether", "symbol": "ETH", "decimals": 18 }, + "infoURL": "https://taiko.xyz", + "shortName": "taiko-a3", + "chainId": 167005, + "networkId": 167005, + "explorers": [ + { + "name": "blockscout", + "url": "https://explorer.test.taiko.xyz", + "standard": "EIP3091" + } + ] + }, { "name": "Condor Test Network", "chain": "CONDOR", @@ -16071,7 +16252,12 @@ "name": "Filecoin - Calibration testnet", "chain": "FIL", "icon": "filecoin", - "rpc": ["https://api.calibration.node.glif.io/rpc/v1"], + "rpc": [ + "https://api.calibration.node.glif.io/rpc/v1", + "https://rpc.ankr.com/filecoin_testnet", + "https://filecoin-calibration.chainstacklabs.com/rpc/v1", + "https://filecoin-calibration.chainup.net/rpc/v1" + ], "faucets": ["https://faucet.calibration.fildev.network/"], "nativeCurrency": { "name": "testnet filecoin", @@ -16098,7 +16284,13 @@ "name": "Filfox - Calibration", "url": "https://calibration.filfox.info", "standard": "none" - } + }, + { + "name": "Glif Explorer - Calibration", + "url": "https://explorer.glif.io/?network=calibration", + "standard": "none" + }, + { "name": "Beryx", "url": "https://beryx.zondax.ch", "standard": "none" } ] }, { @@ -16121,6 +16313,27 @@ } ] }, + { + "name": "Aves Testnet", + "chain": "AVST", + "rpc": ["https://test.rpc.avescoin.io"], + "faucets": [], + "nativeCurrency": { "name": "AvesT", "symbol": "AVST", "decimals": 18 }, + "features": [{ "name": "EIP155" }, { "name": "EIP1559" }], + "infoURL": "https://ethereum.org", + "shortName": "avst", + "chainId": 333331, + "networkId": 333331, + "icon": "aves", + "explorers": [ + { + "name": "avescan", + "url": "https://testnet.avescoin.io", + "icon": "avescan", + "standard": "EIP3091" + } + ] + }, { "name": "Oone Chain Testnet", "chain": "OONE", @@ -16458,6 +16671,21 @@ } ] }, + { + "name": "Patex Sepolia Testnet", + "chain": "ETH", + "rpc": ["https://test-rpc.patex.io/"], + "faucets": [], + "nativeCurrency": { + "name": "Sepolia Ether", + "symbol": "ETH", + "decimals": 18 + }, + "infoURL": "https://patex.io/", + "shortName": "psep", + "chainId": 471100, + "networkId": 471100 + }, { "name": "OpenChain Mainnet", "chain": "OpenChain", From d449b7ad94751e8d7db8c560a4e757b83f8d6a00 Mon Sep 17 00:00:00 2001 From: aqeelVaival <123551683+aqeelVaival@users.noreply.github.com> Date: Sat, 10 Jun 2023 14:47:47 +0500 Subject: [PATCH 11/13] Add Elysium Mainnet chain (#1055) * Elysium chain added * Elysium chain added * extra files removed for Elysium test case * code allign * align code --------- Co-authored-by: aqeelkazmi --- src/sourcify-chains.ts | 8 ++++++++ test/chains/chain-tests.js | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/sourcify-chains.ts b/src/sourcify-chains.ts index 8ab16805d..4cf48a769 100644 --- a/src/sourcify-chains.ts +++ b/src/sourcify-chains.ts @@ -818,6 +818,14 @@ const sourcifyChainsExtensions: SourcifyChainsExtensionsObject = { contractFetchAddress: "https://cronoscan.com/" + ETHERSCAN_SUFFIX, txRegex: ETHERSCAN_REGEX, }, + "1339": { + // Elysium Mainnet Chain + supported: true, + monitored: false, + contractFetchAddress: + "https://blockscout.elysiumchain.tech/" + BLOCKSCOUT_SUFFIX, + txRegex: getBlockscoutRegex(), + }, }; const sourcifyChainsMap: SourcifyChainMap = {}; diff --git a/test/chains/chain-tests.js b/test/chains/chain-tests.js index e2a445a93..db217e126 100644 --- a/test/chains/chain-tests.js +++ b/test/chains/chain-tests.js @@ -846,6 +846,14 @@ describe("Test Supported Chains", function () { "25/metadata.json" ); + // Elysium Mainnet Chain + verifyContract( + "0x20563837F7423465699D7675BCB82f886a761c25", + "1339", + "Elysium Mainnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); // Finally check if all the "supported: true" chains have been tested it("should have tested all supported chains", function (done) { From 6d1a348d8419cc13484787d70f65af854f8a862b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kaan=20Uzdo=C4=9Fan?= Date: Sat, 10 Jun 2023 12:49:39 +0200 Subject: [PATCH 12/13] Add Taiko Alpha-3 (167005) --- src/sourcify-chains.ts | 5 +++++ test/chains/chain-tests.js | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/sourcify-chains.ts b/src/sourcify-chains.ts index 4cf48a769..470296992 100644 --- a/src/sourcify-chains.ts +++ b/src/sourcify-chains.ts @@ -826,6 +826,11 @@ const sourcifyChainsExtensions: SourcifyChainsExtensionsObject = { "https://blockscout.elysiumchain.tech/" + BLOCKSCOUT_SUFFIX, txRegex: getBlockscoutRegex(), }, + "167005": { + // Taiko Alpha-3 + supported: true, + monitored: false, + }, }; const sourcifyChainsMap: SourcifyChainMap = {}; diff --git a/test/chains/chain-tests.js b/test/chains/chain-tests.js index db217e126..f5851e16c 100644 --- a/test/chains/chain-tests.js +++ b/test/chains/chain-tests.js @@ -855,6 +855,14 @@ describe("Test Supported Chains", function () { "shared/1_Storage.metadata.json" ); + // Taiko Alpha-3 Testnet + verifyContract( + "0x68107Fb54f5f29D8e0B3Ac44a99f4444D1F22a68", + "167005", + "Taiko Alpha-3 Testnet", + ["shared/1_Storage.sol"], + "shared/1_Storage.metadata.json" + ); // Finally check if all the "supported: true" chains have been tested it("should have tested all supported chains", function (done) { if (newAddedChainId) { From 67aae9d99a8eba144dd98e4308cca7744b077bcc Mon Sep 17 00:00:00 2001 From: Symplexia Labs <106164850+symplexialabs@users.noreply.github.com> Date: Mon, 12 Jun 2023 06:55:18 -0300 Subject: [PATCH 13/13] Update_Chain_1149 (#1057) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixes the Tests * Updating Tests - Chain 1149 * Remove immutable test chain 1149 --------- Co-authored-by: Symplexia Labs Co-authored-by: Kaan Uzdoğan --- test/chains/chain-tests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/chains/chain-tests.js b/test/chains/chain-tests.js index f5851e16c..dac9bb56b 100644 --- a/test/chains/chain-tests.js +++ b/test/chains/chain-tests.js @@ -56,7 +56,7 @@ describe("Test Supported Chains", function () { // Symplexia Smart Chain verifyContract( - "0xa33a20ba0aC3fe6b94a8e1Eb4614947B9cb51F84", + "0x968fd0BADc643B0A7b088f4b6aA2CE5FA65db622", "1149", "Symplexia Smart Chain", ["shared/1_Storage.sol"],