Merge branch 'main' of github.com:hyperledger/besu into mega-eof

mega-eof
Danno Ferrin 6 months ago
commit 653f52c035
  1. 13
      .github/workflows/acceptance-tests.yml
  2. 120
      .github/workflows/artifacts.yml
  3. 123
      .github/workflows/docker.yml
  4. 9
      .github/workflows/pre-review.yml
  5. 239
      .github/workflows/release.yml
  6. 2
      .github/workflows/splitTestsByTime.sh
  7. 2
      CHANGELOG.md
  8. 9
      ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/graphql/internal/pojoadapter/TransactionAdapter.java
  9. 2
      ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/TransactionCompleteResult.java
  10. 2
      ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/TransactionPendingResult.java
  11. 2
      ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/websocket/subscription/pending/PendingTransactionDetailResult.java
  12. 6
      ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/graphql/GraphQLHttpServiceHostWhitelistTest.java
  13. 6
      ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/JsonRpcHttpServiceHostAllowlistTest.java
  14. 6
      ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/websocket/WebSocketHostAllowlistTest.java
  15. 29
      ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/graphql/eth_getBlock_frontier.json
  16. 10
      ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/graphql/eth_getBlock_shanghai.json
  17. 2
      ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/graphql/eth_getTransaction_type2.json
  18. 2
      ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/eth/eth_getBlockByNumber_complete_shanghai.json
  19. 19
      ethereum/core/src/main/java/org/hyperledger/besu/ethereum/chain/DefaultBlockchain.java
  20. 8
      ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/Transaction.java
  21. 5
      ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/headervalidationrules/TimestampValidationRuleTest.java
  22. 541
      gradle/verification-metadata.xml
  23. 10
      gradle/versions.gradle

@ -12,7 +12,7 @@ concurrency:
env:
GRADLE_OPTS: "-Xmx6g"
total-runners: 10
total-runners: 12
jobs:
acceptanceTestEthereum:
@ -24,7 +24,7 @@ jobs:
strategy:
fail-fast: true
matrix:
runner_index: [0,1,2,3,4,5,6,7,8,9]
runner_index: [0,1,2,3,4,5,6,7,8,9,10,11]
steps:
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
@ -45,15 +45,6 @@ jobs:
run: ./gradlew acceptanceTestNotPrivacy --test-dry-run -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
- name: Extract current test list
run: mkdir tmp; find . -type f -name TEST-*.xml | xargs -I{} bash -c "xmlstarlet sel -t -v '/testsuite/@name' '{}'; echo ' acceptanceTestNotPrivacy'" | tee tmp/currentTests.list
- name: Get acceptance test reports (Support transition) # can be removed after PR is merged
uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d
continue-on-error: true
with:
branch: main
name_is_regexp: true
name: 'acceptance-node-\d+-test-results'
path: tmp/junit-xml-reports-downloaded
if_no_artifact_found: true
- name: Get acceptance test reports
uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d
continue-on-error: true

@ -1,120 +0,0 @@
name: release artifacts
on:
release:
types:
- prereleased
env:
GRADLE_OPTS: "-Dorg.gradle.parallel=true -Dorg.gradle.caching=true"
jobs:
artifacts:
runs-on: ubuntu-22.04
permissions:
contents: write
outputs:
tarSha: ${{steps.hashes.outputs.tarSha}}
zipSha: ${{steps.hashes.outputs.zipSha}}
steps:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up JDK 17
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: 'temurin'
java-version: '17'
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: assemble release
run:
./gradlew -Prelease.releaseVersion=${{github.event.release.name}} -Pversion=${{github.event.release.name}} assemble
- name: hashes
id: hashes
run: |
cd build/distributions
echo "zipSha=$(shasum -a 256 besu*.zip)"
echo "tarSha=$(shasum -a 256 besu*.tar.gz)"
echo "zipSha=$(shasum -a 256 besu*.zip)" >> $GITHUB_OUTPUT
echo "tarSha=$(shasum -a 256 besu*.tar.gz)" >> $GITHUB_OUTPUT
- name: upload tarball
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
with:
path: 'build/distributions/besu*.tar.gz'
name: besu-${{ github.event.release.name }}.tar.gz
compression-level: 0
- name: upload zipfile
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
with:
path: 'build/distributions/besu*.zip'
name: besu-${{ github.event.release.name }}.zip
compression-level: 0
testWindows:
runs-on: windows-2022
needs: artifacts
timeout-minutes: 10
steps:
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: adopt
java-version: 17
- name: Download zip
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe
with:
pattern: besu-*.zip
merge-multiple: true
- name: test Besu
run: |
dir
unzip besu-*.zip -d besu-tmp
cd besu-tmp
mv besu-* ../besu
cd ..
besu\bin\besu.bat --help
besu\bin\besu.bat --version
publish:
runs-on: ubuntu-22.04
needs: [artifacts, testWindows]
permissions:
contents: write
steps:
- name: Download archives
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe
with:
pattern: besu-*
merge-multiple: true
path: 'build/distributions'
- name: Upload Release assets
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
append_body: true
files: |
build/distributions/besu*.tar.gz
build/distributions/besu*.zip
body: |
${{needs.artifacts.outputs.tarSha}}
${{needs.artifacts.outputs.zipSha}}
artifactoryPublish:
runs-on: ubuntu-22.04
needs: artifacts
steps:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up JDK 17
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: 'temurin'
java-version: '17'
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: Artifactory Publish
env:
ARTIFACTORY_USER: ${{ secrets.BESU_ARTIFACTORY_USER }}
ARTIFACTORY_KEY: ${{ secrets.BESU_ARTIFACTORY_TOKEN }}
run: ./gradlew -Prelease.releaseVersion=${{ github.event.release.name }} -Pversion=${{github.event.release.name}} artifactoryPublish

@ -1,123 +0,0 @@
name: docker
on:
release:
types:
- prereleased
env:
registry: docker.io
jobs:
hadolint:
runs-on: ubuntu-22.04
steps:
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: temurin
java-version: 17
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: hadoLint
run: docker run --rm -i hadolint/hadolint < docker/Dockerfile
buildDocker:
needs: hadolint
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
platform:
- ubuntu-22.04
- [self-hosted, ARM64]
runs-on: ${{ matrix.platform }}
steps:
- name: Prepare
id: prep
run: |
platform=${{ matrix.platform }}
if [ "$platform" = 'ubuntu-22.04' ]; then
echo "PLATFORM_PAIR=linux-amd64" >> $GITHUB_OUTPUT
echo "ARCH=amd64" >> $GITHUB_OUTPUT
else
echo "PLATFORM_PAIR=linux-arm64" >> $GITHUB_OUTPUT
echo "ARCH=arm64" >> $GITHUB_OUTPUT
fi
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: short sha
id: shortSha
run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: temurin
java-version: 17
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: install goss
run: |
mkdir -p docker/reports
curl -L https://github.com/aelsabbahy/goss/releases/download/v0.4.4/goss-${{ steps.prep.outputs.PLATFORM_PAIR }} -o ./docker/tests/goss-${{ steps.prep.outputs.PLATFORM_PAIR }}
- name: login to ${{ env.registry }}
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
with:
registry: ${{ env.registry }}
username: ${{ secrets.DOCKER_USER_RW }}
password: ${{ secrets.DOCKER_PASSWORD_RW }}
- name: build and test docker
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
env:
architecture: ${{ steps.prep.outputs.ARCH }}
with:
cache-disabled: true
arguments: testDocker -PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }}
- name: publish
env:
architecture: ${{ steps.prep.outputs.ARCH }}
run: ./gradlew --no-daemon dockerUpload -PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }}
multiArch:
needs: buildDocker
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
steps:
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: temurin
java-version: 17
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: login to ${{ env.registry }}
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
with:
registry: ${{ env.registry }}
username: ${{ secrets.DOCKER_USER_RW }}
password: ${{ secrets.DOCKER_PASSWORD_RW }}
- name: multi-arch docker
run: ./gradlew manifestDocker -PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }}
amendNotes:
needs: multiArch
runs-on: ubuntu-22.04
permissions:
contents: write
steps:
- name: add pull command to release notes
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
append_body: true
body: |
`docker pull ${{env.registry}}/${{secrets.DOCKER_ORG}}/besu:${{github.event.release.name}}`

@ -104,15 +104,6 @@ jobs:
run: ./gradlew test --test-dry-run -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
- name: Extract current test list
run: mkdir tmp; find . -type f -name TEST-*.xml | xargs -I{} bash -c "xmlstarlet sel -t -v '/testsuite/@name' '{}'; echo '{}' | sed 's#\./\(.*\)/build/test-results/.*# \1#'" | tee tmp/currentTests.list
- name: Get unit test reports (Support transition) # can be removed after PR is merged
uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d
continue-on-error: true
with:
branch: main
name_is_regexp: true
name: 'unit-.*-test-results'
path: tmp/junit-xml-reports-downloaded
if_no_artifact_found: true
- name: Get unit test reports
uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d
continue-on-error: true

@ -1,11 +1,248 @@
name: release besu
name: release
on:
release:
types: [released]
env:
registry: docker.io
GRADLE_OPTS: "-Dorg.gradle.parallel=true -Dorg.gradle.caching=true"
jobs:
artifacts:
runs-on: ubuntu-22.04
permissions:
contents: write
outputs:
tarSha: ${{steps.hashes.outputs.tarSha}}
zipSha: ${{steps.hashes.outputs.zipSha}}
steps:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up JDK 17
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: 'temurin'
java-version: '17'
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: assemble release
run:
./gradlew -Prelease.releaseVersion=${{github.event.release.name}} -Pversion=${{github.event.release.name}} assemble
- name: hashes
id: hashes
run: |
cd build/distributions
echo "zipSha=$(shasum -a 256 besu*.zip)"
echo "tarSha=$(shasum -a 256 besu*.tar.gz)"
echo "zipSha=$(shasum -a 256 besu*.zip)" >> $GITHUB_OUTPUT
echo "tarSha=$(shasum -a 256 besu*.tar.gz)" >> $GITHUB_OUTPUT
- name: upload tarball
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
with:
path: 'build/distributions/besu*.tar.gz'
name: besu-${{ github.event.release.name }}.tar.gz
compression-level: 0
- name: upload zipfile
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
with:
path: 'build/distributions/besu*.zip'
name: besu-${{ github.event.release.name }}.zip
compression-level: 0
testWindows:
runs-on: windows-2022
needs: artifacts
timeout-minutes: 10
steps:
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: adopt
java-version: 17
- name: Download zip
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe
with:
pattern: besu-*.zip
merge-multiple: true
- name: test Besu
run: |
dir
unzip besu-*.zip -d besu-tmp
cd besu-tmp
mv besu-* ../besu
cd ..
besu\bin\besu.bat --help
besu\bin\besu.bat --version
publish:
runs-on: ubuntu-22.04
needs: [testWindows]
permissions:
contents: write
steps:
- name: Download archives
uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe
with:
pattern: besu-*
merge-multiple: true
path: 'build/distributions'
- name: Upload Release assets
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
append_body: true
files: |
build/distributions/besu*.tar.gz
build/distributions/besu*.zip
body: |
${{needs.artifacts.outputs.tarSha}}
${{needs.artifacts.outputs.zipSha}}
artifactoryPublish:
runs-on: ubuntu-22.04
needs: artifacts
steps:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up JDK 17
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: 'temurin'
java-version: '17'
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: Artifactory Publish
env:
ARTIFACTORY_USER: ${{ secrets.BESU_ARTIFACTORY_USER }}
ARTIFACTORY_KEY: ${{ secrets.BESU_ARTIFACTORY_TOKEN }}
run: ./gradlew -Prelease.releaseVersion=${{ github.event.release.name }} -Pversion=${{github.event.release.name}} artifactoryPublish
hadolint:
runs-on: ubuntu-22.04
steps:
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: temurin
java-version: 17
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: hadoLint
run: docker run --rm -i hadolint/hadolint < docker/Dockerfile
buildDocker:
needs: hadolint
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
platform:
- ubuntu-22.04
- [self-hosted, ARM64]
runs-on: ${{ matrix.platform }}
steps:
- name: Prepare
id: prep
run: |
platform=${{ matrix.platform }}
if [ "$platform" = 'ubuntu-22.04' ]; then
echo "PLATFORM_PAIR=linux-amd64" >> $GITHUB_OUTPUT
echo "ARCH=amd64" >> $GITHUB_OUTPUT
else
echo "PLATFORM_PAIR=linux-arm64" >> $GITHUB_OUTPUT
echo "ARCH=arm64" >> $GITHUB_OUTPUT
fi
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: short sha
id: shortSha
run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: temurin
java-version: 17
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: install goss
run: |
mkdir -p docker/reports
curl -L https://github.com/aelsabbahy/goss/releases/download/v0.4.4/goss-${{ steps.prep.outputs.PLATFORM_PAIR }} -o ./docker/tests/goss-${{ steps.prep.outputs.PLATFORM_PAIR }}
- name: login to ${{ env.registry }}
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
with:
registry: ${{ env.registry }}
username: ${{ secrets.DOCKER_USER_RW }}
password: ${{ secrets.DOCKER_PASSWORD_RW }}
- name: build and test docker
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
env:
architecture: ${{ steps.prep.outputs.ARCH }}
with:
cache-disabled: true
arguments: testDocker -PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }}
- name: publish
env:
architecture: ${{ steps.prep.outputs.ARCH }}
run: ./gradlew --no-daemon dockerUpload -PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }}
multiArch:
needs: buildDocker
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write
steps:
- name: Checkout Repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: Set up Java
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
with:
distribution: temurin
java-version: 17
- name: setup gradle
uses: gradle/actions/setup-gradle@9e899d11ad247ec76be7a60bc1cf9d3abbb9e7f1
with:
cache-disabled: true
- name: login to ${{ env.registry }}
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d
with:
registry: ${{ env.registry }}
username: ${{ secrets.DOCKER_USER_RW }}
password: ${{ secrets.DOCKER_PASSWORD_RW }}
- name: multi-arch docker
run: ./gradlew manifestDocker -PdockerOrgName=${{ env.registry }}/${{ secrets.DOCKER_ORG }} -Pversion=${{github.event.release.name}} -Prelease.releaseVersion=${{ github.event.release.name }}
amendNotes:
needs: multiArch
runs-on: ubuntu-22.04
permissions:
contents: write
steps:
- name: add pull command to release notes
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
append_body: true
body: |
`docker pull ${{env.registry}}/${{secrets.DOCKER_ORG}}/besu:${{github.event.release.name}}`
dockerPromoteX64:
needs: multiArch
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

@ -46,7 +46,7 @@ for line in "${sorted[@]}"; do
module_dir=${line_parts[2]}
test_with_module="$test_name $module_dir"
# temp deduplication during the transition phase
# deduplication check to avoid executing a test multiple time
if grep -F -q --line-regexp "$test_with_module" tmp/processedTests.list
then
continue

