Skip to content

feat: consolidate hbar transfer list when decoding cryptoTransfer function #28134

feat: consolidate hbar transfer list when decoding cryptoTransfer function

feat: consolidate hbar transfer list when decoding cryptoTransfer function #28134

##
# Copyright (C) 2022-2024 Hedera Hashgraph, LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##
name: "Node: PR Checks"
on:
workflow_dispatch:
pull_request:
types:
- opened
- reopened
- synchronize
defaults:
run:
shell: bash
concurrency:
group: pr-checks-${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
name: Code
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
with:
enable-spotless-check: false
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
dependency-check:
name: Dependency (Module Info)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- build
with:
custom-job-label: "Check"
enable-dependency-check: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
spotless:
name: Spotless
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- build
with:
custom-job-label: "Check"
enable-unit-tests: false
enable-spotless-check: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
unit-tests:
name: Unit Tests
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
with:
custom-job-label: Standard
enable-unit-tests: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
codacy-project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
codecov-token: ${{ secrets.CODECOV_TOKEN }}
hapi-tests-misc:
name: HAPI Tests (Misc)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
with:
custom-job-label: Standard
enable-unit-tests: false
enable-hapi-tests-misc: true
enable-network-log-capture: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
hapi-tests-crypto:
name: HAPI Tests (Crypto)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
with:
custom-job-label: Standard
enable-unit-tests: false
enable-hapi-tests-crypto: true
enable-network-log-capture: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
hapi-tests-token:
name: HAPI Tests (Token)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
with:
custom-job-label: Standard
enable-unit-tests: false
enable-hapi-tests-token: true
enable-network-log-capture: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
hapi-tests-smart-contract:
name: HAPI Tests (Smart Contract)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
with:
custom-job-label: Standard
enable-unit-tests: false
enable-hapi-tests-smart-contract: true
enable-network-log-capture: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
hapi-tests-restart:
name: HAPI Tests (Restart)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
with:
custom-job-label: Standard
enable-unit-tests: false
enable-hapi-tests-restart: true
enable-network-log-capture: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
hapi-tests-nd-reconnect:
name: HAPI Tests (Node Death Reconnect)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
with:
custom-job-label: Standard
enable-unit-tests: false
enable-hapi-tests-nd-reconnect: true
enable-network-log-capture: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
# No longer executed on pull requests. May be executed when manually
# running the workflow on a given branch or commit. Added to the extended
# test suites and will be executed on at least 1 commit every 3 hours.
# (takes > 20 minutes)
hapi-tests-time-consuming:
name: HAPI Tests (Time Consuming)
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
# Add this if back in after CITR Pager duty reporting service is in place
# if: ${{ github.event_name == 'workflow_dispatch' }}
with:
custom-job-label: Standard
enable-unit-tests: false
enable-hapi-tests-time-consuming: true
enable-network-log-capture: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
# No longer executed on pull requests. May be executed when manually
# running the workflow on a given branch or commit. Added to the extended
# test suites and will be executed on at least 1 commit every 3 hours.
# (takes > 50 minutes)
abbreviated-panel:
name: JRS Panel
uses: ./.github/workflows/zxc-jrs-regression.yaml
needs:
- dependency-check
- spotless
# Add this if back in after CITR Pager duty reporting service is in place
# if: ${{ github.event_name == 'workflow_dispatch' }}
# Turn off this if check when CITR Pager duty reporting service is in place
if: ${{ github.event_name != 'pull_request' ||
(github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }}
with:
custom-job-name: "Platform SDK"
panel-config: "configs/suites/GCP-PRCheck-Abbrev-4N.json"
branch-name: ${{ github.head_ref || github.ref_name }}
base-branch-name: ${{ github.base_ref || '' }}
slack-results-channel: "regression-test"
slack-summary-channel: "regression-test"
use-branch-for-slack-channel: false
secrets:
access-token: ${{ secrets.PLATFORM_GH_ACCESS_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
jrs-ssh-user-name: ${{ secrets.PLATFORM_JRS_SSH_USER_NAME }}
jrs-ssh-key-file: ${{ secrets.PLATFORM_JRS_SSH_KEY_FILE }}
gcp-project-number: ${{ secrets.PLATFORM_GCP_PROJECT_NUMBER }}
gcp-sa-key-contents: ${{ secrets.PLATFORM_GCP_KEY_FILE }}
slack-api-token: ${{ secrets.PLATFORM_SLACK_API_TOKEN }}
grafana-agent-username: ${{ secrets.GRAFANA_AGENT_USERNAME }}
grafana-agent-password: ${{ secrets.GRAFANA_AGENT_PASSWORD }}
# No longer executed on pull requests. May be executed when manually
# running the workflow on a given branch or commit. Added to the extended
# test suites and will be executed on at least 1 commit every 3 hours.
# (takes > 1 hour)
hedera-node-jrs-panel:
name: Hedera Node JRS Panel
uses: ./.github/workflows/zxc-jrs-regression.yaml
needs:
- dependency-check
- spotless
# Add this if back in after CITR Pager duty reporting service is in place
# if: ${{ github.event_name == 'workflow_dispatch' }}
# Turn off this if check when CITR Pager duty reporting service is in place
if: ${{ github.event_name != 'pull_request' ||
(github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }}
with:
custom-job-name: "Abbrev Update Test"
branch-name: ${{ github.head_ref || github.ref_name }}
hedera-tests-enabled: true
use-branch-for-slack-channel: false
panel-config: "configs/services/suites/daily/GCP-Daily-Services-Abbrev-DAB-Update-4N-2C.json"
secrets:
access-token: ${{ secrets.PLATFORM_GH_ACCESS_TOKEN }}
jrs-ssh-user-name: ${{ secrets.PLATFORM_JRS_SSH_USER_NAME }}
jrs-ssh-key-file: ${{ secrets.PLATFORM_JRS_SSH_KEY_FILE }}
gcp-project-number: ${{ secrets.PLATFORM_GCP_PROJECT_NUMBER }}
gcp-sa-key-contents: ${{ secrets.PLATFORM_GCP_KEY_FILE }}
slack-api-token: ${{ secrets.PLATFORM_SLACK_API_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
grafana-agent-username: ${{ secrets.GRAFANA_AGENT_USERNAME }}
grafana-agent-password: ${{ secrets.GRAFANA_AGENT_PASSWORD }}
snyk-scan:
name: Snyk Scan
uses: ./.github/workflows/node-zxc-compile-application-code.yaml
needs:
- dependency-check
- spotless
if: ${{ github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }}
with:
custom-job-label: Standard
enable-unit-tests: false
enable-snyk-scan: true
secrets:
access-token: ${{ secrets.GITHUB_TOKEN }}
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
snyk-token: ${{ secrets.SNYK_TOKEN }}
gradle-determinism:
name: Gradle Determinism
uses: ./.github/workflows/zxc-verify-gradle-build-determinism.yaml
needs:
- dependency-check
- spotless
if: ${{ github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }}
with:
ref: ${{ github.event.inputs.ref || '' }}
java-distribution: temurin
java-version: 21.0.4
secrets:
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}
docker-determinism:
name: Docker Determinism
uses: ./.github/workflows/zxc-verify-docker-build-determinism.yaml
needs:
- dependency-check
- spotless
if: ${{ github.event_name != 'pull_request' || (github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository) }}
with:
ref: ${{ github.event.inputs.ref || '' }}
java-distribution: temurin
java-version: 21.0.4
secrets:
gradle-cache-username: ${{ secrets.GRADLE_CACHE_USERNAME }}
gradle-cache-password: ${{ secrets.GRADLE_CACHE_PASSWORD }}