From 12146794d06380e249cf12cba19f989a7b2e891e Mon Sep 17 00:00:00 2001 From: georgi-l95 Date: Mon, 29 Jan 2024 20:50:54 +0200 Subject: [PATCH 1/7] feat: add new manual workflow Signed-off-by: georgi-l95 --- .github/workflows/manual-testing.yml | 29 ++++++++++++++++++++++++++++ .github/workflows/test-workflow.yml | 6 ------ 2 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/manual-testing.yml diff --git a/.github/workflows/manual-testing.yml b/.github/workflows/manual-testing.yml new file mode 100644 index 000000000..f61bb4f78 --- /dev/null +++ b/.github/workflows/manual-testing.yml @@ -0,0 +1,29 @@ +name: Manual Testing +on: + workflow_dispatch: + inputs: + networkNodeTag: + description: 'Specify desired Network Node image tag' + required: true + default: '' + mirrorNodeTag: + description: 'Specify desired Mirror-Node image tag' + required: true + default: '' + relayTag: + description: 'Specify desired Hedera JSON-RPC Relay tag' + required: true + default: '' +run-name: Manual Test with network tag ${{ inputs.networkNodeTag }} mirror node tag ${{ inputs.mirrorNodeTag }} and relay tag {{ inputs.relayTag }} +jobs: + ERC20Contract: + name: ERC20 Contract Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: ERC20 + + ERC721Contract: + name: ERC721 Contract Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: ERC721 diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index c24e88b9a..92c67e0e9 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -7,12 +7,6 @@ on: required: true type: string -env: - RELAY_IMAGE_TAG: 0.39.0 - NETWORK_NODE_IMAGE_TAG: 0.45.2 - HAVEGED_IMAGE_TAG: 0.45.2 - MIRROR_IMAGE_TAG: 0.96.0 - jobs: acceptance-workflow: runs-on: [self-hosted, Linux, large, ephemeral] From b1044cdcf5ced03f5356845c753caa18e4073877 Mon Sep 17 00:00:00 2001 From: georgi-l95 Date: Mon, 29 Jan 2024 21:19:45 +0200 Subject: [PATCH 2/7] feat: add workflow for manual testing Signed-off-by: georgi-l95 --- .github/workflows/manual-testing.yml | 116 ++++++++++++++++++++++++++- .github/workflows/test-workflow.yml | 11 ++- 2 files changed, 125 insertions(+), 2 deletions(-) diff --git a/.github/workflows/manual-testing.yml b/.github/workflows/manual-testing.yml index f61bb4f78..469080afc 100644 --- a/.github/workflows/manual-testing.yml +++ b/.github/workflows/manual-testing.yml @@ -14,16 +14,130 @@ on: description: 'Specify desired Hedera JSON-RPC Relay tag' required: true default: '' -run-name: Manual Test with network tag ${{ inputs.networkNodeTag }} mirror node tag ${{ inputs.mirrorNodeTag }} and relay tag {{ inputs.relayTag }} +run-name: Manual Test with network tag ${{ inputs.networkNodeTag }}, mirror node tag ${{ inputs.mirrorNodeTag }} and relay tag ${{ inputs.relayTag }} jobs: ERC20Contract: name: ERC20 Contract Test Suite uses: ./.github/workflows/test-workflow.yml with: testfilter: ERC20 + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} ERC721Contract: name: ERC721 Contract Test Suite uses: ./.github/workflows/test-workflow.yml with: testfilter: ERC721 + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + ERC1155Contract: + name: ERC1155 Contract Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: ERC1155 + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + TokenCreateContract: + name: Token Create Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: TokenCreateContract + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + TokenQueryContract: + name: Token Query Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: TokenQueryContract + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + TokenManagmentContract: + name: Token Managment Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: TokenManagmentContract + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + TokenTransferContract: + name: Token Transfer Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: TokenTransferContract + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + Proxy: + name: Proxy Upgrade Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: Proxy + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + SafeHTS: + name: SafeHTS Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: SafeHTS + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + HIP583: + name: HIP583 Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: HIP583 + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + Multicall: + name: Multicall Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: Multicall + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + HRC: + name: HRC Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: HRC + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + ShanghaiOpcodes: + name: ShanghaiOpcodes Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: ShanghaiOpcodes + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + PrngSystemContract: + name: PrngSystemContract Test Suite + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: PrngSystemContract + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index 92c67e0e9..1287305b7 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -6,6 +6,15 @@ on: testfilter: required: true type: string + networkTag: + required: false + type: string + mirrorTag: + required: false + type: string + relayTag: + required: false + type: string jobs: acceptance-workflow: @@ -41,7 +50,7 @@ jobs: version: nightly - name: Start the local node - run: npx hedera start -d --network local + run: npx hedera start -d --network-tag=${{inputs.networkTag}} --mirror-tag=${{inputs.mirrorTag}} --relay-tag=${{inputs.relayTag}} --verbose=trace timeout-minutes: 5 - name: Run the test in ${{ inputs.testfilter }} From c9e58deeeacf7951bb7f306e2657c31819594df4 Mon Sep 17 00:00:00 2001 From: georgi-l95 Date: Mon, 29 Jan 2024 22:40:59 +0200 Subject: [PATCH 3/7] chore: shorten run-nam Signed-off-by: georgi-l95 --- .github/workflows/manual-testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/manual-testing.yml b/.github/workflows/manual-testing.yml index 469080afc..34501a45e 100644 --- a/.github/workflows/manual-testing.yml +++ b/.github/workflows/manual-testing.yml @@ -14,7 +14,7 @@ on: description: 'Specify desired Hedera JSON-RPC Relay tag' required: true default: '' -run-name: Manual Test with network tag ${{ inputs.networkNodeTag }}, mirror node tag ${{ inputs.mirrorNodeTag }} and relay tag ${{ inputs.relayTag }} +run-name: Manual Test with N:${{ inputs.networkNodeTag }}, M:${{ inputs.mirrorNodeTag }} and R:${{ inputs.relayTag }} jobs: ERC20Contract: name: ERC20 Contract Test Suite From 0cd5e5715a4afac0fa2a3d52fbfcceecfead63b9 Mon Sep 17 00:00:00 2001 From: Yaroslav Markovski Date: Tue, 30 Jan 2024 15:40:33 +0200 Subject: [PATCH 4/7] feat: add permission section in Manual Testing Signed-off-by: Yaroslav Markovski --- .github/workflows/manual-testing.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/manual-testing.yml b/.github/workflows/manual-testing.yml index 34501a45e..af8d09d17 100644 --- a/.github/workflows/manual-testing.yml +++ b/.github/workflows/manual-testing.yml @@ -15,6 +15,11 @@ on: required: true default: '' run-name: Manual Test with N:${{ inputs.networkNodeTag }}, M:${{ inputs.mirrorNodeTag }} and R:${{ inputs.relayTag }} +permissions: + contents: write + checks: write + pull-requests: write + jobs: ERC20Contract: name: ERC20 Contract Test Suite From 40cc61249cc62f0dfa403633b1c281f164d54a9d Mon Sep 17 00:00:00 2001 From: georgi-l95 Date: Tue, 30 Jan 2024 16:24:43 +0200 Subject: [PATCH 5/7] chore: update hedera local Signed-off-by: georgi-l95 --- package-lock.json | 440 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 2 files changed, 436 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index a1bbef398..504b91220 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "elliptic": "^6.5.4" }, "devDependencies": { - "@hashgraph/hedera-local": "^2.17.2", + "@hashgraph/hedera-local": "^2.18.0", "@hashgraph/sdk": "^2.40.0", "@nomicfoundation/hardhat-chai-matchers": "^2.0.3", "@nomicfoundation/hardhat-foundry": "^1.1.1", @@ -925,15 +925,16 @@ } }, "node_modules/@hashgraph/hedera-local": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@hashgraph/hedera-local/-/hedera-local-2.17.2.tgz", - "integrity": "sha512-y6NW7zmHF9IyiWiwskf3QrKHkz9oX5FVtZClTrkjtrQ/W5JTJD8ZMGO0eOY+4pm0l7zI4AIUvkdJ1u6Q5PTieQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@hashgraph/hedera-local/-/hedera-local-2.18.0.tgz", + "integrity": "sha512-y77t775pkQa9FX0i0Yslo9+mGLXMi69GbRpW2qCRIe+zMcME28NmmwnMdOGN/q9QZAjr8s49cT7cZ8XcG2RXpA==", "dev": true, "dependencies": { - "@hashgraph/sdk": "^2.39.0", + "@hashgraph/sdk": "^2.40.0", "blessed": "^0.1.81", "blessed-terminal": "^0.1.22", "csv-parser": "^3.0.0", + "detect-port": "^1.5.1", "dockerode": "^4.0.0", "dotenv": "^16.3.1", "ethers": "^6.9.0", @@ -941,12 +942,291 @@ "rimraf": "^5.0.5", "semver": "^7.5.4", "shelljs": "^0.8.5", + "ts-mocha": "^9.0.0", "yargs": "^17.7.2" }, "bin": { "hedera": "build/index.js" } }, + "node_modules/@hashgraph/hedera-local/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "peer": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "peer": true + }, + "node_modules/@hashgraph/hedera-local/node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "peer": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true, + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/ts-mocha": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-9.0.2.tgz", + "integrity": "sha512-WyQjvnzwrrubl0JT7EC1yWmNpcsU3fOuBFfdps30zbmFBgKniSaSOyZMZx+Wq7kytUs5CY+pEbSYEbGfIKnXTw==", + "dev": true, + "dependencies": { + "ts-node": "7.0.1" + }, + "bin": { + "ts-mocha": "bin/ts-mocha" + }, + "engines": { + "node": ">= 6.X.X" + }, + "optionalDependencies": { + "tsconfig-paths": "^3.5.0" + }, + "peerDependencies": { + "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X" + } + }, + "node_modules/@hashgraph/hedera-local/node_modules/workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true, + "peer": true + }, "node_modules/@hashgraph/proto": { "version": "2.14.0-beta.3", "resolved": "https://registry.npmjs.org/@hashgraph/proto/-/proto-2.14.0-beta.3.tgz", @@ -2264,6 +2544,13 @@ "@types/chai": "*" } }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "optional": true + }, "node_modules/@types/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", @@ -2313,6 +2600,13 @@ "@types/node": "*" } }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true, + "peer": true + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -2349,6 +2643,15 @@ "node": ">=12" } }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -2551,6 +2854,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", @@ -3462,6 +3774,20 @@ "node": ">= 0.8" } }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dev": true, + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -4273,6 +4599,16 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.x" + } + }, "node_modules/hardhat": { "version": "2.19.4", "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.19.4.tgz", @@ -5013,6 +5349,19 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "optional": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -5234,6 +5583,12 @@ "yallist": "^3.0.2" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/map-canvas": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/map-canvas/-/map-canvas-0.1.5.tgz", @@ -7173,6 +7528,16 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", @@ -7326,6 +7691,62 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, + "node_modules/ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dev": true, + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ts-node/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "optional": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -7826,6 +8247,15 @@ "node": ">=12" } }, + "node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 6e50319ab..1412804c4 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "prepare": "husky install" }, "devDependencies": { - "@hashgraph/hedera-local": "^2.17.2", + "@hashgraph/hedera-local": "^2.18.0", "@hashgraph/sdk": "^2.40.0", "@nomicfoundation/hardhat-chai-matchers": "^2.0.3", "@nomicfoundation/hardhat-foundry": "^1.1.1", From d0d1ab237c359b3ebc4e080f9c2419a9a124aac5 Mon Sep 17 00:00:00 2001 From: georgi-l95 Date: Wed, 31 Jan 2024 23:30:44 +0200 Subject: [PATCH 6/7] fix: multicall test Signed-off-by: georgi-l95 --- test/multicall/Multicall.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/multicall/Multicall.js b/test/multicall/Multicall.js index 4cb4817b0..e3bb035de 100644 --- a/test/multicall/Multicall.js +++ b/test/multicall/Multicall.js @@ -324,8 +324,8 @@ describe('Multicall Test Suite', function () { expect(receipt.status).to.eq(1); }); - it('should NOT be able to aggregate 150 calls to processLongInputTx', async function () { - const n = 150; + it('should NOT be able to aggregate 200 calls to processLongInputTx', async function () { + const n = 200; const { callData, data } = prepareLongInputData( n, LONG_INPUT_TX_ABI, @@ -333,7 +333,7 @@ describe('Multicall Test Suite', function () { ); const dataSize = getInputLengthInBytes(data); - expect(dataSize).to.be.eq(n * INPUT_ELEMENT_LENGTH); // input data is 39 kb + expect(dataSize).to.be.eq(n * INPUT_ELEMENT_LENGTH); // input data is 53 kb // Call is reverted because the input data exceeds the maximum transaction size let hasError = false; From a4734bd9d7790171d2046c730363bccc747308b3 Mon Sep 17 00:00:00 2001 From: georgi-l95 Date: Wed, 31 Jan 2024 23:49:35 +0200 Subject: [PATCH 7/7] feat: add Solidity, OZ and YUL Signed-off-by: georgi-l95 --- .github/workflows/manual-testing.yml | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/.github/workflows/manual-testing.yml b/.github/workflows/manual-testing.yml index af8d09d17..1a12cc19d 100644 --- a/.github/workflows/manual-testing.yml +++ b/.github/workflows/manual-testing.yml @@ -146,3 +146,48 @@ jobs: networkTag: ${{inputs.networkNodeTag}} mirrorTag: ${{inputs.mirrorNodeTag}} relayTag: ${{inputs.relayTag}} + + SolidityEquivalence1: + name: Solidity Equivalence Suite 1 + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: 'solidityequiv1' + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + SolidityEquivalence2: + name: Solidity Equivalence Suite 2 + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: 'solidityequiv2' + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + SolidityEquivalence3: + name: Solidity Equivalence Suite 3 + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: 'solidityequiv3' + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + YulEquiv: + name: Yul Equivalence + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: 'yulequiv' + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}} + + OpenZeppelinEquiv: + name: OpenZeppelin Equivalence + uses: ./.github/workflows/test-workflow.yml + with: + testfilter: 'OZ' + networkTag: ${{inputs.networkNodeTag}} + mirrorTag: ${{inputs.mirrorNodeTag}} + relayTag: ${{inputs.relayTag}}