@ -5,6 +5,7 @@
### Breaking Changes
### Additions and Improvements
- Add two counters to DefaultBlockchain in order to be able to calculate TPS and Mgas/s [#7105](https://github.com/hyperledger/besu/pull/7105)
### Bug fixes
- Make `eth_gasPrice` aware of the base fee market [#7102](https://github.com/hyperledger/besu/pull/7102)
@ -28,6 +29,7 @@
### Bug fixes
- Fix parsing `gasLimit` parameter when its value is > `Long.MAX_VALUE` [#7116](https://github.com/hyperledger/besu/pull/7116)
- Skip validation of withdrawals when importing BFT blocks since withdrawals don't apply to BFT chains [#7115](https://github.com/hyperledger/besu/pull/7115)
- Make `v` abd `yParity` match in type 1 and 2 transactions in JSON-RPC and GraphQL [#7139](https://github.com/hyperledger/besu/pull/7139)
### Download Links
https://github.com/hyperledger/besu/releases/tag/24.5.2

@ -16,6 +16,7 @@ package org.hyperledger.besu.ethereum.api.graphql.internal.pojoadapter;
import org.hyperledger.besu.datatypes.Address;
import org.hyperledger.besu.datatypes.Hash;
import org.hyperledger.besu.datatypes.TransactionType;
import org.hyperledger.besu.datatypes.VersionedHash;
import org.hyperledger.besu.datatypes.Wei;
import org.hyperledger.besu.ethereum.api.graphql.GraphQLContextType;
@ -248,7 +249,13 @@ public class TransactionAdapter extends AdapterBase {
}
public Optional<BigInteger> getV() {
return Optional.ofNullable(transactionWithMetadata.getTransaction().getV());
BigInteger v = transactionWithMetadata.getTransaction().getV();
return Optional.ofNullable(
v == null
&& (transactionWithMetadata.getTransaction().getType().getEthSerializedType()
< TransactionType.BLOB.getEthSerializedType())
? transactionWithMetadata.getTransaction().getYParity()
: v);
}
public Optional<BigInteger> getYParity() {

@ -126,7 +126,7 @@ public class TransactionCompleteResult implements TransactionResult {
this.v =
(transactionType == TransactionType.ACCESS_LIST
|| transactionType == TransactionType.EIP1559)
? Quantity.create(transaction.getV())
? Quantity.create(transaction.getYParity())
: null;
}
this.value = Quantity.create(transaction.getValue());

@ -116,7 +116,7 @@ public class TransactionPendingResult implements TransactionResult {
this.v =
(transactionType == TransactionType.ACCESS_LIST
|| transactionType == TransactionType.EIP1559)
? Quantity.create(transaction.getV())
? Quantity.create(transaction.getYParity())
: null;
}
this.value = Quantity.create(transaction.getValue());

@ -73,7 +73,7 @@ public class PendingTransactionDetailResult implements JsonRpcResult {
this.v =
(transactionType == TransactionType.ACCESS_LIST
|| transactionType == TransactionType.EIP1559)
? Quantity.create(tx.getV())
? Quantity.create(tx.getYParity())
: null;
}
this.value = Quantity.create(tx.getValue());

@ -155,8 +155,8 @@ public class GraphQLHttpServiceHostWhitelistTest {
@Test
public void requestWithMalformedHostIsRejected() throws IOException {
graphQLConfig.setHostsAllowlist(hostsWhitelist);
Assertions.assertThat(doRequest("ally:friend")).isEqualTo(403);
Assertions.assertThat(doRequest("ally:123456")).isEqualTo(403);
Assertions.assertThat(doRequest("ally:friend:1234")).isEqualTo(403);
Assertions.assertThat(doRequest("ally:friend")).isEqualTo(400);
Assertions.assertThat(doRequest("ally:123456")).isEqualTo(400);
Assertions.assertThat(doRequest("ally:friend:1234")).isEqualTo(400);
}
}

@ -206,8 +206,8 @@ public class JsonRpcHttpServiceHostAllowlistTest {
@Test
public void requestWithMalformedHostIsRejected() throws IOException {
jsonRpcConfig.setHostsAllowlist(hostsAllowlist);
assertThat(doRequest("ally:friend")).isEqualTo(403);
assertThat(doRequest("ally:123456")).isEqualTo(403);
assertThat(doRequest("ally:friend:1234")).isEqualTo(403);
assertThat(doRequest("ally:friend")).isEqualTo(400);
assertThat(doRequest("ally:123456")).isEqualTo(400);
assertThat(doRequest("ally:friend:1234")).isEqualTo(400);
}
}

@ -196,9 +196,9 @@ public class WebSocketHostAllowlistTest {
public void httpRequestWithMalformedHostIsRejected() throws Throwable {
webSocketConfiguration.setAuthenticationEnabled(false);
webSocketConfiguration.setHostsAllowlist(hostsAllowlist);
doHttpRequestAndVerify(testContext, "ally:friend", 403);
doHttpRequestAndVerify(testContext, "ally:123456", 403);
doHttpRequestAndVerify(testContext, "ally:friend:1234", 403);
doHttpRequestAndVerify(testContext, "ally:friend", 400);
doHttpRequestAndVerify(testContext, "ally:123456", 400);
doHttpRequestAndVerify(testContext, "ally:friend:1234", 400);
}
private void doHttpRequestAndVerify(

@ -0,0 +1,29 @@
{
"request": "{block (number: 32) { difficulty extraData miner { address } mixHash nonce stateRoot totalDifficulty transactions { gasPrice type yParity v r s} }} ",
"response": {
"data": {
"block": {
"difficulty": "0x207c0",
"extraData": "0x",
"miner": {
"address": "0x8888f1f195afa192cfee860698584c030f4c9db1"
},
"mixHash": "0x4edd77bfff565659bb0ae09421918e4def65d938a900eb94230eb01f5ce80c99",
"nonce": "0xdb063000b00e8026",
"stateRoot": "0xf65f3dd13f72f5fa5607a5224691419969b4f4bae7a00a6cdb853f2ca9eeb1be",
"totalDifficulty": "0x427c00",
"transactions": [
{
"gasPrice": "0x1",
"type": "0x0",
"yParity": null,
"v": "0x1b",
"r": "0x705b002a7df60707d33812e0298411721be20ea5a2f533707295140d89263b79",
"s": "0x78024390784f24160739533b3ceea2698289a02afd9cc768581b4aa3d5f4b105"
}
]
}
}
},
"statusCode": 200
}

@ -1,5 +1,5 @@
{
"request": "{block (number : 33) { baseFeePerGas difficulty extraData miner { address } mixHash nonce stateRoot totalDifficulty withdrawalsRoot withdrawals { address amount index validator } }} ",
"request": "{block (number : 33) { baseFeePerGas difficulty extraData miner { address } mixHash nonce stateRoot totalDifficulty transactions { r s v yParity } withdrawalsRoot withdrawals { address amount index validator } }} ",
"response": {
"data": {
"block": {
@ -13,6 +13,14 @@
"nonce": "0x0000000000000000",
"stateRoot": "0x0d3c456bb68669bad05da3a1a766daab236c9df1da8f74edf5ebe9383f00084c",
"totalDifficulty": "0x427c00",
"transactions": [
{
"r": "0x8abbfbd4c5f2a13a8d5ed394ac50bac7d678f83a23f645818492f76e8ee17ab3",
"s": "0x7bd38c6929235f775d68b45bd7dea7981264f9a265b6bea97b070e15be88389c",
"v": "0x0",
"yParity": "0x0"
}
],
"withdrawalsRoot": "0x37945ab58d2712a26df2a38d217e822694927e29b30d5993d7a53ccea618d1f3",
"withdrawals": [
{

@ -17,7 +17,7 @@
"type": "0x2",
"status": "0x1",
"yParity": "0x0",
"v": "0x25"
"v": "0x0"
}
}
},

@ -58,7 +58,7 @@
"type": "0x2",
"value": "0x0",
"yParity": "0x0",
"v" : "0x25",
"v" : "0x0",
"r": "0x8abbfbd4c5f2a13a8d5ed394ac50bac7d678f83a23f645818492f76e8ee17ab3",
"s": "0x7bd38c6929235f775d68b45bd7dea7981264f9a265b6bea97b070e15be88389c"
}

@ -33,6 +33,7 @@ import org.hyperledger.besu.ethereum.core.TransactionReceipt;
import org.hyperledger.besu.metrics.BesuMetricCategory;
import org.hyperledger.besu.metrics.prometheus.PrometheusMetricsSystem;
import org.hyperledger.besu.plugin.services.MetricsSystem;
import org.hyperledger.besu.plugin.services.metrics.Counter;
import org.hyperledger.besu.util.InvalidConfigurationException;
import org.hyperledger.besu.util.Subscribers;
@ -83,6 +84,9 @@ public class DefaultBlockchain implements MutableBlockchain {
private final Optional<Cache<Hash, List<TransactionReceipt>>> transactionReceiptsCache;
private final Optional<Cache<Hash, Difficulty>> totalDifficultyCache;
private final Counter gasUsedCounter;
private final Counter numberOfTransactionsCounter;
private DefaultBlockchain(
final Optional<Block> genesisBlock,
final BlockchainStorage blockchainStorage,
@ -117,6 +121,7 @@ public class DefaultBlockchain implements MutableBlockchain {
"blockchain_height",
"The current height of the canonical chain",
this::getChainHeadBlockNumber);
metricsSystem.createGauge(
BesuMetricCategory.BLOCKCHAIN,
"difficulty_total",
@ -135,6 +140,10 @@ public class DefaultBlockchain implements MutableBlockchain {
"Gas used by the current chain head block",
() -> getChainHeadHeader().getGasUsed());
gasUsedCounter =
metricsSystem.createCounter(
BesuMetricCategory.BLOCKCHAIN, "chain_head_gas_used_counter", "Counter for Gas used");
metricsSystem.createLongGauge(
BesuMetricCategory.BLOCKCHAIN,
"chain_head_gas_limit",
@ -147,6 +156,12 @@ public class DefaultBlockchain implements MutableBlockchain {
"Number of transactions in the current chain head block",
() -> chainHeadTransactionCount);
numberOfTransactionsCounter =
metricsSystem.createCounter(
BesuMetricCategory.BLOCKCHAIN,
"chain_head_transaction_count_counter",
"Counter for the number of transactions");
metricsSystem.createIntegerGauge(
BesuMetricCategory.BLOCKCHAIN,
"chain_head_ommer_count",
@ -524,6 +539,10 @@ public class DefaultBlockchain implements MutableBlockchain {
updater.setChainHead(newBlockHash);
indexTransactionForBlock(
updater, newBlockHash, blockWithReceipts.getBlock().getBody().getTransactions());
gasUsedCounter.inc(blockWithReceipts.getHeader().getGasUsed());
numberOfTransactionsCounter.inc(
blockWithReceipts.getBlock().getBody().getTransactions().size());
return BlockAddedEvent.createForHeadAdvancement(
blockWithReceipts.getBlock(),
LogWithMetadata.generate(

@ -495,14 +495,10 @@ public class Transaction
@Override
public BigInteger getV() {
if (transactionType != null
&& transactionType != TransactionType.FRONTIER
&& transactionType != TransactionType.ACCESS_LIST
&& transactionType != TransactionType.EIP1559) {
// Newer transaction type lacks V, so return null
if (transactionType != null && transactionType != TransactionType.FRONTIER) {
// EIP-2718 typed transaction, use yParity:
return null;
} else {
// Mandatory for legacy, optional for EIP-2930 and EIP-1559 TXes, prohibited for all others.
final BigInteger recId = BigInteger.valueOf(signature.getRecId());
return chainId
.map(bigInteger -> recId.add(REPLAY_PROTECTED_V_BASE).add(TWO.multiply(bigInteger)))

@ -102,7 +102,8 @@ public class TimestampValidationRuleTest {
final BlockHeader parent = headerBuilder.buildHeader();
// Create header for validation with a timestamp in the future (1 second too far away)
headerBuilder.timestamp(parent.getTimestamp() + acceptableClockDrift + 1);
// (+1 to avoid spurious failures)
headerBuilder.timestamp(parent.getTimestamp() + acceptableClockDrift + 2);
final BlockHeader header = headerBuilder.buildHeader();
assertThat(uut00.validate(header, parent)).isFalse();
@ -124,7 +125,7 @@ public class TimestampValidationRuleTest {
TimeUnit.SECONDS.convert(System.currentTimeMillis(), TimeUnit.MILLISECONDS));
final BlockHeader parent = headerBuilder.buildHeader();
// Create header for validation with a timestamp in the future (1 second too far away)
// Create header for validation with a timestamp an acceptable amount in the future
// (-1) to prevent spurious failures
headerBuilder.timestamp(parent.getTimestamp() + acceptableClockDrift - 1);
final BlockHeader header = headerBuilder.buildHeader();

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<verification-metadata xmlns="https://schema.gradle.org/dependency-verification" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schema.gradle.org/dependency-verification https://schema.gradle.org/dependency-verification/dependency-verification-1.3.xsd">
<verification-metadata xmlns="https://schema.gradle.org/dependency-verification" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schema.gradle.org/dependency-verification https://schema.gradle.org/dependency-verification/dependency-verification-1.2.xsd">
<configuration>
<verify-metadata>true</verify-metadata>
<verify-signatures>false</verify-signatures>
@ -1664,12 +1664,12 @@
<sha256 value="3bda417f3cbe8526948e758d67674634f983349b86b82cabb96fafab9e3ddda2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-all" version="4.1.104.Final">
<artifact name="netty-all-4.1.104.Final.jar">
<sha256 value="11933ecbc6c1de67908afa3ea469a7cd104c50bce4f3a5cd909c2f208c97a044" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-all" version="4.1.110.Final">
<artifact name="netty-all-4.1.110.Final.jar">
<sha256 value="f081b992c828c2fc750c360c34b7fd64572a3466b3601ad8127d2010d4a14f4a" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-all-4.1.104.Final.pom">
<sha256 value="0bd88bfd57d11f3fd4d4469565406ec8ff0f2bc4cfe253f36bf5664e4accf251" origin="Generated by Gradle"/>
<artifact name="netty-all-4.1.110.Final.pom">
<sha256 value="217ce2497d10d5e4d3606314048a1414fa2af9849eb3ba69b70b5355ccdab360" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-bom" version="4.1.104.Final">
@ -1677,9 +1677,9 @@
<sha256 value="5a65e06a159d20d3b4800624a570c646dbee710b2b539b3449a268558c289e9c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-bom" version="4.1.107.Final">
<artifact name="netty-bom-4.1.107.Final.pom">
<sha256 value="c36997558bfb4e11f200dda6ee2e41a45f2df9e1aef678eda08e79dd8938c210" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-bom" version="4.1.110.Final">
<artifact name="netty-bom-4.1.110.Final.pom">
<sha256 value="a49be1a4ad1f8bf170c1dc1628b1181b51e6d9cf2a25645aa722994095bb9bff" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-bom" version="4.1.86.Final">
@ -1687,64 +1687,44 @@
<sha256 value="12716c1fe64cf5bdaa7044d37d13aae3a88821b91d4798420c46a74769178afd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-buffer" version="4.1.104.Final">
<artifact name="netty-buffer-4.1.104.Final.pom">
<sha256 value="9cf38fd1f6c61a8c9a2a6e342f74289d26a1123a216511b2d6813f8aed396e78" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-buffer" version="4.1.110.Final">
<artifact name="netty-buffer-4.1.110.Final.jar">
<sha256 value="46d74e79125aacc055c31f18152fdc5d4a569aa8d60091203d0baa833973ac3c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-buffer" version="4.1.107.Final">
<artifact name="netty-buffer-4.1.107.Final.jar">
<sha256 value="04eb1231c86a7011c48cd443a25dc2f397137e5ee0aac2f12f1c503f11f09e2a" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-buffer-4.1.107.Final.pom">
<sha256 value="fcaf25420ba99a6701cf74718677411498fdb1fad4d75734d35fd8ef4a6ee945" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec" version="4.1.104.Final">
<artifact name="netty-codec-4.1.104.Final.pom">
<sha256 value="6c23829e4fcde1aee21283ec9c7ee9238cb09b8fb4e7f3067aaa349b63134041" origin="Generated by Gradle"/>
<artifact name="netty-buffer-4.1.110.Final.pom">
<sha256 value="710ac19cc01cd80df6be9a3faad3c222b4a1a32f4b55137be07b6099d5da3562" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec" version="4.1.107.Final">
<artifact name="netty-codec-4.1.107.Final.jar">
<sha256 value="3a1f361b405f9ea30fe6aabe1907d719c0c99fe30c03932fee558214dbd638cc" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec" version="4.1.110.Final">
<artifact name="netty-codec-4.1.110.Final.jar">
<sha256 value="9eccce9a8d827bb8ce84f9c3183fec58bd1c96a51010cf711297746034af3701" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-4.1.107.Final.pom">
<sha256 value="f6fc4019ce6e5c75d9ced34a6b6dccf23f283b9bb3622e14d9826d62bbeef71c" origin="Generated by Gradle"/>
<artifact name="netty-codec-4.1.110.Final.pom">
<sha256 value="a806bb536bb323665baff7cd1223f2b272a2d4717ab4f9b12361086daae5df3e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-dns" version="4.1.104.Final">
<artifact name="netty-codec-dns-4.1.104.Final.pom">
<sha256 value="27d51461bf8b9d674ca6b2cea4ec5c2830e3b41bcd2cbf60c6349386f83fcbac" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-dns" version="4.1.110.Final">
<artifact name="netty-codec-dns-4.1.110.Final.jar">
<sha256 value="5dc73e50004e3ae9fac93cd4bf1c4185e32539b4b08801dc4fa3b5108adcf5f9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-dns" version="4.1.107.Final">
<artifact name="netty-codec-dns-4.1.107.Final.jar">
<sha256 value="6014ce28b4cd32c23bd03b57823c3d682b83dc47c3fdaf4c5cef258b436accda" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-dns-4.1.107.Final.pom">
<sha256 value="f1d2cf9523c8812ed401b9d154b2d29aeb6c30ac7b4fc00a26370ec62bd69ab4" origin="Generated by Gradle"/>
<artifact name="netty-codec-dns-4.1.110.Final.pom">
<sha256 value="1e1a0ec010b7ec85fe4db152b2370ec0b51030f8519d468b13e006c5c36a699b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-haproxy" version="4.1.104.Final">
<artifact name="netty-codec-haproxy-4.1.104.Final.jar">
<sha256 value="8eb111359e6baac20553fde0a53366fb202a4d0dda9a24bbe5c2945eb9cecb2c" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-haproxy" version="4.1.110.Final">
<artifact name="netty-codec-haproxy-4.1.110.Final.jar">
<sha256 value="82234e66dc2dc675589270dcb572931d98350d870840839eeb6f329781b4835b" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-haproxy-4.1.104.Final.pom">
<sha256 value="954f6a83b7e7de6b0b1b62a0ee47f80172025afb3bd811f996c5ffc9078bca68" origin="Generated by Gradle"/>
<artifact name="netty-codec-haproxy-4.1.110.Final.pom">
<sha256 value="068f1f7d1ee4710ee81a6f8235c4fc7c91ca7fe9bfcf059bf8e6bbd20b477f7a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http" version="4.1.104.Final">
<artifact name="netty-codec-http-4.1.104.Final.pom">
<sha256 value="a7de23f077b96a2e733a99b067ae9a3e5819197d9a6aa624a54a81402f9cdcd0" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-http" version="4.1.110.Final">
<artifact name="netty-codec-http-4.1.110.Final.jar">
<sha256 value="dc0d6af5054630a70ff0ef354f20aa7a6e46738c9fc5636ed3d4fe77e38bd48d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http" version="4.1.107.Final">
<artifact name="netty-codec-http-4.1.107.Final.jar">
<sha256 value="0f35f57ecc11e1227d0c65d65582adc1075474a30a8fd3cff0f6e9a66c9e2a74" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-http-4.1.107.Final.pom">
<sha256 value="af8cad175654ef86695d5134fffa11b3a03fed1f011ca9ce0c6091bd9d4d9a90" origin="Generated by Gradle"/>
<artifact name="netty-codec-http-4.1.110.Final.pom">
<sha256 value="51ae990af14a321db6d3d6884b917b7d4363eb60dddc0f1493b18021a142e7ad" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http2" version="4.1.100.Final">
@ -1752,104 +1732,84 @@
<sha256 value="e22328e926737886cc5b57840b91a2aed68fde813a1f579f9ab59117a28b99bc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http2" version="4.1.104.Final">
<artifact name="netty-codec-http2-4.1.104.Final.pom">
<sha256 value="b98644ad4d3a7b14af269cbb84d88f92f5b45ebaac95910009b38601e8a6f4fe" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-http2" version="4.1.107.Final">
<artifact name="netty-codec-http2-4.1.107.Final.jar">
<sha256 value="5d83fe14a537ea6ddecc782df256da23ee49754044a4cacc2d8ec5225f338c72" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-http2" version="4.1.110.Final">
<artifact name="netty-codec-http2-4.1.110.Final.jar">
<sha256 value="b546c75445a487bb7bcd5a94779caecce33582cf7be31b8b39fc0e65b1ee26fc" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-http2-4.1.107.Final.pom">
<sha256 value="4f4a1939f69fd8ea04e0da24c5b77f957be9f21defee16bc4e197a0f8f4e2817" origin="Generated by Gradle"/>
<artifact name="netty-codec-http2-4.1.110.Final.pom">
<sha256 value="29d2f6c26c3cca9fe8393671707fe8ef9c3e31020a2dfe06b82c426499c25837" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-memcache" version="4.1.104.Final">
<artifact name="netty-codec-memcache-4.1.104.Final.jar">
<sha256 value="1f91f4c0f82fb3eec6d34242b108453dc1b18f74b96eaaabf064a705d45c14a7" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-memcache" version="4.1.110.Final">
<artifact name="netty-codec-memcache-4.1.110.Final.jar">
<sha256 value="0bd553dbf09a2d0aa53e9ee81cd462852d9b1d5c93ab9b8576c0ba1d4bcf76d9" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-memcache-4.1.104.Final.pom">
<sha256 value="19cafac5e5cb619dbd4f0cc2a80183d5ffdf36d99a5ad8b7f1a59f51280ecd84" origin="Generated by Gradle"/>
<artifact name="netty-codec-memcache-4.1.110.Final.pom">
<sha256 value="9131e89ab26990901c6ad070a4baa8011d572614ca09eb77071e03da94d13833" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-mqtt" version="4.1.104.Final">
<artifact name="netty-codec-mqtt-4.1.104.Final.jar">
<sha256 value="b19bcc87092bb085341f37c291dca9605b0cf256f54677921a4bcca20e1596f9" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-mqtt" version="4.1.110.Final">
<artifact name="netty-codec-mqtt-4.1.110.Final.jar">
<sha256 value="bfc5c93f9c85f8eb22f253f04ee26214003364d0a44fb7901729ce79c78bd7d6" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-mqtt-4.1.104.Final.pom">
<sha256 value="60060ef63a0bbc32c2583c325b886a1612969d604d1fe0e891eee16a3f599473" origin="Generated by Gradle"/>
<artifact name="netty-codec-mqtt-4.1.110.Final.pom">
<sha256 value="d7cc40a85113b39bca721ae9a525c0e9cb4114b2ed9a231e3f423fa9f0fd4678" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-redis" version="4.1.104.Final">
<artifact name="netty-codec-redis-4.1.104.Final.jar">
<sha256 value="fd8d7f78500375081dcac29b2fcc184ac7c125475b48f05d9659b98524f77738" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-redis" version="4.1.110.Final">
<artifact name="netty-codec-redis-4.1.110.Final.jar">
<sha256 value="12bc1facf90438d2a3ca940689b6f799ead2ea9d422343a6484ffd94d82218f8" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-redis-4.1.104.Final.pom">
<sha256 value="84a29c1bdf0c671c571941bd81857cb8d910072d0ba83271ce89a5a896560882" origin="Generated by Gradle"/>
<artifact name="netty-codec-redis-4.1.110.Final.pom">
<sha256 value="d1786c9b11f659668c62cc5c21c7b95e6b9616332356a16f251482c72cab7ba3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-smtp" version="4.1.104.Final">
<artifact name="netty-codec-smtp-4.1.104.Final.jar">
<sha256 value="e519afe6bb461c2004e5e29a5fdd9bfa2fedd73753163b7ed3c266b5c4695dac" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-smtp" version="4.1.110.Final">
<artifact name="netty-codec-smtp-4.1.110.Final.jar">
<sha256 value="4e489d43bc9393710f7ea3423ebad3597567257823b4d972db3f602a25af5696" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-smtp-4.1.104.Final.pom">
<sha256 value="5bda9421e6e4373a126a677f91baecac2299e8f13a5e8e99a8c0cd15e8ae9cc3" origin="Generated by Gradle"/>
<artifact name="netty-codec-smtp-4.1.110.Final.pom">
<sha256 value="1d10df4a6be768636df217044f7f0ed3f42479c96ea5f6c55bd3e16e863a6d49" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-socks" version="4.1.104.Final">
<artifact name="netty-codec-socks-4.1.104.Final.pom">
<sha256 value="eb49e26ac18584d0215b8d7cd12428290973beefa9036968a3ff9a300249321e" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-socks" version="4.1.110.Final">
<artifact name="netty-codec-socks-4.1.110.Final.jar">
<sha256 value="976052a3c9bb280bc6d99f3a29e6404677cf958c3de05b205093d38c006b880c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-socks" version="4.1.107.Final">
<artifact name="netty-codec-socks-4.1.107.Final.jar">
<sha256 value="7974a03d949fcaf1996c83e5d58f76ec993a9a15b386a5c518114738ed209ab8" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-socks-4.1.107.Final.pom">
<sha256 value="eaf47a66cbc791aa2db24d55b683635dff5950b8724703807572c10a8b544264" origin="Generated by Gradle"/>
<artifact name="netty-codec-socks-4.1.110.Final.pom">
<sha256 value="ffe57b316191dd4f96bee66c5709c13cbdb4ecab085c010c8db0c6aa809abf6c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-stomp" version="4.1.104.Final">
<artifact name="netty-codec-stomp-4.1.104.Final.jar">
<sha256 value="93409a2a0900ca98d2b9ed6af14bc1bb2881a9d055571180990e81cb66704dbb" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-stomp" version="4.1.110.Final">
<artifact name="netty-codec-stomp-4.1.110.Final.jar">
<sha256 value="9dc9d24f69744ab095b1a5f217e0c67211d3bb03bb3eed6b8e49754c89cfa66b" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-stomp-4.1.104.Final.pom">
<sha256 value="d10ac8fb1cad65e1bba8bc91379a7d003ec63b35a1a4c929e7a4eaeae3445a06" origin="Generated by Gradle"/>
<artifact name="netty-codec-stomp-4.1.110.Final.pom">
<sha256 value="b27e1c48e8e9722d2a11a22c4f9cd3f8d1a7ccc40e501b386ec428f6056fb1c3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-codec-xml" version="4.1.104.Final">
<artifact name="netty-codec-xml-4.1.104.Final.jar">
<sha256 value="cfdae681ab1728ead026228bb8f32504800154b19afb6c120ba6155f6edeef87" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-codec-xml-4.1.104.Final.pom">
<sha256 value="164943cdef70d11f22c0d1ca070c158b7145e8a7009c23ea17b198ed2d9eb59c" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-codec-xml" version="4.1.110.Final">
<artifact name="netty-codec-xml-4.1.110.Final.jar">
<sha256 value="b1522dd2ca492b2d7b41ecc1abb125b61734c7d46d1bb82adc97bd8124387489" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-common" version="4.1.104.Final">
<artifact name="netty-common-4.1.104.Final.pom">
<sha256 value="d13964d6ee347137d4452829deeb47518a7776a05dbb9eadc223539acd4cae85" origin="Generated by Gradle"/>
<artifact name="netty-codec-xml-4.1.110.Final.pom">
<sha256 value="486a27d05d4a306be6f7fd55b63a76df5ca7893bc5b7e6f8023b1ab47806fdf0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-common" version="4.1.107.Final">
<artifact name="netty-common-4.1.107.Final.jar">
<sha256 value="1231e7bd5f523d97280b89adefb3521132d45c22791318b9e0d462bd3ba1b8e9" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-common-4.1.107.Final.pom">
<sha256 value="fa55bbee48c7b3b4e62da28a278ea5c45558719991519b7b9da79a27e1107e4b" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-common" version="4.1.110.Final">
<artifact name="netty-common-4.1.110.Final.jar">
<sha256 value="9851ec66548b9e0d41164ce98943cdd4bbe305f68ddbd24eae52e4501a0d7b1a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler" version="4.1.104.Final">
<artifact name="netty-handler-4.1.104.Final.pom">
<sha256 value="b47da4f0fa8472e39654cb0ae23a3e45675a5bd60ede521dcca1bf9797130776" origin="Generated by Gradle"/>
<artifact name="netty-common-4.1.110.Final.pom">
<sha256 value="7d417f5335304dae1ea08a06586038c83fe8ad84c1d35baa15ed11921cef7920" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler" version="4.1.107.Final">
<artifact name="netty-handler-4.1.107.Final.jar">
<sha256 value="ce135be15a4afe717db7c5a1d5bf1d10bdfdee50c8ce77a5a39e4694b97071db" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-handler" version="4.1.110.Final">
<artifact name="netty-handler-4.1.110.Final.jar">
<sha256 value="d5a08d7de364912e4285968de4d4cce3f01da4bb048d5c6937e5f2af1f8e148a" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-handler-4.1.107.Final.pom">
<sha256 value="c6c59fd6f0f70a043a50a5826de7ad68dbb95d341e03bd1bbe179038e48b845e" origin="Generated by Gradle"/>
<artifact name="netty-handler-4.1.110.Final.pom">
<sha256 value="4d43c13d14f5635a2f8b0d5094d7a31c509ee0f52c724eba0ef30cffe3ea1555" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler-proxy" version="4.1.100.Final">
@ -1857,25 +1817,20 @@
<sha256 value="bd7324b546a6332294cd49c36958b50476c3f9653f213aaef573f8bff944d53b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler-proxy" version="4.1.104.Final">
<artifact name="netty-handler-proxy-4.1.104.Final.pom">
<sha256 value="7b6a5edf7f94554c89b5745086245f980900205c9736d34e38885a48558216ad" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-handler-proxy" version="4.1.110.Final">
<artifact name="netty-handler-proxy-4.1.110.Final.jar">
<sha256 value="ad54ab4fe9c47ef3e723d71251126db53e8db543871adb9eafc94446539eff52" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler-proxy" version="4.1.107.Final">
<artifact name="netty-handler-proxy-4.1.107.Final.jar">
<sha256 value="4dc4cddca45536cd2666a56976c3b4e6f54efce856fdb08de566b7a700bbead9" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-handler-proxy-4.1.107.Final.pom">
<sha256 value="db0c70ecc87f9f9d5c55c26213298ac1eba150f83d94e2f3b452d504c98efe80" origin="Generated by Gradle"/>
<artifact name="netty-handler-proxy-4.1.110.Final.pom">
<sha256 value="c613cb4e7e06f42efa31db8d8b2a339ed8bf41f00c46d38d0909a4c06c656dcf" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-handler-ssl-ocsp" version="4.1.104.Final">
<artifact name="netty-handler-ssl-ocsp-4.1.104.Final.jar">
<sha256 value="6ca922d26c8d2831f8ebff413518c709fa3454ede0982938f37dc425c15491a3" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-handler-ssl-ocsp" version="4.1.110.Final">
<artifact name="netty-handler-ssl-ocsp-4.1.110.Final.jar">
<sha256 value="a20e56b21dfddab1f5dbcd86abeeb16eb6bdee7d288e7e7d5c7461d34c758f56" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-handler-ssl-ocsp-4.1.104.Final.pom">
<sha256 value="aee924520525966b3481ebfee6ee95c3a206d23f07f69270557a9dd2f73dead6" origin="Generated by Gradle"/>
<artifact name="netty-handler-ssl-ocsp-4.1.110.Final.pom">
<sha256 value="7e36034ec0338e7d33a13a904c806cbe9360c15f51794dbffb5f5c5db728cec9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-parent" version="4.1.100.Final">
@ -1883,59 +1838,44 @@
<sha256 value="25787dd1d069fecd10e47360a50cf657bc39bed96eaa7e77400188eef5058741" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-parent" version="4.1.104.Final">
<artifact name="netty-parent-4.1.104.Final.pom">
<sha256 value="b5a9dd807789196916778004e3038b608b913a0c24c4fff16472247f23687008" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-parent" version="4.1.110.Final">
<artifact name="netty-parent-4.1.110.Final.pom">
<sha256 value="685adaf373666fc15427c810f8aff3a4fe194a97c7ed74b69d07c548f0d42f1c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-parent" version="4.1.107.Final">
<artifact name="netty-parent-4.1.107.Final.pom">
<sha256 value="9825c420d8c47c9c921dbc9caa8acafc3075129353fb1b07c8cec1b5b8fb1eb1" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-resolver" version="4.1.110.Final">
<artifact name="netty-resolver-4.1.110.Final.jar">
<sha256 value="a2e9b4ae7caa92fc5bd747e11d1dec20d81b18fc00959554302244ac5c56ce70" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver" version="4.1.104.Final">
<artifact name="netty-resolver-4.1.104.Final.pom">
<sha256 value="1841933c88220e6c1b947cddfc34ea9d4815cfde45efc03335c034661f2fa303" origin="Generated by Gradle"/>
<artifact name="netty-resolver-4.1.110.Final.pom">
<sha256 value="655f34192e8c7618b3c5a79e488e4daa35def41b0d16d45fa36523c3b4c9f641" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver" version="4.1.107.Final">
<artifact name="netty-resolver-4.1.107.Final.jar">
<sha256 value="303244791c040229315845e2236bb7b75249cffb308f99d48b0bab199bc6be63" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-resolver-dns" version="4.1.110.Final">
<artifact name="netty-resolver-dns-4.1.110.Final.jar">
<sha256 value="38e28b1ecfa2de0fae7357591413a60afc578ac253c4aaefa21670bc049e9516" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-resolver-4.1.107.Final.pom">
<sha256 value="5309429ef003f480a5af7fba7d2d3e55f945bb252f218cbaaac68d0e70d7a885" origin="Generated by Gradle"/>
<artifact name="netty-resolver-dns-4.1.110.Final.pom">
<sha256 value="63280928af39498914f4b94edcc63d732c6cf5b1cf9a804d7d87e12be184f182" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver-dns" version="4.1.104.Final">
<artifact name="netty-resolver-dns-4.1.104.Final.pom">
<sha256 value="f3297ab3dc55e297a2269d620d25979a44607cb1b6c5b905272143c7c86cc06b" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-resolver-dns-classes-macos" version="4.1.110.Final">
<artifact name="netty-resolver-dns-classes-macos-4.1.110.Final.jar">
<sha256 value="53cb490a8129ebba2c4e3de62e6fe037317aef134e9eb56c72f2af50223d2bdc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver-dns" version="4.1.107.Final">
<artifact name="netty-resolver-dns-4.1.107.Final.jar">
<sha256 value="65a87e79b1966140947e6b020a455e823e967e47eec9ec90512c13cb17e98762" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-resolver-dns-4.1.107.Final.pom">
<sha256 value="32d11dcd1800b454e7b4269281eb05189b18a03c74893de668ac6f9392525091" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver-dns-classes-macos" version="4.1.104.Final">
<artifact name="netty-resolver-dns-classes-macos-4.1.104.Final.jar">
<sha256 value="5d45c0fb39d911e2470de5ed6480a23332f454838923ffceb0cf1b4002ecd713" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-resolver-dns-classes-macos-4.1.104.Final.pom">
<sha256 value="cc6a0c226b1fce0fc56674bc0c021b6512379025bb0cb0608be6a38e370dcd4f" origin="Generated by Gradle"/>
<artifact name="netty-resolver-dns-classes-macos-4.1.110.Final.pom">
<sha256 value="b8c64328c04b2a78838046c892bc4d93121d9f9a1d60ddc3fbfb61aa5bc02f23" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-resolver-dns-native-macos" version="4.1.104.Final">
<artifact name="netty-resolver-dns-native-macos-4.1.104.Final-osx-aarch_64.jar">
<sha256 value="73d2dba1e02d90817950bbeea9ef2e82c467f67588e4023b7bd5ff765d808c6c" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-resolver-dns-native-macos" version="4.1.110.Final">
<artifact name="netty-resolver-dns-native-macos-4.1.110.Final-osx-aarch_64.jar">
<sha256 value="7a785a2ecae7f37a04ea0071223e54543e4923f928b790190fc05c575e4dcdf6" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-resolver-dns-native-macos-4.1.104.Final-osx-x86_64.jar">
<sha256 value="e0d7fc632da21828474f4dcf4ffc8ee852b962010808cc8a0270766ae55da18d" origin="Generated by Gradle"/>
<artifact name="netty-resolver-dns-native-macos-4.1.110.Final-osx-x86_64.jar">
<sha256 value="45503b4a97713922ff2380ecd5019e209eb74b1eeed7d7e74f13df2b62724a34" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-resolver-dns-native-macos-4.1.104.Final.pom">
<sha256 value="6815d1677e86c8a08ff672fe5c94daaf2cc2c69a34555f2a83ec5e168ec9a08a" origin="Generated by Gradle"/>
<artifact name="netty-resolver-dns-native-macos-4.1.110.Final.pom">
<sha256 value="7c23eead91c4d486043268bf4d6e1d792f45f67b91515be0c7ebdf719b54f0bd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-tcnative-boringssl-static" version="2.0.62.Final">
@ -1959,96 +1899,91 @@
<sha256 value="c32bc348c40a0e59d68b1edbf2fb9a963ef7b28561bcfd0bae42d6aef6714acf" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport" version="4.1.104.Final">
<artifact name="netty-transport-4.1.104.Final.pom">
<sha256 value="6fc8e60ffffc7ce8d0758e9d7f4fefab39c3cf311bcd24b6e932dd7d8a3bc121" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport" version="4.1.107.Final">
<artifact name="netty-transport-4.1.107.Final.jar">
<sha256 value="8b3107c684c5fcf53bc437e78db9f186008184210fdb96798efb835c073cfa86" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport" version="4.1.110.Final">
<artifact name="netty-transport-4.1.110.Final.jar">
<sha256 value="a42dd68390ca14b4ff2d40628a096c76485b4adb7c19602d5289321a0669e704" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-4.1.107.Final.pom">
<sha256 value="7910d69667fb38b3b4a004715806508edbb905cc8175030ca230ec5b44f6fc0b" origin="Generated by Gradle"/>
<artifact name="netty-transport-4.1.110.Final.pom">
<sha256 value="30f5da0e7646f1840d632f88615c8b9d8205499d68559b9c4547b3b04a0683cd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-classes-epoll" version="4.1.104.Final">
<artifact name="netty-transport-classes-epoll-4.1.104.Final.jar">
<sha256 value="5fd94296dfdd7ba1e83e9bb66e265d8eadd6cb93bc96535b7af5aecef8b17440" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-classes-epoll" version="4.1.110.Final">
<artifact name="netty-transport-classes-epoll-4.1.110.Final.jar">
<sha256 value="8e59cec67de3b9f8afe4eccec11ed8ce4423948eeaf4ca512bf69324052ed510" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-classes-epoll-4.1.104.Final.pom">
<sha256 value="0f1027bad6fda32d3d73a0c5df160aa913e812960ef4f252dc8764cc114a859b" origin="Generated by Gradle"/>
<artifact name="netty-transport-classes-epoll-4.1.110.Final.pom">
<sha256 value="e2d417543ef317ffa91938a001fe5ee3cd71c93c014fbd3370374d00f1e70195" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-classes-kqueue" version="4.1.104.Final">
<artifact name="netty-transport-classes-kqueue-4.1.104.Final.jar">
<sha256 value="2bee1139451b51223b2475bb4fe6061ad9618c6ec270e60504d234e0e7388e95" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-classes-kqueue" version="4.1.110.Final">
<artifact name="netty-transport-classes-kqueue-4.1.110.Final.jar">
<sha256 value="b8eb7fe1ca02c604b8984dc7bc318576043dd79575846aa4bf22e03db953cb02" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-classes-kqueue-4.1.104.Final.pom">
<sha256 value="996ec414b6aae8ab2236fc8ec3d2646c8030b1d3f3fcd4f19bb45d29e14c7597" origin="Generated by Gradle"/>
<artifact name="netty-transport-classes-kqueue-4.1.110.Final.pom">
<sha256 value="00c8a4b5b38ff6c604e38d5cdd5a8412ef5723710164a4691ed1e55ec80fb84d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-native-epoll" version="4.1.104.Final">
<artifact name="netty-transport-native-epoll-4.1.104.Final-linux-aarch_64.jar">
<sha256 value="497c4aec2a9fdedf3482e3da54d383b2ae2dfbf79b4ad28f4cc771f7a00f01bc" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-native-epoll" version="4.1.110.Final">
<artifact name="netty-transport-native-epoll-4.1.110.Final-linux-aarch_64.jar">
<sha256 value="245ae167f69bbdec3a618ecc11696fd09a0cd51e0dc9164a9dff429f2b07dbae" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-epoll-4.1.104.Final-linux-riscv64.jar">
<sha256 value="942b4cc8a7aec5e45b1621e993048de72d1edc912fed0684df4084e42e578189" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-epoll-4.1.110.Final-linux-riscv64.jar">
<sha256 value="fdaa562a3342f05423ef6be133dd5288af61938e7cb93ce3aec10cb4829a7364" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-epoll-4.1.104.Final-linux-x86_64.jar">
<sha256 value="f86d0a1ab8d0c3b6b539d946ad217a13a313769e537f6704696ce0a264c7a449" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-epoll-4.1.110.Final-linux-x86_64.jar">
<sha256 value="dcd60c6b3076af307ab877201a136e1f1066c9be809aaed827391a23909f9135" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-epoll-4.1.104.Final.jar">
<sha256 value="28c03e9e7a0b46c067b5fdc84ddf134bf424643b79ff3efc8f552f28e450151d" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-epoll-4.1.110.Final.jar">
<sha256 value="64415f53ca5fa222d40caa72e9fd27f09c04489ddbc0a6ad5179b93e75333102" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-epoll-4.1.104.Final.pom">
<sha256 value="74175b528dc2cb68692153a5f0f523dd7e9df1ebe08c101a7cade0ae81ec9cad" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-epoll-4.1.110.Final.pom">
<sha256 value="e00c9c69870b7934f486ca6d097737611fda7108e78f7ea2f0788c7827d11d1f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-native-kqueue" version="4.1.104.Final">
<artifact name="netty-transport-native-kqueue-4.1.104.Final-osx-aarch_64.jar">
<sha256 value="9725d79ebd3db24b179977a9e59c941082bac82300096ed037a5729c3d72d9df" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-native-kqueue" version="4.1.110.Final">
<artifact name="netty-transport-native-kqueue-4.1.110.Final-osx-aarch_64.jar">
<sha256 value="18c9f14661bea51841656677e411210844042aad45bf2098fceb241995ed28b2" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-kqueue-4.1.104.Final-osx-x86_64.jar">
<sha256 value="ad1a57bbbff4bdd1446e08e8b74c0456ef0bfad3a5601c2945ada50e6ca38989" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-kqueue-4.1.110.Final-osx-x86_64.jar">
<sha256 value="a5172f55730ee3b767000cb9bf08a1ec6728fcfc17e8a4a057fe9837370990d0" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-kqueue-4.1.104.Final.jar">
<sha256 value="e60df7422caa825b56cc8b0a4de6011d7e3e50c179af031f5149ee05aa00a603" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-kqueue-4.1.110.Final.jar">
<sha256 value="b6a084ca8ea54659ca2a48d4c2887ea17f23f0fc5cc271d43781b6d2198a6704" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-kqueue-4.1.104.Final.pom">
<sha256 value="a24c80cb6dad7164483b089d10640927e9519be76a238144158a40dcadd448ce" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-kqueue-4.1.110.Final.pom">
<sha256 value="71597766e9c908e50ac172a194ee5bb772a2ce26aede1a30cb99fa51c0b4a987" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-native-unix-common" version="4.1.104.Final">
<artifact name="netty-transport-native-unix-common-4.1.104.Final.jar">
<sha256 value="c12f39c8f12a6ba64078caf75fd97a7fbd05643001f424e8b84829b35d402f4e" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-native-unix-common" version="4.1.110.Final">
<artifact name="netty-transport-native-unix-common-4.1.110.Final.jar">
<sha256 value="51717bb7471141950390c6713a449fdb1054d07e60737ee7dda7083796cdee48" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-native-unix-common-4.1.104.Final.pom">
<sha256 value="14b72f8be075a442f9fee5ceddc2bfb78b6db7c930ef667ed4532cecda70300c" origin="Generated by Gradle"/>
<artifact name="netty-transport-native-unix-common-4.1.110.Final.pom">
<sha256 value="ea18ce04c9a97ac0c51f4e397b185229fd95997e90b11339adcf7c51946d53d8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-rxtx" version="4.1.104.Final">
<artifact name="netty-transport-rxtx-4.1.104.Final.jar">
<sha256 value="be01ae38c1bd36c60c20d35406ff75031d1aa61177727b2553ac259f703df077" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-rxtx" version="4.1.110.Final">
<artifact name="netty-transport-rxtx-4.1.110.Final.jar">
<sha256 value="341a073c82bf22d30c5908824284ec88109935fc753b18d17675bf574a2e0aae" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-rxtx-4.1.104.Final.pom">
<sha256 value="bb700e221825c822159776675f5beccc566b158ad84a43f93a2142161843706f" origin="Generated by Gradle"/>
<artifact name="netty-transport-rxtx-4.1.110.Final.pom">
<sha256 value="e3a0569cddfa5d8b8de8412c20da963f2bca8e0d8136330f527dbf13f4f9b9e9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-sctp" version="4.1.104.Final">
<artifact name="netty-transport-sctp-4.1.104.Final.jar">
<sha256 value="aa33247c732182bb4a970684aeaeba377b64d6cb719b3c296fcd5ae80cb83a2c" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-sctp" version="4.1.110.Final">
<artifact name="netty-transport-sctp-4.1.110.Final.jar">
<sha256 value="44eba45eff93e61e2f1c51f38535b76754a4cd2caecc07f634b58b76225644ba" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-sctp-4.1.104.Final.pom">
<sha256 value="6e47c2b9deb27710e171c1ac456504e7ed57df317c0fca6f66379cc8fb5d9ff2" origin="Generated by Gradle"/>
<artifact name="netty-transport-sctp-4.1.110.Final.pom">
<sha256 value="f6bde2e662326d7fd5b20f240005d0d3108cf1c1c7119f8411304ac6db874ae3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.netty" name="netty-transport-udt" version="4.1.104.Final">
<artifact name="netty-transport-udt-4.1.104.Final.jar">
<sha256 value="67896b06e1a550dff839b88acf9ac73a458cc481fd81a9c5e6ce02c70f303e91" origin="Generated by Gradle"/>
<component group="io.netty" name="netty-transport-udt" version="4.1.110.Final">
<artifact name="netty-transport-udt-4.1.110.Final.jar">
<sha256 value="c6d95e9ef5fc71ecf34ce71076ba6662399a8c670b89e8a042a163f76b380823" origin="Generated by Gradle"/>
</artifact>
<artifact name="netty-transport-udt-4.1.104.Final.pom">
<sha256 value="0e1e96b91e1c52bf2ea3f4766e80098c34408e1dceb2612297d5da2e7f877200" origin="Generated by Gradle"/>
<artifact name="netty-transport-udt-4.1.110.Final.pom">
<sha256 value="5661e1a03bb18762861af3bebe9dd9881ed3ad5fa46406d03cf2ccb4abbd8896" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.opencensus" name="opencensus-api" version="0.28.0">
@ -2636,49 +2571,49 @@
<sha256 value="2cd99dcfcc8753ee6cdd2946a60c129ddfa82ef989ba213131322f2b4d7177b5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-auth-common" version="4.5.4">
<artifact name="vertx-auth-common-4.5.4.jar">
<sha256 value="475c91476ca4f6da294ea719d135185fe59694d1ef0e70606467a0c0bb1cb442" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-auth-common" version="4.5.8">
<artifact name="vertx-auth-common-4.5.8.jar">
<sha256 value="ba3eb6a1bf371b2f7f2aaad50541ae725a386f69bf4087b827218c956b1ecedf" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-auth-common-4.5.4.pom">
<sha256 value="637526adc0ac3fd555e9b82c32fc1749ce0368a37945c8ba161b2b527acfd11d" origin="Generated by Gradle"/>
<artifact name="vertx-auth-common-4.5.8.pom">
<sha256 value="5cc9767f64f87b70768ff1359104aa52c1ab2c3d5ae90babc0edcd8b8566af2c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-auth-jwt" version="4.5.4">
<artifact name="vertx-auth-jwt-4.5.4.jar">
<sha256 value="4ab909628a27893c9123ba22c6d61ecf5effedcb1f30014d188f1ff8eefc4ab9" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-auth-jwt" version="4.5.8">
<artifact name="vertx-auth-jwt-4.5.8.jar">
<sha256 value="cf3e09ee2ca86278a1fb05c208db0368d8b993f91c1f8bab03d22ec65f340b62" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-auth-jwt-4.5.4.pom">
<sha256 value="9459002a1746107bb055dd23b25a7231e6c1138999ebfaa12c3bab4d2c3cf66a" origin="Generated by Gradle"/>
<artifact name="vertx-auth-jwt-4.5.8.pom">
<sha256 value="beafcacc0c3e356d926829c6bee5794555d1208a197f265ebf5e16f2a7ad8a85" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-auth-parent" version="4.5.4">
<artifact name="vertx-auth-parent-4.5.4.pom">
<sha256 value="56ea9938fc1487d88ab9c134c89d060f3841c480271a36853902bca5eefb34fc" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-auth-parent" version="4.5.8">
<artifact name="vertx-auth-parent-4.5.8.pom">
<sha256 value="11c33b7bfbd8fb99acaf6a1bf70aa985a160769472052d4e8d7b6b4cf79c0856" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-bridge-common" version="4.5.4">
<artifact name="vertx-bridge-common-4.5.4.jar">
<sha256 value="7cb3a7d529bf911b12b1f3cd7167cdf4459d51626987d56c41b8b7f98bb0ecd9" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-bridge-common" version="4.5.8">
<artifact name="vertx-bridge-common-4.5.8.jar">
<sha256 value="d1aee4bb4dda29c099b4811efc31e674ec5b28282f21fb02298ff1affc22a9b3" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-bridge-common-4.5.4.pom">
<sha256 value="fe4f385202c136a266469feb1e4674c41bd10b22b68d6d1b8434395763fef762" origin="Generated by Gradle"/>
<artifact name="vertx-bridge-common-4.5.8.pom">
<sha256 value="eeb73ecd16d348a9099c88973a7762424122133c568c19939018ef6e8cf2c0f3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-codegen" version="4.5.4">
<artifact name="vertx-codegen-4.5.4.jar">
<sha256 value="f92d47869d1c98631cd9f8f5df39046bbc946c0efce6d618e2b8084988adfd0a" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-codegen" version="4.5.8">
<artifact name="vertx-codegen-4.5.8.jar">
<sha256 value="d88eb1e0c5c36c7d2f6d15bc7e2c9a3db0cf620f84d7fb11bdf24e90829420da" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-codegen-4.5.4.pom">
<sha256 value="9b8af606e7bcbd06314b596ac7e8421dc194a0465a5b84445faa960eb7680258" origin="Generated by Gradle"/>
<artifact name="vertx-codegen-4.5.8.pom">
<sha256 value="ea4f380c2cdc9f6201004e30413f1f143b79521405b230b64f5489ab77327c64" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-core" version="4.5.4">
<artifact name="vertx-core-4.5.4.jar">
<sha256 value="c83984866e02347ae9bf699bf73134cab0081403c65bf9d50e88f826980e8f98" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-core" version="4.5.8">
<artifact name="vertx-core-4.5.8.jar">
<sha256 value="a9b04d77f55e1dece2ca83818ba3c33d7474f027b35725530cdd816680c647a2" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-core-4.5.4.pom">
<sha256 value="d66dfbbe3e9c561cf71206109c8674d67fb43231594d51558be6840e66d84388" origin="Generated by Gradle"/>
<artifact name="vertx-core-4.5.8.pom">
<sha256 value="2a5b6c1ccce595c20c21c5b9bb992a88335ac42335e08b5a8c3380e4e7ec8877" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-dependencies" version="4.3.7">
@ -2686,9 +2621,9 @@
<sha256 value="353cc4d6761e519c7210b82b5b62bb57b09b8eabae7246234d0586d441a0feaf" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-dependencies" version="4.5.4">
<artifact name="vertx-dependencies-4.5.4.pom">
<sha256 value="41dc25be4f5a0546382558495b25e9adfba9227ed197caf003b1cdcd37b0047d" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-dependencies" version="4.5.8">
<artifact name="vertx-dependencies-4.5.8.pom">
<sha256 value="437f9f66ff07eb02c5e18e3b9162013e46428c205c95a7472e305639a4dc435e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-ext" version="38">
@ -2701,12 +2636,12 @@
<sha256 value="9ede6271ed5ee6c9987a808ca3cffddb732151f17ab71e5ee79674e74335317c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-junit5" version="4.5.4">
<artifact name="vertx-junit5-4.5.4.jar">
<sha256 value="91644b75a0ecb1639ee9614efeb358f52cbcf32567585877e51c047f1aab0de0" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-junit5" version="4.5.8">
<artifact name="vertx-junit5-4.5.8.jar">
<sha256 value="65152901bd671da4605b280ef5821aee583c7e8d5853f52c954f8fd032e5e555" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-junit5-4.5.4.pom">
<sha256 value="9ebc076ec87681d5cde2af16d7812b5baef341aee1be89353e59d7cbde5b3a6e" origin="Generated by Gradle"/>
<artifact name="vertx-junit5-4.5.8.pom">
<sha256 value="8fecf8c45ed9c28526b1a65ce5c3c575fdb9ebdc58245e41914b5b8275bd83be" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-lang-kotlin" version="4.3.7">
@ -2735,49 +2670,49 @@
<sha256 value="219614cfbb9c31b6287672d3f615575eaa86c4cc26e402cfc87c8a753c16693e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-unit" version="4.5.4">
<artifact name="vertx-unit-4.5.4.jar">
<sha256 value="aef70280b9b86782824e276b7b0f62de30152f5aea2420eaee3256d158b6cad1" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-unit" version="4.5.8">
<artifact name="vertx-unit-4.5.8.jar">
<sha256 value="f3806bd531ec9e099a79a095074bb39101b8dbff22da0db71f2cab11d248bc65" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-unit-4.5.4.pom">
<sha256 value="f789c3ed3cc8a4d046fd56f4d2aa2c5a2da026ee562c113b80306ed949a04cc4" origin="Generated by Gradle"/>
<artifact name="vertx-unit-4.5.8.pom">
<sha256 value="b1de0bd2593a3139e5d50e3132ff07883d41294a223dd90f2f49c91e21d4c783" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-uri-template" version="4.5.4">
<artifact name="vertx-uri-template-4.5.4.jar">
<sha256 value="57c8a9b0bb962d69b1816bfc30c9c994f646b67853ce701154f5961b0e9c6bbf" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-uri-template" version="4.5.8">
<artifact name="vertx-uri-template-4.5.8.jar">
<sha256 value="47a68ff84623077d12b6007c07d25cfc441a63634b25e9fcc2a145d782f5c5f7" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-uri-template-4.5.4.pom">
<sha256 value="fbd52bf33a2eda9ceb1cfa61fa6f9fbe2f155648ea40d49b5cd3fc780f5dcdd2" origin="Generated by Gradle"/>
<artifact name="vertx-uri-template-4.5.8.pom">
<sha256 value="28d7f24a35c9ea665121af17ba34d97f11c9bdb77f28d3e84d37c19af9b85e16" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-web" version="4.5.4">
<artifact name="vertx-web-4.5.4.jar">
<sha256 value="84a10aa5ba587c7bc1c41c0891325348fa4f6af76b8b6eba57935fbc513bcfb5" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-web" version="4.5.8">
<artifact name="vertx-web-4.5.8.jar">
<sha256 value="17c989751f4abbaa3bdb155b8ea09fba6fd3d01a42da67f2b091f3e05fee7f82" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-web-4.5.4.pom">
<sha256 value="8d125a64e685d89d090ae1953ad739982a80019a454599a76d1dd9b411151023" origin="Generated by Gradle"/>
<artifact name="vertx-web-4.5.8.pom">
<sha256 value="fbd82ab907cda2733d0eb3f7c303d51a7356f08102daa5d20b9d5d3cda420a56" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-web-client" version="4.5.4">
<artifact name="vertx-web-client-4.5.4.jar">
<sha256 value="ff8c1678726a4853080fad3a9ecc1d6384102fd1446cde88cfe40db52b1f6246" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-web-client" version="4.5.8">
<artifact name="vertx-web-client-4.5.8.jar">
<sha256 value="043104002bcaa3c1df6e3a0521f7e9074bf60e0f7aaf083535173fb69d5614e0" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-web-client-4.5.4.pom">
<sha256 value="c0adf677e02a303ca61f7e9efc62d73fdf168eb20ab225dc011c9d7578b1ec6f" origin="Generated by Gradle"/>
<artifact name="vertx-web-client-4.5.8.pom">
<sha256 value="0eb76c17eb3ef611a137803299ed941f3197d4e95be7494cd39abbd122b0469c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-web-common" version="4.5.4">
<artifact name="vertx-web-common-4.5.4.jar">
<sha256 value="d7726abca2c6059dba4fe3b977337b986279d4f7c76ac5556c84a431b8dfba25" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-web-common" version="4.5.8">
<artifact name="vertx-web-common-4.5.8.jar">
<sha256 value="32117ab45f7d2a925edad6e28460c71f592a81a8be3e686a0d169c41bd726426" origin="Generated by Gradle"/>
</artifact>
<artifact name="vertx-web-common-4.5.4.pom">
<sha256 value="86ed3e0bfa2d284aa1077fd45cc041e45edb294d4bdbde5dd483881b2525aa72" origin="Generated by Gradle"/>
<artifact name="vertx-web-common-4.5.8.pom">
<sha256 value="ef9679d90b4518d54cba7b419ef77510351dfbdbb56c9b170121abe5d611a2c5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.vertx" name="vertx-web-parent" version="4.5.4">
<artifact name="vertx-web-parent-4.5.4.pom">
<sha256 value="d9554df76cd741d44a00ac44368e2ce8bc61410ada00f44111da69a193a1697b" origin="Generated by Gradle"/>
<component group="io.vertx" name="vertx-web-parent" version="4.5.8">
<artifact name="vertx-web-parent-4.5.8.pom">
<sha256 value="c938ddab5c7b83dc454242e425d20f6df37bb4b81e1ac8c79e146100ea45d7a4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="jakarta.annotation" name="jakarta.annotation-api" version="2.1.1">

@ -69,11 +69,11 @@ dependencyManagement {
dependency 'io.kubernetes:client-java:18.0.1'
dependency 'io.netty:netty-all:4.1.104.Final'
dependency 'io.netty:netty-all:4.1.110.Final'
dependency 'io.netty:netty-tcnative-boringssl-static:2.0.62.Final'
dependency group: 'io.netty', name: 'netty-transport-native-epoll', version:'4.1.104.Final', classifier: 'linux-x86_64'
dependency group: 'io.netty', name: 'netty-transport-native-kqueue', version:'4.1.104.Final', classifier: 'osx-x86_64'
dependency 'io.netty:netty-transport-native-unix-common:4.1.104.Final'
dependency group: 'io.netty', name: 'netty-transport-native-epoll', version:'4.1.110.Final', classifier: 'linux-x86_64'
dependency group: 'io.netty', name: 'netty-transport-native-kqueue', version:'4.1.110.Final', classifier: 'osx-x86_64'
dependency 'io.netty:netty-transport-native-unix-common:4.1.110.Final'
dependency 'io.opentelemetry:opentelemetry-api:1.33.0'
dependency 'io.opentelemetry:opentelemetry-exporter-otlp:1.33.0'
@ -116,7 +116,7 @@ dependencyManagement {
entry 'tuweni-units'
}
dependencySet(group: 'io.vertx', version: '4.5.4') {
dependencySet(group: 'io.vertx', version: '4.5.8') {
entry 'vertx-auth-jwt'
entry 'vertx-codegen'
entry 'vertx-core'

Loading…
Cancel
Save