299 lines
9.9 KiB
Bash
299 lines
9.9 KiB
Bash
VERSION=v0.20.0-beta-zeus
|
|
|
|
ANDROID_FILE=Lndmobile.aar
|
|
IOS_FILE=Lndmobile.xcframework
|
|
|
|
ANDROID_SHA256='f984f0a910fcec0b4aedafcb1a7b5e8ca40a122646774d54ba0156a7075e87ab'
|
|
IOS_SHA256='018bf400f48cfe838c605d99b310955187c476dd382623b2cb8f2235b5dfb74a'
|
|
|
|
FILE_PATH=https://github.com/ZeusLN/lnd/releases/download/$VERSION/
|
|
|
|
ANDROID_LINK=$FILE_PATH$ANDROID_FILE
|
|
IOS_LINK=$FILE_PATH$IOS_FILE.zip
|
|
|
|
# LDK Node
|
|
LDK_NODE_VERSION=v0.7.0-zeus-closed-channels
|
|
LDK_NODE_IOS_FILE=LDKNodeFFI.xcframework
|
|
LDK_NODE_IOS_SHA256='ad730bbb30d1bfb96a4152ee15e705332b34e39886d6eeefb6a48fcd11346f8a'
|
|
LDK_NODE_IOS_LINK=https://github.com/ZeusLN/ldk-node/releases/download/$LDK_NODE_VERSION/$LDK_NODE_IOS_FILE.zip
|
|
|
|
# test that curl and unzip are installed
|
|
if ! command -v curl &> /dev/null
|
|
then
|
|
echo "curl could not be found. Please install it and run the script again."
|
|
exit
|
|
fi
|
|
|
|
if ! command -v unzip &> /dev/null
|
|
then
|
|
echo "unzip could not be found. Please install it and run the script again."
|
|
exit
|
|
fi
|
|
|
|
###########
|
|
# Android #
|
|
###########
|
|
|
|
if ! echo "$ANDROID_SHA256 android/lndmobile/$ANDROID_FILE" | sha256sum -c -; then
|
|
echo "Android library file missing or checksum failed" >&2
|
|
|
|
# delete old instance of library file
|
|
rm android/lndmobile/$ANDROID_FILE
|
|
|
|
# download Android LND library file
|
|
curl -L $ANDROID_LINK > android/lndmobile/$ANDROID_FILE
|
|
|
|
# check checksum
|
|
if ! echo "$ANDROID_SHA256 android/lndmobile/$ANDROID_FILE" | sha256sum -c -; then
|
|
echo "Android checksum failed" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
#######
|
|
# iOS #
|
|
#######
|
|
|
|
mkdir ios/LndMobileLibZipFile
|
|
|
|
if ! echo "$IOS_SHA256 ios/LndMobileLibZipFile/$IOS_FILE.zip" | sha256sum -c -; then
|
|
echo "iOS library file missing or checksum failed" >&2
|
|
|
|
# delete old instance of library file
|
|
rm ios/LndMobileLibZipFile/$IOS_FILE.zip
|
|
|
|
# download iOS LND library file
|
|
curl -L $IOS_LINK > ios/LndMobileLibZipFile/$IOS_FILE.zip
|
|
|
|
# check checksum
|
|
if ! echo "$IOS_SHA256 ios/LndMobileLibZipFile/$IOS_FILE.zip" | sha256sum -c -; then
|
|
echo "iOS checksum failed" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# delete old instances of library files
|
|
rm -rf ios/LncMobile/$IOS_FILE
|
|
|
|
# unzip LND library file
|
|
unzip ios/LndMobileLibZipFile/$IOS_FILE.zip -d ios/LncMobile
|
|
|
|
###############
|
|
# CashuDevKit #
|
|
###############
|
|
|
|
CDK_VERSION=0.14.2
|
|
# Local filename (what we save as)
|
|
CDK_ANDROID_FILE=cashudevkit.aar
|
|
CDK_IOS_FILE=cdkFFI.xcframework
|
|
# Remote filename (what's on GitHub releases)
|
|
CDK_ANDROID_REMOTE=cdk-kotlin-$CDK_VERSION.aar
|
|
|
|
CDK_ANDROID_SHA256='e8e9ee354cf21546e49946d351a6c482355f8b3800c60a8a9348c4ae40f529cb'
|
|
CDK_IOS_SHA256='5c4a152cdcd6aaa6bbd1aef65c43eaeeb6ebde3f0f365fb2254cefbc49d5ea49'
|
|
|
|
CDK_FILE_PATH=https://github.com/cashubtc/cdk-kotlin/releases/download/v$CDK_VERSION/
|
|
CDK_IOS_PATH=https://github.com/cashubtc/cdk-swift/releases/download/v$CDK_VERSION/
|
|
|
|
CDK_ANDROID_LINK=$CDK_FILE_PATH$CDK_ANDROID_REMOTE
|
|
CDK_IOS_LINK=$CDK_IOS_PATH$CDK_IOS_FILE.zip
|
|
|
|
# Android CDK
|
|
mkdir -p android/cdk
|
|
|
|
NEED_CDK_ANDROID=false
|
|
if [ ! -f "android/cdk/$CDK_ANDROID_FILE" ]; then
|
|
NEED_CDK_ANDROID=true
|
|
elif [ -n "$CDK_ANDROID_SHA256" ]; then
|
|
if ! echo "$CDK_ANDROID_SHA256 android/cdk/$CDK_ANDROID_FILE" | sha256sum -c - 2>/dev/null; then
|
|
NEED_CDK_ANDROID=true
|
|
fi
|
|
fi
|
|
|
|
if [ "$NEED_CDK_ANDROID" = true ]; then
|
|
echo "Downloading CDK Android library..." >&2
|
|
rm -f android/cdk/$CDK_ANDROID_FILE
|
|
curl -L $CDK_ANDROID_LINK > android/cdk/$CDK_ANDROID_FILE
|
|
|
|
if [ -n "$CDK_ANDROID_SHA256" ]; then
|
|
if ! echo "$CDK_ANDROID_SHA256 android/cdk/$CDK_ANDROID_FILE" | sha256sum -c -; then
|
|
echo "CDK Android checksum failed" >&2
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "CDK Android downloaded (checksum verification skipped)"
|
|
echo "SHA256: $(sha256sum android/cdk/$CDK_ANDROID_FILE | cut -d' ' -f1)"
|
|
fi
|
|
fi
|
|
|
|
# iOS CDK
|
|
mkdir -p ios/CashuDevKitLibZipFile
|
|
mkdir -p ios/Cdk
|
|
|
|
NEED_CDK_IOS=false
|
|
if [ ! -f "ios/CashuDevKitLibZipFile/$CDK_IOS_FILE.zip" ]; then
|
|
NEED_CDK_IOS=true
|
|
elif [ -n "$CDK_IOS_SHA256" ]; then
|
|
if ! echo "$CDK_IOS_SHA256 ios/CashuDevKitLibZipFile/$CDK_IOS_FILE.zip" | sha256sum -c - 2>/dev/null; then
|
|
NEED_CDK_IOS=true
|
|
fi
|
|
fi
|
|
|
|
if [ "$NEED_CDK_IOS" = true ]; then
|
|
echo "Downloading CDK iOS library..." >&2
|
|
rm -f ios/CashuDevKitLibZipFile/$CDK_IOS_FILE.zip
|
|
curl -L $CDK_IOS_LINK > ios/CashuDevKitLibZipFile/$CDK_IOS_FILE.zip
|
|
|
|
if [ -n "$CDK_IOS_SHA256" ]; then
|
|
if ! echo "$CDK_IOS_SHA256 ios/CashuDevKitLibZipFile/$CDK_IOS_FILE.zip" | sha256sum -c -; then
|
|
echo "CDK iOS checksum failed" >&2
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "CDK iOS downloaded (checksum verification skipped)"
|
|
echo "SHA256: $(sha256sum ios/CashuDevKitLibZipFile/$CDK_IOS_FILE.zip | cut -d' ' -f1)"
|
|
fi
|
|
fi
|
|
|
|
# Extract to ios/Cdk directory (used by Podfile)
|
|
rm -rf ios/Cdk/$CDK_IOS_FILE
|
|
|
|
unzip ios/CashuDevKitLibZipFile/$CDK_IOS_FILE.zip -d ios/Cdk
|
|
|
|
echo "CashuDevKit iOS framework installed to ios/Cdk/$CDK_IOS_FILE"
|
|
|
|
# Download matching Swift bindings from cdk-swift repo
|
|
CDK_SWIFT_BINDINGS_URL="https://raw.githubusercontent.com/cashubtc/cdk-swift/v$CDK_VERSION/Sources/CashuDevKit/CashuDevKit.swift"
|
|
mkdir -p ios/CashuDevKit
|
|
|
|
echo "Downloading CDK Swift bindings..." >&2
|
|
curl -L "$CDK_SWIFT_BINDINGS_URL" > ios/CashuDevKit/CashuDevKit.swift
|
|
|
|
echo "CashuDevKit Swift bindings updated to v$CDK_VERSION"
|
|
|
|
######################
|
|
# Zeus Cashu Restore #
|
|
######################
|
|
|
|
RESTORE_VERSION=0.1.0
|
|
RESTORE_ANDROID_FILE=zeus-cashu-restore.aar
|
|
RESTORE_IOS_FILE=zeusRestoreFFI.xcframework
|
|
|
|
RESTORE_ANDROID_SHA256='a067b281e99489cbfae66717b3c14196033fb864be6742f994a9ae71f886f85a'
|
|
RESTORE_IOS_SHA256='a5b98ce83f242b670e492e914d51a96f05e27e7c3b4c6dbde2663bb5fa720ea5'
|
|
|
|
RESTORE_PATH=https://github.com/ZeusLN/zeus-cashu-restore/releases/download/v$RESTORE_VERSION/
|
|
|
|
RESTORE_ANDROID_LINK=$RESTORE_PATH$RESTORE_ANDROID_FILE
|
|
RESTORE_IOS_LINK=$RESTORE_PATH$RESTORE_IOS_FILE.zip
|
|
RESTORE_SWIFT_BINDINGS_URL="https://raw.githubusercontent.com/ZeusLN/zeus-cashu-restore/v$RESTORE_VERSION/bindings/swift/zeus_cashu_restore.swift"
|
|
RESTORE_KOTLIN_BINDINGS_URL="https://raw.githubusercontent.com/ZeusLN/zeus-cashu-restore/v$RESTORE_VERSION/bindings/kotlin/uniffi/zeus_cashu_restore/zeus_cashu_restore.kt"
|
|
|
|
# Android Restore
|
|
mkdir -p android/zeus-restore
|
|
|
|
NEED_RESTORE_ANDROID=false
|
|
if [ ! -f "android/zeus-restore/$RESTORE_ANDROID_FILE" ]; then
|
|
NEED_RESTORE_ANDROID=true
|
|
elif [ -n "$RESTORE_ANDROID_SHA256" ]; then
|
|
if ! echo "$RESTORE_ANDROID_SHA256 android/zeus-restore/$RESTORE_ANDROID_FILE" | sha256sum -c - 2>/dev/null; then
|
|
NEED_RESTORE_ANDROID=true
|
|
fi
|
|
fi
|
|
|
|
if [ "$NEED_RESTORE_ANDROID" = true ]; then
|
|
echo "Downloading Zeus Cashu Restore Android library..." >&2
|
|
rm -f android/zeus-restore/$RESTORE_ANDROID_FILE
|
|
curl -L $RESTORE_ANDROID_LINK > android/zeus-restore/$RESTORE_ANDROID_FILE
|
|
|
|
if [ -n "$RESTORE_ANDROID_SHA256" ]; then
|
|
if ! echo "$RESTORE_ANDROID_SHA256 android/zeus-restore/$RESTORE_ANDROID_FILE" | sha256sum -c -; then
|
|
echo "Restore Android checksum failed" >&2
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Restore Android downloaded (checksum verification skipped)"
|
|
echo "SHA256: $(sha256sum android/zeus-restore/$RESTORE_ANDROID_FILE | cut -d' ' -f1)"
|
|
fi
|
|
fi
|
|
|
|
# iOS Restore
|
|
mkdir -p ios/ZeusRestoreLibZipFile
|
|
mkdir -p ios/ZeusRestore
|
|
|
|
NEED_RESTORE_IOS=false
|
|
if [ ! -f "ios/ZeusRestoreLibZipFile/$RESTORE_IOS_FILE.zip" ]; then
|
|
NEED_RESTORE_IOS=true
|
|
elif [ -n "$RESTORE_IOS_SHA256" ]; then
|
|
if ! echo "$RESTORE_IOS_SHA256 ios/ZeusRestoreLibZipFile/$RESTORE_IOS_FILE.zip" | sha256sum -c - 2>/dev/null; then
|
|
NEED_RESTORE_IOS=true
|
|
fi
|
|
fi
|
|
|
|
if [ "$NEED_RESTORE_IOS" = true ]; then
|
|
echo "Downloading Zeus Cashu Restore iOS library..." >&2
|
|
rm -f ios/ZeusRestoreLibZipFile/$RESTORE_IOS_FILE.zip
|
|
curl -L $RESTORE_IOS_LINK > ios/ZeusRestoreLibZipFile/$RESTORE_IOS_FILE.zip
|
|
|
|
if [ -n "$RESTORE_IOS_SHA256" ]; then
|
|
if ! echo "$RESTORE_IOS_SHA256 ios/ZeusRestoreLibZipFile/$RESTORE_IOS_FILE.zip" | sha256sum -c -; then
|
|
echo "Restore iOS checksum failed" >&2
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Restore iOS downloaded (checksum verification skipped)"
|
|
echo "SHA256: $(sha256sum ios/ZeusRestoreLibZipFile/$RESTORE_IOS_FILE.zip | cut -d' ' -f1)"
|
|
fi
|
|
fi
|
|
|
|
# Extract to ios/ZeusRestore directory
|
|
rm -rf ios/ZeusRestore/$RESTORE_IOS_FILE
|
|
unzip ios/ZeusRestoreLibZipFile/$RESTORE_IOS_FILE.zip -d ios/ZeusRestore
|
|
|
|
echo "Zeus Cashu Restore iOS framework installed to ios/ZeusRestore/$RESTORE_IOS_FILE"
|
|
|
|
# Download matching Swift bindings
|
|
mkdir -p ios/CashuDevKit
|
|
|
|
echo "Downloading Zeus Cashu Restore Swift bindings..." >&2
|
|
curl -L "$RESTORE_SWIFT_BINDINGS_URL" > ios/CashuDevKit/zeus_cashu_restore.swift
|
|
|
|
echo "Zeus Cashu Restore Swift bindings updated to v$RESTORE_VERSION"
|
|
|
|
# Download matching Kotlin bindings
|
|
RESTORE_KOTLIN_DIR=android/app/src/main/java/uniffi/zeus_cashu_restore
|
|
mkdir -p "$RESTORE_KOTLIN_DIR"
|
|
|
|
echo "Downloading Zeus Cashu Restore Kotlin bindings..." >&2
|
|
curl -L "$RESTORE_KOTLIN_BINDINGS_URL" > "$RESTORE_KOTLIN_DIR/zeus_cashu_restore.kt"
|
|
|
|
echo "Zeus Cashu Restore Kotlin bindings updated to v$RESTORE_VERSION"
|
|
|
|
################
|
|
# LDK Node iOS #
|
|
################
|
|
|
|
mkdir -p ios/LdkNodeLibZipFile
|
|
|
|
if ! echo "$LDK_NODE_IOS_SHA256 ios/LdkNodeLibZipFile/$LDK_NODE_IOS_FILE.zip" | sha256sum -c -; then
|
|
echo "LDK Node iOS library file missing or checksum failed" >&2
|
|
|
|
# delete old instance of library file
|
|
rm -f ios/LdkNodeLibZipFile/$LDK_NODE_IOS_FILE.zip
|
|
|
|
# download LDK Node iOS library file
|
|
curl -L $LDK_NODE_IOS_LINK > ios/LdkNodeLibZipFile/$LDK_NODE_IOS_FILE.zip
|
|
|
|
# check checksum
|
|
if ! echo "$LDK_NODE_IOS_SHA256 ios/LdkNodeLibZipFile/$LDK_NODE_IOS_FILE.zip" | sha256sum -c -; then
|
|
echo "LDK Node iOS checksum failed" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# delete old instances of library files
|
|
rm -rf ios/LdkNodeMobile/$LDK_NODE_IOS_FILE
|
|
|
|
# unzip LDK Node library file
|
|
unzip ios/LdkNodeLibZipFile/$LDK_NODE_IOS_FILE.zip -d ios/LdkNodeMobile
|