* add prettier to pre-commit

* apply prettier.io
This commit is contained in:
Kyle Altendorf
2024-03-13 13:41:04 -07:00
committed by GitHub
parent 48e4039e58
commit 368f69cf11
32 changed files with 2211 additions and 2202 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ body:
id: what-happened
attributes:
label: What happened?
description: A clear and concise description of what happened, how to reproduce it, and what you expected to happen.
description: A clear and concise description of what happened, how to reproduce it, and what you expected to happen.
validations:
required: true
- type: input
+1 -1
View File
@@ -9,4 +9,4 @@ contact_links:
https://github.com/Chia-Network/chia-blockchain/discussions/new?category=ideas
- about: Get support in the Chia Discord chat channels.
name: Join the Discord support chat
url: 'https://discord.gg/chia'
url: "https://discord.gg/chia"
+18 -18
View File
@@ -1,26 +1,26 @@
name: ⚡️ Benchmarks
on:
workflow_dispatch:
workflow_dispatch:
inputs:
repeats:
description: "The number of times to execute each benchmark"
type: int
default: 1
push:
paths-ignore:
- '**.md'
branches:
- 'long_lived/**'
- main
- 'release/**'
release:
types: [published]
pull_request:
paths-ignore:
- '**.md'
branches:
- '**'
push:
paths-ignore:
- "**.md"
branches:
- "long_lived/**"
- main
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- "**.md"
branches:
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -57,7 +57,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ "3.10" ]
python-version: ["3.10"]
env:
CHIA_ROOT: ${{ github.workspace }}/.chia/mainnet
BLOCKS_AND_PLOTS_VERSION: 0.38.0
@@ -91,8 +91,8 @@ jobs:
- name: Checkout test blocks and plots
uses: actions/checkout@v4
with:
repository: 'Chia-Network/test-cache'
path: '.chia'
repository: "Chia-Network/test-cache"
path: ".chia"
ref: ${{ env.BLOCKS_AND_PLOTS_VERSION }}
fetch-depth: 1
+307 -307
View File
@@ -4,29 +4,29 @@ on:
workflow_dispatch:
inputs:
release_type:
description: 'Tagged release testing scenario'
description: "Tagged release testing scenario"
required: false
type: choice
default: ''
default: ""
options:
- ''
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
- ""
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- '**.md'
- "**.md"
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -60,151 +60,151 @@ jobs:
bladebit-suffix: "ubuntu-arm64.tar.gz"
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- name: Add safe git directory
uses: Chia-Network/actions/git-mark-workspace-safe@main
- name: Add safe git directory
uses: Chia-Network/actions/git-mark-workspace-safe@main
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: Chia-Network/actions/git-ssh-to-https@main
- uses: Chia-Network/actions/git-ssh-to-https@main
- name: Cleanup any leftovers that exist from previous runs
run: bash build_scripts/clean-runner.sh || true
- name: Cleanup any leftovers that exist from previous runs
run: bash build_scripts/clean-runner.sh || true
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check tag type
shell: bash
run: |
REG_B="^[0-9]+\.[0-9]+\.[0-9]+-b[0-9]+$"
REG_RC="^[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+$"
if [[ "${{ github.event.release.tag_name }}" =~ $REG_B ]] || [[ "${{ inputs.release_type }}" =~ $REG_B ]]; then
echo "TAG_TYPE=beta"
echo "TAG_TYPE=beta" >> "$GITHUB_ENV"
elif [[ "${{ github.event.release.tag_name }}" =~ $REG_RC ]] || [[ "${{ inputs.release_type }}" =~ $REG_RC ]]; then
echo "TAG_TYPE=rc"
echo "TAG_TYPE=rc" >> "$GITHUB_ENV"
fi
- name: Check tag type
shell: bash
run: |
REG_B="^[0-9]+\.[0-9]+\.[0-9]+-b[0-9]+$"
REG_RC="^[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+$"
if [[ "${{ github.event.release.tag_name }}" =~ $REG_B ]] || [[ "${{ inputs.release_type }}" =~ $REG_B ]]; then
echo "TAG_TYPE=beta"
echo "TAG_TYPE=beta" >> "$GITHUB_ENV"
elif [[ "${{ github.event.release.tag_name }}" =~ $REG_RC ]] || [[ "${{ inputs.release_type }}" =~ $REG_RC ]]; then
echo "TAG_TYPE=rc"
echo "TAG_TYPE=rc" >> "$GITHUB_ENV"
fi
# Create our own venv outside of the git directory JUST for getting the ACTUAL version so that install can't break it
- name: Get version number
id: version_number
run: |
python3 -m venv ../venv
. ../venv/bin/activate
pip3 install setuptools_scm
echo "CHIA_INSTALLER_VERSION=$(python3 ./build_scripts/installer-version.py)" >> "$GITHUB_OUTPUT"
deactivate
# Create our own venv outside of the git directory JUST for getting the ACTUAL version so that install can't break it
- name: Get version number
id: version_number
run: |
python3 -m venv ../venv
. ../venv/bin/activate
pip3 install setuptools_scm
echo "CHIA_INSTALLER_VERSION=$(python3 ./build_scripts/installer-version.py)" >> "$GITHUB_OUTPUT"
deactivate
- name: Get latest madmax plotter
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
LATEST_MADMAX=$(gh api repos/Chia-Network/chia-plotter-madmax/releases/latest --jq 'select(.prerelease == false) | .tag_name')
mkdir "$GITHUB_WORKSPACE"/madmax
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot-*-${{ matrix.os.madmax-suffix }}' -O "$GITHUB_WORKSPACE"/madmax/chia_plot
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot_k34-*-${{ matrix.os.madmax-suffix }}' -O "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
- name: Get latest madmax plotter
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
LATEST_MADMAX=$(gh api repos/Chia-Network/chia-plotter-madmax/releases/latest --jq 'select(.prerelease == false) | .tag_name')
mkdir "$GITHUB_WORKSPACE"/madmax
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot-*-${{ matrix.os.madmax-suffix }}' -O "$GITHUB_WORKSPACE"/madmax/chia_plot
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot_k34-*-${{ matrix.os.madmax-suffix }}' -O "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
- name: Fetch bladebit versions
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch the latest version of each type
LATEST_RELEASE=$(gh api repos/Chia-Network/bladebit/releases/latest --jq 'select(.prerelease == false) | .tag_name')
LATEST_BETA=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-beta[0-9]+$"))) | first | .tag_name')
LATEST_RC=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-rc[0-9]+$"))) | first | .tag_name')
- name: Fetch bladebit versions
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch the latest version of each type
LATEST_RELEASE=$(gh api repos/Chia-Network/bladebit/releases/latest --jq 'select(.prerelease == false) | .tag_name')
LATEST_BETA=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-beta[0-9]+$"))) | first | .tag_name')
LATEST_RC=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-rc[0-9]+$"))) | first | .tag_name')
# Compare the versions and choose the newest that matches the requirements
if [[ "$TAG_TYPE" == "beta" || -z "$TAG_TYPE" ]]; then
# For beta or dev builds (indicated by the absence of a tag), use the latest version available
LATEST_VERSION=$(printf "%s\n%s\n%s\n" "$LATEST_RELEASE" "$LATEST_BETA" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
elif [[ "$TAG_TYPE" == "rc" ]]; then
# For RC builds, use the latest RC or full release if it's newer
LATEST_VERSION=$(printf "%s\n%s\n" "$LATEST_RELEASE" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
else
# For full releases, use the latest full release
LATEST_VERSION="$LATEST_RELEASE"
fi
echo "LATEST_VERSION=$LATEST_VERSION" >> "$GITHUB_ENV"
# Compare the versions and choose the newest that matches the requirements
if [[ "$TAG_TYPE" == "beta" || -z "$TAG_TYPE" ]]; then
# For beta or dev builds (indicated by the absence of a tag), use the latest version available
LATEST_VERSION=$(printf "%s\n%s\n%s\n" "$LATEST_RELEASE" "$LATEST_BETA" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
elif [[ "$TAG_TYPE" == "rc" ]]; then
# For RC builds, use the latest RC or full release if it's newer
LATEST_VERSION=$(printf "%s\n%s\n" "$LATEST_RELEASE" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
else
# For full releases, use the latest full release
LATEST_VERSION="$LATEST_RELEASE"
fi
echo "LATEST_VERSION=$LATEST_VERSION" >> "$GITHUB_ENV"
- name: Get latest bladebit plotter
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Download and extract the chosen version
mkdir "$GITHUB_WORKSPACE"/bladebit
cd "$GITHUB_WORKSPACE"/bladebit
gh release download -R Chia-Network/bladebit "$LATEST_VERSION" -p 'bladebit*-${{ matrix.os.bladebit-suffix }}'
ls *.tar.gz | xargs -I{} bash -c 'tar -xzf {} && rm {}'
ls bladebit* | xargs -I{} chmod +x {}
cd "$OLDPWD"
- name: Get latest bladebit plotter
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Download and extract the chosen version
mkdir "$GITHUB_WORKSPACE"/bladebit
cd "$GITHUB_WORKSPACE"/bladebit
gh release download -R Chia-Network/bladebit "$LATEST_VERSION" -p 'bladebit*-${{ matrix.os.bladebit-suffix }}'
ls *.tar.gz | xargs -I{} bash -c 'tar -xzf {} && rm {}'
ls bladebit* | xargs -I{} chmod +x {}
cd "$OLDPWD"
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
constraints-file-artifact-name: constraints-file-${{ matrix.os.arch }}
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
constraints-file-artifact-name: constraints-file-${{ matrix.os.arch }}
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Prepare GUI cache
id: gui-ref
run: |
gui_ref=$(git submodule status chia-blockchain-gui | sed -e 's/^ //g' -e 's/ chia-blockchain-gui.*$//g')
echo "${gui_ref}"
echo "GUI_REF=${gui_ref}" >> "$GITHUB_OUTPUT"
echo "rm -rf ./chia-blockchain-gui"
rm -rf ./chia-blockchain-gui
- name: Prepare GUI cache
id: gui-ref
run: |
gui_ref=$(git submodule status chia-blockchain-gui | sed -e 's/^ //g' -e 's/ chia-blockchain-gui.*$//g')
echo "${gui_ref}"
echo "GUI_REF=${gui_ref}" >> "$GITHUB_OUTPUT"
echo "rm -rf ./chia-blockchain-gui"
rm -rf ./chia-blockchain-gui
- name: Cache GUI
uses: actions/cache@v4
id: cache-gui
with:
path: ./chia-blockchain-gui
key: ${{ runner.os }}-${{ matrix.os.arch }}-chia-blockchain-gui-${{ steps.gui-ref.outputs.GUI_REF }}
- name: Cache GUI
uses: actions/cache@v4
id: cache-gui
with:
path: ./chia-blockchain-gui
key: ${{ runner.os }}-${{ matrix.os.arch }}-chia-blockchain-gui-${{ steps.gui-ref.outputs.GUI_REF }}
- if: steps.cache-gui.outputs.cache-hit != 'true'
name: Build GUI
continue-on-error: false
run: |
cd ./build_scripts
bash build_linux_deb-1-gui.sh
- if: steps.cache-gui.outputs.cache-hit != 'true'
name: Build GUI
continue-on-error: false
run: |
cd ./build_scripts
bash build_linux_deb-1-gui.sh
- name: Build .deb package
env:
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
run: |
ldd --version
cd ./build_scripts
sh build_linux_deb-2-installer.sh ${{ matrix.os.arch }}
- name: Build .deb package
env:
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
run: |
ldd --version
cd ./build_scripts
sh build_linux_deb-2-installer.sh ${{ matrix.os.arch }}
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: chia-installers-linux-deb-${{ matrix.os.arch }}
path: ${{ github.workspace }}/build_scripts/final_installer/
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: chia-installers-linux-deb-${{ matrix.os.arch }}
path: ${{ github.workspace }}/build_scripts/final_installer/
- name: Remove working files to exclude from cache
run: |
rm -rf ./chia-blockchain-gui/packages/gui/daemon
- name: Remove working files to exclude from cache
run: |
rm -rf ./chia-blockchain-gui/packages/gui/daemon
publish:
name: Publish ${{ matrix.os.arch }}
runs-on: ${{ matrix.os.runs-on }}
needs:
- build
- build
container: chianetwork/ubuntu-20.04-builder:latest
timeout-minutes: ${{ matrix.os.timeout }}
strategy:
@@ -226,222 +226,222 @@ jobs:
CHIA_INSTALLER_VERSION: ${{ needs.build.outputs.chia-installer-version }}
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- uses: chia-network/actions/create-venv@main
id: create-venv
- uses: chia-network/actions/create-venv@main
id: create-venv
- uses: chia-network/actions/activate-venv@main
with:
directories: ${{ steps.create-venv.outputs.activate-venv-directories }}
- uses: chia-network/actions/activate-venv@main
with:
directories: ${{ steps.create-venv.outputs.activate-venv-directories }}
- name: Download constraints file
uses: actions/download-artifact@v4
with:
name: constraints-file-${{ matrix.os.arch }}
path: venv
- name: Download constraints file
uses: actions/download-artifact@v4
with:
name: constraints-file-${{ matrix.os.arch }}
path: venv
- name: Install utilities
run: |
pip install --constraint venv/constraints.txt py3createtorrent
- name: Install utilities
run: |
pip install --constraint venv/constraints.txt py3createtorrent
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-linux-deb-${{ matrix.os.arch }}
path: build_scripts/final_installer/
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-linux-deb-${{ matrix.os.arch }}
path: build_scripts/final_installer/
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_AWS_SECRET
unset HAS_GLUE_SECRET
- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_AWS_SECRET
unset HAS_GLUE_SECRET
if [ -n "$AWS_SECRET" ]; then HAS_AWS_SECRET='true' ; fi
echo HAS_AWS_SECRET=${HAS_AWS_SECRET} >> "$GITHUB_OUTPUT"
if [ -n "$AWS_SECRET" ]; then HAS_AWS_SECRET='true' ; fi
echo HAS_AWS_SECRET=${HAS_AWS_SECRET} >> "$GITHUB_OUTPUT"
if [ -n "$GLUE_API_URL" ]; then HAS_GLUE_SECRET='true' ; fi
echo HAS_GLUE_SECRET=${HAS_GLUE_SECRET} >> "$GITHUB_OUTPUT"
env:
AWS_SECRET: "${{ secrets.CHIA_AWS_ACCOUNT_ID }}"
GLUE_API_URL: "${{ secrets.GLUE_API_URL }}"
if [ -n "$GLUE_API_URL" ]; then HAS_GLUE_SECRET='true' ; fi
echo HAS_GLUE_SECRET=${HAS_GLUE_SECRET} >> "$GITHUB_OUTPUT"
env:
AWS_SECRET: "${{ secrets.CHIA_AWS_ACCOUNT_ID }}"
GLUE_API_URL: "${{ secrets.GLUE_API_URL }}"
- name: Configure AWS credentials
if: steps.check_secrets.outputs.HAS_AWS_SECRET
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.CHIA_AWS_ACCOUNT_ID }}:role/installer-upload
aws-region: us-west-2
- name: Configure AWS credentials
if: steps.check_secrets.outputs.HAS_AWS_SECRET
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.CHIA_AWS_ACCOUNT_ID }}:role/installer-upload
aws-region: us-west-2
- name: Upload to s3
if: steps.check_secrets.outputs.HAS_AWS_SECRET
run: |
GIT_SHORT_HASH=$(echo "${GITHUB_SHA}" | cut -c1-8)
CHIA_DEV_BUILD=${CHIA_INSTALLER_VERSION}-$GIT_SHORT_HASH
echo "CHIA_DEV_BUILD=$CHIA_DEV_BUILD" >> "$GITHUB_ENV"
aws s3 cp "$GITHUB_WORKSPACE/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb" "s3://download.chia.net/dev/chia-blockchain_${CHIA_DEV_BUILD}_${{ matrix.os.arch }}.deb"
aws s3 cp "$GITHUB_WORKSPACE/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb" "s3://download.chia.net/dev/chia-blockchain-cli_${CHIA_DEV_BUILD}-1_${{ matrix.os.arch }}.deb"
- name: Upload to s3
if: steps.check_secrets.outputs.HAS_AWS_SECRET
run: |
GIT_SHORT_HASH=$(echo "${GITHUB_SHA}" | cut -c1-8)
CHIA_DEV_BUILD=${CHIA_INSTALLER_VERSION}-$GIT_SHORT_HASH
echo "CHIA_DEV_BUILD=$CHIA_DEV_BUILD" >> "$GITHUB_ENV"
aws s3 cp "$GITHUB_WORKSPACE/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb" "s3://download.chia.net/dev/chia-blockchain_${CHIA_DEV_BUILD}_${{ matrix.os.arch }}.deb"
aws s3 cp "$GITHUB_WORKSPACE/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb" "s3://download.chia.net/dev/chia-blockchain-cli_${CHIA_DEV_BUILD}-1_${{ matrix.os.arch }}.deb"
- name: Create Checksums
if: env.FULL_RELEASE == 'true' || github.ref == 'refs/heads/main'
run: |
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.sha256
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.sha256
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
- name: Create Checksums
if: env.FULL_RELEASE == 'true' || github.ref == 'refs/heads/main'
run: |
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.sha256
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.sha256
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
- name: Create .deb torrent
if: env.FULL_RELEASE == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.torrent --webseed https://download.chia.net/install/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.torrent --webseed https://download.chia.net/install/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.torrent
- name: Create .deb torrent
if: env.FULL_RELEASE == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.torrent --webseed https://download.chia.net/install/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.torrent --webseed https://download.chia.net/install/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.torrent
- name: Upload Dev Installer
if: steps.check_secrets.outputs.HAS_AWS_SECRET && github.ref == 'refs/heads/main'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb s3://download.chia.net/latest-dev/chia-blockchain_${{ matrix.os.arch }}_latest_dev.deb
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/latest-dev/chia-blockchain_${{ matrix.os.arch }}_latest_dev.deb.sha256
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb s3://download.chia.net/latest-dev/chia-blockchain-cli_${{ matrix.os.arch }}_latest_dev.deb
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/latest-dev/chia-blockchain-cli_${{ matrix.os.arch }}_latest_dev.deb.sha256
- name: Upload Dev Installer
if: steps.check_secrets.outputs.HAS_AWS_SECRET && github.ref == 'refs/heads/main'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb s3://download.chia.net/latest-dev/chia-blockchain_${{ matrix.os.arch }}_latest_dev.deb
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/latest-dev/chia-blockchain_${{ matrix.os.arch }}_latest_dev.deb.sha256
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb s3://download.chia.net/latest-dev/chia-blockchain-cli_${{ matrix.os.arch }}_latest_dev.deb
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/latest-dev/chia-blockchain-cli_${{ matrix.os.arch }}_latest_dev.deb.sha256
- name: Upload Release Files
if: steps.check_secrets.outputs.HAS_AWS_SECRET && env.FULL_RELEASE == 'true'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.torrent s3://download.chia.net/torrents/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.torrent s3://download.chia.net/torrents/
- name: Upload Release Files
if: steps.check_secrets.outputs.HAS_AWS_SECRET && env.FULL_RELEASE == 'true'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb.torrent s3://download.chia.net/torrents/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb.torrent s3://download.chia.net/torrents/
- name: Upload release artifacts
if: env.RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload \
--repo ${{ github.repository }} \
$RELEASE_TAG \
build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb \
build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb
- name: Upload release artifacts
if: env.RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload \
--repo ${{ github.repository }} \
$RELEASE_TAG \
build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_${{ matrix.os.arch }}.deb \
build_scripts/final_installer/chia-blockchain-cli_${CHIA_INSTALLER_VERSION}-1_${{ matrix.os.arch }}.deb
- uses: Chia-Network/actions/github/jwt@main
if: steps.check_secrets.outputs.HAS_GLUE_SECRET
- uses: Chia-Network/actions/github/jwt@main
if: steps.check_secrets.outputs.HAS_GLUE_SECRET
- name: Mark pre-release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.PRE_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}-prerelease/${{ env.RELEASE_TAG }}/success/${{ matrix.os.glue-name }}
- name: Mark pre-release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.PRE_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}-prerelease/${{ env.RELEASE_TAG }}/success/${{ matrix.os.glue-name }}
- name: Mark release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.FULL_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}/${{ env.RELEASE_TAG }}/success/${{ matrix.os.glue-name }}
- name: Mark release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.FULL_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}/${{ env.RELEASE_TAG }}/success/${{ matrix.os.glue-name }}
test:
name: Test ${{ matrix.distribution.name }} ${{ matrix.mode.name }} ${{ matrix.arch.name }}
runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }}
needs:
- build
- build
container: ${{ matrix.distribution.url }}
strategy:
fail-fast: false
matrix:
os:
- runs-on:
arm: [linux, arm64]
intel: [ubuntu-latest]
- runs-on:
arm: [linux, arm64]
intel: [ubuntu-latest]
distribution:
- name: debian:bullseye
type: debian
# https://packages.debian.org/bullseye/python/python3 (3.9)
url: "docker://debian:bullseye"
- name: debian:bookworm
type: debian
# https://packages.debian.org/bookworm/python/python3 (3.11)
url: "docker://debian:bookworm"
- name: ubuntu:focal (20.04)
type: ubuntu
# https://packages.ubuntu.com/focal/python3 (20.04, 3.8)
url: "docker://ubuntu:focal"
- name: ubuntu:jammy (22.04)
type: ubuntu
# https://packages.ubuntu.com/jammy/python3 (22.04, 3.10)
url: "docker://ubuntu:jammy"
- name: debian:bullseye
type: debian
# https://packages.debian.org/bullseye/python/python3 (3.9)
url: "docker://debian:bullseye"
- name: debian:bookworm
type: debian
# https://packages.debian.org/bookworm/python/python3 (3.11)
url: "docker://debian:bookworm"
- name: ubuntu:focal (20.04)
type: ubuntu
# https://packages.ubuntu.com/focal/python3 (20.04, 3.8)
url: "docker://ubuntu:focal"
- name: ubuntu:jammy (22.04)
type: ubuntu
# https://packages.ubuntu.com/jammy/python3 (22.04, 3.10)
url: "docker://ubuntu:jammy"
mode:
- name: GUI
file: chia-blockchain_*.deb
package: chia-blockchain
- name: CLI
file: chia-blockchain-cli_*.deb
package: chia-blockchain-cli
- name: GUI
file: chia-blockchain_*.deb
package: chia-blockchain
- name: CLI
file: chia-blockchain-cli_*.deb
package: chia-blockchain-cli
arch:
- name: ARM64
matrix: arm
artifact-name: arm64
- name: Intel
matrix: intel
artifact-name: amd64
- name: ARM64
matrix: arm
artifact-name: arm64
- name: Intel
matrix: intel
artifact-name: amd64
env:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- name: Download packages
uses: actions/download-artifact@v4
id: download
with:
name: chia-installers-linux-deb-${{ matrix.arch.artifact-name }}
path: packages
- name: Download packages
uses: actions/download-artifact@v4
id: download
with:
name: chia-installers-linux-deb-${{ matrix.arch.artifact-name }}
path: packages
- name: Update apt repos
run: |
apt-get update --yes
- name: Update apt repos
run: |
apt-get update --yes
- name: Install package
run: |
ls -l "${{ steps.download.outputs.download-path }}"
apt-get install --yes "${{ steps.download.outputs.download-path }}"/${{ matrix.mode.file }}
- name: Install package
run: |
ls -l "${{ steps.download.outputs.download-path }}"
apt-get install --yes "${{ steps.download.outputs.download-path }}"/${{ matrix.mode.file }}
- name: Run chia version
run: |
ACTUAL=$(chia version)
echo " actual version: ${ACTUAL}"
if [ "${ACTUAL}" = "None" ]
then
echo " !!! should not be None"
false
else
echo " :] at least it isn't None"
fi
- name: Run chia version
run: |
ACTUAL=$(chia version)
echo " actual version: ${ACTUAL}"
if [ "${ACTUAL}" = "None" ]
then
echo " !!! should not be None"
false
else
echo " :] at least it isn't None"
fi
- name: Verify /opt/chia present
run: |
if [ ! -e /opt/chia ]
then
ls -l /opt
false
fi
- name: Verify /opt/chia present
run: |
if [ ! -e /opt/chia ]
then
ls -l /opt
false
fi
- name: Remove package
run: |
apt-get remove --yes ${{ matrix.mode.package }}
- name: Remove package
run: |
apt-get remove --yes ${{ matrix.mode.package }}
- name: Verify /opt/chia not present
run: |
if [ -e /opt/chia ]
then
ls -lR /opt/chia
false
fi
- name: Verify /opt/chia not present
run: |
if [ -e /opt/chia ]
then
ls -lR /opt/chia
false
fi
+329 -329
View File
@@ -4,29 +4,29 @@ on:
workflow_dispatch:
inputs:
release_type:
description: 'Tagged release testing scenario'
description: "Tagged release testing scenario"
required: false
type: choice
default: ''
default: ""
options:
- ''
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
- ""
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- '**.md'
- "**.md"
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -52,161 +52,161 @@ jobs:
python-version: ["3.10"]
steps:
- name: Add safe git directory
uses: Chia-Network/actions/git-mark-workspace-safe@main
- name: Add safe git directory
uses: Chia-Network/actions/git-mark-workspace-safe@main
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: Chia-Network/actions/git-ssh-to-https@main
- uses: Chia-Network/actions/git-ssh-to-https@main
- name: Cleanup any leftovers that exist from previous runs
run: bash build_scripts/clean-runner.sh || true
- name: Cleanup any leftovers that exist from previous runs
run: bash build_scripts/clean-runner.sh || true
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check tag type
shell: bash
run: |
REG_B="^[0-9]+\.[0-9]+\.[0-9]+-b[0-9]+$"
REG_RC="^[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+$"
if [[ "${{ github.event.release.tag_name }}" =~ $REG_B ]] || [[ "${{ inputs.release_type }}" =~ $REG_B ]]; then
echo "TAG_TYPE=beta"
echo "TAG_TYPE=beta" >> "$GITHUB_ENV"
elif [[ "${{ github.event.release.tag_name }}" =~ $REG_RC ]] || [[ "${{ inputs.release_type }}" =~ $REG_RC ]]; then
echo "TAG_TYPE=rc"
echo "TAG_TYPE=rc" >> "$GITHUB_ENV"
fi
- name: Check tag type
shell: bash
run: |
REG_B="^[0-9]+\.[0-9]+\.[0-9]+-b[0-9]+$"
REG_RC="^[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+$"
if [[ "${{ github.event.release.tag_name }}" =~ $REG_B ]] || [[ "${{ inputs.release_type }}" =~ $REG_B ]]; then
echo "TAG_TYPE=beta"
echo "TAG_TYPE=beta" >> "$GITHUB_ENV"
elif [[ "${{ github.event.release.tag_name }}" =~ $REG_RC ]] || [[ "${{ inputs.release_type }}" =~ $REG_RC ]]; then
echo "TAG_TYPE=rc"
echo "TAG_TYPE=rc" >> "$GITHUB_ENV"
fi
- uses: Chia-Network/actions/enforce-semver@main
if: env.FULL_RELEASE == 'true'
- uses: Chia-Network/actions/enforce-semver@main
if: env.FULL_RELEASE == 'true'
# Create our own venv outside of the git directory JUST for getting the ACTUAL version so that install can't break it
- name: Get version number
id: version_number
run: |
python3 -m venv ../venv
. ../venv/bin/activate
pip3 install setuptools_scm
echo "CHIA_INSTALLER_VERSION=$(python3 ./build_scripts/installer-version.py)" >> "$GITHUB_OUTPUT"
deactivate
# Create our own venv outside of the git directory JUST for getting the ACTUAL version so that install can't break it
- name: Get version number
id: version_number
run: |
python3 -m venv ../venv
. ../venv/bin/activate
pip3 install setuptools_scm
echo "CHIA_INSTALLER_VERSION=$(python3 ./build_scripts/installer-version.py)" >> "$GITHUB_OUTPUT"
deactivate
- name: Get latest madmax plotter
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
LATEST_MADMAX=$(gh api repos/Chia-Network/chia-plotter-madmax/releases/latest --jq 'select(.prerelease == false) | .tag_name')
mkdir "$GITHUB_WORKSPACE"/madmax
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot-*-x86-64' -O "$GITHUB_WORKSPACE"/madmax/chia_plot
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot_k34-*-x86-64' -O "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
- name: Get latest madmax plotter
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
LATEST_MADMAX=$(gh api repos/Chia-Network/chia-plotter-madmax/releases/latest --jq 'select(.prerelease == false) | .tag_name')
mkdir "$GITHUB_WORKSPACE"/madmax
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot-*-x86-64' -O "$GITHUB_WORKSPACE"/madmax/chia_plot
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot_k34-*-x86-64' -O "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot
chmod +x "$GITHUB_WORKSPACE"/madmax/chia_plot_k34
- name: Fetch bladebit versions
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch the latest version of each type
LATEST_RELEASE=$(gh api repos/Chia-Network/bladebit/releases/latest --jq 'select(.prerelease == false) | .tag_name')
LATEST_BETA=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-beta[0-9]+$"))) | first | .tag_name')
LATEST_RC=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-rc[0-9]+$"))) | first | .tag_name')
- name: Fetch bladebit versions
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch the latest version of each type
LATEST_RELEASE=$(gh api repos/Chia-Network/bladebit/releases/latest --jq 'select(.prerelease == false) | .tag_name')
LATEST_BETA=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-beta[0-9]+$"))) | first | .tag_name')
LATEST_RC=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-rc[0-9]+$"))) | first | .tag_name')
# Compare the versions and choose the newest that matches the requirements
if [[ "$TAG_TYPE" == "beta" || -z "$TAG_TYPE" ]]; then
# For beta or dev builds (indicated by the absence of a tag), use the latest version available
LATEST_VERSION=$(printf "%s\n%s\n%s\n" "$LATEST_RELEASE" "$LATEST_BETA" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
elif [[ "$TAG_TYPE" == "rc" ]]; then
# For RC builds, use the latest RC or full release if it's newer
LATEST_VERSION=$(printf "%s\n%s\n" "$LATEST_RELEASE" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
else
# For full releases, use the latest full release
LATEST_VERSION="$LATEST_RELEASE"
fi
echo "LATEST_VERSION=$LATEST_VERSION" >> "$GITHUB_ENV"
# Compare the versions and choose the newest that matches the requirements
if [[ "$TAG_TYPE" == "beta" || -z "$TAG_TYPE" ]]; then
# For beta or dev builds (indicated by the absence of a tag), use the latest version available
LATEST_VERSION=$(printf "%s\n%s\n%s\n" "$LATEST_RELEASE" "$LATEST_BETA" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
elif [[ "$TAG_TYPE" == "rc" ]]; then
# For RC builds, use the latest RC or full release if it's newer
LATEST_VERSION=$(printf "%s\n%s\n" "$LATEST_RELEASE" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
else
# For full releases, use the latest full release
LATEST_VERSION="$LATEST_RELEASE"
fi
echo "LATEST_VERSION=$LATEST_VERSION" >> "$GITHUB_ENV"
- name: Get latest bladebit plotter
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Download and extract the chosen version
mkdir "$GITHUB_WORKSPACE"/bladebit
cd "$GITHUB_WORKSPACE"/bladebit
gh release download -R Chia-Network/bladebit "$LATEST_VERSION" -p 'bladebit*-centos-x86-64.tar.gz'
ls *.tar.gz | xargs -I{} bash -c 'tar -xzf {} && rm {}'
ls bladebit* | xargs -I{} chmod +x {}
cd "$OLDPWD"
- name: Get latest bladebit plotter
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Download and extract the chosen version
mkdir "$GITHUB_WORKSPACE"/bladebit
cd "$GITHUB_WORKSPACE"/bladebit
gh release download -R Chia-Network/bladebit "$LATEST_VERSION" -p 'bladebit*-centos-x86-64.tar.gz'
ls *.tar.gz | xargs -I{} bash -c 'tar -xzf {} && rm {}'
ls bladebit* | xargs -I{} chmod +x {}
cd "$OLDPWD"
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
constraints-file-artifact-name: constraints-file-intel
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
constraints-file-artifact-name: constraints-file-intel
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Prepare GUI cache
id: gui-ref
run: |
gui_ref=$(git submodule status chia-blockchain-gui | sed -e 's/^ //g' -e 's/ chia-blockchain-gui.*$//g')
echo "${gui_ref}"
echo "GUI_REF=${gui_ref}" >> "$GITHUB_OUTPUT"
echo "rm -rf ./chia-blockchain-gui"
rm -rf ./chia-blockchain-gui
- name: Prepare GUI cache
id: gui-ref
run: |
gui_ref=$(git submodule status chia-blockchain-gui | sed -e 's/^ //g' -e 's/ chia-blockchain-gui.*$//g')
echo "${gui_ref}"
echo "GUI_REF=${gui_ref}" >> "$GITHUB_OUTPUT"
echo "rm -rf ./chia-blockchain-gui"
rm -rf ./chia-blockchain-gui
- name: Cache GUI
uses: actions/cache@v4
id: cache-gui
with:
path: ./chia-blockchain-gui
key: ${{ runner.os }}-rpm-chia-blockchain-gui-${{ steps.gui-ref.outputs.GUI_REF }}
- name: Cache GUI
uses: actions/cache@v4
id: cache-gui
with:
path: ./chia-blockchain-gui
key: ${{ runner.os }}-rpm-chia-blockchain-gui-${{ steps.gui-ref.outputs.GUI_REF }}
- if: steps.cache-gui.outputs.cache-hit != 'true'
name: Build GUI
continue-on-error: false
run: |
cd ./build_scripts
bash build_linux_rpm-1-gui.sh
- if: steps.cache-gui.outputs.cache-hit != 'true'
name: Build GUI
continue-on-error: false
run: |
cd ./build_scripts
bash build_linux_rpm-1-gui.sh
- name: Build .rpm package
env:
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
run: |
ldd --version
cd ./build_scripts
bash build_linux_rpm-2-installer.sh amd64
- name: Build .rpm package
env:
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
run: |
ldd --version
cd ./build_scripts
bash build_linux_rpm-2-installer.sh amd64
- name: Upload fpm-generated rpm spec files
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: spec
path: |
build_scripts/dist/cli.spec
build_scripts/dist/gui.spec
- name: Upload fpm-generated rpm spec files
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: spec
path: |
build_scripts/dist/cli.spec
build_scripts/dist/gui.spec
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: chia-installers-linux-rpm-intel
path: ${{ github.workspace }}/build_scripts/final_installer/
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: chia-installers-linux-rpm-intel
path: ${{ github.workspace }}/build_scripts/final_installer/
- name: Remove working files to exclude from cache
run: |
rm -rf ./chia-blockchain-gui/packages/gui/daemon
- name: Remove working files to exclude from cache
run: |
rm -rf ./chia-blockchain-gui/packages/gui/daemon
publish:
name: Publish amd64 RPM
runs-on: ubuntu-latest
needs:
- build
- build
container:
image: chianetwork/rocky8-builder:latest
timeout-minutes: 5
@@ -219,62 +219,62 @@ jobs:
CHIA_INSTALLER_VERSION: ${{ needs.build.outputs.chia-installer-version }}
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- uses: chia-network/actions/create-venv@main
id: create-venv
- uses: chia-network/actions/create-venv@main
id: create-venv
- uses: chia-network/actions/activate-venv@main
with:
directories: ${{ steps.create-venv.outputs.activate-venv-directories }}
- uses: chia-network/actions/activate-venv@main
with:
directories: ${{ steps.create-venv.outputs.activate-venv-directories }}
- name: Download constraints file
uses: actions/download-artifact@v4
with:
name: constraints-file-intel
path: venv
- name: Download constraints file
uses: actions/download-artifact@v4
with:
name: constraints-file-intel
path: venv
- name: Install utilities
run: |
pip install --constraint venv/constraints.txt py3createtorrent
- name: Install utilities
run: |
pip install --constraint venv/constraints.txt py3createtorrent
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-linux-rpm-intel
path: build_scripts/final_installer/
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-linux-rpm-intel
path: build_scripts/final_installer/
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_AWS_SECRET
unset HAS_GLUE_SECRET
- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_AWS_SECRET
unset HAS_GLUE_SECRET
if [ -n "$AWS_SECRET" ]; then HAS_AWS_SECRET='true' ; fi
echo HAS_AWS_SECRET=${HAS_AWS_SECRET} >> "$GITHUB_OUTPUT"
if [ -n "$AWS_SECRET" ]; then HAS_AWS_SECRET='true' ; fi
echo HAS_AWS_SECRET=${HAS_AWS_SECRET} >> "$GITHUB_OUTPUT"
if [ -n "$GLUE_API_URL" ]; then HAS_GLUE_SECRET='true' ; fi
echo HAS_GLUE_SECRET=${HAS_GLUE_SECRET} >> "$GITHUB_OUTPUT"
env:
AWS_SECRET: "${{ secrets.CHIA_AWS_ACCOUNT_ID }}"
GLUE_API_URL: "${{ secrets.GLUE_API_URL }}"
if [ -n "$GLUE_API_URL" ]; then HAS_GLUE_SECRET='true' ; fi
echo HAS_GLUE_SECRET=${HAS_GLUE_SECRET} >> "$GITHUB_OUTPUT"
env:
AWS_SECRET: "${{ secrets.CHIA_AWS_ACCOUNT_ID }}"
GLUE_API_URL: "${{ secrets.GLUE_API_URL }}"
- name: Configure AWS credentials
if: steps.check_secrets.outputs.HAS_AWS_SECRET
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.CHIA_AWS_ACCOUNT_ID }}:role/installer-upload
aws-region: us-west-2
- name: Configure AWS credentials
if: steps.check_secrets.outputs.HAS_AWS_SECRET
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.CHIA_AWS_ACCOUNT_ID }}:role/installer-upload
aws-region: us-west-2
- name: Upload to s3
if: steps.check_secrets.outputs.HAS_AWS_SECRET
run: |
- name: Upload to s3
if: steps.check_secrets.outputs.HAS_AWS_SECRET
run: |
GIT_SHORT_HASH=$(echo "${GITHUB_SHA}" | cut -c1-8)
CHIA_DEV_BUILD=${CHIA_INSTALLER_VERSION}-$GIT_SHORT_HASH
echo "CHIA_DEV_BUILD=$CHIA_DEV_BUILD" >> "$GITHUB_ENV"
@@ -282,108 +282,108 @@ jobs:
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/dev/chia-blockchain-${CHIA_DEV_BUILD}-1.x86_64.rpm
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/dev/chia-blockchain-cli-${CHIA_DEV_BUILD}-1.x86_64.rpm
- name: Create Checksums
if: env.FULL_RELEASE == 'true' || github.ref == 'refs/heads/main'
run: |
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
- name: Create Checksums
if: env.FULL_RELEASE == 'true' || github.ref == 'refs/heads/main'
run: |
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256
sha256sum "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm > "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256
ls "$GITHUB_WORKSPACE"/build_scripts/final_installer/
- name: Create .rpm torrent
if: env.FULL_RELEASE == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent --webseed https://download.chia.net/install/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent --webseed https://download.chia.net/install/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent
- name: Create .rpm torrent
if: env.FULL_RELEASE == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent --webseed https://download.chia.net/install/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm -o "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent --webseed https://download.chia.net/install/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent
- name: Upload Dev Installer
if: steps.check_secrets.outputs.HAS_AWS_SECRET && github.ref == 'refs/heads/main'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/latest-dev/chia-blockchain-1.x86_64_latest_dev.rpm
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/latest-dev/chia-blockchain-1.x86_64_latest_dev.rpm.sha256
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/latest-dev/chia-blockchain-cli-1.x86_64_latest_dev.rpm
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/latest-dev/chia-blockchain-cli-1.x86_64_latest_dev.rpm.sha256
- name: Upload Dev Installer
if: steps.check_secrets.outputs.HAS_AWS_SECRET && github.ref == 'refs/heads/main'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/latest-dev/chia-blockchain-1.x86_64_latest_dev.rpm
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/latest-dev/chia-blockchain-1.x86_64_latest_dev.rpm.sha256
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/latest-dev/chia-blockchain-cli-1.x86_64_latest_dev.rpm
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/latest-dev/chia-blockchain-cli-1.x86_64_latest_dev.rpm.sha256
- name: Upload Release Files
if: steps.check_secrets.outputs.HAS_AWS_SECRET && env.FULL_RELEASE == 'true'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent s3://download.chia.net/torrents/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent s3://download.chia.net/torrents/
- name: Upload Release Files
if: steps.check_secrets.outputs.HAS_AWS_SECRET && env.FULL_RELEASE == 'true'
run: |
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent s3://download.chia.net/torrents/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.sha256 s3://download.chia.net/install/
aws s3 cp "$GITHUB_WORKSPACE"/build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm.torrent s3://download.chia.net/torrents/
- name: Upload release artifacts
if: env.RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload \
--repo ${{ github.repository }} \
$RELEASE_TAG \
build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm \
build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm
- name: Upload release artifacts
if: env.RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload \
--repo ${{ github.repository }} \
$RELEASE_TAG \
build_scripts/final_installer/chia-blockchain-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm \
build_scripts/final_installer/chia-blockchain-cli-${CHIA_INSTALLER_VERSION}-1.x86_64.rpm
- uses: Chia-Network/actions/github/jwt@main
if: steps.check_secrets.outputs.HAS_GLUE_SECRET
- uses: Chia-Network/actions/github/jwt@main
if: steps.check_secrets.outputs.HAS_GLUE_SECRET
- name: Mark pre-release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.PRE_RELEASE == 'true'
run: |
- name: Mark pre-release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.PRE_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}-prerelease/${{ env.RELEASE_TAG }}/success/build-linux-rpm
- name: Mark release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.FULL_RELEASE == 'true'
run: |
- name: Mark release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.FULL_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}/${{ env.RELEASE_TAG }}/success/build-linux-rpm
test:
name: Test ${{ matrix.distribution.name }} ${{ matrix.mode.name }} ${{ matrix.state.name }}
runs-on: ${{ matrix.os }}
needs:
- build
- build
container: ${{ matrix.distribution.url }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
distribution:
- name: amazonlinux:2023
type: amazon
url: "docker://amazonlinux:2023"
- name: fedora:37
type: fedora
# (37, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+37&start=0
url: "docker://fedora:37"
- name: fedora:38
type: fedora
# (38, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+38&start=0
url: "docker://fedora:38"
- name: rockylinux:8
type: rocky
url: "docker://rockylinux:8"
- name: rockylinux:9
type: rocky
url: "docker://rockylinux:9"
# bypass this error for now: Problem: The operation would result in removing the following protected packages: systemd-udev
noautoremove:
gui: --noautoremove
- name: build image
type: rocky
url: "docker://chianetwork/rocky8-builder:latest"
- name: amazonlinux:2023
type: amazon
url: "docker://amazonlinux:2023"
- name: fedora:37
type: fedora
# (37, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+37&start=0
url: "docker://fedora:37"
- name: fedora:38
type: fedora
# (38, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+38&start=0
url: "docker://fedora:38"
- name: rockylinux:8
type: rocky
url: "docker://rockylinux:8"
- name: rockylinux:9
type: rocky
url: "docker://rockylinux:9"
# bypass this error for now: Problem: The operation would result in removing the following protected packages: systemd-udev
noautoremove:
gui: --noautoremove
- name: build image
type: rocky
url: "docker://chianetwork/rocky8-builder:latest"
mode:
- name: GUI
matrix: gui
file: chia-blockchain-[0,1,2,3,4,5,6,7,8,9]*.rpm
package: chia-blockchain
- name: CLI
matrix: cli
file: chia-blockchain-cli-[0,1,2,3,4,5,6,7,8,9]*.rpm
package: chia-blockchain-cli
- name: GUI
matrix: gui
file: chia-blockchain-[0,1,2,3,4,5,6,7,8,9]*.rpm
package: chia-blockchain
- name: CLI
matrix: cli
file: chia-blockchain-cli-[0,1,2,3,4,5,6,7,8,9]*.rpm
package: chia-blockchain-cli
state:
- name: Dirty
matrix: dirty
@@ -391,73 +391,73 @@ jobs:
matrix: clean
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- name: Download packages
uses: actions/download-artifact@v4
id: download
with:
name: chia-installers-linux-rpm-intel
path: packages
- name: Download packages
uses: actions/download-artifact@v4
id: download
with:
name: chia-installers-linux-rpm-intel
path: packages
- name: Dirty the environment for the sake of testing
if: matrix.state.matrix == 'dirty'
run: |
# this has been known to mess up the version detection, the empty directory should be removed
mkdir --parents /opt/chia/chia_blockchain-0.1.dist-info
# making sure that files are not removed
touch /opt/chia/touched
- name: Dirty the environment for the sake of testing
if: matrix.state.matrix == 'dirty'
run: |
# this has been known to mess up the version detection, the empty directory should be removed
mkdir --parents /opt/chia/chia_blockchain-0.1.dist-info
# making sure that files are not removed
touch /opt/chia/touched
- name: Install package
run: |
ls -l "${{ steps.download.outputs.download-path }}"
yum install -y "${{ steps.download.outputs.download-path }}"/${{ matrix.mode.file }}
- name: Install package
run: |
ls -l "${{ steps.download.outputs.download-path }}"
yum install -y "${{ steps.download.outputs.download-path }}"/${{ matrix.mode.file }}
- name: Run chia version
run: |
ACTUAL=$(chia version)
echo " actual version: ${ACTUAL}"
if [ "${ACTUAL}" = "None" ]
then
echo " !!! should not be None"
false
else
echo " :] at least it isn't None"
fi
- name: Run chia version
run: |
ACTUAL=$(chia version)
echo " actual version: ${ACTUAL}"
if [ "${ACTUAL}" = "None" ]
then
echo " !!! should not be None"
false
else
echo " :] at least it isn't None"
fi
- name: Verify /opt/chia present
run: |
if [ ! -e /opt/chia ]
then
ls -l /opt
false
fi
- name: Verify /opt/chia present
run: |
if [ ! -e /opt/chia ]
then
ls -l /opt
false
fi
- name: Remove package
run: |
yum remove -y ${{ matrix.distribution.noautoremove[matrix.mode.matrix] }} ${{ matrix.mode.package }}
- name: Remove package
run: |
yum remove -y ${{ matrix.distribution.noautoremove[matrix.mode.matrix] }} ${{ matrix.mode.package }}
- name: Verify /opt/chia not present
if: matrix.state.matrix == 'clean'
run: |
if [ -e /opt/chia ]
then
ls -lR /opt/chia
false
fi
- name: Verify /opt/chia not present
if: matrix.state.matrix == 'clean'
run: |
if [ -e /opt/chia ]
then
ls -lR /opt/chia
false
fi
- name: Verify /opt/chia contains only touched file
if: matrix.state.matrix == 'dirty'
run: |
ACTUAL=$(ls -a /opt/chia)
EXPECTED=$(echo -e '.\n..\ntouched')
echo " actual: ${ACTUAL}"
echo "expected: ${EXPECTED}"
if [ "${ACTUAL}" != "${EXPECTED}" ]
then
echo " !!! they do not match"
ls -lR /opt/chia
false
else
echo " :] they match"
fi
- name: Verify /opt/chia contains only touched file
if: matrix.state.matrix == 'dirty'
run: |
ACTUAL=$(ls -a /opt/chia)
EXPECTED=$(echo -e '.\n..\ntouched')
echo " actual: ${ACTUAL}"
echo "expected: ${EXPECTED}"
if [ "${ACTUAL}" != "${EXPECTED}" ]
then
echo " !!! they do not match"
ls -lR /opt/chia
false
else
echo " :] they match"
fi
+36 -38
View File
@@ -4,29 +4,29 @@ on:
workflow_dispatch:
inputs:
release_type:
description: 'Tagged release testing scenario'
description: "Tagged release testing scenario"
required: false
type: choice
default: ''
default: ""
options:
- ''
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
- ""
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- '**.md'
- "**.md"
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -117,8 +117,7 @@ jobs:
# This will be recreated in the next step
# Done now and at the end of the workflow in case the last workflow fails, and this is still around
- name: Delete keychain if it already exists
run:
security delete-keychain signing_temp.keychain || true
run: security delete-keychain signing_temp.keychain || true
- name: Import Apple app signing certificate
if: steps.check_secrets.outputs.HAS_APPLE_SECRET
@@ -191,7 +190,7 @@ jobs:
- name: Setup Node 18.x
uses: actions/setup-node@v4
with:
node-version: '18.x'
node-version: "18.x"
- name: Prepare GUI cache
id: gui-ref
@@ -242,14 +241,13 @@ jobs:
# We want to delete this no matter what happened in the previous steps (failures, success, etc)
- name: Delete signing keychain
if: always()
run:
security delete-keychain signing_temp.keychain || true
run: security delete-keychain signing_temp.keychain || true
publish:
name: Publish ${{ matrix.os.name }} DMG
runs-on: ${{ matrix.os.runs-on }}
needs:
- build
- build
timeout-minutes: 5
strategy:
fail-fast: false
@@ -398,7 +396,7 @@ jobs:
name: Test ${{ matrix.os.name }} ${{ matrix.arch.name }}
runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }}
needs:
- build
- build
strategy:
fail-fast: false
matrix:
@@ -434,27 +432,27 @@ jobs:
matrix: arm
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- name: Download packages
uses: actions/download-artifact@v4
id: download
with:
name: chia-installers-macos-dmg-${{ matrix.arch.artifact-name }}
path: packages
- name: Download packages
uses: actions/download-artifact@v4
id: download
with:
name: chia-installers-macos-dmg-${{ matrix.arch.artifact-name }}
path: packages
- name: Mount .dmg
env:
PACKAGE_PATH: ${{ github.workspace }}/build_scripts/final_installer/
run: |
ls -l "${{ steps.download.outputs.download-path }}"
hdiutil attach "${{ steps.download.outputs.download-path }}"/chia-*.dmg
- name: Mount .dmg
env:
PACKAGE_PATH: ${{ github.workspace }}/build_scripts/final_installer/
run: |
ls -l "${{ steps.download.outputs.download-path }}"
hdiutil attach "${{ steps.download.outputs.download-path }}"/chia-*.dmg
- name: Run chia version
run: |
"/Volumes/Chia "*"/Chia.app/Contents/Resources/app.asar.unpacked/daemon/chia" version
- name: Run chia version
run: |
"/Volumes/Chia "*"/Chia.app/Contents/Resources/app.asar.unpacked/daemon/chia" version
- name: Detach .dmg
if: always()
run: |
hdiutil detach -force "/Volumes/Chia "*
- name: Detach .dmg
if: always()
run: |
hdiutil detach -force "/Volumes/Chia "*
+321 -321
View File
@@ -4,29 +4,29 @@ on:
workflow_dispatch:
inputs:
release_type:
description: 'Tagged release testing scenario'
description: "Tagged release testing scenario"
required: false
type: choice
default: ''
default: ""
options:
- ''
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
- ""
- 9.9.9-b1
- 9.9.9-rc1
- 9.9.9
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- '**.md'
- "**.md"
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -50,225 +50,225 @@ jobs:
python-version: ["3.10"]
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check tag type
shell: bash
run: |
REG_B="^[0-9]+\.[0-9]+\.[0-9]+-b[0-9]+$"
REG_RC="^[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+$"
if [[ "${{ github.event.release.tag_name }}" =~ $REG_B ]] || [[ "${{ inputs.release_type }}" =~ $REG_B ]]; then
echo "TAG_TYPE=beta"
echo "TAG_TYPE=beta" >> "$GITHUB_ENV"
elif [[ "${{ github.event.release.tag_name }}" =~ $REG_RC ]] || [[ "${{ inputs.release_type }}" =~ $REG_RC ]]; then
echo "TAG_TYPE=rc"
echo "TAG_TYPE=rc" >> "$GITHUB_ENV"
fi
- name: Check tag type
shell: bash
run: |
REG_B="^[0-9]+\.[0-9]+\.[0-9]+-b[0-9]+$"
REG_RC="^[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+$"
if [[ "${{ github.event.release.tag_name }}" =~ $REG_B ]] || [[ "${{ inputs.release_type }}" =~ $REG_B ]]; then
echo "TAG_TYPE=beta"
echo "TAG_TYPE=beta" >> "$GITHUB_ENV"
elif [[ "${{ github.event.release.tag_name }}" =~ $REG_RC ]] || [[ "${{ inputs.release_type }}" =~ $REG_RC ]]; then
echo "TAG_TYPE=rc"
echo "TAG_TYPE=rc" >> "$GITHUB_ENV"
fi
- name: Set git urls to https instead of ssh
run: |
git config --global url."https://github.com/".insteadOf ssh://git@github.com/
- name: Set git urls to https instead of ssh
run: |
git config --global url."https://github.com/".insteadOf ssh://git@github.com/
- name: Get npm cache directory
id: npm-cache
shell: bash
run: |
echo "dir=$(npm config get cache)" >> "$GITHUB_OUTPUT"
- name: Get npm cache directory
id: npm-cache
shell: bash
run: |
echo "dir=$(npm config get cache)" >> "$GITHUB_OUTPUT"
- name: Cache npm
uses: actions/cache@v4
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Cache npm
uses: actions/cache@v4
with:
path: ${{ steps.npm-cache.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> "$GITHUB_OUTPUT"
- name: Get pip cache dir
id: pip-cache
shell: bash
run: |
echo "dir=$(pip cache dir)" >> "$GITHUB_OUTPUT"
- name: Cache pip
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache pip
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
restore-keys: |
${{ runner.os }}-pip-
- uses: Chia-Network/actions/setup-python@main
name: Install Python ${{ matrix.python-version }}
with:
python-version: ${{ matrix.python-version }}
- uses: Chia-Network/actions/setup-python@main
name: Install Python ${{ matrix.python-version }}
with:
python-version: ${{ matrix.python-version }}
- name: Setup Node 18.x
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Setup Node 18.x
uses: actions/setup-node@v4
with:
node-version: "18.x"
- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SIGNING_SECRET
- name: Test for secrets access
id: check_secrets
shell: bash
run: |
unset HAS_SIGNING_SECRET
if [ -n "$SIGNING_SECRET" ]; then HAS_SIGNING_SECRET='true' ; fi
echo "HAS_SIGNING_SECRET=${HAS_SIGNING_SECRET}" >> "$GITHUB_OUTPUT"
env:
SIGNING_SECRET: "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}"
if [ -n "$SIGNING_SECRET" ]; then HAS_SIGNING_SECRET='true' ; fi
echo "HAS_SIGNING_SECRET=${HAS_SIGNING_SECRET}" >> "$GITHUB_OUTPUT"
env:
SIGNING_SECRET: "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}"
- name: Setup Certificate
if: steps.check_secrets.outputs.HAS_SIGNING_SECRET
shell: bash
run: |
echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
- name: Setup Certificate
if: steps.check_secrets.outputs.HAS_SIGNING_SECRET
shell: bash
run: |
echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
- name: Set signing variables
if: steps.check_secrets.outputs.HAS_SIGNING_SECRET
shell: bash
run: |
echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
echo "SM_CODE_SIGNING_CERT_SHA1_HASH=${{ secrets.SM_CODE_SIGNING_CERT_SHA1_HASH }}" >> "$GITHUB_ENV"
echo "C:\Program Files (x86)\Windows Kits\10\App Certification Kit" >> $GITHUB_PATH
echo "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools" >> $GITHUB_PATH
echo "C:\Program Files\DigiCert\DigiCert One Signing Manager Tools" >> $GITHUB_PATH
- name: Set signing variables
if: steps.check_secrets.outputs.HAS_SIGNING_SECRET
shell: bash
run: |
echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
echo "SM_CODE_SIGNING_CERT_SHA1_HASH=${{ secrets.SM_CODE_SIGNING_CERT_SHA1_HASH }}" >> "$GITHUB_ENV"
echo "C:\Program Files (x86)\Windows Kits\10\App Certification Kit" >> $GITHUB_PATH
echo "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools" >> $GITHUB_PATH
echo "C:\Program Files\DigiCert\DigiCert One Signing Manager Tools" >> $GITHUB_PATH
- name: Setup SSM KSP on windows latest
if: steps.check_secrets.outputs.HAS_SIGNING_SECRET
shell: cmd
run: |
curl -X GET https://download.chia.net/dc/smtools-windows-x64.msi -o smtools-windows-x64.msi
msiexec /i smtools-windows-x64.msi /quiet /qn
smksp_registrar.exe list
smctl.exe keypair ls
C:\Windows\System32\certutil.exe -csp "DigiCert Signing Manager KSP" -key -user
smksp_cert_sync.exe
- name: Setup SSM KSP on windows latest
if: steps.check_secrets.outputs.HAS_SIGNING_SECRET
shell: cmd
run: |
curl -X GET https://download.chia.net/dc/smtools-windows-x64.msi -o smtools-windows-x64.msi
msiexec /i smtools-windows-x64.msi /quiet /qn
smksp_registrar.exe list
smctl.exe keypair ls
C:\Windows\System32\certutil.exe -csp "DigiCert Signing Manager KSP" -key -user
smksp_cert_sync.exe
# Create our own venv outside of the git directory JUST for getting the ACTUAL version so that install can't break it
- name: Get version number
id: version_number
shell: bash
run: |
python -m venv ../venv
source ../venv/Scripts/activate
pip3 install setuptools_scm
CHIA_INSTALLER_VERSION=$(python ./build_scripts/installer-version.py)
echo "$CHIA_INSTALLER_VERSION"
echo "CHIA_INSTALLER_VERSION=$CHIA_INSTALLER_VERSION" >> "$GITHUB_OUTPUT"
deactivate
# Create our own venv outside of the git directory JUST for getting the ACTUAL version so that install can't break it
- name: Get version number
id: version_number
shell: bash
run: |
python -m venv ../venv
source ../venv/Scripts/activate
pip3 install setuptools_scm
CHIA_INSTALLER_VERSION=$(python ./build_scripts/installer-version.py)
echo "$CHIA_INSTALLER_VERSION"
echo "CHIA_INSTALLER_VERSION=$CHIA_INSTALLER_VERSION" >> "$GITHUB_OUTPUT"
deactivate
- name: Get latest madmax plotter
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
LATEST_MADMAX=$(gh api repos/Chia-Network/chia-plotter-madmax/releases/latest --jq 'select(.prerelease == false) | .tag_name')
mkdir "$GITHUB_WORKSPACE"\\madmax
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot-*.exe' -O "$GITHUB_WORKSPACE"\\madmax\\chia_plot.exe
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot_k34-*.exe' -O "$GITHUB_WORKSPACE"\\madmax\\chia_plot_k34.exe
- name: Get latest madmax plotter
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
LATEST_MADMAX=$(gh api repos/Chia-Network/chia-plotter-madmax/releases/latest --jq 'select(.prerelease == false) | .tag_name')
mkdir "$GITHUB_WORKSPACE"\\madmax
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot-*.exe' -O "$GITHUB_WORKSPACE"\\madmax\\chia_plot.exe
gh release download -R Chia-Network/chia-plotter-madmax "$LATEST_MADMAX" -p 'chia_plot_k34-*.exe' -O "$GITHUB_WORKSPACE"\\madmax\\chia_plot_k34.exe
- name: Fetch bladebit versions
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch the latest version of each type
LATEST_RELEASE=$(gh api repos/Chia-Network/bladebit/releases/latest --jq 'select(.prerelease == false) | .tag_name')
LATEST_BETA=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-beta[0-9]+$"))) | first | .tag_name')
LATEST_RC=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-rc[0-9]+$"))) | first | .tag_name')
- name: Fetch bladebit versions
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Fetch the latest version of each type
LATEST_RELEASE=$(gh api repos/Chia-Network/bladebit/releases/latest --jq 'select(.prerelease == false) | .tag_name')
LATEST_BETA=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-beta[0-9]+$"))) | first | .tag_name')
LATEST_RC=$(gh api repos/Chia-Network/bladebit/releases --jq 'map(select(.prerelease) | select(.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+-rc[0-9]+$"))) | first | .tag_name')
# Compare the versions and choose the newest that matches the requirements
if [[ "$TAG_TYPE" == "beta" || -z "$TAG_TYPE" ]]; then
# For beta or dev builds (indicated by the absence of a tag), use the latest version available
LATEST_VERSION=$(printf "%s\n%s\n%s\n" "$LATEST_RELEASE" "$LATEST_BETA" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
elif [[ "$TAG_TYPE" == "rc" ]]; then
# For RC builds, use the latest RC or full release if it's newer
LATEST_VERSION=$(printf "%s\n%s\n" "$LATEST_RELEASE" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
else
# For full releases, use the latest full release
LATEST_VERSION="$LATEST_RELEASE"
fi
echo "LATEST_VERSION=$LATEST_VERSION" >> "$GITHUB_ENV"
# Compare the versions and choose the newest that matches the requirements
if [[ "$TAG_TYPE" == "beta" || -z "$TAG_TYPE" ]]; then
# For beta or dev builds (indicated by the absence of a tag), use the latest version available
LATEST_VERSION=$(printf "%s\n%s\n%s\n" "$LATEST_RELEASE" "$LATEST_BETA" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
elif [[ "$TAG_TYPE" == "rc" ]]; then
# For RC builds, use the latest RC or full release if it's newer
LATEST_VERSION=$(printf "%s\n%s\n" "$LATEST_RELEASE" "$LATEST_RC" | sed '/-/!s/$/_/' | sort -V | sed 's/_$//' | tail -n 1)
else
# For full releases, use the latest full release
LATEST_VERSION="$LATEST_RELEASE"
fi
echo "LATEST_VERSION=$LATEST_VERSION" >> "$GITHUB_ENV"
- name: Get latest bladebit plotter
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Download and extract the chosen version
mkdir "$GITHUB_WORKSPACE\\bladebit"
cd "$GITHUB_WORKSPACE\\bladebit"
gh release download -R Chia-Network/bladebit "$LATEST_VERSION" -p 'bladebit*windows-x86-64.zip'
ls *.zip | xargs -I{} bash -c 'unzip {} && rm {}'
cd "$OLDPWD"
- name: Get latest bladebit plotter
shell: bash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Download and extract the chosen version
mkdir "$GITHUB_WORKSPACE\\bladebit"
cd "$GITHUB_WORKSPACE\\bladebit"
gh release download -R Chia-Network/bladebit "$LATEST_VERSION" -p 'bladebit*windows-x86-64.zip'
ls *.zip | xargs -I{} bash -c 'unzip {} && rm {}'
cd "$OLDPWD"
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
constraints-file-artifact-name: constraints-file-intel
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
constraints-file-artifact-name: constraints-file-intel
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Prepare GUI cache
id: gui-ref
shell: bash
run: |
gui_ref=$(git submodule status chia-blockchain-gui | sed -e 's/^ //g' -e 's/ chia-blockchain-gui.*$//g')
echo "${gui_ref}"
echo "GUI_REF=${gui_ref}" >> "$GITHUB_OUTPUT"
echo "rm -rf ./chia-blockchain-gui"
rm -rf ./chia-blockchain-gui
- name: Prepare GUI cache
id: gui-ref
shell: bash
run: |
gui_ref=$(git submodule status chia-blockchain-gui | sed -e 's/^ //g' -e 's/ chia-blockchain-gui.*$//g')
echo "${gui_ref}"
echo "GUI_REF=${gui_ref}" >> "$GITHUB_OUTPUT"
echo "rm -rf ./chia-blockchain-gui"
rm -rf ./chia-blockchain-gui
- name: Cache GUI
uses: actions/cache@v4
id: cache-gui
with:
path: .\chia-blockchain-gui
key: ${{ runner.os }}-chia-blockchain-gui-${{ steps.gui-ref.outputs.GUI_REF }}
- name: Cache GUI
uses: actions/cache@v4
id: cache-gui
with:
path: .\chia-blockchain-gui
key: ${{ runner.os }}-chia-blockchain-gui-${{ steps.gui-ref.outputs.GUI_REF }}
- if: steps.cache-gui.outputs.cache-hit != 'true'
name: Build GUI
continue-on-error: false
run: |
cd .\build_scripts
.\build_windows-1-gui.ps1
- if: steps.cache-gui.outputs.cache-hit != 'true'
name: Build GUI
continue-on-error: false
run: |
cd .\build_scripts
.\build_windows-1-gui.ps1
- name: Build Windows installer
env:
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
HAS_SIGNING_SECRET: ${{ steps.check_secrets.outputs.HAS_SIGNING_SECRET }}
run: |
$env:path="C:\Program` Files` (x86)\Microsoft` Visual` Studio\2019\Enterprise\SDK\ScopeCppSDK\vc15\VC\bin\;$env:path"
$env:path="C:\Program` Files` (x86)\Windows` Kits\10\App` Certification` Kit;$env:path"
cd .\build_scripts
.\build_windows-2-installer.ps1
- name: Build Windows installer
env:
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
HAS_SIGNING_SECRET: ${{ steps.check_secrets.outputs.HAS_SIGNING_SECRET }}
run: |
$env:path="C:\Program` Files` (x86)\Microsoft` Visual` Studio\2019\Enterprise\SDK\ScopeCppSDK\vc15\VC\bin\;$env:path"
$env:path="C:\Program` Files` (x86)\Windows` Kits\10\App` Certification` Kit;$env:path"
cd .\build_scripts
.\build_windows-2-installer.ps1
- name: Upload Installer to artifacts
uses: actions/upload-artifact@v4
with:
name: chia-installers-windows-exe-intel
path: ${{ github.workspace }}\chia-blockchain-gui\release-builds\
- name: Upload Installer to artifacts
uses: actions/upload-artifact@v4
with:
name: chia-installers-windows-exe-intel
path: ${{ github.workspace }}\chia-blockchain-gui\release-builds\
- name: Remove Windows exe and installer to exclude from cache
run: |
Remove-Item .\chia-blockchain-gui\packages\gui\dist -Recurse -Force
Remove-Item .\chia-blockchain-gui\packages\gui\daemon -Recurse -Force
Remove-Item .\chia-blockchain-gui\Chia-win32-x64 -Recurse -Force
Remove-Item .\chia-blockchain-gui\release-builds -Recurse -Force
- name: Remove Windows exe and installer to exclude from cache
run: |
Remove-Item .\chia-blockchain-gui\packages\gui\dist -Recurse -Force
Remove-Item .\chia-blockchain-gui\packages\gui\daemon -Recurse -Force
Remove-Item .\chia-blockchain-gui\Chia-win32-x64 -Recurse -Force
Remove-Item .\chia-blockchain-gui\release-builds -Recurse -Force
publish:
name: Publish EXE
@@ -277,7 +277,7 @@ jobs:
run:
shell: bash
needs:
- build
- build
timeout-minutes: 5
strategy:
fail-fast: false
@@ -288,132 +288,132 @@ jobs:
CHIA_INSTALLER_VERSION: ${{ needs.build.outputs.chia-installer-version }}
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python-version }}
- uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python-version }}
- uses: chia-network/actions/create-venv@main
id: create-venv
- uses: chia-network/actions/create-venv@main
id: create-venv
- uses: chia-network/actions/activate-venv@main
with:
directories: ${{ steps.create-venv.outputs.activate-venv-directories }}
- uses: chia-network/actions/activate-venv@main
with:
directories: ${{ steps.create-venv.outputs.activate-venv-directories }}
- name: Download constraints file
uses: actions/download-artifact@v4
with:
name: constraints-file-intel
path: venv
- name: Download constraints file
uses: actions/download-artifact@v4
with:
name: constraints-file-intel
path: venv
- name: Install utilities
run: |
pip install --constraint venv/constraints.txt py3createtorrent
- name: Install utilities
run: |
pip install --constraint venv/constraints.txt py3createtorrent
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-windows-exe-intel
path: chia-blockchain-gui/release-builds/
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-windows-exe-intel
path: chia-blockchain-gui/release-builds/
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set Env
uses: Chia-Network/actions/setjobenv@main
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Test for secrets access
id: check_secrets
run: |
unset HAS_AWS_SECRET
unset HAS_GLUE_SECRET
- name: Test for secrets access
id: check_secrets
run: |
unset HAS_AWS_SECRET
unset HAS_GLUE_SECRET
if [ -n "$AWS_SECRET" ]; then HAS_AWS_SECRET='true' ; fi
echo HAS_AWS_SECRET=${HAS_AWS_SECRET} >> "$GITHUB_OUTPUT"
if [ -n "$AWS_SECRET" ]; then HAS_AWS_SECRET='true' ; fi
echo HAS_AWS_SECRET=${HAS_AWS_SECRET} >> "$GITHUB_OUTPUT"
if [ -n "$GLUE_API_URL" ]; then HAS_GLUE_SECRET='true' ; fi
echo HAS_GLUE_SECRET=${HAS_GLUE_SECRET} >> "$GITHUB_OUTPUT"
env:
SIGNING_SECRET: "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}"
AWS_SECRET: "${{ secrets.CHIA_AWS_ACCOUNT_ID }}"
GLUE_API_URL: "${{ secrets.GLUE_API_URL }}"
if [ -n "$GLUE_API_URL" ]; then HAS_GLUE_SECRET='true' ; fi
echo HAS_GLUE_SECRET=${HAS_GLUE_SECRET} >> "$GITHUB_OUTPUT"
env:
SIGNING_SECRET: "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}"
AWS_SECRET: "${{ secrets.CHIA_AWS_ACCOUNT_ID }}"
GLUE_API_URL: "${{ secrets.GLUE_API_URL }}"
- name: Install AWS CLI
if: steps.check_secrets.outputs.HAS_AWS_SECRET
shell: pwsh
run: |
- name: Install AWS CLI
if: steps.check_secrets.outputs.HAS_AWS_SECRET
shell: pwsh
run: |
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
- name: Configure AWS credentials
if: steps.check_secrets.outputs.HAS_AWS_SECRET
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.CHIA_AWS_ACCOUNT_ID }}:role/installer-upload
aws-region: us-west-2
- name: Configure AWS credentials
if: steps.check_secrets.outputs.HAS_AWS_SECRET
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.CHIA_AWS_ACCOUNT_ID }}:role/installer-upload
aws-region: us-west-2
- name: Upload to s3
if: steps.check_secrets.outputs.HAS_AWS_SECRET
run: |
GIT_SHORT_HASH=$(echo "${GITHUB_SHA}" | cut -c1-8)
CHIA_DEV_BUILD=${CHIA_INSTALLER_VERSION}-$GIT_SHORT_HASH
echo CHIA_DEV_BUILD=${CHIA_DEV_BUILD} >> "$GITHUB_OUTPUT"
echo ${CHIA_DEV_BUILD}
pwd
aws s3 cp chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${CHIA_INSTALLER_VERSION}.exe s3://download.chia.net/dev/ChiaSetup-${CHIA_DEV_BUILD}.exe
- name: Upload to s3
if: steps.check_secrets.outputs.HAS_AWS_SECRET
run: |
GIT_SHORT_HASH=$(echo "${GITHUB_SHA}" | cut -c1-8)
CHIA_DEV_BUILD=${CHIA_INSTALLER_VERSION}-$GIT_SHORT_HASH
echo CHIA_DEV_BUILD=${CHIA_DEV_BUILD} >> "$GITHUB_OUTPUT"
echo ${CHIA_DEV_BUILD}
pwd
aws s3 cp chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${CHIA_INSTALLER_VERSION}.exe s3://download.chia.net/dev/ChiaSetup-${CHIA_DEV_BUILD}.exe
- name: Create Checksums
shell: pwsh
run: |
certutil.exe -hashfile ${{ github.workspace }}/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe SHA256 > ${{ github.workspace }}/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.sha256
ls ${{ github.workspace }}/chia-blockchain-gui/release-builds/windows-installer/
- name: Create Checksums
shell: pwsh
run: |
certutil.exe -hashfile ${{ github.workspace }}/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe SHA256 > ${{ github.workspace }}/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.sha256
ls ${{ github.workspace }}/chia-blockchain-gui/release-builds/windows-installer/
- name: Create torrent
if: env.FULL_RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe -o "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.torrent --webseed https://download.chia.net/install/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe
ls
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.torrent
- name: Create torrent
if: env.FULL_RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe -o "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.torrent --webseed https://download.chia.net/install/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe
ls
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.torrent
- name: Upload Dev Installer
if: steps.check_secrets.outputs.HAS_AWS_SECRET && github.ref == 'refs/heads/main'
run: |
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe s3://download.chia.net/latest-dev/ChiaSetup-latest-dev.exe
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.sha256 s3://download.chia.net/latest-dev/ChiaSetup-latest-dev.exe.sha256
- name: Upload Dev Installer
if: steps.check_secrets.outputs.HAS_AWS_SECRET && github.ref == 'refs/heads/main'
run: |
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe s3://download.chia.net/latest-dev/ChiaSetup-latest-dev.exe
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.sha256 s3://download.chia.net/latest-dev/ChiaSetup-latest-dev.exe.sha256
- name: Upload Release Files
if: steps.check_secrets.outputs.HAS_AWS_SECRET && env.FULL_RELEASE == 'true'
run: |
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe s3://download.chia.net/install/
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.sha256 s3://download.chia.net/install/
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.torrent s3://download.chia.net/torrents/
- name: Upload Release Files
if: steps.check_secrets.outputs.HAS_AWS_SECRET && env.FULL_RELEASE == 'true'
run: |
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe s3://download.chia.net/install/
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.sha256 s3://download.chia.net/install/
aws s3 cp "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe.torrent s3://download.chia.net/torrents/
- name: Upload release artifacts
if: env.RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe
- name: Upload release artifacts
if: env.RELEASE == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload --repo ${{ github.repository }} $RELEASE_TAG "${GITHUB_WORKSPACE}"/chia-blockchain-gui/release-builds/windows-installer/ChiaSetup-${{ env.CHIA_INSTALLER_VERSION }}.exe
- uses: Chia-Network/actions/github/jwt@main
if: steps.check_secrets.outputs.HAS_GLUE_SECRET
- uses: Chia-Network/actions/github/jwt@main
if: steps.check_secrets.outputs.HAS_GLUE_SECRET
- name: Mark pre-release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.PRE_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}-prerelease/${{ env.RELEASE_TAG }}/success/build-windows
- name: Mark pre-release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.PRE_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}-prerelease/${{ env.RELEASE_TAG }}/success/build-windows
- name: Mark release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.FULL_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}/${{ env.RELEASE_TAG }}/success/build-windows
- name: Mark release installer complete
if: steps.check_secrets.outputs.HAS_GLUE_SECRET && env.FULL_RELEASE == 'true'
run: |
curl -s -XPOST -H "Authorization: Bearer ${{ env.JWT_TOKEN }}" --data '{"chia_ref": "${{ env.RELEASE_TAG }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ env.RFC_REPO }}/${{ env.RELEASE_TAG }}/success/build-windows
test:
name: Test ${{ matrix.os.name }}
runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }}
needs:
- build
- build
strategy:
fail-fast: false
matrix:
@@ -431,24 +431,24 @@ jobs:
matrix: intel
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-windows-exe-intel
path: packages
- name: Download packages
uses: actions/download-artifact@v4
with:
name: chia-installers-windows-exe-intel
path: packages
- name: Install package
env:
INSTALL_PATH: ${{ github.workspace }}\installed
run: |
dir ./packages/
$env:INSTALLER_PATH = (Get-ChildItem packages/windows-installer/ChiaSetup-*.exe)
Start-Process -Wait -FilePath $env:INSTALLER_PATH -ArgumentList "/S", ("/D=" + $env:INSTALL_PATH)
- name: Install package
env:
INSTALL_PATH: ${{ github.workspace }}\installed
run: |
dir ./packages/
$env:INSTALLER_PATH = (Get-ChildItem packages/windows-installer/ChiaSetup-*.exe)
Start-Process -Wait -FilePath $env:INSTALLER_PATH -ArgumentList "/S", ("/D=" + $env:INSTALL_PATH)
- name: Run chia version
env:
INSTALL_PATH: ${{ github.workspace }}\installed
run: |
& ($env:INSTALL_PATH + "\resources\app.asar.unpacked\daemon\chia.exe") version
- name: Run chia version
env:
INSTALL_PATH: ${{ github.workspace }}\installed
run: |
& ($env:INSTALL_PATH + "\resources\app.asar.unpacked\daemon\chia.exe") version
+9 -9
View File
@@ -3,12 +3,12 @@ name: 🚨 Check commit signing
on:
push:
branches:
- long_lived/**
- main
- release/**
- long_lived/**
- main
- release/**
pull_request:
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -22,9 +22,9 @@ jobs:
timeout-minutes: 5
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: chia-network/actions/check-commit-signing@main
- uses: chia-network/actions/check-commit-signing@main
+14 -14
View File
@@ -3,14 +3,14 @@ name: 🚨 Check Dependency Artifacts
on:
push:
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -44,28 +44,28 @@ jobs:
matrix: arm
- name: Intel
matrix: intel
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
exclude:
- os:
matrix: macos
arch:
matrix: arm
python-version: '3.8'
python-version: "3.8"
- os:
matrix: windows
arch:
matrix: arm
steps:
- uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/clean-workspace@main
- name: Checkout Code
uses: actions/checkout@v4
- name: Checkout Code
uses: actions/checkout@v4
- uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python-version }}
force-pyenv: ${{ matrix.os.matrix == 'macos' && matrix.arch.matrix == 'intel' }}
- uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python-version }}
force-pyenv: ${{ matrix.os.matrix == 'macos' && matrix.arch.matrix == 'intel' }}
- name: Check Wheel Availability
run: python build_scripts/check_dependency_artifacts.py
- name: Check Wheel Availability
run: python build_scripts/check_dependency_artifacts.py
+30 -30
View File
@@ -14,14 +14,14 @@ name: 🚨 CodeQL
on:
push:
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
branches: [main]
schedule:
- cron: '34 14 * * 3'
- cron: "34 14 * * 3"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -36,40 +36,40 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'python' ]
language: ["python"]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
+3 -3
View File
@@ -5,7 +5,7 @@
#
# Source repository: https://github.com/actions/dependency-review-action
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
name: '🚨 Dependency Review'
name: "🚨 Dependency Review"
on: [pull_request]
permissions:
@@ -15,10 +15,10 @@ jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: 'Checkout Repository'
- name: "Checkout Repository"
uses: actions/checkout@v4
- name: 'Dependency Review'
- name: "Dependency Review"
uses: actions/dependency-review-action@v4
with:
deny-licenses: AGPL-1.0-only, AGPL-1.0-or-later, AGPL-1.0-or-later, AGPL-3.0-or-later, GPL-1.0-only, GPL-1.0-or-later, GPL-2.0-only, GPL-2.0-or-later, GPL-3.0-only, GPL-3.0-or-later
+22 -22
View File
@@ -4,9 +4,9 @@ on:
pull_request:
push:
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -42,7 +42,7 @@ jobs:
- name: Intel
matrix: intel
python:
- major_dot_minor: '3.10'
- major_dot_minor: "3.10"
exclude:
- os:
matrix: windows
@@ -50,29 +50,29 @@ jobs:
matrix: arm
steps:
- name: Clean workspace
uses: Chia-Network/actions/clean-workspace@main
- name: Clean workspace
uses: Chia-Network/actions/clean-workspace@main
- uses: Chia-Network/actions/git-mark-workspace-safe@main
- uses: Chia-Network/actions/git-mark-workspace-safe@main
- name: disable git autocrlf
run: |
git config --global core.autocrlf false
- name: disable git autocrlf
run: |
git config --global core.autocrlf false
- uses: actions/checkout@v4
- uses: actions/checkout@v4
- uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major_dot_minor }}
- uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major_dot_minor }}
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- env:
CHIA_MANAGE_CLVM_CHECK_USE_CACHE: "false"
CHIA_MANAGE_MYPY_CHECK_EXCLUSIONS: "true"
run: pre-commit run --all-files --verbose
- env:
CHIA_MANAGE_CLVM_CHECK_USE_CACHE: "false"
CHIA_MANAGE_MYPY_CHECK_EXCLUSIONS: "true"
run: pre-commit run --all-files --verbose
+2 -2
View File
@@ -1,7 +1,7 @@
name: 'Close stale issues'
name: "Close stale issues"
on:
schedule:
- cron: '0 11 * * *'
- cron: "0 11 * * *"
jobs:
stale:
+4 -6
View File
@@ -18,14 +18,14 @@ name: 🚨 GitHub Super Linter
on:
push:
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -58,7 +58,7 @@ jobs:
################################
- name: Lint Code Base
uses: github/super-linter@v5
# uses: docker://github/super-linter:v3.10.2
# uses: docker://github/super-linter:v3.10.2
env:
VALIDATE_ALL_CODEBASE: true
DEFAULT_BRANCH: main
@@ -81,5 +81,3 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FILTER_REGEX_EXCLUDE: .*github/ISSUE_TEMPLATE/config.yml
# ACTIONS_RUNNER_DEBUG: true
...
+130 -130
View File
@@ -3,18 +3,18 @@ name: 🏗️ Test Install Scripts
on:
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- '**.md'
- "**.md"
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -44,37 +44,37 @@ jobs:
value: true
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python environment
uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major-dot-minor }}
- name: Setup Python environment
uses: Chia-Network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major-dot-minor }}
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major-dot-minor }}
development: ${{ matrix.development.value }}
do-system-installs: true
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major-dot-minor }}
development: ${{ matrix.development.value }}
do-system-installs: true
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Run chia --help
run: |
chia --help
- name: Run chia --help
run: |
chia --help
- name: Run install-gui script (Linux, macOS)
if: matrix.os.matrix != 'windows'
run: |
sh install-gui.sh
- name: Run install-gui script (Linux, macOS)
if: matrix.os.matrix != 'windows'
run: |
sh install-gui.sh
- name: Run install-gui script (Windows)
if: matrix.os.matrix == 'windows'
run: |
./Install-gui.ps1
- name: Run install-gui script (Windows)
if: matrix.os.matrix == 'windows'
run: |
./Install-gui.ps1
test_scripts_in_docker:
name: Test Install Scripts ${{ matrix.distribution.name }} ${{ matrix.arch.name }}
@@ -84,53 +84,53 @@ jobs:
fail-fast: false
matrix:
os:
- name: Linux
matrix: linux
runs-on:
intel: ubuntu-latest
arm: [linux, arm64]
- name: Linux
matrix: linux
runs-on:
intel: ubuntu-latest
arm: [linux, arm64]
distribution:
- name: amazonlinux:2023
type: amazon
url: "docker://amazonlinux:2023"
- name: arch:latest
type: arch
url: "docker://archlinux:latest"
- name: debian:bullseye
type: debian
# https://packages.debian.org/bullseye/python/python3 (3.9)
url: "docker://debian:bullseye"
- name: debian:bookworm
type: debian
# https://packages.debian.org/bookworm/python/python3 (3.11)
url: "docker://debian:bookworm"
- name: fedora:37
type: fedora
# (37, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+37&start=0
url: "docker://fedora:37"
- name: fedora:38
type: fedora
# (38, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+38&start=0
url: "docker://fedora:38"
- name: rockylinux:8
type: rocky
url: "docker://rockylinux:8"
- name: rockylinux:9
type: rocky
url: "docker://rockylinux:9"
- name: ubuntu:focal (20.04)
type: ubuntu
# https://packages.ubuntu.com/focal/python3 (20.04, 3.8)
url: "docker://ubuntu:focal"
- name: ubuntu:jammy (22.04)
type: ubuntu
# https://packages.ubuntu.com/jammy/python3 (22.04, 3.10)
url: "docker://ubuntu:jammy"
- name: amazonlinux:2023
type: amazon
url: "docker://amazonlinux:2023"
- name: arch:latest
type: arch
url: "docker://archlinux:latest"
- name: debian:bullseye
type: debian
# https://packages.debian.org/bullseye/python/python3 (3.9)
url: "docker://debian:bullseye"
- name: debian:bookworm
type: debian
# https://packages.debian.org/bookworm/python/python3 (3.11)
url: "docker://debian:bookworm"
- name: fedora:37
type: fedora
# (37, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+37&start=0
url: "docker://fedora:37"
- name: fedora:38
type: fedora
# (38, 3.11) https://packages.fedoraproject.org/search?query=python3&releases=Fedora+38&start=0
url: "docker://fedora:38"
- name: rockylinux:8
type: rocky
url: "docker://rockylinux:8"
- name: rockylinux:9
type: rocky
url: "docker://rockylinux:9"
- name: ubuntu:focal (20.04)
type: ubuntu
# https://packages.ubuntu.com/focal/python3 (20.04, 3.8)
url: "docker://ubuntu:focal"
- name: ubuntu:jammy (22.04)
type: ubuntu
# https://packages.ubuntu.com/jammy/python3 (22.04, 3.10)
url: "docker://ubuntu:jammy"
arch:
- name: ARM64
matrix: arm
- name: Intel
matrix: intel
- name: ARM64
matrix: arm
- name: Intel
matrix: intel
exclude:
- distribution:
type: arch
@@ -138,68 +138,68 @@ jobs:
matrix: arm
steps:
- name: Prepare Amazon Linux
if: ${{ matrix.distribution.type == 'amazon' }}
run: |
yum install --assumeyes git sudo
- name: Prepare Amazon Linux
if: ${{ matrix.distribution.type == 'amazon' }}
run: |
yum install --assumeyes git sudo
- name: Prepare Arch
if: ${{ matrix.distribution.type == 'arch' }}
run: |
pacman --noconfirm -Syu
pacman --noconfirm -S base git sudo openssl-1.1
# The behavior we follow in install.sh is unique with Arch in that
# we leave it to the user to install the appropriate version of python,
# so we need to install python here in order for the test to succeed.
pacman --noconfirm -U --needed https://archive.archlinux.org/packages/p/python/python-3.9.9-1-x86_64.pkg.tar.zst
- name: Prepare Arch
if: ${{ matrix.distribution.type == 'arch' }}
run: |
pacman --noconfirm -Syu
pacman --noconfirm -S base git sudo openssl-1.1
# The behavior we follow in install.sh is unique with Arch in that
# we leave it to the user to install the appropriate version of python,
# so we need to install python here in order for the test to succeed.
pacman --noconfirm -U --needed https://archive.archlinux.org/packages/p/python/python-3.9.9-1-x86_64.pkg.tar.zst
- name: Prepare Debian
if: ${{ matrix.distribution.type == 'debian' }}
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get --yes update
apt-get install --yes git lsb-release sudo python3-venv
- name: Prepare Debian
if: ${{ matrix.distribution.type == 'debian' }}
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get --yes update
apt-get install --yes git lsb-release sudo python3-venv
- name: Prepare Fedora
if: ${{ matrix.distribution.type == 'fedora' }}
run: |
yum install --assumeyes git
- name: Prepare Fedora
if: ${{ matrix.distribution.type == 'fedora' }}
run: |
yum install --assumeyes git
- name: Prepare Rocky
if: ${{ matrix.distribution.type == 'rocky' }}
run: |
yum install --assumeyes git sudo python39
- name: Prepare Rocky
if: ${{ matrix.distribution.type == 'rocky' }}
run: |
yum install --assumeyes git sudo python39
- name: Prepare Ubuntu
if: ${{ matrix.distribution.type == 'ubuntu' }}
env:
DEBIAN_FRONTEND: noninteractive
run: |
# for bionic
apt-get --yes update
apt-get install --yes software-properties-common
add-apt-repository --yes ppa:git-core/ppa
apt-get --yes update
apt-get install --yes git lsb-release sudo python3-venv
- name: Prepare Ubuntu
if: ${{ matrix.distribution.type == 'ubuntu' }}
env:
DEBIAN_FRONTEND: noninteractive
run: |
# for bionic
apt-get --yes update
apt-get install --yes software-properties-common
add-apt-repository --yes ppa:git-core/ppa
apt-get --yes update
apt-get install --yes git lsb-release sudo python3-venv
- name: Add safe git directory
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Add safe git directory
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
# after installing git so we use that copy
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
# after installing git so we use that copy
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
do-system-installs: true
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python-version }}
development: true
do-system-installs: true
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Run chia --help
run: |
chia --help
- name: Run chia --help
run: |
chia --help
+31 -33
View File
@@ -33,7 +33,6 @@ on:
required: true
type: string
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
group: ${{ github.ref }}-${{ github.workflow }}-${{ inputs.concurrency_name }}-${{ github.event_name }}-${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/long_lived/')) && github.sha || '' }}
@@ -59,45 +58,45 @@ jobs:
file_name: ${{ inputs.file_name }}
runs-on: ${{ inputs.runs-on }}
python:
- name: '3.8'
file_name: '3.8'
action: '3.8'
apt: '3.8'
install_sh: '3.8'
matrix: '3.8'
- name: "3.8"
file_name: "3.8"
action: "3.8"
apt: "3.8"
install_sh: "3.8"
matrix: "3.8"
exclude_from:
limited: True
main: True
- name: '3.9'
file_name: '3.9'
action: '3.9'
apt: '3.9'
install_sh: '3.9'
matrix: '3.9'
- name: "3.9"
file_name: "3.9"
action: "3.9"
apt: "3.9"
install_sh: "3.9"
matrix: "3.9"
exclude_from:
limited: True
main: True
- name: '3.10'
file_name: '3.10'
action: '3.10'
apt: '3.10'
install_sh: '3.10'
matrix: '3.10'
- name: '3.11'
file_name: '3.11'
action: '3.11'
apt: '3.11'
install_sh: '3.11'
matrix: '3.11'
- name: "3.10"
file_name: "3.10"
action: "3.10"
apt: "3.10"
install_sh: "3.10"
matrix: "3.10"
- name: "3.11"
file_name: "3.11"
action: "3.11"
apt: "3.11"
install_sh: "3.11"
matrix: "3.11"
exclude_from:
limited: True
main: True
- name: '3.12'
file_name: '3.12'
action: '3.12'
apt: '3.12'
install_sh: '3.12'
matrix: '3.12'
- name: "3.12"
file_name: "3.12"
action: "3.12"
apt: "3.12"
install_sh: "3.12"
matrix: "3.12"
exclude_from:
limited: True
main: True
@@ -105,7 +104,7 @@ jobs:
- os:
matrix: macos
python:
matrix: '3.8'
matrix: "3.8"
- os:
matrix: windows
configuration:
@@ -192,7 +191,6 @@ jobs:
${{ github.workspace }}/.chia/test-plots
key: ${{ env.BLOCKS_AND_PLOTS_VERSION }}
- name: Checkout test blocks and plots
if: matrix.configuration.checkout_blocks_and_plots && steps.test-blocks-plots.outputs.cache-hit != 'true'
env:
+14 -14
View File
@@ -3,21 +3,21 @@ name: 🧪 test
on:
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- long_lived/**
- main
- release/**
- long_lived/**
- main
- release/**
tags:
- '**'
- "**"
pull_request:
paths-ignore:
- '**.md'
- "**.md"
branches:
- '**'
- "**"
workflow_dispatch: null
schedule:
- cron: '0 13 * * *'
- cron: "0 13 * * *"
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}--${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/long_lived/')) && github.sha || '' }}
@@ -35,7 +35,7 @@ jobs:
- name: Setup Python environment
uses: Chia-Network/actions/setup-python@main
with:
python-version: '3.10'
python-version: "3.10"
- name: Generate matrix configuration
id: configure
@@ -102,11 +102,11 @@ jobs:
name: Ubuntu
runs-on: ubuntu-latest
python:
- name: '3.10'
action: '3.10'
apt: '3.10'
install_sh: '3.10'
matrix: '3.10'
- name: "3.10"
action: "3.10"
apt: "3.10"
install_sh: "3.10"
matrix: "3.10"
steps:
- uses: actions/checkout@v4
+4 -4
View File
@@ -3,13 +3,13 @@ name: 📦🚀 Trigger Dev Docker Build
on:
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- 'long_lived/**'
- 'release/**'
- "long_lived/**"
- "release/**"
pull_request:
paths-ignore:
- '**.md'
- "**.md"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
+1 -1
View File
@@ -3,7 +3,7 @@ name: 📦🚀 Trigger Main Docker Build
on:
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- main
+77 -77
View File
@@ -3,18 +3,18 @@ name: 🚨🚀 Lint and upload source distribution
on:
push:
paths-ignore:
- '**.md'
- "**.md"
branches:
- 'long_lived/**'
- "long_lived/**"
- main
- 'release/**'
- "release/**"
release:
types: [published]
pull_request:
paths-ignore:
- '**.md'
- "**.md"
branches:
- '**'
- "**"
concurrency:
# SHA is added to the end if on `main` to let all main workflows run
@@ -57,10 +57,10 @@ jobs:
- name: Intel
matrix: intel
python:
- major_dot_minor: '3.8'
- major_dot_minor: '3.9'
- major_dot_minor: '3.10'
- major_dot_minor: '3.11'
- major_dot_minor: "3.8"
- major_dot_minor: "3.9"
- major_dot_minor: "3.10"
- major_dot_minor: "3.11"
check:
- name: mypy
command: |
@@ -73,37 +73,37 @@ jobs:
arch:
matrix: arm
python:
major_dot_minor: '3.8'
major_dot_minor: "3.8"
- os:
matrix: windows
arch:
matrix: arm
steps:
- uses: chia-network/actions/clean-workspace@main
- uses: chia-network/actions/clean-workspace@main
- name: Add safe git directory
uses: chia-network/actions/git-mark-workspace-safe@main
- name: Add safe git directory
uses: chia-network/actions/git-mark-workspace-safe@main
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: chia-network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major_dot_minor }}
- uses: chia-network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major_dot_minor }}
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Check with ${{ matrix.check.name }}
run: |
${{ matrix.check.command }}
- name: Check with ${{ matrix.check.name }}
run: |
${{ matrix.check.command }}
check:
name: ${{ matrix.os.emoji }} ${{ matrix.check.name }} - ${{ matrix.os.name }} ${{ matrix.arch.name }} ${{ matrix.python.major_dot_minor }}
@@ -123,7 +123,7 @@ jobs:
- name: Intel
matrix: intel
python:
- major_dot_minor: '3.10'
- major_dot_minor: "3.10"
check:
- name: black
command: black --check --diff .
@@ -137,30 +137,30 @@ jobs:
git diff --exit-code
steps:
- uses: chia-network/actions/clean-workspace@main
- uses: chia-network/actions/clean-workspace@main
- name: Add safe git directory
uses: chia-network/actions/git-mark-workspace-safe@main
- name: Add safe git directory
uses: chia-network/actions/git-mark-workspace-safe@main
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: chia-network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major_dot_minor }}
- uses: chia-network/actions/setup-python@main
with:
python-version: ${{ matrix.python.major_dot_minor }}
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Check with ${{ matrix.check.name }}
run: |
${{ matrix.check.command }}
- name: Check with ${{ matrix.check.name }}
run: |
${{ matrix.check.command }}
upload_source_dist:
name: Lint and Upload source distribution
@@ -170,40 +170,40 @@ jobs:
- mypy
- check
steps:
- name: Add safe git directory
uses: chia-network/actions/git-mark-workspace-safe@main
- name: Add safe git directory
uses: chia-network/actions/git-mark-workspace-safe@main
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: Chia-Network/actions/setup-python@main
name: Install Python
with:
python-version: '3.10'
- uses: Chia-Network/actions/setup-python@main
name: Install Python
with:
python-version: "3.10"
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: ./.github/actions/install
with:
python-version: ${{ matrix.python.major_dot_minor }}
development: true
- uses: chia-network/actions/activate-venv@main
- uses: chia-network/actions/activate-venv@main
- name: Build source distribution
run: |
python -m build --sdist --outdir dist .
- name: Build source distribution
run: |
python -m build --sdist --outdir dist .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: ./dist
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: ./dist
- name: Publish distribution to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
skip-existing: true
- name: Publish distribution to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
skip-existing: true
+9 -9
View File
@@ -18,21 +18,21 @@
###############
# Rules by id #
###############
MD004: false # Unordered list style
MD004: false # Unordered list style
MD007:
indent: 2 # Unordered list indentation
indent: 2 # Unordered list indentation
MD013:
line_length: 808 # Line length
line_length: 808 # Line length
MD024:
allow_different_nesting: true
MD026:
punctuation: ".,;:!。,;:" # List of not allowed
MD029: false # Ordered list item prefix
MD033: false # Allow inline HTML
MD036: false # Emphasis used instead of a heading
MD041: false # Allow file to start without h1
punctuation: ".,;:!。,;:" # List of not allowed
MD029: false # Ordered list item prefix
MD033: false # Allow inline HTML
MD036: false # Emphasis used instead of a heading
MD041: false # Allow file to start without h1
#################
# Rules by tags #
#################
blank_lines: false # Error on blank lines
blank_lines: false # Error on blank lines
+33 -28
View File
@@ -1,83 +1,88 @@
repos:
- repo: local
- repo: local
hooks:
- id: check-sql
- id: check-sql
name: Validate SQL statements
entry: ./activated.py python -m tests.check_sql_statements
language: system
pass_filenames: false
- repo: local
- repo: local
hooks:
- id: init_py_files
- id: init_py_files
name: __init__.py files
entry: ./activated.py python tests/build-init-files.py -v --root .
language: system
pass_filenames: false
- repo: local
- repo: local
hooks:
- id: pyupgrade
- id: pyupgrade
name: pyupgrade
entry: ./activated.py pyupgrade --py38-plus --keep-runtime-typing
language: system
types: [python]
- repo: local
- repo: local
hooks:
- id: black
- id: black
name: black
entry: ./activated.py black
language: system
require_serial: true
types_or: [python, pyi]
- repo: https://github.com/pre-commit/pre-commit-hooks
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.1.0
hooks:
- id: prettier
types_or: [ini, json, toml, yaml]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: check-yaml
- id: mixed-line-ending
- id: check-yaml
- id: mixed-line-ending
args: ["--fix=lf"]
- id: end-of-file-fixer
- id: end-of-file-fixer
exclude: ".*?(.hex|.clsp|.clvm|.clib)"
- id: trailing-whitespace
- id: check-merge-conflict
- id: check-ast
- id: debug-statements
- repo: local
- id: trailing-whitespace
- id: check-merge-conflict
- id: check-ast
- id: debug-statements
- repo: local
hooks:
- id: clvm_hex
- id: clvm_hex
name: .clsp.hex files
entry: ./activated.py python tools/manage_clvm.py check
language: system
pass_filenames: false
- repo: local
- repo: local
hooks:
- id: chialispp
- id: chialispp
name: Pretty print chialisp files
entry: ./activated.py python tools/chialispp.py .
language: system
pass_filenames: false
- repo: local
- repo: local
hooks:
- id: build mypy.ini
- id: build mypy.ini
name: build mypy.ini
entry: ./activated.py python manage-mypy.py build-mypy-ini
language: system
pass_filenames: false
- repo: local
- repo: local
hooks:
- id: mypy
- id: mypy
name: mypy
entry: ./activated.py mypy
language: system
pass_filenames: false
- repo: local
- repo: local
hooks:
- id: isort
- id: isort
name: isort
entry: ./activated.py isort
language: system
types: [python]
- repo: local
- repo: local
hooks:
- id: flake8
- id: flake8
name: Flake8
entry: ./activated.py flake8
language: system
+4
View File
@@ -0,0 +1,4 @@
tabWidth: 2
singleQuote: false
experimentalTernaries: true
useTabs: false
+3 -13
View File
@@ -4,25 +4,15 @@
"asar": true,
"asarUnpack": "**/daemon/**",
"npmRebuild": false,
"files": [
"build",
"daemon",
"!node_modules",
"!src",
"!public"
],
"files": ["build", "daemon", "!node_modules", "!src", "!public"],
"protocols": [
{
"name": "Chia URL",
"schemes": [
"chia"
]
"schemes": ["chia"]
},
{
"name": "Chia XCH Address",
"schemes": [
"xch"
]
"schemes": ["xch"]
}
],
"win": {
+63 -63
View File
@@ -1,65 +1,65 @@
{
"augmented_condition": "d303eafa617bedf0bc05850dd014e10fbddf622187dc07891a2aacba9d8a93f6",
"block_program_zero": "f0a38c8efe58895ae527c65c37f700a4238504691b83990e5dd91bd8b3c30eae",
"cat_v2": "37bef360ee858133b69d595a906dc45d01af50379dad515eb9518abb7c1d2a7a",
"chialisp_deserialisation": "94ec19077f9a34e0b11ad2456af0170f4cc03f11230ca42e3f82e6e644ac4f5d",
"conditions_w_fee_announce": "1a169582dc619f2542f8eb79f02823e1595ba0aca53820f503eda5ff20b47856",
"covenant_layer": "b982796850336aabf9ab17c3f21e299f0c633444117ab5e9ebeafadf1860d9fc",
"create_nft_launcher_from_did": "7a32d2d9571d3436791c0ad3d7fcfdb9c43ace2b0f0ff13f98d29f0cc093f445",
"credential_restriction": "2fdfc1f058cfd65e7ec4e253bfeb394da163ecd0036f508df8629b0a2b8fde96",
"dao_cat_eve": "488f55bedaca5a599544dfd5ab341e2e5c7e6fca67d9b98a3d856f876c52f53e",
"dao_cat_launcher": "a01a838d18d4e031e937c79fa3f80f213fa00a3e64af6c16a1f137770cd3a567",
"dao_finished_state": "694c99e1fb07671771bbca3d110880693a9ecc37a6529891ec979d0f3e760eba",
"dao_lockup": "d6215f0916715a69fbbf2d1a679f437fde81787adeb90c666642fb9c2deff7ce",
"dao_proposal": "fe6d5c0373c1750598d137ce50b5b025a203655ccab4ab3329315abad49c3586",
"dao_proposal_timer": "1acd912fca662d1474f7a6c762280fc1430875bef518883387086c1125027526",
"dao_proposal_validator": "92209b0f7efb2dbaaaa3aab94dcadcafa9d008d39661763841c7d92065b3fd34",
"dao_spend_p2_singleton_v2": "7bc8942159e600f56a87e1d9c059c8705307ec2fb996a949503298dedfed00be",
"dao_treasury": "637d78acd395b6bb03211bcfc5f5f2e878cba2d62b2f53871d49a8b928411b19",
"dao_update_proposal": "fc032384cfece9b542c3e1ea77ba119fb1013a3d74b622302c0b670447e4343d",
"decompress_coin_spend_entry": "9d98ed08770d31be4bd1bde4705dab388db5e7e9c349f5a76fc3c347aa3a0b79",
"decompress_coin_spend_entry_with_prefix": "92aa4bc8060a8836355a1884075141b4791ce1b67ae6092bb166b2845954bc89",
"decompress_puzzle": "fe94c58f1117afe315e0450daca1c62460ec1a1c439cd4018d79967a5d7d1370",
"delegated_tail": "999c3696e167f8a79d938adc11feba3a3dcb39ccff69a426d570706e7b8ec399",
"did_innerpuz": "33143d2bef64f14036742673afd158126b94284b4530a28c354fac202b0c910e",
"eml_covenant_morpher": "6a87946257f555ae82aca6a11b5205058b844f634ecb6c7dc6b0c54eb2996308",
"eml_transfer_program_covenant_adapter": "4218fbebbb6f3c0907ebe8a672fa5d1e4bc655645a3a0073601e6c9b50b07c47",
"eml_update_metadata_with_DID": "d3a9a1fc20f247d009b4b0e941707d50b91885c99d0b27ef882e1294e771139d",
"everything_with_signature": "1720d13250a7c16988eaf530331cefa9dd57a76b2c82236bec8bbbff91499b89",
"exigent_metadata_layer": "d5fd32e069fda83e230ccd8f6a7c4f652231aed5c755514b3d996cbeff4182b8",
"flag_proofs_checker": "fe2e3c631562fbb9be095297f762bf573705a0197164e9361ad5d50e045ba241",
"genesis_by_coin_id": "493afb89eed93ab86741b2aa61b8f5de495d33ff9b781dfc8919e602b2afa150",
"genesis_by_coin_id_or_singleton": "40170305e3a71c3e7523f37fbcfc3188f9f949da0818a6331f28251e76e8c56f",
"genesis_by_puzzle_hash": "de5a6e06d41518be97ff6365694f4f89475dda773dede267caa33da63b434e36",
"graftroot_dl_offers": "0893e36a88c064fddfa6f8abdb42c044584a98cb4273b80cccc83b4867b701a1",
"nft_intermediate_launcher": "7a32d2d9571d3436791c0ad3d7fcfdb9c43ace2b0f0ff13f98d29f0cc093f445",
"nft_metadata_updater_default": "fe8a4b4e27a2e29a4d3fc7ce9d527adbcaccbab6ada3903ccf3ba9a769d2d78b",
"nft_metadata_updater_updateable": "0b1ffba1601777c06b78ab38636e9624f2f8da73be9b36e0ce17c8d8ef3bad9f",
"nft_ownership_layer": "c5abea79afaa001b5427dfa0c8cf42ca6f38f5841b78f9b3c252733eb2de2726",
"nft_ownership_transfer_program_one_way_claim_with_royalties": "025dee0fb1e9fa110302a7e9bfb6e381ca09618e2778b0184fa5c6b275cfce1f",
"nft_state_layer": "a04d9f57764f54a43e4030befb4d80026e870519aaa66334aef8304f5d0393c2",
"notification": "b8b9d8ffca6d5cba5422ead7f477ecfc8f6aaaa1c024b8c3aeb1956b24a0ab1e",
"p2_1_of_n": "46b29fd87fbeb6737600c4543931222a6c1ed3db6fa5601a3ca284a9f4efe780",
"p2_announced_delegated_puzzle": "c4d24c3c5349376f3e8f3aba202972091713b4ec4915f0f26192ae4ace0bd04d",
"p2_conditions": "1c77d7d5efde60a7a1d2d27db6d746bc8e568aea1ef8586ca967a0d60b83cc36",
"p2_delegated_conditions": "0ff94726f1a8dea5c3f70d3121945190778d3b2b3fcda3735a1f290977e98341",
"p2_delegated_puzzle": "542cde70d1102cd1b763220990873efc8ab15625ded7eae22cc11e21ef2e2f7c",
"p2_delegated_puzzle_or_hidden_puzzle": "e9aaa49f45bad5c889b86ee3341550c155cfdd10c3a6757de618d20612fffd52",
"p2_m_of_n_delegate_direct": "0f199d5263ac1a62b077c159404a71abd3f9691cc57520bf1d4c5cb501504457",
"p2_parent": "b10ce2d0b18dcf8c21ddfaf55d9b9f0adcbf1e0beb55b1a8b9cad9bbff4e5f22",
"p2_puzzle_hash": "13e29a62b42cd2ef72a79e4bacdc59733ca6310d65af83d349360d36ec622363",
"p2_singleton": "40f828d8dd55603f4ff9fbf6b73271e904e69406982f4fbefae2c8dcceaf9834",
"p2_singleton_aggregator": "f79a31fcfe3736cc75720617b4cdcb4376b4b8f8f71108617710612b909a4924",
"p2_singleton_or_delayed_puzhash": "adb656e0211e2ab4f42069a4c5efc80dc907e7062be08bf1628c8e5b6d94d25b",
"p2_singleton_via_delegated_puzzle": "9590eaa169e45b655a31d3c06bbd355a3e2b2e3e410d3829748ce08ab249c39e",
"pool_member_innerpuz": "a8490702e333ddd831a3ac9c22d0fa26d2bfeaf2d33608deb22f0e0123eb0494",
"pool_waitingroom_innerpuz": "a317541a765bf8375e1c6e7c13503d0d2cbf56cacad5182befe947e78e2c0307",
"rom_bootstrap_generator": "161bade1f822dcd62ab712ebaf30f3922a301e48a639e4295c5685f8bece7bd9",
"settlement_payments": "cfbfdeed5c4ca2de3d0bf520b9cb4bb7743a359bd2e6a188d19ce7dffc21d3e7",
"singleton_launcher": "eff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9",
"singleton_top_layer": "24e044101e57b3d8c908b8a38ad57848afd29d3eecc439dba45f4412df4954fd",
"singleton_top_layer_v1_1": "7faa3253bfddd1e0decb0906b2dc6247bbc4cf608f58345d173adb63e8b47c9f",
"standard_vc_backdoor_puzzle": "fbce76408ebaf9b3d0b8cd90cc68607755eeca67cd7432d5eea85f3f498cc002",
"std_parent_morpher": "8c3f1dc2e46c0d7ec4c2cbd007e23c0368ff8f80c5bc0101647a5c27626ebce6",
"viral_backdoor": "00848115554ea674131f89f311707a959ad3f4647482648f3fe91ba289131f51"
"augmented_condition": "d303eafa617bedf0bc05850dd014e10fbddf622187dc07891a2aacba9d8a93f6",
"block_program_zero": "f0a38c8efe58895ae527c65c37f700a4238504691b83990e5dd91bd8b3c30eae",
"cat_v2": "37bef360ee858133b69d595a906dc45d01af50379dad515eb9518abb7c1d2a7a",
"chialisp_deserialisation": "94ec19077f9a34e0b11ad2456af0170f4cc03f11230ca42e3f82e6e644ac4f5d",
"conditions_w_fee_announce": "1a169582dc619f2542f8eb79f02823e1595ba0aca53820f503eda5ff20b47856",
"covenant_layer": "b982796850336aabf9ab17c3f21e299f0c633444117ab5e9ebeafadf1860d9fc",
"create_nft_launcher_from_did": "7a32d2d9571d3436791c0ad3d7fcfdb9c43ace2b0f0ff13f98d29f0cc093f445",
"credential_restriction": "2fdfc1f058cfd65e7ec4e253bfeb394da163ecd0036f508df8629b0a2b8fde96",
"dao_cat_eve": "488f55bedaca5a599544dfd5ab341e2e5c7e6fca67d9b98a3d856f876c52f53e",
"dao_cat_launcher": "a01a838d18d4e031e937c79fa3f80f213fa00a3e64af6c16a1f137770cd3a567",
"dao_finished_state": "694c99e1fb07671771bbca3d110880693a9ecc37a6529891ec979d0f3e760eba",
"dao_lockup": "d6215f0916715a69fbbf2d1a679f437fde81787adeb90c666642fb9c2deff7ce",
"dao_proposal": "fe6d5c0373c1750598d137ce50b5b025a203655ccab4ab3329315abad49c3586",
"dao_proposal_timer": "1acd912fca662d1474f7a6c762280fc1430875bef518883387086c1125027526",
"dao_proposal_validator": "92209b0f7efb2dbaaaa3aab94dcadcafa9d008d39661763841c7d92065b3fd34",
"dao_spend_p2_singleton_v2": "7bc8942159e600f56a87e1d9c059c8705307ec2fb996a949503298dedfed00be",
"dao_treasury": "637d78acd395b6bb03211bcfc5f5f2e878cba2d62b2f53871d49a8b928411b19",
"dao_update_proposal": "fc032384cfece9b542c3e1ea77ba119fb1013a3d74b622302c0b670447e4343d",
"decompress_coin_spend_entry": "9d98ed08770d31be4bd1bde4705dab388db5e7e9c349f5a76fc3c347aa3a0b79",
"decompress_coin_spend_entry_with_prefix": "92aa4bc8060a8836355a1884075141b4791ce1b67ae6092bb166b2845954bc89",
"decompress_puzzle": "fe94c58f1117afe315e0450daca1c62460ec1a1c439cd4018d79967a5d7d1370",
"delegated_tail": "999c3696e167f8a79d938adc11feba3a3dcb39ccff69a426d570706e7b8ec399",
"did_innerpuz": "33143d2bef64f14036742673afd158126b94284b4530a28c354fac202b0c910e",
"eml_covenant_morpher": "6a87946257f555ae82aca6a11b5205058b844f634ecb6c7dc6b0c54eb2996308",
"eml_transfer_program_covenant_adapter": "4218fbebbb6f3c0907ebe8a672fa5d1e4bc655645a3a0073601e6c9b50b07c47",
"eml_update_metadata_with_DID": "d3a9a1fc20f247d009b4b0e941707d50b91885c99d0b27ef882e1294e771139d",
"everything_with_signature": "1720d13250a7c16988eaf530331cefa9dd57a76b2c82236bec8bbbff91499b89",
"exigent_metadata_layer": "d5fd32e069fda83e230ccd8f6a7c4f652231aed5c755514b3d996cbeff4182b8",
"flag_proofs_checker": "fe2e3c631562fbb9be095297f762bf573705a0197164e9361ad5d50e045ba241",
"genesis_by_coin_id": "493afb89eed93ab86741b2aa61b8f5de495d33ff9b781dfc8919e602b2afa150",
"genesis_by_coin_id_or_singleton": "40170305e3a71c3e7523f37fbcfc3188f9f949da0818a6331f28251e76e8c56f",
"genesis_by_puzzle_hash": "de5a6e06d41518be97ff6365694f4f89475dda773dede267caa33da63b434e36",
"graftroot_dl_offers": "0893e36a88c064fddfa6f8abdb42c044584a98cb4273b80cccc83b4867b701a1",
"nft_intermediate_launcher": "7a32d2d9571d3436791c0ad3d7fcfdb9c43ace2b0f0ff13f98d29f0cc093f445",
"nft_metadata_updater_default": "fe8a4b4e27a2e29a4d3fc7ce9d527adbcaccbab6ada3903ccf3ba9a769d2d78b",
"nft_metadata_updater_updateable": "0b1ffba1601777c06b78ab38636e9624f2f8da73be9b36e0ce17c8d8ef3bad9f",
"nft_ownership_layer": "c5abea79afaa001b5427dfa0c8cf42ca6f38f5841b78f9b3c252733eb2de2726",
"nft_ownership_transfer_program_one_way_claim_with_royalties": "025dee0fb1e9fa110302a7e9bfb6e381ca09618e2778b0184fa5c6b275cfce1f",
"nft_state_layer": "a04d9f57764f54a43e4030befb4d80026e870519aaa66334aef8304f5d0393c2",
"notification": "b8b9d8ffca6d5cba5422ead7f477ecfc8f6aaaa1c024b8c3aeb1956b24a0ab1e",
"p2_1_of_n": "46b29fd87fbeb6737600c4543931222a6c1ed3db6fa5601a3ca284a9f4efe780",
"p2_announced_delegated_puzzle": "c4d24c3c5349376f3e8f3aba202972091713b4ec4915f0f26192ae4ace0bd04d",
"p2_conditions": "1c77d7d5efde60a7a1d2d27db6d746bc8e568aea1ef8586ca967a0d60b83cc36",
"p2_delegated_conditions": "0ff94726f1a8dea5c3f70d3121945190778d3b2b3fcda3735a1f290977e98341",
"p2_delegated_puzzle": "542cde70d1102cd1b763220990873efc8ab15625ded7eae22cc11e21ef2e2f7c",
"p2_delegated_puzzle_or_hidden_puzzle": "e9aaa49f45bad5c889b86ee3341550c155cfdd10c3a6757de618d20612fffd52",
"p2_m_of_n_delegate_direct": "0f199d5263ac1a62b077c159404a71abd3f9691cc57520bf1d4c5cb501504457",
"p2_parent": "b10ce2d0b18dcf8c21ddfaf55d9b9f0adcbf1e0beb55b1a8b9cad9bbff4e5f22",
"p2_puzzle_hash": "13e29a62b42cd2ef72a79e4bacdc59733ca6310d65af83d349360d36ec622363",
"p2_singleton": "40f828d8dd55603f4ff9fbf6b73271e904e69406982f4fbefae2c8dcceaf9834",
"p2_singleton_aggregator": "f79a31fcfe3736cc75720617b4cdcb4376b4b8f8f71108617710612b909a4924",
"p2_singleton_or_delayed_puzhash": "adb656e0211e2ab4f42069a4c5efc80dc907e7062be08bf1628c8e5b6d94d25b",
"p2_singleton_via_delegated_puzzle": "9590eaa169e45b655a31d3c06bbd355a3e2b2e3e410d3829748ce08ab249c39e",
"pool_member_innerpuz": "a8490702e333ddd831a3ac9c22d0fa26d2bfeaf2d33608deb22f0e0123eb0494",
"pool_waitingroom_innerpuz": "a317541a765bf8375e1c6e7c13503d0d2cbf56cacad5182befe947e78e2c0307",
"rom_bootstrap_generator": "161bade1f822dcd62ab712ebaf30f3922a301e48a639e4295c5685f8bece7bd9",
"settlement_payments": "cfbfdeed5c4ca2de3d0bf520b9cb4bb7743a359bd2e6a188d19ce7dffc21d3e7",
"singleton_launcher": "eff07522495060c066f66f32acc2a77e3a3e737aca8baea4d1a64ea4cdc13da9",
"singleton_top_layer": "24e044101e57b3d8c908b8a38ad57848afd29d3eecc439dba45f4412df4954fd",
"singleton_top_layer_v1_1": "7faa3253bfddd1e0decb0906b2dc6247bbc4cf608f58345d173adb63e8b47c9f",
"standard_vc_backdoor_puzzle": "fbce76408ebaf9b3d0b8cd90cc68607755eeca67cd7432d5eea85f3f498cc002",
"std_parent_morpher": "8c3f1dc2e46c0d7ec4c2cbd007e23c0368ff8f80c5bc0101647a5c27626ebce6",
"viral_backdoor": "00848115554ea674131f89f311707a959ad3f4647482648f3fe91ba289131f51"
}
@@ -1,11 +1,29 @@
{
"block": "AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAwA4wPjsMRCmPwcFJr79MiZb7kkJ65B5GSbk0yklZkbeFK4VedPOsqTV1XJNfN9RKjLb4ZADQH5gJrJl9o/4kL8WZL5AAEbnR6qPGqbJ82QrZBw6wEnlKdLJ3RGQXvHuQQUUBDAh5CJJqU8tUHbRcmll7PCdUTpYP0W7mWzymM8DawgzUlmIAtTvQOMRGJCDR4/Zyn97RQAAACgE6MrFV7l0Ni5T1cXRfJQ5ofL8dVGPYsFSGzmWO4xV4gmKjC7QdCeRYzSa7wnxu6VXVjNco2KYCr5MzyXcqgUKZtquBbEBjrTjX6UQGEy2TJFqri3xvYChRlYeJhL8PZqsONBwPRVQZGEff5hYyI392yuvZsrIgMzfyf6hUigTiNm4eOnUq+uzB2Neh1UIawRkc+pGm54bvqEDAkgr5d+pQHjsMRCmPwcFJr79MiZb7kkJ65B5GSbk0yklZkbeFK4VQAAAAAABgAAAQCy3hvnylmQO/6Wd4clKKQfpVl9rDXkdxvVC8RQhtibCqrjJavDfQS+f/gHUsiayWPjTdaAiY1/h2qjX6nE0/Fe4Q0PRs75i/v4YELaHH7qi9kiie7VjSoKePN0bF6/UyoBALBgKzJFi6KmVd4fYkbJVptu58jPHZTqmDwmkJy/ufCqSR++yOfd9A3l5IrCoBfxCAUhUTN9pWcKBW/3WTbvX3fm7xiDzHxBCeRq6PSTWbBsUnJX46yErdTJtZ3fGv9AA+OwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAMAOMAALEgp63gxy4oKtjfa4Yaf7ztEdH2ItneiGCa0Nteul3XTuMGmK46OT1eFBMmxfHMIdalKFcdS/lAtX+UPcnq0CPTkHzT8LRKoVbugqFSG5v0R7Ivvtv+SQXCsGv3ZluwCAIBAeOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAGAAABALLeG+fKWZA7/pZ3hyUopB+lWX2sNeR3G9ULxFCG2JsKquMlq8N9BL5/+AdSyJrJY+NN1oCJjX+HaqNfqcTT8V7hDQ9GzvmL+/hgQtocfuqL2SKJ7tWNKgp483RsXr9TKgEAsGArMkWLoqZV3h9iRslWm27nyM8dlOqYPCaQnL+58KpJH77I5930DeXkisKgF/EIBSFRM32lZwoFb/dZNu9fd+bvGIPMfEEJ5Gro9JNZsGxSclfjrISt1Mm1nd8a/0AD47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFUAAAAAAAwA4wAAsSCnreDHLigq2N9rhhp/vO0R0fYi2d6IYJrQ2166XddO4waYrjo5PV4UEybF8cwh1qUoVx1L+UC1f5Q9yerQI9OQfNPwtEqhVu6CoVIbm/RHsi++2/5JBcKwa/dmW7AIAgEAAQECAAABfgIAXPxQpqNtotf9cr0KveN3ESb4jD4EXWkjyfJ4NjHwtSgBd985j6DMAqrGbbDelT4I6qnKhaO3+fet+GZ7u1kGYAv2M5p2IIk0H0iKkfJkZ5Ab0vSJmz7X5S9jpG+EX00pAQAAAAAAAAFVaML03NwaaCRYMCn6gB4C2BiX2ewMx9kPFU7deZk45fjJAwAA74PqanCu0wfZC3+MhZRgeH2Z1I5lYxp8tNlLDvLdoOXvJgXaktxYli7q05oET6YQg5oAKTjJI7cW+7xpsDqBLu5NF+YPw13UeCN+SbkpW1iieoS4X4ieSozK093M26EcAgAAAAAAAAP/1Kx2ovk/rX/KhmxxrkwVCpHd+goMOOpsXvoH21sgJilgvwEAeHsW/sufLYvXzss1sZb22dkmYQE0XzvfsoBqa76U/fPRU6nkiz5RvrObOVHwd6uP5BgNOiPcDtNiWKNi2qAYZYkCA+nCGcNPnw6XQUfBdtWSPWAD2It27LzHRHAfy4FmAQAAAgAAAX4AAOpEdRcCenrFJPQHGZU/n8QtNivaZpYUVtLaykU2/GP/vQ8+ltNd2udBEARP5SWFb/TV4uvlvbj5y1e31yYJFA5Bht+Lm3IE41xHBQMGzwHvAOoqH/vNbKfbRkwO61R9FAIBAAAAAAACqtCGDGqk+Og5sOxVlWz7NFUo4wIJU/sjoteKLMbIf7FqYp8BAAE7d6zZsZSC+fYn+1pJqOhq6p6AfRjD4rY7Woqsl02RPwpzk5OhXk+Iuiz7k1rEVQmYBZU5jQt4cwt3hmU5mgF9QY0S5JNkr/6+oTFUcCpoBYngYOXQPwmgYi77Gk1QADkEAAAAAAAIAHDm8NUDjwVrfv2qVqjVk1PcGtSigZH6pNQEBpPN0iCe6u8BABz3JneJI/sMZvcaR6UciWQojLar7MX1Hjl54CUqneDlP5nRMEZs8VqzBvlYE9aku2H5aLRSwSbXo8Npd1ApbgUxT/qpBQsOLG5vJB1oKE6ROzAmYGw2115gtLGBLAoIEgIBAAECAAABfgIAXPxQpqNtotf9cr0KveN3ESb4jD4EXWkjyfJ4NjHwtSgBd985j6DMAqrGbbDelT4I6qnKhaO3+fet+GZ7u1kGYAv2M5p2IIk0H0iKkfJkZ5Ab0vSJmz7X5S9jpG+EX00pAQAAAAAAAAFVaML03NwaaCRYMCn6gB4C2BiX2ewMx9kPFU7deZk45fjJAwAA74PqanCu0wfZC3+MhZRgeH2Z1I5lYxp8tNlLDvLdoOXvJgXaktxYli7q05oET6YQg5oAKTjJI7cW+7xpsDqBLu5NF+YPw13UeCN+SbkpW1iieoS4X4ieSozK093M26EcAgAAAAAAAAP/1Kx2ovk/rX/KhmxxrkwVCpHd+goMOOpsXvoH21sgJilgvwEAeHsW/sufLYvXzss1sZb22dkmYQE0XzvfsoBqa76U/fPRU6nkiz5RvrObOVHwd6uP5BgNOiPcDtNiWKNi2qAYZYkCA+nCGcNPnw6XQUfBdtWSPWAD2It27LzHRHAfy4FmAQAAAgAAAX4AAOpEdRcCenrFJPQHGZU/n8QtNivaZpYUVtLaykU2/GP/vQ8+ltNd2udBEARP5SWFb/TV4uvlvbj5y1e31yYJFA5Bht+Lm3IE41xHBQMGzwHvAOoqH/vNbKfbRkwO61R9FAIBAAAAAAACqtCGDGqk+Og5sOxVlWz7NFUo4wIJU/sjoteKLMbIf7FqYp8BAAE7d6zZsZSC+fYn+1pJqOhq6p6AfRjD4rY7Woqsl02RPwpzk5OhXk+Iuiz7k1rEVQmYBZU5jQt4cwt3hmU5mgF9QY0S5JNkr/6+oTFUcCpoBYngYOXQPwmgYi77Gk1QADkEAAAAAAAIAHDm8NUDjwVrfv2qVqjVk1PcGtSigZH6pNQEBpPN0iCe6u8BABz3JneJI/sMZvcaR6UciWQojLar7MX1Hjl54CUqneDlP5nRMEZs8VqzBvlYE9aku2H5aLRSwSbXo8Npd1ApbgUxT/qpBQsOLG5vJB1oKE6ROzAmYGw2115gtLGBLAoIEgIBAADjsMRCmPwcFJr79MiZb7kkJ65B5GSbk0yklZkbeFK4Vap9N4Z1TvuirQv+Fatxz++ejWT9Er1aixkzXHaAE4j6bCK9Pd13LhTHAZHxhffI1c5Y19IwYe+/wgWqzFiauFHSPaFGlaGIrlcI3RUiY8TbiD6yft65NheNTZiLjzzl/AAAAAAAPYdl06WX7B2ZZj9smBbZFbn2hhOslACYhMSt2u/M5q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6LHybdz6ER+qeZnIoWaB54JJtLvgUb7t7SlUAhbMqWmi5DE5Jx7QMFhAdLe2k5J/QDGoQk7nSlgkRJnpdEoKr8CAnpCNuUjK7N7XbsIUDL1bmBoVw/yLOYXtpy2cIhlTyC3sAFzitM5EEInBsSCFU99EGyIjKPd4fbrX4/rxM0Qs0R1hQGjvMbzNlGEGksFRW855dqRomxoY9K7B2Z0tSh2j4+ume1yuoXLKvgZQ14DBFzJ/uMZ1dia07q/1jrVYiO6mC2WapZfbJIg74Vy3+8d9kaPPjrVYhcINQro4lVaeTy9O9YB47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFUAAAAAZXn6Am40C5z/s3qYnKVE5rt4Cix4kB0/szc4doURowYXr6AdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1lvw2ShkUWR7i/+Uiw6M961XEllY64TU0yp8/eRB4DAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"signage_points": [
[false, "BOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAIAAADAF9Pqr5864eW4tjbPbZmISJzli4r8elRcXNS4NKE7HsY9Fldr9t+3U4OKueyMbznynX1Ua/OpRsyZ5cTqgH69i83X4Ieg1wzPMLSpNjJ5e2q4XAt2C8fndY4QeVy31h9EQEAAgAAAX4DAIXnQ0/vPG4mP9tgWhSOSDCKf799bXJX1FBuxFL3M5g6b8TwkdwcV8wz3fmucNMr1oXnQe357uwZdMssA/Fl/hpbg9tsKUWU4AeL6fww5f8NJgxIyAYbm/9nyV9nWnsiLgEAAAAAAAABxxTvgblTRaKn7eRrc/nXRi3rsWXdZ5x3J3d1zNjv1QRtZX0CALaQBm6XXWjYlWslsE4G7b6x3b43uXOcoQP1u3zixxvfHUn6hR4X2tRX8qdwyx9YFJVyyNkjt1b0qKKMU8Wb3Chh6ov/RmE6SdcgY9YLb8exhBM69Npu2g1z9j/oCPYUMQEAAAAAAAAFVTy2Yks9w7adJGpHszOrhvfAvVs0iWoGIit6ilvXqgu/jZ0DAFTvXpvA2d71INC453oGN5dpX8xkMbgNI6spqZUPAB3woR6Gg4PCR7CX8RxR+WPrTKHOyDla1QJK4PYM1qfh3SHfl66GmccZYwwD3uRw8TgUZcxe+hud9OohZ5032VaXPgEAAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAIAAADAF9Pqr5864eW4tjbPbZmISJzli4r8elRcXNS4NKE7HsY9Fldr9t+3U4OKueyMbznynX1Ua/OpRsyZ5cTqgH69i83X4Ieg1wzPMLSpNjJ5e2q4XAt2C8fndY4QeVy31h9EQEAAgAAAX4DAIXnQ0/vPG4mP9tgWhSOSDCKf799bXJX1FBuxFL3M5g6b8TwkdwcV8wz3fmucNMr1oXnQe357uwZdMssA/Fl/hpbg9tsKUWU4AeL6fww5f8NJgxIyAYbm/9nyV9nWnsiLgEAAAAAAAABxxTvgblTRaKn7eRrc/nXRi3rsWXdZ5x3J3d1zNjv1QRtZX0CALaQBm6XXWjYlWslsE4G7b6x3b43uXOcoQP1u3zixxvfHUn6hR4X2tRX8qdwyx9YFJVyyNkjt1b0qKKMU8Wb3Chh6ov/RmE6SdcgY9YLb8exhBM69Npu2g1z9j/oCPYUMQEAAAAAAAAFVTy2Yks9w7adJGpHszOrhvfAvVs0iWoGIit6ilvXqgu/jZ0DAFTvXpvA2d71INC453oGN5dpX8xkMbgNI6spqZUPAB3woR6Gg4PCR7CX8RxR+WPrTKHOyDla1QJK4PYM1qfh3SHfl66GmccZYwwD3uRw8TgUZcxe+hud9OohZ5032VaXPgEAAA=="],
[false, "BeOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAKAAAAABXjy8RsXbUvVrSzmVDG9YSk68uCAWJL1uoO3E2jgWzbCn8ggiPoxOm9XMw0ZSekpfzULKUqMxGCcl5SxKRLfl2/xNSI6S4gcGsNRKOEIk52cN2UMGi0SaZ2gowZZOj7JwEAAgAAAX4CAJWBp2UDnYvlQJzlzeP1OuLr4aYHmcD0XyuF0rCPA/laed3duSi2u/fGqJMQlmbcZZhRJhutABSDXgGNQjzR7wEFJgBAKxgKGSvdNyNc5eMhOEngmK9hUfMD/JQkhWMnBQYAAAAAAAACOMDtuyBUHMoe8UQql+cSPLeX+e2imJoduK2MMrZoPVsvMakDABri6L5LI+MHJ5w2RnokG61SWqxNuYXSWU2zbHb2oEXXcl1yU+Y+KZSckPywfQ4azFXb7UXWjy6k25pJdJ1F2w0/C879hlCjRKfUcdqhrHA7fn4larAy+ezGlDVYf7tLAwEAAAAAAAAGqqTB+JyozfECvPY9ZZJCiYWP7AkoBgvKLzt4xF2AeRHMEqEBAH4VLZ25E9yTjT8VWAg04TGrPLV/wWTkHA8hlHUkOLe9jGBwTnmz2RM0R8qzrC2EzHeon7+aXT5t/NQV8hbynSbbFUIMdyffE/LJG7jtZQVzjZtFdRCLpqopgQLlj69mKwIBAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAKAAAAABXjy8RsXbUvVrSzmVDG9YSk68uCAWJL1uoO3E2jgWzbCn8ggiPoxOm9XMw0ZSekpfzULKUqMxGCcl5SxKRLfl2/xNSI6S4gcGsNRKOEIk52cN2UMGi0SaZ2gowZZOj7JwEAAgAAAX4CAJWBp2UDnYvlQJzlzeP1OuLr4aYHmcD0XyuF0rCPA/laed3duSi2u/fGqJMQlmbcZZhRJhutABSDXgGNQjzR7wEFJgBAKxgKGSvdNyNc5eMhOEngmK9hUfMD/JQkhWMnBQYAAAAAAAACOMDtuyBUHMoe8UQql+cSPLeX+e2imJoduK2MMrZoPVsvMakDABri6L5LI+MHJ5w2RnokG61SWqxNuYXSWU2zbHb2oEXXcl1yU+Y+KZSckPywfQ4azFXb7UXWjy6k25pJdJ1F2w0/C879hlCjRKfUcdqhrHA7fn4larAy+ezGlDVYf7tLAwEAAAAAAAAGqqTB+JyozfECvPY9ZZJCiYWP7AkoBgvKLzt4xF2AeRHMEqEBAH4VLZ25E9yTjT8VWAg04TGrPLV/wWTkHA8hlHUkOLe9jGBwTnmz2RM0R8qzrC2EzHeon7+aXT5t/NQV8hbynSbbFUIMdyffE/LJG7jtZQVzjZtFdRCLpqopgQLlj69mKwIBAA=="],
[false, "BuOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAMAAABAAfCTnH4z/tATKEUM3sLqYL8ZhDIZsTwzJJBuL3B1wPvTpsKXibzwp2L3QpjL8pace8XHnXKFQLM5qW1gHZnZ0mPZ2M5nZ3tbrFvwW6Ri0jigWLo5b0GRlcek5qsoAX2NAEAAgAAAX4CAAMIPyF8RLPT+pJysZsSQZ3umM3ngelBF+69CsEynDE0haMgM4i4RztuGonuO487Djp7Ux0Is8nYGNL4iq4yUS1YmjKAsyQDgJU+Lwf5ZNFI89/7/tYmuDNH1TM86ctkDwEAAAAAAAACqtDBTKdKMp9LUHyuLQypw/lw2e/5NcxpbGjnYJoSyWOwp38BALmXOMvsg2Y7AzY5A51xgpHFmEQXsdE4hUzulncl0JCKS/bzX+BypUff33szDSsYA+MQgYgqdIfqyXmaKW8Emw5YhE5TKLmrbrhDx8vzNJl8Ory9EBcGGpesM2SS6z+oAgYFAAAAAAAH/6idNPcaECeISGXZFdp99YZuSj/J9S2bAbOGuysDr4SU4V0BAOvQCHEbCAm0FeV5VkvvfGvFxAmdFTQrW2KUvJUpLWHO5OpNQuLbSuHr573B40IFXS7cRybMJLHRITUgQfv9gzNQUqZpKkW7BB0vGSxbBtFMfiMyCRK1gBPFI5/zWC8hOwEAAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAMAAABAAfCTnH4z/tATKEUM3sLqYL8ZhDIZsTwzJJBuL3B1wPvTpsKXibzwp2L3QpjL8pace8XHnXKFQLM5qW1gHZnZ0mPZ2M5nZ3tbrFvwW6Ri0jigWLo5b0GRlcek5qsoAX2NAEAAgAAAX4CAAMIPyF8RLPT+pJysZsSQZ3umM3ngelBF+69CsEynDE0haMgM4i4RztuGonuO487Djp7Ux0Is8nYGNL4iq4yUS1YmjKAsyQDgJU+Lwf5ZNFI89/7/tYmuDNH1TM86ctkDwEAAAAAAAACqtDBTKdKMp9LUHyuLQypw/lw2e/5NcxpbGjnYJoSyWOwp38BALmXOMvsg2Y7AzY5A51xgpHFmEQXsdE4hUzulncl0JCKS/bzX+BypUff33szDSsYA+MQgYgqdIfqyXmaKW8Emw5YhE5TKLmrbrhDx8vzNJl8Ory9EBcGGpesM2SS6z+oAgYFAAAAAAAH/6idNPcaECeISGXZFdp99YZuSj/J9S2bAbOGuysDr4SU4V0BAOvQCHEbCAm0FeV5VkvvfGvFxAmdFTQrW2KUvJUpLWHO5OpNQuLbSuHr573B40IFXS7cRybMJLHRITUgQfv9gzNQUqZpKkW7BB0vGSxbBtFMfiMyCRK1gBPFI5/zWC8hOwEAAA=="],
[false, "B+OwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAOAAADADve9/PwoEXv54o6mwTagkH4wvLHOtp1K8RWP43GdNyrXOUFRix8kqhVwdFUBnB7hB6MSxSYnWTGyMMoGjdjcy/vJ9IQFb9SaoRwVqMu+Le+6RbdErYOqQ7OEpD7VJdHDQIBAgAAAX4CAEey9G7F33NNDJUN80MgIe00mRZTYFAk3OYhXPCt+eOXgq166apGQAcgNFIVr2Nh8+BTxpxVjcJhAGc30o8+yAlj49pZKDQzQpIVnlC/I0pzcKK+9BvvSqo1ZzLw0sYVCgEAAAAAAAADHHy/reKO958YCcXvYDf4qpP4dqj/YNzYQVFo6SIoBf08sHEDADGNTq9S8OlxPUS6gV5GGThItn4ouJMWGFLmu+514+qMoszYkhZAaRmqDPhTYas8QbG1A8JO8bjkH/Hh8wvqWg7l/4QFYeRUktlsYFDReFhhRETliw42NXw3pNK/E178GQIBAAAAAAAJVRDOFOGylOWfk7clcgLbKw7OCXeR33Gz4CMcXkqKS1XZrEkDAKXBlcajDHPWVrmJeZLdFLZZ67ck6/v7nz4o5w4AIHFGUYmEifx89gAKNagsk4dmG7zMCvKiepV45haXB5MKABCrG1SaogF+t1vbO/181W8iI+SFLyV9W1exSYKdVRx6GAEAAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAOAAADADve9/PwoEXv54o6mwTagkH4wvLHOtp1K8RWP43GdNyrXOUFRix8kqhVwdFUBnB7hB6MSxSYnWTGyMMoGjdjcy/vJ9IQFb9SaoRwVqMu+Le+6RbdErYOqQ7OEpD7VJdHDQIBAgAAAX4CAEey9G7F33NNDJUN80MgIe00mRZTYFAk3OYhXPCt+eOXgq166apGQAcgNFIVr2Nh8+BTxpxVjcJhAGc30o8+yAlj49pZKDQzQpIVnlC/I0pzcKK+9BvvSqo1ZzLw0sYVCgEAAAAAAAADHHy/reKO958YCcXvYDf4qpP4dqj/YNzYQVFo6SIoBf08sHEDADGNTq9S8OlxPUS6gV5GGThItn4ouJMWGFLmu+514+qMoszYkhZAaRmqDPhTYas8QbG1A8JO8bjkH/Hh8wvqWg7l/4QFYeRUktlsYFDReFhhRETliw42NXw3pNK/E178GQIBAAAAAAAJVRDOFOGylOWfk7clcgLbKw7OCXeR33Gz4CMcXkqKS1XZrEkDAKXBlcajDHPWVrmJeZLdFLZZ67ck6/v7nz4o5w4AIHFGUYmEifx89gAKNagsk4dmG7zMCvKiepV45haXB5MKABCrG1SaogF+t1vbO/181W8iI+SFLyV9W1exSYKdVRx6GAEAAA=="],
[false, "B+OwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAOAAADADve9/PwoEXv54o6mwTagkH4wvLHOtp1K8RWP43GdNyrXOUFRix8kqhVwdFUBnB7hB6MSxSYnWTGyMMoGjdjcy/vJ9IQFb9SaoRwVqMu+Le+6RbdErYOqQ7OEpD7VJdHDQIBAgAAAX4AALKiYlqIVbCGJIG62TNvxZohoDWu4jjX6gnSr0g2XiC+tKsOqct5+uFU5u7wZpCiTEmwh9vWkAzTfaT8oojmXhiT+rHj6/HXgMWzMFJSfVegDytqGKk0dwgsEBgS/rdeAgEAAAAAAAAAcUiW24/5D+N9hl7EwkGsJQPqDjP1PggPknzW6gdQzON5XOMDAIfntgTuAecOYuCpjhT8J8q034eNdvyXxyU7BKV/f8rINhnfd+TmwOIs4hy1KUmaSJlNb14yWEwVTgC0TmSr5UPGE3PtfOpNBWJ18JqttDbtFOmIEnBa1JGBlcjYn1NPQwEAAAAAAAABVKD+rwh3VNv591aLstY+RWFC2Afof7oOpnBWgD5BLiv7prkDANNsqOaZJysO27Vkb0Gvqg3SAqSBpBuHACrqbdltvRzkschgkG72L2cJBdwYPzDAP+7wwQUi7WAD074JEM7gaQh5ZpRkr9o55hdytVYJllez/xQuuBsk/GpZc7pTWKPiHAIBAKp9N4Z1TvuirQv+Fatxz++ejWT9Er1aixkzXHaAE4j6AAAAAAAB/x0BANvkpbnjnFI4CtQ9rh6TDbpyT5mM9rN/LsZN9p0EAyFfXvUvfH8M4Nd2vGx5lpbYlwi9yMB7Ukd1GPTxRjI21husIYeNZPq6rwkU97qKZ1yjTk7S+nqhxP+Qc/LXIEIVDQEAAgAAAX4DAFHSrIIB4v/1YrMPNo1007HW0rhmz72JWgOdtXN+AvLFB9GaIk2c18URo6N4w2N9zMnddicEe9jLxGH0sP87SAzooZivp8fj2xZAd7oD+rPLfzc+C+qIFRAUMH0XMySICAIBAAAAAAAAcUjHHN/i/BrmF5iO3yN3G7JxUnonOynW4svL7PmUmmPZmlsDACqmxC2lb6NT+uIfF5GVDWWiiHD5cVRuKDZtxnG0ohuhAZpwJn0tgQVMb4KOyYYig01Tzq8uc+n0dQJaMwoZxWU/qt0TXGnZxdT57vqZ2uG3WtJqceFr4bAtbnOOIEQUfwEAAAAAAAABVKCLfkdNmP0DSAkT4DTFKWMvQHaKLacsYiwuvwBNk0INlIMCAHHHqeLZigtLhZ4eiW8iqIlLxD5MiZpTyEo4dR+pLpc/YZkEFvzooIh1Nwqq9NCLNhCtlpzIsXkcggBSai8lrApogRgRdCicLfREkK5shfjBoA+IKNux1EiB7fZnU8ahEwYAAA=="],
[true, "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFUAAAAAABAAAAMAg+muXpq+yX1QK2TyDk8DVuq+m27j/Yt8pzUA+xrJSujYIP5YAnnBBVhlMhY601oB1Z8fDKgqRTnHYcT0x6m8AdDvFSsvOlMvaZpB6LWqZPPAdcUMUZY1m331r14NojoMAgAAAAAAAZM5JTlqIOgTlGeMcG8YQyY4lQhrw4hViMP/ptipHfOzAAAAAAAD/x0BAEpX7M741mg/QVrl0GPrheEb/hIBkjLnSZWVSg1TUNgwY+idk5qW8RcWGcHXSYv2SThU3aoMccQELp0ilGaS/E/P++slaL/9fRCDNzwa7FEz9rznbfb8LPgSxpFGIIouTwEAqn03hnVO+6KtC/4Vq3HP756NZP0SvVqLGTNcdoATiPoAAAAAAAP/HQAA+OTBgtPCJ55SFosol8sQ7zJXbR4e7PpL2mh6MfEXAgyxE6Nfrwsk5NrJgon0dlqilR4f8kuGRKSPrabGyuApDg/ltBwc0npC1coJnHNfZ+M/5KT3oLm65GfDAxA8FAgGAQCPpt0tP4aBOemWPc8vD314E0iVETAMcZcAzQgVst8bpgFCHYRP2oqnKyU2Vo0py+RJ52Jl9bzWhQSi58urFcHMjQsCAAABfgAAAGJxQuVtKiEG5+arLUwI+n5xPdpr3IkBfGQTDnBINC3sGvl0Dt2HIYa7wtFPAPvC9XxH4lWBpcZBr0eurvO9BGtv0q4Ax7aBxTanEo7mD2BmTyqEcMJPDEal66dwnGgFDAoAAAAAAADjWNHnRbEeFXEjMyiGjoVUcnGN7yilXBaiKscqfeRwk3EE+QAA7DstMVwzkyMgxoAjAKwu2eprfrTfsk+ZN9Hm8Hu7gN047hYdZO7VbhqLVGyLtB/2iM8xEpwQg1jqZ0/Grx79XK8cKhUNB5lgBHAZuEUzwn2+NnsTtQt30XvXkOCILBg8AQAAAAAAAAKqCPP2c0zxEJas7XhQ/4V4YTF9DS6qpht/xI2eYbMRDN075QMAAMh4MBwQEH8SbyZIgKVXl0/ONNFS0Wt6RNq+ZNlWzax1viT8qQ5f980/U+mgtcNjPi5uU4BSPyXyez+o1iVGLVMVfZkRvcr6CCAeserVZH9xvJ8Y591u39TqWzEJ+BcuAgEAAQIAAAF+AQDY5jIWu27SdbOlqV91ZSQe88zc914quzlxlV0YVd2d9G143UY00FA2gOrTdEm3Nxun2lok10KvkJ7nKrZkB641NcQR6Fe2/VD4cZfEM/49AIcCu2+2VFni5cE5+VuicFIBAAAAAAAAAONYuS+1LqTiBHIzsVlWPgeo7oD3jWjrEzskaWdgKTLSexlZAAC91VydC2tNiypXrmXbXaKN+91dn3vE3jKDxi2JqHM/a3CuHa8S2fTdKGOzykijeUgtUXMysvaxH1wLnNvfWKIO0rwiG+OPBBSvcKVU67Lq+blmeEozwUDHlDztnBKDXhYCAAAAAAAAAqoI3btnF0UrBJNqAmeksSYfXcq0zgQj4D6iOqnZLArB1vCHAwAhfPU2Vk7+/Ub0bqCjC4DtUTJ1NH6iDvIJGUu9FQusY+ic9okCTF1iaeaZNamXe7EjjIe8hs1pJiIc1MO91zEKSue0pjyivf/63UXB1V2AeJeI8pd9Q6SzDJ4Mvw6s4BQEAQACAAABfgMAWSuq1RUP8zCnVUPgeemCUmQcqIRuZEGD5MZh/6b6/G8kuU8+liICs09Imqgxb0tq3xhJNoUJ9Hf95fxLpd93HBvlTHqw15S+CigZ4ghgfdvg04wcRx+fWoCaeTZXImoKAwIAAAAAAADjWK0CyA1MW3NWYusMsW/nPJlyVmc9V/Hhvjb7ts4iOEozIwMAY8fPHr7logHFRTArCukLT7Zu3+zKzVOIOH7CMNhlhimWAOpaCNRsgzd89VZFGeyFyjk1iDPtUgcaafYdRSlRBKEr42jALYPzLDvh577N0DBlQMQtlKEvGfe7ENI06OAUAQAAAAAAAAKqCJDirA/mIuk98oGmDg5wTEQrxsd7BO7APlZ7lEYxCnKXiQAASBNj/VDZW2e9oBmARk38OPi9FZK6ldAxVqVnDa3hDPy0tVKFzmIRlSKOHW38kI/VzTdeSsWh+JWD6SM1swfvQGsoe+5mPxDUNhU7bzkbOAFS7+J2HnTeuJyBjwGAEhwvAQAA"]
"block": "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",
"signage_points": [
[
false,
"BOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAIAAADAF9Pqr5864eW4tjbPbZmISJzli4r8elRcXNS4NKE7HsY9Fldr9t+3U4OKueyMbznynX1Ua/OpRsyZ5cTqgH69i83X4Ieg1wzPMLSpNjJ5e2q4XAt2C8fndY4QeVy31h9EQEAAgAAAX4DAIXnQ0/vPG4mP9tgWhSOSDCKf799bXJX1FBuxFL3M5g6b8TwkdwcV8wz3fmucNMr1oXnQe357uwZdMssA/Fl/hpbg9tsKUWU4AeL6fww5f8NJgxIyAYbm/9nyV9nWnsiLgEAAAAAAAABxxTvgblTRaKn7eRrc/nXRi3rsWXdZ5x3J3d1zNjv1QRtZX0CALaQBm6XXWjYlWslsE4G7b6x3b43uXOcoQP1u3zixxvfHUn6hR4X2tRX8qdwyx9YFJVyyNkjt1b0qKKMU8Wb3Chh6ov/RmE6SdcgY9YLb8exhBM69Npu2g1z9j/oCPYUMQEAAAAAAAAFVTy2Yks9w7adJGpHszOrhvfAvVs0iWoGIit6ilvXqgu/jZ0DAFTvXpvA2d71INC453oGN5dpX8xkMbgNI6spqZUPAB3woR6Gg4PCR7CX8RxR+WPrTKHOyDla1QJK4PYM1qfh3SHfl66GmccZYwwD3uRw8TgUZcxe+hud9OohZ5032VaXPgEAAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAIAAADAF9Pqr5864eW4tjbPbZmISJzli4r8elRcXNS4NKE7HsY9Fldr9t+3U4OKueyMbznynX1Ua/OpRsyZ5cTqgH69i83X4Ieg1wzPMLSpNjJ5e2q4XAt2C8fndY4QeVy31h9EQEAAgAAAX4DAIXnQ0/vPG4mP9tgWhSOSDCKf799bXJX1FBuxFL3M5g6b8TwkdwcV8wz3fmucNMr1oXnQe357uwZdMssA/Fl/hpbg9tsKUWU4AeL6fww5f8NJgxIyAYbm/9nyV9nWnsiLgEAAAAAAAABxxTvgblTRaKn7eRrc/nXRi3rsWXdZ5x3J3d1zNjv1QRtZX0CALaQBm6XXWjYlWslsE4G7b6x3b43uXOcoQP1u3zixxvfHUn6hR4X2tRX8qdwyx9YFJVyyNkjt1b0qKKMU8Wb3Chh6ov/RmE6SdcgY9YLb8exhBM69Npu2g1z9j/oCPYUMQEAAAAAAAAFVTy2Yks9w7adJGpHszOrhvfAvVs0iWoGIit6ilvXqgu/jZ0DAFTvXpvA2d71INC453oGN5dpX8xkMbgNI6spqZUPAB3woR6Gg4PCR7CX8RxR+WPrTKHOyDla1QJK4PYM1qfh3SHfl66GmccZYwwD3uRw8TgUZcxe+hud9OohZ5032VaXPgEAAA=="
],
[
false,
"BeOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAKAAAAABXjy8RsXbUvVrSzmVDG9YSk68uCAWJL1uoO3E2jgWzbCn8ggiPoxOm9XMw0ZSekpfzULKUqMxGCcl5SxKRLfl2/xNSI6S4gcGsNRKOEIk52cN2UMGi0SaZ2gowZZOj7JwEAAgAAAX4CAJWBp2UDnYvlQJzlzeP1OuLr4aYHmcD0XyuF0rCPA/laed3duSi2u/fGqJMQlmbcZZhRJhutABSDXgGNQjzR7wEFJgBAKxgKGSvdNyNc5eMhOEngmK9hUfMD/JQkhWMnBQYAAAAAAAACOMDtuyBUHMoe8UQql+cSPLeX+e2imJoduK2MMrZoPVsvMakDABri6L5LI+MHJ5w2RnokG61SWqxNuYXSWU2zbHb2oEXXcl1yU+Y+KZSckPywfQ4azFXb7UXWjy6k25pJdJ1F2w0/C879hlCjRKfUcdqhrHA7fn4larAy+ezGlDVYf7tLAwEAAAAAAAAGqqTB+JyozfECvPY9ZZJCiYWP7AkoBgvKLzt4xF2AeRHMEqEBAH4VLZ25E9yTjT8VWAg04TGrPLV/wWTkHA8hlHUkOLe9jGBwTnmz2RM0R8qzrC2EzHeon7+aXT5t/NQV8hbynSbbFUIMdyffE/LJG7jtZQVzjZtFdRCLpqopgQLlj69mKwIBAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAKAAAAABXjy8RsXbUvVrSzmVDG9YSk68uCAWJL1uoO3E2jgWzbCn8ggiPoxOm9XMw0ZSekpfzULKUqMxGCcl5SxKRLfl2/xNSI6S4gcGsNRKOEIk52cN2UMGi0SaZ2gowZZOj7JwEAAgAAAX4CAJWBp2UDnYvlQJzlzeP1OuLr4aYHmcD0XyuF0rCPA/laed3duSi2u/fGqJMQlmbcZZhRJhutABSDXgGNQjzR7wEFJgBAKxgKGSvdNyNc5eMhOEngmK9hUfMD/JQkhWMnBQYAAAAAAAACOMDtuyBUHMoe8UQql+cSPLeX+e2imJoduK2MMrZoPVsvMakDABri6L5LI+MHJ5w2RnokG61SWqxNuYXSWU2zbHb2oEXXcl1yU+Y+KZSckPywfQ4azFXb7UXWjy6k25pJdJ1F2w0/C879hlCjRKfUcdqhrHA7fn4larAy+ezGlDVYf7tLAwEAAAAAAAAGqqTB+JyozfECvPY9ZZJCiYWP7AkoBgvKLzt4xF2AeRHMEqEBAH4VLZ25E9yTjT8VWAg04TGrPLV/wWTkHA8hlHUkOLe9jGBwTnmz2RM0R8qzrC2EzHeon7+aXT5t/NQV8hbynSbbFUIMdyffE/LJG7jtZQVzjZtFdRCLpqopgQLlj69mKwIBAA=="
],
[
false,
"BuOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAMAAABAAfCTnH4z/tATKEUM3sLqYL8ZhDIZsTwzJJBuL3B1wPvTpsKXibzwp2L3QpjL8pace8XHnXKFQLM5qW1gHZnZ0mPZ2M5nZ3tbrFvwW6Ri0jigWLo5b0GRlcek5qsoAX2NAEAAgAAAX4CAAMIPyF8RLPT+pJysZsSQZ3umM3ngelBF+69CsEynDE0haMgM4i4RztuGonuO487Djp7Ux0Is8nYGNL4iq4yUS1YmjKAsyQDgJU+Lwf5ZNFI89/7/tYmuDNH1TM86ctkDwEAAAAAAAACqtDBTKdKMp9LUHyuLQypw/lw2e/5NcxpbGjnYJoSyWOwp38BALmXOMvsg2Y7AzY5A51xgpHFmEQXsdE4hUzulncl0JCKS/bzX+BypUff33szDSsYA+MQgYgqdIfqyXmaKW8Emw5YhE5TKLmrbrhDx8vzNJl8Ory9EBcGGpesM2SS6z+oAgYFAAAAAAAH/6idNPcaECeISGXZFdp99YZuSj/J9S2bAbOGuysDr4SU4V0BAOvQCHEbCAm0FeV5VkvvfGvFxAmdFTQrW2KUvJUpLWHO5OpNQuLbSuHr573B40IFXS7cRybMJLHRITUgQfv9gzNQUqZpKkW7BB0vGSxbBtFMfiMyCRK1gBPFI5/zWC8hOwEAAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAMAAABAAfCTnH4z/tATKEUM3sLqYL8ZhDIZsTwzJJBuL3B1wPvTpsKXibzwp2L3QpjL8pace8XHnXKFQLM5qW1gHZnZ0mPZ2M5nZ3tbrFvwW6Ri0jigWLo5b0GRlcek5qsoAX2NAEAAgAAAX4CAAMIPyF8RLPT+pJysZsSQZ3umM3ngelBF+69CsEynDE0haMgM4i4RztuGonuO487Djp7Ux0Is8nYGNL4iq4yUS1YmjKAsyQDgJU+Lwf5ZNFI89/7/tYmuDNH1TM86ctkDwEAAAAAAAACqtDBTKdKMp9LUHyuLQypw/lw2e/5NcxpbGjnYJoSyWOwp38BALmXOMvsg2Y7AzY5A51xgpHFmEQXsdE4hUzulncl0JCKS/bzX+BypUff33szDSsYA+MQgYgqdIfqyXmaKW8Emw5YhE5TKLmrbrhDx8vzNJl8Ory9EBcGGpesM2SS6z+oAgYFAAAAAAAH/6idNPcaECeISGXZFdp99YZuSj/J9S2bAbOGuysDr4SU4V0BAOvQCHEbCAm0FeV5VkvvfGvFxAmdFTQrW2KUvJUpLWHO5OpNQuLbSuHr573B40IFXS7cRybMJLHRITUgQfv9gzNQUqZpKkW7BB0vGSxbBtFMfiMyCRK1gBPFI5/zWC8hOwEAAA=="
],
[
false,
"B+OwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAOAAADADve9/PwoEXv54o6mwTagkH4wvLHOtp1K8RWP43GdNyrXOUFRix8kqhVwdFUBnB7hB6MSxSYnWTGyMMoGjdjcy/vJ9IQFb9SaoRwVqMu+Le+6RbdErYOqQ7OEpD7VJdHDQIBAgAAAX4CAEey9G7F33NNDJUN80MgIe00mRZTYFAk3OYhXPCt+eOXgq166apGQAcgNFIVr2Nh8+BTxpxVjcJhAGc30o8+yAlj49pZKDQzQpIVnlC/I0pzcKK+9BvvSqo1ZzLw0sYVCgEAAAAAAAADHHy/reKO958YCcXvYDf4qpP4dqj/YNzYQVFo6SIoBf08sHEDADGNTq9S8OlxPUS6gV5GGThItn4ouJMWGFLmu+514+qMoszYkhZAaRmqDPhTYas8QbG1A8JO8bjkH/Hh8wvqWg7l/4QFYeRUktlsYFDReFhhRETliw42NXw3pNK/E178GQIBAAAAAAAJVRDOFOGylOWfk7clcgLbKw7OCXeR33Gz4CMcXkqKS1XZrEkDAKXBlcajDHPWVrmJeZLdFLZZ67ck6/v7nz4o5w4AIHFGUYmEifx89gAKNagsk4dmG7zMCvKiepV45haXB5MKABCrG1SaogF+t1vbO/181W8iI+SFLyV9W1exSYKdVRx6GAEAAOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAOAAADADve9/PwoEXv54o6mwTagkH4wvLHOtp1K8RWP43GdNyrXOUFRix8kqhVwdFUBnB7hB6MSxSYnWTGyMMoGjdjcy/vJ9IQFb9SaoRwVqMu+Le+6RbdErYOqQ7OEpD7VJdHDQIBAgAAAX4CAEey9G7F33NNDJUN80MgIe00mRZTYFAk3OYhXPCt+eOXgq166apGQAcgNFIVr2Nh8+BTxpxVjcJhAGc30o8+yAlj49pZKDQzQpIVnlC/I0pzcKK+9BvvSqo1ZzLw0sYVCgEAAAAAAAADHHy/reKO958YCcXvYDf4qpP4dqj/YNzYQVFo6SIoBf08sHEDADGNTq9S8OlxPUS6gV5GGThItn4ouJMWGFLmu+514+qMoszYkhZAaRmqDPhTYas8QbG1A8JO8bjkH/Hh8wvqWg7l/4QFYeRUktlsYFDReFhhRETliw42NXw3pNK/E178GQIBAAAAAAAJVRDOFOGylOWfk7clcgLbKw7OCXeR33Gz4CMcXkqKS1XZrEkDAKXBlcajDHPWVrmJeZLdFLZZ67ck6/v7nz4o5w4AIHFGUYmEifx89gAKNagsk4dmG7zMCvKiepV45haXB5MKABCrG1SaogF+t1vbO/181W8iI+SFLyV9W1exSYKdVRx6GAEAAA=="
],
[
false,
"B+OwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVAAAAAAAOAAADADve9/PwoEXv54o6mwTagkH4wvLHOtp1K8RWP43GdNyrXOUFRix8kqhVwdFUBnB7hB6MSxSYnWTGyMMoGjdjcy/vJ9IQFb9SaoRwVqMu+Le+6RbdErYOqQ7OEpD7VJdHDQIBAgAAAX4AALKiYlqIVbCGJIG62TNvxZohoDWu4jjX6gnSr0g2XiC+tKsOqct5+uFU5u7wZpCiTEmwh9vWkAzTfaT8oojmXhiT+rHj6/HXgMWzMFJSfVegDytqGKk0dwgsEBgS/rdeAgEAAAAAAAAAcUiW24/5D+N9hl7EwkGsJQPqDjP1PggPknzW6gdQzON5XOMDAIfntgTuAecOYuCpjhT8J8q034eNdvyXxyU7BKV/f8rINhnfd+TmwOIs4hy1KUmaSJlNb14yWEwVTgC0TmSr5UPGE3PtfOpNBWJ18JqttDbtFOmIEnBa1JGBlcjYn1NPQwEAAAAAAAABVKD+rwh3VNv591aLstY+RWFC2Afof7oOpnBWgD5BLiv7prkDANNsqOaZJysO27Vkb0Gvqg3SAqSBpBuHACrqbdltvRzkschgkG72L2cJBdwYPzDAP+7wwQUi7WAD074JEM7gaQh5ZpRkr9o55hdytVYJllez/xQuuBsk/GpZc7pTWKPiHAIBAKp9N4Z1TvuirQv+Fatxz++ejWT9Er1aixkzXHaAE4j6AAAAAAAB/x0BANvkpbnjnFI4CtQ9rh6TDbpyT5mM9rN/LsZN9p0EAyFfXvUvfH8M4Nd2vGx5lpbYlwi9yMB7Ukd1GPTxRjI21husIYeNZPq6rwkU97qKZ1yjTk7S+nqhxP+Qc/LXIEIVDQEAAgAAAX4DAFHSrIIB4v/1YrMPNo1007HW0rhmz72JWgOdtXN+AvLFB9GaIk2c18URo6N4w2N9zMnddicEe9jLxGH0sP87SAzooZivp8fj2xZAd7oD+rPLfzc+C+qIFRAUMH0XMySICAIBAAAAAAAAcUjHHN/i/BrmF5iO3yN3G7JxUnonOynW4svL7PmUmmPZmlsDACqmxC2lb6NT+uIfF5GVDWWiiHD5cVRuKDZtxnG0ohuhAZpwJn0tgQVMb4KOyYYig01Tzq8uc+n0dQJaMwoZxWU/qt0TXGnZxdT57vqZ2uG3WtJqceFr4bAtbnOOIEQUfwEAAAAAAAABVKCLfkdNmP0DSAkT4DTFKWMvQHaKLacsYiwuvwBNk0INlIMCAHHHqeLZigtLhZ4eiW8iqIlLxD5MiZpTyEo4dR+pLpc/YZkEFvzooIh1Nwqq9NCLNhCtlpzIsXkcggBSai8lrApogRgRdCicLfREkK5shfjBoA+IKNux1EiB7fZnU8ahEwYAAA=="
],
[
true,
"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"
]
]
}
+167 -167
View File
File diff suppressed because one or more lines are too long
+157 -157
View File
File diff suppressed because one or more lines are too long
+147 -147
View File
File diff suppressed because one or more lines are too long
+102 -102
View File
@@ -1,105 +1,105 @@
{
"block": {
"challenge_chain_ip_proof": {
"normalized_to_identity": false,
"witness": "0x0000f5725f532e01020fccb548dd8d5ac9369565e4c881825d161c10924bb66fe70daed501ac39b9bac31718fdba20ea1e0df31ea36691a36b5785fac8946328c737ed619cd658df7d9d2821312ea68ff6367a0035b78e013fd7131b97821d56bb1e0100000000000003f930c3f2812519f90ece15e4e9029ebd153122e8d8113f78054834321d0d51a1ea14b50000a1df1894708a21431bee1829ed738372c029a4d701f2e27645a659cae50d17a25817d0abca67bbe8f1c9168ab66cf71d7e44cd296433580564193e18036d470fa2722808745d94808ecacaa26abad0da3630e807e2ae72d092aea01825285d02010000000000000beb2c87466bf3df371e75088046cedbae394d2884dc5ca29cc1b2974640a922825859590300000688dd045f153ad510663a85334fdd96a653016fd9fb1cbee2becdb0985bd2a6da396a7f4f98c1187b40864f898bd603bddbc24a9e7697ea9750e6030d2d44f34fa8c1939347270313c13282f0d6af7f26b8dcce80848f45aafeaa68cc14530100",
"witness_type": 2
},
"challenge_chain_sp_proof": {
"normalized_to_identity": false,
"witness": "0x0300079b45573357b7ec6e9c8bee63f27309c1721b374a84bc77b8701544d915e3a5d4bca907a8cde927908644e57331503ca956623a8929245a15e7331e4070c25411aa409ae2c96c189acd1482c4161617d889392db49527e1965c51124fc92c5a010000000000000e71a8f032897290c27809c9b229fd0659bc435b9cf2351c1968efe8bbde89b409728f2d010037ea5c3e059d5da817e191005ba723ca004fd68c2f9debe3790ff72e97b43c21eaf47f252763a30d1ced338020802e17948ef26e8a8065fa020f6246a8746928a4029a6c6f52aae95628bacf66d1116115fed19b6653823734b69ce23082b642010000000000002b54f8df16d648b49cfdea068d3221fb71ff8202e2d8be92bfa63ab01587d02f4e67fecf0200f7540222073903c7baa168bd42317f6abce3ae54230d79b63d692401905d5a9fdb3c82d9e8a987949d5701721c488cdaa0c03075f9e96d41dc08ade21d2bc300d8c5d82f16d98efa7a9117c13e685511b3552765b4d3602902485f3def7ccb010302",
"witness_type": 2
},
"finished_sub_slots": [],
"foliage": {
"foliage_block_data": {
"extension_data": "0x0000000000000000000000000000000000000000000000000000000003a2c7c9",
"farmer_reward_puzzle_hash": "0x0ea986421d3bcc6d073038fe4c120483860376d8c1072d6be8b2c1d3d48d3812",
"pool_signature": "0xae5ef60f09f4065912ea3c0b18ae3afadd306f64edc4c1204250aacdab414236e8114e041005ad073513c3897d1f6d3004beac0b12f5d56b397ecb2bb35daf197c47ae974d1038bee7d33dfc9d609373a62b98035ba8d25bf61c6a995b11c165",
"pool_target": {
"max_height": 0,
"puzzle_hash": "0x0ea986421d3bcc6d073038fe4c120483860376d8c1072d6be8b2c1d3d48d3812"
},
"unfinished_reward_block_hash": "0x0d7533c8eca5f9aee9b8c232ec47bef465b1d5631f5e40ecbec123fd71c7336e"
},
"foliage_block_data_signature": "0x88ff3db6f0e52ae0ba9558847ffeb3f731cf0f94b3e2c37ec08c00cb9cca39e81390e8b023136b87ad490bd0e5309ac511e3a95a72cd0d8d2ab2347d501b1350c178d4341f80e1cf874596f53a0aca6f3a0cf55464aa4f375df5784b23c15959",
"foliage_transaction_block_hash": null,
"foliage_transaction_block_signature": null,
"prev_block_hash": "0xf8fac7dafb2174e8ced99e016a3a5977fe9108e2eac6ff2655cb7070b1f2f400",
"reward_block_hash": "0x184a367d2635cce46baf779fd6fd505ac5b6ae5443077780ba01a27565ac15b3"
},
"foliage_transaction_block": null,
"infused_challenge_chain_ip_proof": {
"normalized_to_identity": false,
"witness": "0x0000bf6567f67906994b3ac8bc457acd57b11d06383c82f9a86faa45376c1ece3d4fe8baac63b6dd5ca2a39da6b539c21d5cd4296739b9ff21ec272e2534a35ab72397e4da93d742e3d88114af48c332c64da5c84e265b28ae7fe784bfa21bf409290100000000000003f930c74754a9512f5c741fb056f63db59a55a4aae5ce19570b3835d757c2909fd7fadf0300f008dffb1f5435474e38d89c32e1152b8aaf9412f8edf47f43b34859b9a507f3dc34cb40d5f4a7fdfb9fa63a9e277a450ca72f33f8ebc8bd3e7c3c982321e428ef08af14991be2c8a92f7a6efa97a5e266adb30efb8c23d9fbff5cc2b74e7b13010000000000000beb2c9bfd20dc044275a2c2bcc205676e9aa78753b085661548d480d58437348637a1210200d27a64ae70dfbb769dc48a30bf3a6f170ca801cbb3c1046e5c0dcb0fecca745fc8c03c7f600e6c128e52e207dbe874b9f953cb1b39df1fbcfa22f0f250fc2568f7aea2c33c7f994ffc4253039fdcd63a192d3133d70249f715c366f571ec42160100",
"witness_type": 2
},
"reward_chain_block": {
"challenge_chain_ip_vdf": {
"challenge": "0xc627e4207c6842f2a4cf450990815cc1451ec00ea3fcb29fec6abf792b8dcc59",
"number_of_iterations": 7616131,
"output": {
"data": "0x03001da60388bd507fe9dc33808c4ef11e2aa2294a0ade5fb2154c1ee7b55fc19d0d87c4af5a710f584a9f0ae4ef0228189f2fcb818a573bd62387a064d37f19900912475875c0ff36ab61511c47f9c91bc130b24c897ed3055668f7ea6d81ba42020401"
}
},
"challenge_chain_sp_signature": "0x94d0409cccb05a6deac1f110f98e436fece58ac074b337db063891233a3d987cec8d08d3c215e93bcdfeca59858df42d110b75d23a8f02ecc1b06db89258280c883434af10d9692a8168f6e706ddf8c1bf747e65c4dcb93e55ba579e6452eb50",
"challenge_chain_sp_vdf": {
"challenge": "0xc627e4207c6842f2a4cf450990815cc1451ec00ea3fcb29fec6abf792b8dcc59",
"number_of_iterations": 4259840,
"output": {
"data": "0x02003f9bc7b8c6998affeb87bf4ebaeff14c7776a1e5492a80fc67e5ddd3037dc0ca7e9f2c1a25bbfc422464c70e4ea0e31e9d4206aaa1a5c4141899405ebfe9d82ae842791d48bfe21d1f31eb8a62a464d4d83928990fea3c6e218ddca78677591b0200"
}
},
"height": 300000,
"infused_challenge_chain_ip_vdf": {
"challenge": "0x361d6612a2911a6ae919857c3c13b8ddaee498134fc690fd809b5ef85c37fc9d",
"number_of_iterations": 1171766,
"output": {
"data": "0x020078c56de302e5ebb1782e34e172ccb954678211bf79a7a4176d19f0147e14be9cbbfc778c5c30a2d565d95827ac6edc8f11d7bed085becbd3d80f99458a921918c525abd8f0a5ade243d45aacad6c5fa77ef67c9639763e75f78cd19519255b0d0302"
}
},
"is_transaction_block": false,
"pos_ss_cc_challenge_hash": "0xc627e4207c6842f2a4cf450990815cc1451ec00ea3fcb29fec6abf792b8dcc59",
"proof_of_space": {
"challenge": "0x1a23b4a85d0ba4cc485f2f95c73ba71b55a6adbbabab6253f40c8c7351ba051f",
"plot_public_key": "0xb89fea9c84b7b2fb578d3e7d767127a6d3ca60f71fcd3e2a38b69bbbf1a00288acf88d685911d3500ea4b38193c9a850",
"pool_contract_puzzle_hash": null,
"pool_public_key": "0xa932882ec9c6c20bc843ddd09592dadf293fdbb2523d92e08c5c536fee5d60678613dec909053a0f41a03fcb787b97d2",
"proof": "0xa55eae00b6a7f709a0abcf394e568786b6dff14b6beb5c31703e86cb0b9972ce6ef07696b54b93215ede46d6c7a7100b64f88b66cca0efab9e8c92c575e812262364a55e205700eb6aa69f77ca760223deacaa06a7507e9b1a775446e4713e15d6a73036654807b79e23b588c556b5abd62b15bff7f5d9d32d7ff4bdae5b4f3531a25be39dda8c470305efc4fb0d964b0bbb68d002c972b37223e82ddf5efa961138e858bea0b9ad84b707851ccb1b3963af98c5a6ee92f4a5e3ba8356bbd406a820dd13ce0e7e5514adfd4eea37f92c15c2f1420fe36c4ec69864fcf5cf0145ad7eb352635ca511d14a4dba03dd9c3e87363b8fd6fadc2331f745eac9832567",
"size": 32
},
"reward_chain_ip_vdf": {
"challenge": "0x9c55eb88e039b54eae3391d9909ce20f17dd19a6506f562fceeaa9e85c28b17c",
"number_of_iterations": 1171766,
"output": {
"data": "0x0200fb0e0266d6072d840f8b9aea5790dc8f93fca8eef950dd9ed166a3bb6d8f617e1267d182712314059f0fae014a579bf1e58a5453a7fddf1b3a02fb6aac255d23054f875e9967c2deae461195f2183938765517bdc553d5f692f75b8e8c8a2d460100"
}
},
"reward_chain_sp_signature": "0x993b8762ee16ac9bdb14af5a275aa889bc738d982603b894012d4977b3664a015c4ea514bafd3d87ef3b4cade40345ed12434331de746b00cca632c23b3a6f0b9e00bdcce7c4cb78740519d28e9f91fd201775c326ddce87313d4905020aa13b",
"reward_chain_sp_vdf": {
"challenge": "0x5b86f478a8283bd02497b3d9a22187e98da48b459629d77b4bcfe8da7cd7ebf4",
"number_of_iterations": 4259840,
"output": {
"data": "0x000054ec3c7503611630514166715f66fa5e7e9a9ef8dbfc4af01add08605f1cea7e833b901fd80bb73d2bdec22cb13881b2ceefc6eaf8438f19b4bf122611811f7069a545d5d2922a8d6e571d3eb7f37e84123fa967fc9c08ce8a2e192965d288000100"
}
},
"signage_point_index": 4,
"total_iters": 686511371907,
"weight": 5196937780
},
"reward_chain_ip_proof": {
"normalized_to_identity": false,
"witness": "0x0100bf90aade48f8da6a6aa5cea88342645093556fb74f8b1daacf9b3d67bd48c0236aae8967ff09f41730565e8d8fda6fc8ca06cd5c15c310644148bd16438fec3f2ca46210667987ab8cd00be42f47b7c9cdadbe540d348c5b7bd086bbe584d6350100000000000003f930efcf17d15441b9309281c0d27501788a9d49bbff86c7de11b3452e1a9b022075c9010058e40cad2e392c05fcfefbe156a56e611adb05050bc1736b4dc88b051fff022b1ebc1b66ab89f969942bd30c38ef77afbf06900f9075a1d7ee9af7b82f7a6c6201b3e9138dc9100ac8e856193d9f1eb56ebeb4179e8d5f768c481bdd0cbd8e02010000000000000beb2cf4c543266af09709efdb71d1d85315fe1969daf6790d73b1c12a6399cfaf95f8b900006b97e33565f285c59eb4d7247fd3749439cccf1f72c9a2c2152c758b575bef3fc4ebec47a7c47dd28cb6aa0da1932a303e7d395eda7b199d48b9e63bdf0a28276f75a89f429b98e0f6deb8dcf92781c4f33de080d88ec5a1c707f6a167674f400100",
"witness_type": 2
},
"reward_chain_sp_proof": {
"normalized_to_identity": false,
"witness": "0x0200f7c222a940a69270100a1b3e483ca315ddcd7d1abb3dff1b39fcdb7566d2469d24dfa935105f95c63cad911203953d4e069e4a19d080dffc15ee179b919e7638972a796e3216de1ec31bd083f5644b85576732249e93c0d49e10ae1f2af44f43010000000000000e71a8fe01034e2dbc6c4fb1274cb6b040060122b2a4a3ec6cb62f3814a15208e1f08bf3010051f8b9638a5da334a156930d2efe469988ca6b7b86dbeb932b2d70b22c0ada74864b759e5280f781c5d29e4d623c51c00e63f611a3964b65951039a61b208f329aa475f5b43ec1d47178d210165e9567b4aff9209b14478c9b923469163d6504010000000000002b54f8b271c3c3ee0af4495ac87356fd338d8a45499283a35527be1ad05c7b08b4c74f89030090aefd792a726d741a3c22c414bd9e533c7703218eccd0316aadf0ae8aa02933f22e92fe53085caf369e9ef20109b16f3377560bb5e8e8082eabf3207d35140a734ab9a5bdd1a3a4d0f501750d9b91c4d9a40a54c51a0f350ca63aadb80691180100",
"witness_type": 2
},
"transactions_generator": null,
"transactions_generator_ref_list": [],
"transactions_info": null
"block": {
"challenge_chain_ip_proof": {
"normalized_to_identity": false,
"witness": "0x0000f5725f532e01020fccb548dd8d5ac9369565e4c881825d161c10924bb66fe70daed501ac39b9bac31718fdba20ea1e0df31ea36691a36b5785fac8946328c737ed619cd658df7d9d2821312ea68ff6367a0035b78e013fd7131b97821d56bb1e0100000000000003f930c3f2812519f90ece15e4e9029ebd153122e8d8113f78054834321d0d51a1ea14b50000a1df1894708a21431bee1829ed738372c029a4d701f2e27645a659cae50d17a25817d0abca67bbe8f1c9168ab66cf71d7e44cd296433580564193e18036d470fa2722808745d94808ecacaa26abad0da3630e807e2ae72d092aea01825285d02010000000000000beb2c87466bf3df371e75088046cedbae394d2884dc5ca29cc1b2974640a922825859590300000688dd045f153ad510663a85334fdd96a653016fd9fb1cbee2becdb0985bd2a6da396a7f4f98c1187b40864f898bd603bddbc24a9e7697ea9750e6030d2d44f34fa8c1939347270313c13282f0d6af7f26b8dcce80848f45aafeaa68cc14530100",
"witness_type": 2
},
"success": true
"challenge_chain_sp_proof": {
"normalized_to_identity": false,
"witness": "0x0300079b45573357b7ec6e9c8bee63f27309c1721b374a84bc77b8701544d915e3a5d4bca907a8cde927908644e57331503ca956623a8929245a15e7331e4070c25411aa409ae2c96c189acd1482c4161617d889392db49527e1965c51124fc92c5a010000000000000e71a8f032897290c27809c9b229fd0659bc435b9cf2351c1968efe8bbde89b409728f2d010037ea5c3e059d5da817e191005ba723ca004fd68c2f9debe3790ff72e97b43c21eaf47f252763a30d1ced338020802e17948ef26e8a8065fa020f6246a8746928a4029a6c6f52aae95628bacf66d1116115fed19b6653823734b69ce23082b642010000000000002b54f8df16d648b49cfdea068d3221fb71ff8202e2d8be92bfa63ab01587d02f4e67fecf0200f7540222073903c7baa168bd42317f6abce3ae54230d79b63d692401905d5a9fdb3c82d9e8a987949d5701721c488cdaa0c03075f9e96d41dc08ade21d2bc300d8c5d82f16d98efa7a9117c13e685511b3552765b4d3602902485f3def7ccb010302",
"witness_type": 2
},
"finished_sub_slots": [],
"foliage": {
"foliage_block_data": {
"extension_data": "0x0000000000000000000000000000000000000000000000000000000003a2c7c9",
"farmer_reward_puzzle_hash": "0x0ea986421d3bcc6d073038fe4c120483860376d8c1072d6be8b2c1d3d48d3812",
"pool_signature": "0xae5ef60f09f4065912ea3c0b18ae3afadd306f64edc4c1204250aacdab414236e8114e041005ad073513c3897d1f6d3004beac0b12f5d56b397ecb2bb35daf197c47ae974d1038bee7d33dfc9d609373a62b98035ba8d25bf61c6a995b11c165",
"pool_target": {
"max_height": 0,
"puzzle_hash": "0x0ea986421d3bcc6d073038fe4c120483860376d8c1072d6be8b2c1d3d48d3812"
},
"unfinished_reward_block_hash": "0x0d7533c8eca5f9aee9b8c232ec47bef465b1d5631f5e40ecbec123fd71c7336e"
},
"foliage_block_data_signature": "0x88ff3db6f0e52ae0ba9558847ffeb3f731cf0f94b3e2c37ec08c00cb9cca39e81390e8b023136b87ad490bd0e5309ac511e3a95a72cd0d8d2ab2347d501b1350c178d4341f80e1cf874596f53a0aca6f3a0cf55464aa4f375df5784b23c15959",
"foliage_transaction_block_hash": null,
"foliage_transaction_block_signature": null,
"prev_block_hash": "0xf8fac7dafb2174e8ced99e016a3a5977fe9108e2eac6ff2655cb7070b1f2f400",
"reward_block_hash": "0x184a367d2635cce46baf779fd6fd505ac5b6ae5443077780ba01a27565ac15b3"
},
"foliage_transaction_block": null,
"infused_challenge_chain_ip_proof": {
"normalized_to_identity": false,
"witness": "0x0000bf6567f67906994b3ac8bc457acd57b11d06383c82f9a86faa45376c1ece3d4fe8baac63b6dd5ca2a39da6b539c21d5cd4296739b9ff21ec272e2534a35ab72397e4da93d742e3d88114af48c332c64da5c84e265b28ae7fe784bfa21bf409290100000000000003f930c74754a9512f5c741fb056f63db59a55a4aae5ce19570b3835d757c2909fd7fadf0300f008dffb1f5435474e38d89c32e1152b8aaf9412f8edf47f43b34859b9a507f3dc34cb40d5f4a7fdfb9fa63a9e277a450ca72f33f8ebc8bd3e7c3c982321e428ef08af14991be2c8a92f7a6efa97a5e266adb30efb8c23d9fbff5cc2b74e7b13010000000000000beb2c9bfd20dc044275a2c2bcc205676e9aa78753b085661548d480d58437348637a1210200d27a64ae70dfbb769dc48a30bf3a6f170ca801cbb3c1046e5c0dcb0fecca745fc8c03c7f600e6c128e52e207dbe874b9f953cb1b39df1fbcfa22f0f250fc2568f7aea2c33c7f994ffc4253039fdcd63a192d3133d70249f715c366f571ec42160100",
"witness_type": 2
},
"reward_chain_block": {
"challenge_chain_ip_vdf": {
"challenge": "0xc627e4207c6842f2a4cf450990815cc1451ec00ea3fcb29fec6abf792b8dcc59",
"number_of_iterations": 7616131,
"output": {
"data": "0x03001da60388bd507fe9dc33808c4ef11e2aa2294a0ade5fb2154c1ee7b55fc19d0d87c4af5a710f584a9f0ae4ef0228189f2fcb818a573bd62387a064d37f19900912475875c0ff36ab61511c47f9c91bc130b24c897ed3055668f7ea6d81ba42020401"
}
},
"challenge_chain_sp_signature": "0x94d0409cccb05a6deac1f110f98e436fece58ac074b337db063891233a3d987cec8d08d3c215e93bcdfeca59858df42d110b75d23a8f02ecc1b06db89258280c883434af10d9692a8168f6e706ddf8c1bf747e65c4dcb93e55ba579e6452eb50",
"challenge_chain_sp_vdf": {
"challenge": "0xc627e4207c6842f2a4cf450990815cc1451ec00ea3fcb29fec6abf792b8dcc59",
"number_of_iterations": 4259840,
"output": {
"data": "0x02003f9bc7b8c6998affeb87bf4ebaeff14c7776a1e5492a80fc67e5ddd3037dc0ca7e9f2c1a25bbfc422464c70e4ea0e31e9d4206aaa1a5c4141899405ebfe9d82ae842791d48bfe21d1f31eb8a62a464d4d83928990fea3c6e218ddca78677591b0200"
}
},
"height": 300000,
"infused_challenge_chain_ip_vdf": {
"challenge": "0x361d6612a2911a6ae919857c3c13b8ddaee498134fc690fd809b5ef85c37fc9d",
"number_of_iterations": 1171766,
"output": {
"data": "0x020078c56de302e5ebb1782e34e172ccb954678211bf79a7a4176d19f0147e14be9cbbfc778c5c30a2d565d95827ac6edc8f11d7bed085becbd3d80f99458a921918c525abd8f0a5ade243d45aacad6c5fa77ef67c9639763e75f78cd19519255b0d0302"
}
},
"is_transaction_block": false,
"pos_ss_cc_challenge_hash": "0xc627e4207c6842f2a4cf450990815cc1451ec00ea3fcb29fec6abf792b8dcc59",
"proof_of_space": {
"challenge": "0x1a23b4a85d0ba4cc485f2f95c73ba71b55a6adbbabab6253f40c8c7351ba051f",
"plot_public_key": "0xb89fea9c84b7b2fb578d3e7d767127a6d3ca60f71fcd3e2a38b69bbbf1a00288acf88d685911d3500ea4b38193c9a850",
"pool_contract_puzzle_hash": null,
"pool_public_key": "0xa932882ec9c6c20bc843ddd09592dadf293fdbb2523d92e08c5c536fee5d60678613dec909053a0f41a03fcb787b97d2",
"proof": "0xa55eae00b6a7f709a0abcf394e568786b6dff14b6beb5c31703e86cb0b9972ce6ef07696b54b93215ede46d6c7a7100b64f88b66cca0efab9e8c92c575e812262364a55e205700eb6aa69f77ca760223deacaa06a7507e9b1a775446e4713e15d6a73036654807b79e23b588c556b5abd62b15bff7f5d9d32d7ff4bdae5b4f3531a25be39dda8c470305efc4fb0d964b0bbb68d002c972b37223e82ddf5efa961138e858bea0b9ad84b707851ccb1b3963af98c5a6ee92f4a5e3ba8356bbd406a820dd13ce0e7e5514adfd4eea37f92c15c2f1420fe36c4ec69864fcf5cf0145ad7eb352635ca511d14a4dba03dd9c3e87363b8fd6fadc2331f745eac9832567",
"size": 32
},
"reward_chain_ip_vdf": {
"challenge": "0x9c55eb88e039b54eae3391d9909ce20f17dd19a6506f562fceeaa9e85c28b17c",
"number_of_iterations": 1171766,
"output": {
"data": "0x0200fb0e0266d6072d840f8b9aea5790dc8f93fca8eef950dd9ed166a3bb6d8f617e1267d182712314059f0fae014a579bf1e58a5453a7fddf1b3a02fb6aac255d23054f875e9967c2deae461195f2183938765517bdc553d5f692f75b8e8c8a2d460100"
}
},
"reward_chain_sp_signature": "0x993b8762ee16ac9bdb14af5a275aa889bc738d982603b894012d4977b3664a015c4ea514bafd3d87ef3b4cade40345ed12434331de746b00cca632c23b3a6f0b9e00bdcce7c4cb78740519d28e9f91fd201775c326ddce87313d4905020aa13b",
"reward_chain_sp_vdf": {
"challenge": "0x5b86f478a8283bd02497b3d9a22187e98da48b459629d77b4bcfe8da7cd7ebf4",
"number_of_iterations": 4259840,
"output": {
"data": "0x000054ec3c7503611630514166715f66fa5e7e9a9ef8dbfc4af01add08605f1cea7e833b901fd80bb73d2bdec22cb13881b2ceefc6eaf8438f19b4bf122611811f7069a545d5d2922a8d6e571d3eb7f37e84123fa967fc9c08ce8a2e192965d288000100"
}
},
"signage_point_index": 4,
"total_iters": 686511371907,
"weight": 5196937780
},
"reward_chain_ip_proof": {
"normalized_to_identity": false,
"witness": "0x0100bf90aade48f8da6a6aa5cea88342645093556fb74f8b1daacf9b3d67bd48c0236aae8967ff09f41730565e8d8fda6fc8ca06cd5c15c310644148bd16438fec3f2ca46210667987ab8cd00be42f47b7c9cdadbe540d348c5b7bd086bbe584d6350100000000000003f930efcf17d15441b9309281c0d27501788a9d49bbff86c7de11b3452e1a9b022075c9010058e40cad2e392c05fcfefbe156a56e611adb05050bc1736b4dc88b051fff022b1ebc1b66ab89f969942bd30c38ef77afbf06900f9075a1d7ee9af7b82f7a6c6201b3e9138dc9100ac8e856193d9f1eb56ebeb4179e8d5f768c481bdd0cbd8e02010000000000000beb2cf4c543266af09709efdb71d1d85315fe1969daf6790d73b1c12a6399cfaf95f8b900006b97e33565f285c59eb4d7247fd3749439cccf1f72c9a2c2152c758b575bef3fc4ebec47a7c47dd28cb6aa0da1932a303e7d395eda7b199d48b9e63bdf0a28276f75a89f429b98e0f6deb8dcf92781c4f33de080d88ec5a1c707f6a167674f400100",
"witness_type": 2
},
"reward_chain_sp_proof": {
"normalized_to_identity": false,
"witness": "0x0200f7c222a940a69270100a1b3e483ca315ddcd7d1abb3dff1b39fcdb7566d2469d24dfa935105f95c63cad911203953d4e069e4a19d080dffc15ee179b919e7638972a796e3216de1ec31bd083f5644b85576732249e93c0d49e10ae1f2af44f43010000000000000e71a8fe01034e2dbc6c4fb1274cb6b040060122b2a4a3ec6cb62f3814a15208e1f08bf3010051f8b9638a5da334a156930d2efe469988ca6b7b86dbeb932b2d70b22c0ada74864b759e5280f781c5d29e4d623c51c00e63f611a3964b65951039a61b208f329aa475f5b43ec1d47178d210165e9567b4aff9209b14478c9b923469163d6504010000000000002b54f8b271c3c3ee0af4495ac87356fd338d8a45499283a35527be1ad05c7b08b4c74f89030090aefd792a726d741a3c22c414bd9e533c7703218eccd0316aadf0ae8aa02933f22e92fe53085caf369e9ef20109b16f3377560bb5e8e8082eabf3207d35140a734ab9a5bdd1a3a4d0f501750d9b91c4d9a40a54c51a0f350ca63aadb80691180100",
"witness_type": 2
},
"transactions_generator": null,
"transactions_generator_ref_list": [],
"transactions_info": null
},
"success": true
}
File diff suppressed because one or more lines are too long
+145 -145
View File
@@ -1,148 +1,148 @@
{
"english": [
[
"00000000000000000000000000000000",
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about",
"5eb00bbddcf069084889a8ab9155568165f5c453ccb85e70811aaed6f6da5fc19a5ac40b389cd370d086206dec8aa6c43daea6690f20ad3d8d48b2d2ce9e38e4",
"aban aban aban aban aban aban aban aban aban aban aban abou"
],
[
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
"legal winner thank year wave sausage worth useful legal winner thank yellow",
"878386efb78845b3355bd15ea4d39ef97d179cb712b77d5c12b6be415fffeffe5f377ba02bf3f8544ab800b955e51fbff09828f682052a20faa6addbbddfb096",
"lega winn than year wave saus wort usef lega winn than yell"
],
[
"80808080808080808080808080808080",
"letter advice cage absurd amount doctor acoustic avoid letter advice cage above",
"77d6be9708c8218738934f84bbbb78a2e048ca007746cb764f0673e4b1812d176bbb173e1a291f31cf633f1d0bad7d3cf071c30e98cd0688b5bcce65ecaceb36",
"lett advi cage absu amou doct acou avoi lett advi cage abov"
],
[
"ffffffffffffffffffffffffffffffff",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong",
"b6a6d8921942dd9806607ebc2750416b289adea669198769f2e15ed926c3aa92bf88ece232317b4ea463e84b0fcd3b53577812ee449ccc448eb45e6f544e25b6",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wron"
],
[
"000000000000000000000000000000000000000000000000",
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent",
"4975bb3d1faf5308c86a30893ee903a976296609db223fd717e227da5a813a34dc1428b71c84a787fc51f3b9f9dc28e9459f48c08bd9578e9d1b170f2d7ea506",
"aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban agen"
],
[
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will",
"b059400ce0f55498a5527667e77048bb482ff6daa16c37b4b9e8af70c85b3f4df588004f19812a1a027c9a51e5e94259a560268e91cd10e206451a129826e740",
"lega winn than year wave saus wort usef lega winn than year wave saus wort usef lega will"
],
[
"808080808080808080808080808080808080808080808080",
"letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter always",
"04d5f77103510c41d610f7f5fb3f0badc77c377090815cee808ea5d2f264fdfabf7c7ded4be6d4c6d7cdb021ba4c777b0b7e57ca8aa6de15aeb9905dba674d66",
"lett advi cage absu amou doct acou avoi lett advi cage absu amou doct acou avoi lett alwa"
],
[
"ffffffffffffffffffffffffffffffffffffffffffffffff",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when",
"d2911131a6dda23ac4441d1b66e2113ec6324354523acfa20899a2dcb3087849264e91f8ec5d75355f0f617be15369ffa13c3d18c8156b97cd2618ac693f759f",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when"
],
[
"0000000000000000000000000000000000000000000000000000000000000000",
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
"408b285c123836004f4b8842c89324c1f01382450c0d439af345ba7fc49acf705489c6fc77dbd4e3dc1dd8cc6bc9f043db8ada1e243c4a0eafb290d399480840",
"aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban art"
],
[
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title",
"761914478ebf6fe16185749372e91549361af22b386de46322cf8b1ba7e92e80c4af05196f742be1e63aab603899842ddadf4e7248d8e43870a4b6ff9bf16324",
"lega winn than year wave saus wort usef lega winn than year wave saus wort usef lega winn than year wave saus wort titl"
],
[
"8080808080808080808080808080808080808080808080808080808080808080",
"letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless",
"848bbe19cad445e46f35fd3d1a89463583ac2b60b5eb4cfcf955731775a5d9e17a81a71613fed83f1ae27b408478fdec2bbc75b5161d1937aa7cdf4ad686ef5f",
"lett advi cage absu amou doct acou avoi lett advi cage absu amou doct acou avoi lett advi cage absu amou doct acou bles"
],
[
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote",
"e28a37058c7f5112ec9e16a3437cf363a2572d70b6ceb3b6965447623d620f14d06bb321a26b33ec15fcd84a3b5ddfd5520e230c924c87aaa0d559749e044fef",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote"
],
[
"9e885d952ad362caeb4efe34a8e91bd2",
"ozone drill grab fiber curtain grace pudding thank cruise elder eight picnic",
"e2f88a043776c828063d4c3c97173944d32cf847a925b6e40b0b8bd0b4bead3ba734bdda5250d4698b310a71c9934e1a48e562315ce22bf85f89459df0e73a6c",
"ozon dril grab fibe curt grac pudd than crui elde eigh picn"
],
[
"6610b25967cdcca9d59875f5cb50b0ea75433311869e930b",
"gravity machine north sort system female filter attitude volume fold club stay feature office ecology stable narrow fog",
"31736b4f31612ece84404c74a5d3b938a092480eb89c11b81491f1a3657eb2fe50024610fbe814df55913a87ef741020fcf076a75a29aea0aba638126ba4c8bb",
"grav mach nort sort syst fema filt atti volu fold club stay feat offi ecol stab narr fog"
],
[
"68a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc74e6ce7c",
"hamster diagram private dutch cause delay private meat slide toddler razor book happy fancy gospel tennis maple dilemma loan word shrug inflict delay length",
"17e4b5661796eeff8904550f8572289317ece7c1cc1316469f8f4c986c1ffd7b9f4c3aeac3e1713ffc21fa33707d09d57a2ece358d72111ef7c7658e7b33f2d5",
"hams diag priv dutc caus dela priv meat slid todd razo book happ fanc gosp tenn mapl dile loan word shrug infl dela leng"
],
[
"c0ba5a8e914111210f2bd131f3d5e08d",
"scheme spot photo card baby mountain device kick cradle pact join borrow",
"00e1e39a39e23735adab690d0ffbefda6cacc063b4a5fcc605de060bd370adc54c94370d966b9a3fae5ed16bd58a02224cbefca4146a083951b70be2a2ce3dcc",
"sche spot phot card baby moun devi kick crad pact join borr"
],
[
"6d9be1ee6ebd27a258115aad99b7317b9c8d28b6d76431c3",
"horn tenant knee talent sponsor spell gate clip pulse soap slush warm silver nephew swap uncle crack brave",
"e893fc34fa2a78ceaaea78c246b69257ad283fa538d88f3c4520beb618a2062b8ec4920ed1793fff6ad443523ed18c03da433004d0a1e9497e194621607bc9e2",
"horn tena knee tale spon spel gate clip puls soap slus warm silv neph swap uncl crac brav"
],
[
"9f6a2878b2520799a44ef18bc7df394e7061a224d2c33cd015b157d746869863",
"panda eyebrow bullet gorilla call smoke muffin taste mesh discover soft ostrich alcohol speed nation flash devote level hobby quick inner drive ghost inside",
"3e066d7dee2dbf8fcd3fe240a3975658ca118a8f6f4ca81cf99104944604b05a5090a79d99e545704b914ca0397fedb82fd00fd6a72098703709c891a065ee49",
"pand eyeb bull gori call smok muff tast mesh disc soft ostr alco spee nati flas devo leve hobb quic inne driv ghos insi"
],
[
"23db8160a31d3e0dca3688ed941adbf3",
"cat swing flag economy stadium alone churn speed unique patch report train",
"7ea73b3a398f8a71f7dde589d972b0358d3fa8b9e91317ecc544e42752b1bb251a1926b1f4c69eec0a80c0396aa0f7df29f7d73411d3106eba539f3d584fcdf8",
"cat swin flag econ stad alon chur spee uniq patc repo trai"
],
[
"8197a4a47f0425faeaa69deebc05ca29c0a5b5cc76ceacc0",
"light rule cinnamon wrap drastic word pride squirrel upgrade then income fatal apart sustain crack supply proud access",
"d0ca8861283a7124515e825b7a06de8e0ad0dd5ac7888013efe6e3c300d4745bbd2c729f3355d769d23718579e7b735999a8f0b38e22b5bff45c9085af449056",
"ligh rule cinn wrap dras word prid squi upgr then inco fata apar sust crac supp prou acce"
],
[
"066dca1a2bb7e8a1db2832148ce9933eea0f3ac9548d793112d9a95c9407efad",
"all hour make first leader extend hole alien behind guard gospel lava path output census museum junior mass reopen famous sing advance salt reform",
"fc795be0c3f18c50dddb34e72179dc597d64055497ecc1e69e2e56a5409651bc139aae8070d4df0ea14d8d2a518a9a00bb1cc6e92e053fe34051f6821df9164c",
"all hour make firs lead exte hole alie behi guar gosp lava path outp cens muse juni mass reop famo sing adva salt refo"
],
[
"f30f8c1da665478f49b001d94c5fc452",
"vessel ladder alter error federal sibling chat ability sun glass valve picture",
"e2d7f9a462875c1325f44f321392edc8eaafebf1547c89d72d10b41b4ee23af3fb0ab010f39f5cbea3b3aa671161b58262b6a508bcbe2d34ee272a942534d45f",
"vess ladd alte erro fede sibl chat abil sun glas valv pict"
],
[
"c10ec20dc3cd9f652c7fac2f1230f7a3c828389a14392f05",
"scissors invite lock maple supreme raw rapid void congress muscle digital elegant little brisk hair mango congress clump",
"a555426999448df9022c3afc2ed0e4aebff3a0ac37d8a395f81412e14994efc960ed168d39a80478e0467a3d5cfc134fef2767c1d3a27f18e3afeb11bfc8e6ad",
"scis invi lock mapl supr raw rapi void cong musc digi eleg litt bris hair mang cong clum"
],
[
"f585c11aec520db57dd353c69554b21a89b20fb0650966fa0a9d6f74fd989d8f",
"void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold",
"b873212f885ccffbf4692afcb84bc2e55886de2dfa07d90f5c3c239abc31c0a6ce047e30fd8bf6a281e71389aa82d73df74c7bbfb3b06b4639a5cee775cccd3c",
"void come effo suff camp surv warr heav shoo prim clut crus open amaz scre patr grou spac poin ten exis slus invo unfo"
]
"english": [
[
"00000000000000000000000000000000",
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about",
"5eb00bbddcf069084889a8ab9155568165f5c453ccb85e70811aaed6f6da5fc19a5ac40b389cd370d086206dec8aa6c43daea6690f20ad3d8d48b2d2ce9e38e4",
"aban aban aban aban aban aban aban aban aban aban aban abou"
],
[
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
"legal winner thank year wave sausage worth useful legal winner thank yellow",
"878386efb78845b3355bd15ea4d39ef97d179cb712b77d5c12b6be415fffeffe5f377ba02bf3f8544ab800b955e51fbff09828f682052a20faa6addbbddfb096",
"lega winn than year wave saus wort usef lega winn than yell"
],
[
"80808080808080808080808080808080",
"letter advice cage absurd amount doctor acoustic avoid letter advice cage above",
"77d6be9708c8218738934f84bbbb78a2e048ca007746cb764f0673e4b1812d176bbb173e1a291f31cf633f1d0bad7d3cf071c30e98cd0688b5bcce65ecaceb36",
"lett advi cage absu amou doct acou avoi lett advi cage abov"
],
[
"ffffffffffffffffffffffffffffffff",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong",
"b6a6d8921942dd9806607ebc2750416b289adea669198769f2e15ed926c3aa92bf88ece232317b4ea463e84b0fcd3b53577812ee449ccc448eb45e6f544e25b6",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wron"
],
[
"000000000000000000000000000000000000000000000000",
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon agent",
"4975bb3d1faf5308c86a30893ee903a976296609db223fd717e227da5a813a34dc1428b71c84a787fc51f3b9f9dc28e9459f48c08bd9578e9d1b170f2d7ea506",
"aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban agen"
],
[
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal will",
"b059400ce0f55498a5527667e77048bb482ff6daa16c37b4b9e8af70c85b3f4df588004f19812a1a027c9a51e5e94259a560268e91cd10e206451a129826e740",
"lega winn than year wave saus wort usef lega winn than year wave saus wort usef lega will"
],
[
"808080808080808080808080808080808080808080808080",
"letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter always",
"04d5f77103510c41d610f7f5fb3f0badc77c377090815cee808ea5d2f264fdfabf7c7ded4be6d4c6d7cdb021ba4c777b0b7e57ca8aa6de15aeb9905dba674d66",
"lett advi cage absu amou doct acou avoi lett advi cage absu amou doct acou avoi lett alwa"
],
[
"ffffffffffffffffffffffffffffffffffffffffffffffff",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when",
"d2911131a6dda23ac4441d1b66e2113ec6324354523acfa20899a2dcb3087849264e91f8ec5d75355f0f617be15369ffa13c3d18c8156b97cd2618ac693f759f",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo when"
],
[
"0000000000000000000000000000000000000000000000000000000000000000",
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art",
"408b285c123836004f4b8842c89324c1f01382450c0d439af345ba7fc49acf705489c6fc77dbd4e3dc1dd8cc6bc9f043db8ada1e243c4a0eafb290d399480840",
"aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban aban art"
],
[
"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f",
"legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth useful legal winner thank year wave sausage worth title",
"761914478ebf6fe16185749372e91549361af22b386de46322cf8b1ba7e92e80c4af05196f742be1e63aab603899842ddadf4e7248d8e43870a4b6ff9bf16324",
"lega winn than year wave saus wort usef lega winn than year wave saus wort usef lega winn than year wave saus wort titl"
],
[
"8080808080808080808080808080808080808080808080808080808080808080",
"letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic avoid letter advice cage absurd amount doctor acoustic bless",
"848bbe19cad445e46f35fd3d1a89463583ac2b60b5eb4cfcf955731775a5d9e17a81a71613fed83f1ae27b408478fdec2bbc75b5161d1937aa7cdf4ad686ef5f",
"lett advi cage absu amou doct acou avoi lett advi cage absu amou doct acou avoi lett advi cage absu amou doct acou bles"
],
[
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote",
"e28a37058c7f5112ec9e16a3437cf363a2572d70b6ceb3b6965447623d620f14d06bb321a26b33ec15fcd84a3b5ddfd5520e230c924c87aaa0d559749e044fef",
"zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo vote"
],
[
"9e885d952ad362caeb4efe34a8e91bd2",
"ozone drill grab fiber curtain grace pudding thank cruise elder eight picnic",
"e2f88a043776c828063d4c3c97173944d32cf847a925b6e40b0b8bd0b4bead3ba734bdda5250d4698b310a71c9934e1a48e562315ce22bf85f89459df0e73a6c",
"ozon dril grab fibe curt grac pudd than crui elde eigh picn"
],
[
"6610b25967cdcca9d59875f5cb50b0ea75433311869e930b",
"gravity machine north sort system female filter attitude volume fold club stay feature office ecology stable narrow fog",
"31736b4f31612ece84404c74a5d3b938a092480eb89c11b81491f1a3657eb2fe50024610fbe814df55913a87ef741020fcf076a75a29aea0aba638126ba4c8bb",
"grav mach nort sort syst fema filt atti volu fold club stay feat offi ecol stab narr fog"
],
[
"68a79eaca2324873eacc50cb9c6eca8cc68ea5d936f98787c60c7ebc74e6ce7c",
"hamster diagram private dutch cause delay private meat slide toddler razor book happy fancy gospel tennis maple dilemma loan word shrug inflict delay length",
"17e4b5661796eeff8904550f8572289317ece7c1cc1316469f8f4c986c1ffd7b9f4c3aeac3e1713ffc21fa33707d09d57a2ece358d72111ef7c7658e7b33f2d5",
"hams diag priv dutc caus dela priv meat slid todd razo book happ fanc gosp tenn mapl dile loan word shrug infl dela leng"
],
[
"c0ba5a8e914111210f2bd131f3d5e08d",
"scheme spot photo card baby mountain device kick cradle pact join borrow",
"00e1e39a39e23735adab690d0ffbefda6cacc063b4a5fcc605de060bd370adc54c94370d966b9a3fae5ed16bd58a02224cbefca4146a083951b70be2a2ce3dcc",
"sche spot phot card baby moun devi kick crad pact join borr"
],
[
"6d9be1ee6ebd27a258115aad99b7317b9c8d28b6d76431c3",
"horn tenant knee talent sponsor spell gate clip pulse soap slush warm silver nephew swap uncle crack brave",
"e893fc34fa2a78ceaaea78c246b69257ad283fa538d88f3c4520beb618a2062b8ec4920ed1793fff6ad443523ed18c03da433004d0a1e9497e194621607bc9e2",
"horn tena knee tale spon spel gate clip puls soap slus warm silv neph swap uncl crac brav"
],
[
"9f6a2878b2520799a44ef18bc7df394e7061a224d2c33cd015b157d746869863",
"panda eyebrow bullet gorilla call smoke muffin taste mesh discover soft ostrich alcohol speed nation flash devote level hobby quick inner drive ghost inside",
"3e066d7dee2dbf8fcd3fe240a3975658ca118a8f6f4ca81cf99104944604b05a5090a79d99e545704b914ca0397fedb82fd00fd6a72098703709c891a065ee49",
"pand eyeb bull gori call smok muff tast mesh disc soft ostr alco spee nati flas devo leve hobb quic inne driv ghos insi"
],
[
"23db8160a31d3e0dca3688ed941adbf3",
"cat swing flag economy stadium alone churn speed unique patch report train",
"7ea73b3a398f8a71f7dde589d972b0358d3fa8b9e91317ecc544e42752b1bb251a1926b1f4c69eec0a80c0396aa0f7df29f7d73411d3106eba539f3d584fcdf8",
"cat swin flag econ stad alon chur spee uniq patc repo trai"
],
[
"8197a4a47f0425faeaa69deebc05ca29c0a5b5cc76ceacc0",
"light rule cinnamon wrap drastic word pride squirrel upgrade then income fatal apart sustain crack supply proud access",
"d0ca8861283a7124515e825b7a06de8e0ad0dd5ac7888013efe6e3c300d4745bbd2c729f3355d769d23718579e7b735999a8f0b38e22b5bff45c9085af449056",
"ligh rule cinn wrap dras word prid squi upgr then inco fata apar sust crac supp prou acce"
],
[
"066dca1a2bb7e8a1db2832148ce9933eea0f3ac9548d793112d9a95c9407efad",
"all hour make first leader extend hole alien behind guard gospel lava path output census museum junior mass reopen famous sing advance salt reform",
"fc795be0c3f18c50dddb34e72179dc597d64055497ecc1e69e2e56a5409651bc139aae8070d4df0ea14d8d2a518a9a00bb1cc6e92e053fe34051f6821df9164c",
"all hour make firs lead exte hole alie behi guar gosp lava path outp cens muse juni mass reop famo sing adva salt refo"
],
[
"f30f8c1da665478f49b001d94c5fc452",
"vessel ladder alter error federal sibling chat ability sun glass valve picture",
"e2d7f9a462875c1325f44f321392edc8eaafebf1547c89d72d10b41b4ee23af3fb0ab010f39f5cbea3b3aa671161b58262b6a508bcbe2d34ee272a942534d45f",
"vess ladd alte erro fede sibl chat abil sun glas valv pict"
],
[
"c10ec20dc3cd9f652c7fac2f1230f7a3c828389a14392f05",
"scissors invite lock maple supreme raw rapid void congress muscle digital elegant little brisk hair mango congress clump",
"a555426999448df9022c3afc2ed0e4aebff3a0ac37d8a395f81412e14994efc960ed168d39a80478e0467a3d5cfc134fef2767c1d3a27f18e3afeb11bfc8e6ad",
"scis invi lock mapl supr raw rapi void cong musc digi eleg litt bris hair mang cong clum"
],
[
"f585c11aec520db57dd353c69554b21a89b20fb0650966fa0a9d6f74fd989d8f",
"void come effort suffer camp survey warrior heavy shoot primary clutch crush open amazing screen patrol group space point ten exist slush involve unfold",
"b873212f885ccffbf4692afcb84bc2e55886de2dfa07d90f5c3c239abc31c0a6ce047e30fd8bf6a281e71389aa82d73df74c7bbfb3b06b4639a5cee775cccd3c",
"void come effo suff camp surv warr heav shoo prim clut crus open amaz scre patr grou spac poin ten exis slus invo unfo"
]
]
}