add Electron Cash
This commit is contained in:
parent
da165bcf5d
commit
cb83f0e4c9
6 changed files with 318 additions and 0 deletions
133
.github/workflows/electron-cash.yml
vendored
Normal file
133
.github/workflows/electron-cash.yml
vendored
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
name: electron-cash
|
||||||
|
|
||||||
|
# This workflow uses actions that are not certified by GitHub.
|
||||||
|
# They are provided by a third-party and are governed by
|
||||||
|
# separate terms of service, privacy policy, and support
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 6 * * 6' # 6 am on Saturdays
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- 'containers/cachyos/electron-cash/**'
|
||||||
|
|
||||||
|
env:
|
||||||
|
# Use docker.io for Docker Hub if empty
|
||||||
|
REGISTRY: ghcr.io
|
||||||
|
# github.repository as <account>/<repo>
|
||||||
|
IMAGE_NAME: ${{ github.repository_owner }}/containers/cachyos/electron-cash
|
||||||
|
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
# This is used to complete the identity challenge
|
||||||
|
# with sigstore/fulcio when running outside of PRs.
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Maximize build space
|
||||||
|
uses: AdityaGarg8/remove-unwanted-software@v1
|
||||||
|
with:
|
||||||
|
remove-dotnet: 'true'
|
||||||
|
remove-android: 'true'
|
||||||
|
remove-haskell: 'true'
|
||||||
|
|
||||||
|
- name: Get current date
|
||||||
|
id: date
|
||||||
|
run: echo "::set-output name=date::$(date +'%Y%m%d')"
|
||||||
|
|
||||||
|
- name: Test with environment variables
|
||||||
|
run: echo $DATE
|
||||||
|
env:
|
||||||
|
DATE: ${{ steps.date.outputs.date }}
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# Install the cosign tool except on PR
|
||||||
|
# https://github.com/sigstore/cosign-installer
|
||||||
|
- name: Install cosign
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
|
uses: sigstore/cosign-installer@6e04d228eb30da1757ee4e1dd75a0ec73a653e06 #v3.1.1
|
||||||
|
with:
|
||||||
|
cosign-release: 'v2.1.1'
|
||||||
|
|
||||||
|
# Login against a Docker registry except on PR
|
||||||
|
# https://github.com/docker/login-action
|
||||||
|
- name: Log into registry ${{ env.REGISTRY }}
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
|
uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c
|
||||||
|
with:
|
||||||
|
registry: ${{ env.REGISTRY }}
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
# Extract metadata (tags, labels) for Docker
|
||||||
|
# https://github.com/docker/metadata-action
|
||||||
|
- name: Extract Docker metadata
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
|
||||||
|
with:
|
||||||
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
|
|
||||||
|
|
||||||
|
# Build image using Buildah action
|
||||||
|
- name: Build Image
|
||||||
|
id: build_image
|
||||||
|
uses: redhat-actions/buildah-build@v2
|
||||||
|
with:
|
||||||
|
containerfiles: |
|
||||||
|
./containers/cachyos/electron-cash/Dockerfile
|
||||||
|
image: ${{ env.IMAGE_NAME }}
|
||||||
|
tags: ${{ steps.meta.outputs.tags }} ${{ steps.meta.outputs.tags }}.${{ steps.date.outputs.date }}
|
||||||
|
oci: false
|
||||||
|
layers: false
|
||||||
|
|
||||||
|
# Workaround bug where capital letters in your GitHub username make it impossible to push to GHCR.
|
||||||
|
# https://github.com/macbre/push-to-ghcr/issues/12
|
||||||
|
- name: Lowercase Registry
|
||||||
|
id: registry_case
|
||||||
|
uses: ASzc/change-string-case-action@v5
|
||||||
|
with:
|
||||||
|
string: ${{ env.IMAGE_REGISTRY }}
|
||||||
|
|
||||||
|
# Push the image to GHCR (Image Registry)
|
||||||
|
- name: Push To GHCR
|
||||||
|
uses: redhat-actions/push-to-registry@v2
|
||||||
|
id: push
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
|
env:
|
||||||
|
REGISTRY_USER: ${{ github.actor }}
|
||||||
|
REGISTRY_PASSWORD: ${{ github.token }}
|
||||||
|
with:
|
||||||
|
image: ${{ steps.build_image.outputs.image }}
|
||||||
|
tags: ${{ steps.build_image.outputs.tags }}
|
||||||
|
registry: ${{ steps.registry_case.outputs.lowercase }}
|
||||||
|
username: ${{ env.REGISTRY_USER }}
|
||||||
|
password: ${{ env.REGISTRY_PASSWORD }}
|
||||||
|
extra-args: |
|
||||||
|
--disable-content-trust
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Sign the resulting Docker image digest except on PRs.
|
||||||
|
# This will only write to the public Rekor transparency log when the Docker
|
||||||
|
# repository is public to avoid leaking data. If you would like to publish
|
||||||
|
# transparency data even for private images, pass --force to cosign below.
|
||||||
|
# https://github.com/sigstore/cosign
|
||||||
|
- name: Sign the published Docker image
|
||||||
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
|
env:
|
||||||
|
# https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
|
||||||
|
TAGS: ${{ steps.meta.outputs.tags }}
|
||||||
|
DIGEST: ${{ steps.push.outputs.digest }}
|
||||||
|
# This step uses the identity token to provision an ephemeral certificate
|
||||||
|
# against the sigstore community Fulcio instance.
|
||||||
|
run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
|
||||||
17
containers/cachyos/electron-cash/Dockerfile
Normal file
17
containers/cachyos/electron-cash/Dockerfile
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
FROM ghcr.io/andersrh/containers/cachyos/base-gui:main
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY containers/cachyos/electron-cash/electron-cash /app/electron-cash
|
||||||
|
|
||||||
|
RUN chown -R build /app
|
||||||
|
|
||||||
|
RUN pacman -Sy --noconfirm python-btchip python-hidapi zbar python-matplotlib
|
||||||
|
|
||||||
|
USER build
|
||||||
|
|
||||||
|
RUN cd electron-cash \
|
||||||
|
&& makepkg -si --noconfirm \
|
||||||
|
&& rm -rf /app/*
|
||||||
|
USER root
|
||||||
|
|
||||||
52
containers/cachyos/electron-cash/electron-cash/.SRCINFO
Normal file
52
containers/cachyos/electron-cash/electron-cash/.SRCINFO
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
pkgbase = electron-cash
|
||||||
|
pkgdesc = Lightweight Bitcoin Cash wallet
|
||||||
|
pkgver = 4.3.1
|
||||||
|
pkgrel = 3
|
||||||
|
url = http://www.electroncash.org/
|
||||||
|
arch = any
|
||||||
|
license = MIT
|
||||||
|
makedepends = automake
|
||||||
|
makedepends = autoconf
|
||||||
|
makedepends = git
|
||||||
|
makedepends = libtool
|
||||||
|
makedepends = protobuf
|
||||||
|
makedepends = python-requests
|
||||||
|
makedepends = python-setuptools
|
||||||
|
makedepends = python-tox
|
||||||
|
depends = hicolor-icon-theme
|
||||||
|
depends = python
|
||||||
|
depends = python-dateutil
|
||||||
|
depends = python-dnspython
|
||||||
|
depends = python-ecdsa
|
||||||
|
depends = python-jsonrpclib-pelix
|
||||||
|
depends = python-pathvalidate>=3.0.0
|
||||||
|
depends = python-protobuf
|
||||||
|
depends = python-pyaes
|
||||||
|
depends = python-pyqt5
|
||||||
|
depends = python-pysocks
|
||||||
|
depends = python-qrcode
|
||||||
|
depends = python-requests
|
||||||
|
depends = python-six
|
||||||
|
depends = python-stem
|
||||||
|
depends = qt5-base
|
||||||
|
depends = qt5-svg
|
||||||
|
depends = ttf-bitstream-vera
|
||||||
|
depends = python-certifi
|
||||||
|
optdepends = tor: Tor support
|
||||||
|
optdepends = python-btchip: Ledger hardware wallet support
|
||||||
|
optdepends = python-hidapi: Digital Bitbox hardware wallet support
|
||||||
|
optdepends = python-matplotlib: plot transaction history in graphical mode
|
||||||
|
optdepends = python-pycryptodomex: use PyCryptodome AES implementation instead of pyaes
|
||||||
|
optdepends = python-qdarkstyle: optional dark theme in graphical mode
|
||||||
|
optdepends = python-rpyc: send commands to Electrum Python console from an external script
|
||||||
|
optdepends = python-trezor: Trezor hardware wallet support
|
||||||
|
optdepends = python-keepkey: Trezor hardware wallet support
|
||||||
|
optdepends = zbar: QR code reading support
|
||||||
|
provides = electron-cash
|
||||||
|
conflicts = electron-cash
|
||||||
|
source = electron-cash-4.3.1.tar.gz::https://github.com/Electron-Cash/Electron-Cash/archive/4.3.1.tar.gz
|
||||||
|
source = secp256k1-0.20.9.tar.gz::https://github.com/Bitcoin-ABC/secp256k1/archive/v0.20.9.tar.gz
|
||||||
|
sha256sums = c85d4c0b641d4c4253ed7590224335d9144261f87e939282d17a5ddcc29f341f
|
||||||
|
sha256sums = 68e84775e57da77e19ccb6b0dde6ca0882377bdd48ecc6da0047a70201ec64c8
|
||||||
|
|
||||||
|
pkgname = electron-cash
|
||||||
105
containers/cachyos/electron-cash/electron-cash/PKGBUILD
Normal file
105
containers/cachyos/electron-cash/electron-cash/PKGBUILD
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
# Maintainer: Matthew Tran <0e4ef622@gmail.com>
|
||||||
|
# Contributor: Marcel O'Neil <marcel at marceloneil dot com>
|
||||||
|
# Contributor: Andy Weidenbaum <archbaum@gmail.com>
|
||||||
|
# Contributor: RunningDroid <runningdroid AT zoho.com>
|
||||||
|
# Contributor: Sebastian Lindqvist <dunpin@gmail.com>
|
||||||
|
# Contributor: Dan Beste <dan.ray.beste@gmail.com>
|
||||||
|
|
||||||
|
pkgname='electron-cash'
|
||||||
|
pkgdesc='Lightweight Bitcoin Cash wallet'
|
||||||
|
pkgver=4.3.1
|
||||||
|
secp256k1ver=0.20.9
|
||||||
|
pkgrel=3
|
||||||
|
url='http://www.electroncash.org/'
|
||||||
|
arch=('any')
|
||||||
|
license=('MIT')
|
||||||
|
makedepends=(
|
||||||
|
'automake'
|
||||||
|
'autoconf'
|
||||||
|
'git'
|
||||||
|
'libtool'
|
||||||
|
'protobuf'
|
||||||
|
'python-requests'
|
||||||
|
'python-setuptools'
|
||||||
|
'python-tox'
|
||||||
|
)
|
||||||
|
depends=(
|
||||||
|
'hicolor-icon-theme'
|
||||||
|
'python'
|
||||||
|
'python-dateutil'
|
||||||
|
'python-dnspython'
|
||||||
|
'python-ecdsa'
|
||||||
|
'python-jsonrpclib-pelix'
|
||||||
|
'python-pathvalidate>=3.0.0'
|
||||||
|
'python-protobuf'
|
||||||
|
'python-pyaes'
|
||||||
|
'python-pyqt5'
|
||||||
|
'python-pysocks'
|
||||||
|
'python-qrcode'
|
||||||
|
'python-requests'
|
||||||
|
'python-six'
|
||||||
|
'python-stem'
|
||||||
|
'qt5-base'
|
||||||
|
'qt5-svg'
|
||||||
|
'ttf-bitstream-vera'
|
||||||
|
'python-certifi'
|
||||||
|
)
|
||||||
|
optdepends=(
|
||||||
|
'tor: Tor support'
|
||||||
|
'python-btchip: Ledger hardware wallet support'
|
||||||
|
'python-hidapi: Digital Bitbox hardware wallet support'
|
||||||
|
'python-matplotlib: plot transaction history in graphical mode'
|
||||||
|
'python-pycryptodomex: use PyCryptodome AES implementation instead of pyaes'
|
||||||
|
'python-qdarkstyle: optional dark theme in graphical mode'
|
||||||
|
'python-rpyc: send commands to Electrum Python console from an external script'
|
||||||
|
'python-trezor: Trezor hardware wallet support'
|
||||||
|
'python-keepkey: Trezor hardware wallet support'
|
||||||
|
'zbar: QR code reading support'
|
||||||
|
)
|
||||||
|
provides=("${pkgname}")
|
||||||
|
conflicts=("${pkgname}")
|
||||||
|
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Electron-Cash/Electron-Cash/archive/${pkgver}.tar.gz"
|
||||||
|
"secp256k1-${secp256k1ver}.tar.gz::https://github.com/Bitcoin-ABC/secp256k1/archive/v${secp256k1ver}.tar.gz")
|
||||||
|
sha256sums=('c85d4c0b641d4c4253ed7590224335d9144261f87e939282d17a5ddcc29f341f'
|
||||||
|
'68e84775e57da77e19ccb6b0dde6ca0882377bdd48ecc6da0047a70201ec64c8')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
rmdir "Electron-Cash-${pkgver}/contrib/secp256k1"
|
||||||
|
ln -s "${PWD}/secp256k1-${secp256k1ver}" "Electron-Cash-${pkgver}/contrib/secp256k1"
|
||||||
|
|
||||||
|
sed -i 's/py\.test/pytest/' "Electron-Cash-${pkgver}/tox.ini"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
export GIT_SUBMODULE_SKIP=1;
|
||||||
|
|
||||||
|
cd "Electron-Cash-${pkgver}"
|
||||||
|
|
||||||
|
# python2-pyqt5 and qt5-base are needed for _only_ the icons...
|
||||||
|
|
||||||
|
# Compile the icons file for Qt:
|
||||||
|
pyrcc5 icons.qrc -o electroncash_gui/qt/icons_rc.py
|
||||||
|
# Compile the protobuf description file:
|
||||||
|
protoc --proto_path=electroncash/ --python_out=electroncash/ electroncash/paymentrequest.proto
|
||||||
|
protoc --proto_path=electroncash_plugins/fusion/protobuf/ --python_out=electroncash_plugins/fusion/ electroncash_plugins/fusion/protobuf/fusion.proto
|
||||||
|
# Create translations (optional):
|
||||||
|
python contrib/make_locale
|
||||||
|
# Use libsecp
|
||||||
|
bash contrib/make_secp
|
||||||
|
# Build
|
||||||
|
python setup.py build
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
cd "Electron-Cash-${pkgver}"
|
||||||
|
|
||||||
|
tox -e py311 -- --ignore-glob='*regtest*' --deselect='electroncash/tests/test_transaction.py::TestTransaction::test_tx_unsigned'
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "Electron-Cash-${pkgver}"
|
||||||
|
|
||||||
|
python setup.py install --root="${pkgdir}" --optimize=1
|
||||||
|
}
|
||||||
|
|
||||||
|
# vim: ts=2 sw=2 et:
|
||||||
|
|
@ -61,3 +61,12 @@ pull=true
|
||||||
root=false
|
root=false
|
||||||
replace=false
|
replace=false
|
||||||
home="~/containers/lbry"
|
home="~/containers/lbry"
|
||||||
|
|
||||||
|
[electron-cash]
|
||||||
|
image=ghcr.io/andersrh/containers/cachyos/electron-cash:main
|
||||||
|
init=false
|
||||||
|
#nvidia=true
|
||||||
|
pull=true
|
||||||
|
root=false
|
||||||
|
replace=false
|
||||||
|
home="~/containers/electron-cash"
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ podman rm -f ledgerlive2
|
||||||
podman rm -f development
|
podman rm -f development
|
||||||
podman rm -f bitwarden
|
podman rm -f bitwarden
|
||||||
podman rm -f lbry
|
podman rm -f lbry
|
||||||
|
podman rm -f electron-cash
|
||||||
|
|
||||||
distrobox assemble create --file /etc/distrobox.ini
|
distrobox assemble create --file /etc/distrobox.ini
|
||||||
|
|
||||||
|
|
@ -22,3 +23,4 @@ distrobox enter development -- distrobox-export --app codium
|
||||||
|
|
||||||
distrobox enter bitwarden -- distrobox-export --app bitwarden-desktop
|
distrobox enter bitwarden -- distrobox-export --app bitwarden-desktop
|
||||||
distrobox enter lbry -- distrobox-export --app lbry
|
distrobox enter lbry -- distrobox-export --app lbry
|
||||||
|
distrobox enter electron-cash -- distrobox-export --app electron-cash
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue