diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b8c0f6647fd..9840d738dcc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,179 +28,178 @@ jobs: - run: yarn build:cjs - uses: actions/cache/save@v4 with: - path: ./ - key: web3-${{ matrix.node }}-${{github.sha}} + path: ./ + key: web3-${{ matrix.node }}-${{github.sha}} - build-esm: - name: Build ESM - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v4 - with: - node-version: 18 - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - run: yarn build:esm - build-types: - name: Build Types - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v4 - with: - node-version: 18 - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - run: yarn build:types - lint: - name: Lint - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v4 - with: - node-version: 18 - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - run: npx ts-node scripts/init.ts - - name: Restore eslint caches - uses: actions/cache/restore@v4 - with: - path: | - packages/web3/.eslintcache - packages/web3-core/.eslintcache - packages/web3-eth/.eslintcache - packages/web3-eth-abi/.eslintcache - packages/web3-eth-accounts/.eslintcache - packages/web3-eth-contract/.eslintcache - packages/web3-eth-ens/.eslintcache - packages/web3-eth-iban/.eslintcache - packages/web3-eth-personal/.eslintcache - packages/web3-net/.eslintcache - packages/web3-providers-http/.eslintcache - packages/web3-providers-ws/.eslintcache - packages/web3-rpc-methods/.eslintcache - packages/web3-types/.eslintcache - packages/web3-utils/.eslintcache - packages/web3-validator/.eslintcache - tools/web3-plugin-example/.eslintcache - key: ${{ runner.os }}-eslintcache + # build-esm: + # name: Build ESM + # needs: build + # runs-on: ubuntu-latest + # steps: + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-18-${{github.sha}} + # - run: yarn build:esm + # build-types: + # name: Build Types + # needs: build + # runs-on: ubuntu-latest + # steps: + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-18-${{github.sha}} + # - run: yarn build:types + # lint: + # name: Lint + # needs: build + # runs-on: ubuntu-latest + # steps: + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-18-${{github.sha}} + # - run: npx ts-node scripts/init.ts + # - name: Restore eslint caches + # uses: actions/cache/restore@v4 + # with: + # path: | + # packages/web3/.eslintcache + # packages/web3-core/.eslintcache + # packages/web3-eth/.eslintcache + # packages/web3-eth-abi/.eslintcache + # packages/web3-eth-accounts/.eslintcache + # packages/web3-eth-contract/.eslintcache + # packages/web3-eth-ens/.eslintcache + # packages/web3-eth-iban/.eslintcache + # packages/web3-eth-personal/.eslintcache + # packages/web3-net/.eslintcache + # packages/web3-providers-http/.eslintcache + # packages/web3-providers-ws/.eslintcache + # packages/web3-rpc-methods/.eslintcache + # packages/web3-types/.eslintcache + # packages/web3-utils/.eslintcache + # packages/web3-validator/.eslintcache + # tools/web3-plugin-example/.eslintcache + # key: ${{ runner.os }}-eslintcache - - run: yarn lint - - run: gh cache delete "${{ runner.os }}-eslintcache" - if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - run: yarn lint + # - run: gh cache delete "${{ runner.os }}-eslintcache" + # if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' + # env: + # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Save eslint caches - if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' - uses: actions/cache/save@v4 - with: - path: | - packages/web3/.eslintcache - packages/web3-core/.eslintcache - packages/web3-eth/.eslintcache - packages/web3-eth-abi/.eslintcache - packages/web3-eth-accounts/.eslintcache - packages/web3-eth-contract/.eslintcache - packages/web3-eth-ens/.eslintcache - packages/web3-eth-iban/.eslintcache - packages/web3-eth-personal/.eslintcache - packages/web3-net/.eslintcache - packages/web3-providers-http/.eslintcache - packages/web3-providers-ws/.eslintcache - packages/web3-rpc-methods/.eslintcache - packages/web3-types/.eslintcache - packages/web3-utils/.eslintcache - packages/web3-validator/.eslintcache - tools/web3-plugin-example/.eslintcache - key: ${{ runner.os }}-eslintcache + # - name: Save eslint caches + # if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' + # uses: actions/cache/save@v4 + # with: + # path: | + # packages/web3/.eslintcache + # packages/web3-core/.eslintcache + # packages/web3-eth/.eslintcache + # packages/web3-eth-abi/.eslintcache + # packages/web3-eth-accounts/.eslintcache + # packages/web3-eth-contract/.eslintcache + # packages/web3-eth-ens/.eslintcache + # packages/web3-eth-iban/.eslintcache + # packages/web3-eth-personal/.eslintcache + # packages/web3-net/.eslintcache + # packages/web3-providers-http/.eslintcache + # packages/web3-providers-ws/.eslintcache + # packages/web3-rpc-methods/.eslintcache + # packages/web3-types/.eslintcache + # packages/web3-utils/.eslintcache + # packages/web3-validator/.eslintcache + # tools/web3-plugin-example/.eslintcache + # key: ${{ runner.os }}-eslintcache - build-web: - name: Build Web - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v4 - with: - node-version: 18 - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - name: Restore default branch stats - if: github.event_name != 'push' - uses: actions/cache/restore@v4 - with: - path: packages/web3/dist/4.x.json - key: web3-bundle-stats-4x-${{github.event.pull_request.base.sha}} - - run: yarn build:web:analyze - env: - STATS_FILE: ${{ github.ref_name }}.json - - name: Compare bundle stats - uses: github/webpack-bundlesize-compare-action@v1.8.2 - continue-on-error: true - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - current-stats-json-path: "packages/web3/dist/${{ github.ref_name }}.json" - base-stats-json-path: "packages/web3/dist/4.x.json" - - name: Cache default branch stats - uses: actions/cache/save@v4 - if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' - with: - path: packages/web3/dist/${{ github.ref_name }}.json - key: web3-bundle-stats-4x-${{github.sha}} + # build-web: + # name: Build Web + # needs: build + # runs-on: ubuntu-latest + # steps: + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-18-${{github.sha}} + # - name: Restore default branch stats + # if: github.event_name != 'push' + # uses: actions/cache/restore@v4 + # with: + # path: packages/web3/dist/4.x.json + # key: web3-bundle-stats-4x-${{github.event.pull_request.base.sha}} + # - run: yarn build:web:analyze + # env: + # STATS_FILE: ${{ github.ref_name }}.json + # - name: Compare bundle stats + # uses: github/webpack-bundlesize-compare-action@v1.8.2 + # continue-on-error: true + # with: + # github-token: ${{ secrets.GITHUB_TOKEN }} + # current-stats-json-path: "packages/web3/dist/${{ github.ref_name }}.json" + # base-stats-json-path: "packages/web3/dist/4.x.json" + # - name: Cache default branch stats + # uses: actions/cache/save@v4 + # if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' + # with: + # path: packages/web3/dist/${{ github.ref_name }}.json + # key: web3-bundle-stats-4x-${{github.sha}} + # unit: + # name: Unit Tests + # needs: build + # runs-on: ubuntu-latest + # strategy: + # matrix: + # node: ['18', '20.17.0'] + # steps: + # - uses: actions/setup-node@v4 + # with: + # architecture: x64 + # node-version: ${{ matrix.node }} + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-${{ matrix.node }}-${{github.sha}} + # - run: yarn test:unit + # continue-on-error: ${{ matrix.node == '20.17.0' }} + # - name: Upload coverage to Codecov + # uses: codecov/codecov-action@v3 + # with: + # flags: UnitTests + # token: ${{ secrets.CODECOV_TOKEN }} + # if: ${{ matrix.node == 18 }} - unit: - name: Unit Tests + integration-hardhat: + name: Integration hardhat needs: build runs-on: ubuntu-latest strategy: - matrix: - node: ['18', '20.17.0'] + fail-fast: false steps: - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v3 with: - architecture: x64 - node-version: ${{ matrix.node }} + node-version: 18 - uses: actions/cache/restore@v4 with: - path: ./ - key: web3-${{ matrix.node }}-${{github.sha}} - - run: yarn test:unit - continue-on-error: ${{ matrix.node == '20.17.0' }} - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 - with: - flags: UnitTests - token: ${{ secrets.CODECOV_TOKEN }} - if: ${{ matrix.node == 18 }} - - integration-hardhat: - name: Integration hardhat - needs: build - runs-on: ubuntu-latest - strategy: - fail-fast: false - steps: - - uses: actions/setup-node@v3 - with: - node-version: 18 - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - run: npx hardhat node & - - run: yarn test:e2e:hardhat:http - shell: bash + path: ./ + key: web3-18-${{github.sha}} + - run: npx hardhat node & + - run: yarn test:e2e:hardhat:http + shell: bash e2e-geth: name: Integration # (geth with HTTP, IPC & WS) @@ -212,132 +211,132 @@ jobs: strategy: fail-fast: false matrix: - mode: [ 'ipc', 'ws', 'http' ] + mode: ['ipc', 'ws', 'http'] steps: - - uses: actions/setup-node@v4 - with: - node-version: 18 - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - run: yarn test:e2e:geth:${{ matrix.mode }} - shell: bash + - uses: actions/setup-node@v4 + with: + node-version: 18 + - uses: actions/cache/restore@v4 + with: + path: ./ + key: web3-18-${{github.sha}} + - run: yarn test:e2e:geth:${{ matrix.mode }} + shell: bash - e2e-browsers: - name: End-to-End hardhat:ws - needs: build - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - browser: ['electron', 'chrome', 'firefox'] - steps: - - uses: actions/setup-node@v3 - with: - node-version: 18 - - uses: browser-actions/setup-firefox@latest - if: matrix.browser == 'firefox' - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - run: npx hardhat node & - - run: npm install --no-package-lock --no-save --force cypress - - name: Cypress run - uses: cypress-io/github-action@v4 - with: - install: false - command: yarn test:e2e:hardhat:ws:${{ matrix.browser }} - cache-key: node-v18-on-${{ matrix.browser }}-hash-${{ hashFiles('yarn.lock') }} + # e2e-browsers: + # name: End-to-End hardhat:ws + # needs: build + # runs-on: ubuntu-latest + # strategy: + # fail-fast: false + # matrix: + # browser: ['electron', 'chrome', 'firefox'] + # steps: + # - uses: actions/setup-node@v3 + # with: + # node-version: 18 + # - uses: browser-actions/setup-firefox@latest + # if: matrix.browser == 'firefox' + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-18-${{github.sha}} + # - run: npx hardhat node & + # - run: npm install --no-package-lock --no-save --force cypress + # - name: Cypress run + # uses: cypress-io/github-action@v4 + # with: + # install: false + # command: yarn test:e2e:hardhat:ws:${{ matrix.browser }} + # cache-key: node-v18-on-${{ matrix.browser }}-hash-${{ hashFiles('yarn.lock') }} - deploy-docs: - name: Docs CloudFlare Deploy - needs: build - runs-on: ubuntu-latest - permissions: - contents: read - deployments: write - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - cache: yarn - node-version: '18' - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - - run: yarn install --ignore-scripts - - run: yarn build:cjs - - run: yarn run build:docs - - name: Publish to Cloudflare Pages - uses: cloudflare/pages-action@v1 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: 2238a825c5aca59233eab1f221f7aefb - projectName: web3-js-docs - directory: ./docs/build - gitHubToken: ${{ secrets.GITHUB_TOKEN }} - benchmark: - name: Benchmark Tests - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v4 - with: - node-version: 18 - - uses: actions/cache/restore@v4 - with: - path: ./ - key: web3-18-${{github.sha}} - # @octokit/core not supported on node 16, so I can't add it to the package.json - - run: npm install --no-package-lock --no-save --force @octokit/core@5.1.0 - - name: Restore main branch benchmark data - uses: actions/cache/restore@v4 - with: - path: web3-benchmark-main.json - key: ${{ runner.os }}-web3-benchmark-main.json - - run: yarn test:benchmark - - name: Compare benchmark result and make comment - uses: benchmark-action/github-action-benchmark@v1 - with: - # What benchmark tool the output.txt came from - tool: 'benchmarkjs' - # Where the output from the benchmark tool is stored - output-file-path: benchmark-data.txt - # Where the previous data file is stored - external-data-json-path: web3-benchmark-main.json - # Workflow will fail when an alert happens - fail-on-alert: false - # GitHub API token to make a commit comment - github-token: ${{ secrets.GITHUB_TOKEN }} - # Enable alert commit comment - comment-always: true - save-data-file: false - # copy comment from commit to Pull Request - - run: node scripts/copyCommitCommentToPrComment.js ${{ secrets.GITHUB_TOKEN }} ${{github.event.pull_request.head.sha}} ${{github.event.number}} - - name: Compare benchmark result and fail if threshold is reached - uses: benchmark-action/github-action-benchmark@v1 - with: - # What benchmark tool the output.txt came from - tool: 'benchmarkjs' - # Where the output from the benchmark tool is stored - output-file-path: benchmark-data.txt - # Where the previous data file is stored - external-data-json-path: web3-benchmark-main.json - # Workflow will fail when an alert happens - fail-on-alert: true - # Enable alert commit comment - alert-threshold: '200%' - comment-always: false - - run: gh cache delete "${{ runner.os }}-web3-benchmark-main.json" - if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Save main branch benchmark data - uses: actions/cache/save@v4 - if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' - with: - path: web3-benchmark-main.json - key: ${{ runner.os }}-web3-benchmark-main.json + # deploy-docs: + # name: Docs CloudFlare Deploy + # needs: build + # runs-on: ubuntu-latest + # permissions: + # contents: read + # deployments: write + # steps: + # - uses: actions/checkout@v4 + # - uses: actions/setup-node@v4 + # with: + # cache: yarn + # node-version: '18' + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-18-${{github.sha}} + # - run: yarn install --ignore-scripts + # - run: yarn build:cjs + # - run: yarn run build:docs + # - name: Publish to Cloudflare Pages + # uses: cloudflare/pages-action@v1 + # with: + # apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + # accountId: 2238a825c5aca59233eab1f221f7aefb + # projectName: web3-js-docs + # directory: ./docs/build + # gitHubToken: ${{ secrets.GITHUB_TOKEN }} + # benchmark: + # name: Benchmark Tests + # needs: build + # runs-on: ubuntu-latest + # steps: + # - uses: actions/setup-node@v4 + # with: + # node-version: 18 + # - uses: actions/cache/restore@v4 + # with: + # path: ./ + # key: web3-18-${{github.sha}} + # # @octokit/core not supported on node 16, so I can't add it to the package.json + # - run: npm install --no-package-lock --no-save --force @octokit/core@5.1.0 + # - name: Restore main branch benchmark data + # uses: actions/cache/restore@v4 + # with: + # path: web3-benchmark-main.json + # key: ${{ runner.os }}-web3-benchmark-main.json + # - run: yarn test:benchmark + # - name: Compare benchmark result and make comment + # uses: benchmark-action/github-action-benchmark@v1 + # with: + # # What benchmark tool the output.txt came from + # tool: 'benchmarkjs' + # # Where the output from the benchmark tool is stored + # output-file-path: benchmark-data.txt + # # Where the previous data file is stored + # external-data-json-path: web3-benchmark-main.json + # # Workflow will fail when an alert happens + # fail-on-alert: false + # # GitHub API token to make a commit comment + # github-token: ${{ secrets.GITHUB_TOKEN }} + # # Enable alert commit comment + # comment-always: true + # save-data-file: false + # # copy comment from commit to Pull Request + # - run: node scripts/copyCommitCommentToPrComment.js ${{ secrets.GITHUB_TOKEN }} ${{github.event.pull_request.head.sha}} ${{github.event.number}} + # - name: Compare benchmark result and fail if threshold is reached + # uses: benchmark-action/github-action-benchmark@v1 + # with: + # # What benchmark tool the output.txt came from + # tool: 'benchmarkjs' + # # Where the output from the benchmark tool is stored + # output-file-path: benchmark-data.txt + # # Where the previous data file is stored + # external-data-json-path: web3-benchmark-main.json + # # Workflow will fail when an alert happens + # fail-on-alert: true + # # Enable alert commit comment + # alert-threshold: '200%' + # comment-always: false + # - run: gh cache delete "${{ runner.os }}-web3-benchmark-main.json" + # if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' + # env: + # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - name: Save main branch benchmark data + # uses: actions/cache/save@v4 + # if: github.event_name == 'push' && github.ref == 'refs/heads/4.x' + # with: + # path: web3-benchmark-main.json + # key: ${{ runner.os }}-web3-benchmark-main.json diff --git a/packages/web3-eth-contract/test/integration/local_account/contract_erc721.test.ts b/packages/web3-eth-contract/test/integration/local_account/contract_erc721.test.ts index 81f112fa23a..4ea801ee686 100644 --- a/packages/web3-eth-contract/test/integration/local_account/contract_erc721.test.ts +++ b/packages/web3-eth-contract/test/integration/local_account/contract_erc721.test.ts @@ -51,11 +51,8 @@ describe('contract', () => { sendOptions = { from: localAccount.address, - gas: '1000000', }; - contractDeployed = await contract - .deploy(deployOptions) - .send({ ...sendOptions, gas: '3000000' }); + contractDeployed = await contract.deploy(deployOptions).send({ ...sendOptions }); }); afterAll(async () => { @@ -174,14 +171,9 @@ describe('contract', () => { it.each(['0x1', '0x2'])('should approve and then transferFrom item %p', async type => { const tempAccount = await createLocalAccount(web3); const toAccount = await createLocalAccount(web3); - const localSendOptions = { - from: localAccount.address, - gas: '100000', - }; - const awardReceipt = await contractDeployed.methods .awardItem(tempAccount.address, 'http://my-nft-award') - .send({ ...localSendOptions, type }); + .send({ ...sendOptions, type }); expect(awardReceipt.events).toBeDefined(); expect(awardReceipt.events?.Transfer).toBeDefined(); expect(awardReceipt.events?.Transfer.event).toBe('Transfer'); @@ -203,7 +195,7 @@ describe('contract', () => { const approveReceipt = await contractDeployed.methods .approve(toAccount.address, tokenId) .send({ - ...localSendOptions, + ...sendOptions, type, from: tempAccount.address, }); @@ -231,7 +223,7 @@ describe('contract', () => { const safeTransferFromReceipt = await contractDeployed.methods .safeTransferFrom(tempAccount.address, toAccount.address, tokenId) .send({ - ...localSendOptions, + ...sendOptions, type, from: toAccount.address, }); diff --git a/scripts/system_tests_utils.ts b/scripts/system_tests_utils.ts index 8ca7e39ea21..639d127a695 100644 --- a/scripts/system_tests_utils.ts +++ b/scripts/system_tests_utils.ts @@ -425,7 +425,7 @@ export const signAndSendContractMethodEIP2930 = async ( export const createLocalAccount = async (web3: Web3) => { const account = web3.eth.accounts.create(); - await refillAccount((await createTempAccount()).address, account.address, '10000000000000000'); + await refillAccount((await createTempAccount()).address, account.address, '100000000000000000'); web3.eth.accounts.wallet.add(account); return account; };