mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-08-24 02:24:23 -05:00
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 "*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: 'Close stale issues'
|
||||
name: "Close stale issues"
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 11 * * *'
|
||||
- cron: "0 11 * * *"
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
|
||||
@@ -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
|
||||
|
||||
...
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -3,7 +3,7 @@ name: 📦🚀 Trigger Main Docker Build
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- "**.md"
|
||||
branches:
|
||||
- main
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
tabWidth: 2
|
||||
singleQuote: false
|
||||
experimentalTernaries: true
|
||||
useTabs: false
|
||||
@@ -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": {
|
||||
|
||||
@@ -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": "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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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"]
|
||||
"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
File diff suppressed because one or more lines are too long
+157
-157
File diff suppressed because one or more lines are too long
+147
-147
File diff suppressed because one or more lines are too long
+102
-102
@@ -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
@@ -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"
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user