From da6c95ff28c652222cf08af2add5f168f7c20973 Mon Sep 17 00:00:00 2001 From: cyan Date: Fri, 18 Apr 2025 00:10:47 +0200 Subject: [PATCH] sdk updates (#133) * cmake: fix minimum required version * fix: unary_function -> __unary_function * fix it only where it's broken * update zano to 400 * improve ci speed, update xcode * update dockerfile, remove zano mingw * 16.2 --- .devcontainer/Dockerfile | 2 +- .github/workflows/full_check.yaml | 237 +++++++++++++----- impls/monero.dart/lib/src/checksum_zano.dart | 2 +- impls/monero.ts/checksum_zano.ts | 2 +- ...-fix-unary_function-__unary_function.patch | 28 +++ patches/wownero/0017-pr-9880.patch | 25 ++ ...-fix-unary_function-__unary_function.patch | 28 +++ zano | 2 +- .../src/main/cpp/zano_checksum.h | 2 +- 9 files changed, 260 insertions(+), 68 deletions(-) create mode 100644 patches/monero/0017-fix-unary_function-__unary_function.patch create mode 100644 patches/wownero/0017-pr-9880.patch create mode 100644 patches/wownero/0018-fix-unary_function-__unary_function.patch diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index bf7e370..bb6f0ba 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=linux/amd64 ghcr.io/cirruslabs/flutter:3.24.3 +FROM --platform=linux/amd64 ghcr.io/cirruslabs/flutter:3.27.3 # FROM debian:bookworm SHELL ["/bin/bash", "-c"] diff --git a/.github/workflows/full_check.yaml b/.github/workflows/full_check.yaml index 0e64964..8f54c8a 100644 --- a/.github/workflows/full_check.yaml +++ b/.github/workflows/full_check.yaml @@ -7,8 +7,6 @@ jobs: lib_mingw: strategy: fail-fast: false - matrix: - coin: [monero, wownero] runs-on: ubuntu-latest container: image: ubuntu:24.04 @@ -26,11 +24,13 @@ jobs: git config --global --add safe.directory '*' git config --global user.email "ci@mrcyjanek.net" git config --global user.name "CI mrcyjanek.net" - ./apply_patches.sh ${{ matrix.coin }} + ./apply_patches.sh monero + ./apply_patches.sh wownero + ./apply_patches.sh zano - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }}-${{ matrix.coin }} + key: ${{ github.job }} - name: Cache built if: ${{ !startsWith(github.ref, 'refs/tags/v') }} uses: actions/cache@v4 @@ -38,16 +38,24 @@ jobs: path: | contrib/depends/built/* key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} - - name: ${{ matrix.coin }}/x86_64-w64-mingw32 - run: ./build_single.sh ${{ matrix.coin }} x86_64-w64-mingw32 -j$(nproc) - - name: ${{ matrix.coin }}/i686-w64-mingw32 - run: ./build_single.sh ${{ matrix.coin }} i686-w64-mingw32 -j$(nproc) + - name: x86_64-w64-mingw32 + run: | + ./build_single.sh monero x86_64-w64-mingw32 -j$(nproc) + ./build_single.sh wownero x86_64-w64-mingw32 -j$(nproc) + - name: i686-w64-mingw32 + run: | + ./build_single.sh monero i686-w64-mingw32 -j$(nproc) + ./build_single.sh wownero i686-w64-mingw32 -j$(nproc) - name: rename artifacts run: | mkdir release/gh/ - for i in release/${{ matrix.coin }}/* + for i in release/monero/* do - cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" + cp "$i" "release/gh/monero_$(basename $i)" + done + for i in release/wownero/* + do + cp "$i" "release/gh/wownero_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -58,13 +66,16 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: mingw ${{ matrix.coin }} - path: release/${{ matrix.coin }} + name: mingw monero + path: release/monero + - name: Upload lib wownero + uses: actions/upload-artifact@v4 + with: + name: mingw wownero + path: release/wownero lib_android: strategy: fail-fast: false - matrix: - coin: [monero, wownero, zano] runs-on: ubuntu-22.04 # container: # image: debian:bookworm @@ -93,11 +104,13 @@ jobs: git config --global --add safe.directory '*' git config --global user.email "ci@mrcyjanek.net" git config --global user.name "CI mrcyjanek.net" - ./apply_patches.sh ${{ matrix.coin }} + ./apply_patches.sh monero + ./apply_patches.sh wownero + ./apply_patches.sh zano - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }}-${{ matrix.coin }} + key: ${{ github.job }} - name: Cache built if: ${{ !startsWith(github.ref, 'refs/tags/v') }} uses: actions/cache@v4 @@ -105,18 +118,35 @@ jobs: path: | contrib/depends/built/* key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} - - name: ${{ matrix.coin }}/x86_64-linux-android - run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-android -j$(nproc) - - name: ${{ matrix.coin }}/aarch64-linux-android - run: ./build_single.sh ${{ matrix.coin }} aarch64-linux-android -j$(nproc) - - name: ${{ matrix.coin }}/armv7a-linux-androideabi - run: ./build_single.sh ${{ matrix.coin }} armv7a-linux-androideabi -j$(nproc) + - name: monero + run: | + ./build_single.sh monero x86_64-linux-android -j$(nproc) + ./build_single.sh monero armv7a-linux-androideabi -j$(nproc) + ./build_single.sh monero aarch64-linux-android -j$(nproc) + - name: wownero + run: | + ./build_single.sh wownero aarch64-linux-android -j$(nproc) + ./build_single.sh wownero x86_64-linux-android -j$(nproc) + ./build_single.sh wownero armv7a-linux-androideabi -j$(nproc) + - name: zano + run: | + ./build_single.sh zano x86_64-linux-android -j$(nproc) + ./build_single.sh zano aarch64-linux-android -j$(nproc) + ./build_single.sh zano armv7a-linux-androideabi -j$(nproc) - name: rename artifacts run: | mkdir release/gh/ - for i in release/${{ matrix.coin }}/* + for i in release/monero/* do - cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" + cp "$i" "release/gh/monero_$(basename $i)" + done + for i in release/wownero/* + do + cp "$i" "release/gh/wownero_$(basename $i)" + done + for i in release/zano/* + do + cp "$i" "release/gh/zano_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -124,11 +154,21 @@ jobs: with: files: release/gh/* token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} - - name: Upload lib + - name: Upload lib monero uses: actions/upload-artifact@v4 with: - name: android ${{ matrix.coin }} - path: release/${{ matrix.coin }} + name: android monero + path: release/monero + - name: Upload lib wownero + uses: actions/upload-artifact@v4 + with: + name: android wownero + path: release/wownero + - name: Upload lib zano + uses: actions/upload-artifact@v4 + with: + name: android zano + path: release/zano - name: remove android_ndk run: | rm -rf contrib/depends/built/*/android_ndk @@ -136,8 +176,6 @@ jobs: lib_linux: strategy: fail-fast: false - matrix: - coin: [monero, wownero, zano] runs-on: ubuntu-latest container: image: debian:bullseye @@ -155,11 +193,13 @@ jobs: git config --global --add safe.directory '*' git config --global user.email "ci@mrcyjanek.net" git config --global user.name "CI mrcyjanek.net" - ./apply_patches.sh ${{ matrix.coin }} + ./apply_patches.sh monero + ./apply_patches.sh wownero + ./apply_patches.sh zano - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }}-${{ matrix.coin }} + key: ${{ github.job }} - name: Cache built if: ${{ !startsWith(github.ref, 'refs/tags/v') }} uses: actions/cache@v4 @@ -167,18 +207,35 @@ jobs: path: | contrib/depends/built/* key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} - - name: ${{ matrix.coin }}/x86_64-linux-gnu - run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-gnu -j$(nproc) - - name: ${{ matrix.coin }}/aarch64-linux-gnu - run: ./build_single.sh ${{ matrix.coin }} aarch64-linux-gnu -j$(nproc) - - name: ${{ matrix.coin }}/i686-linux-gnu - run: ./build_single.sh ${{ matrix.coin }} i686-linux-gnu -j$(nproc) + - name: x86_64-linux-gnu + run: | + ./build_single.sh monero x86_64-linux-gnu -j$(nproc) + ./build_single.sh wownero x86_64-linux-gnu -j$(nproc) + ./build_single.sh zano x86_64-linux-gnu -j$(nproc) + - name: aarch64-linux-gnu + run: | + ./build_single.sh monero aarch64-linux-gnu -j$(nproc) + ./build_single.sh wownero aarch64-linux-gnu -j$(nproc) + ./build_single.sh zano aarch64-linux-gnu -j$(nproc) + - name: i686-linux-gnu + run: | + ./build_single.sh monero i686-linux-gnu -j$(nproc) + ./build_single.sh wownero i686-linux-gnu -j$(nproc) + ./build_single.sh zano i686-linux-gnu -j$(nproc) - name: rename artifacts run: | mkdir release/gh/ - for i in release/${{ matrix.coin }}/* + for i in release/monero/* do - cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" + cp "$i" "release/gh/monero_$(basename $i)" + done + for i in release/wownero/* + do + cp "$i" "release/gh/wownero_$(basename $i)" + done + for i in release/zano/* + do + cp "$i" "release/gh/zano_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -189,13 +246,21 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: linux ${{ matrix.coin }} - path: release/${{ matrix.coin }} + name: linux monero + path: release/monero + - name: Upload lib wownero + uses: actions/upload-artifact@v4 + with: + name: linux wownero + path: release/wownero + - name: Upload lib zano + uses: actions/upload-artifact@v4 + with: + name: linux zano + path: release/zano lib_macos: strategy: fail-fast: false - matrix: - coin: [monero, wownero, zano] name: macos build runs-on: macos-14 steps: @@ -207,7 +272,7 @@ jobs: submodules: recursive - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '15.4' + xcode-version: '16.2' - name: install dependencies run: | brew install ccache binutils pigz autoconf automake libtool pkg-config @@ -216,11 +281,13 @@ jobs: git config --global --add safe.directory '*' git config --global user.email "ci@mrcyjanek.net" git config --global user.name "CI mrcyjanek.net" - ./apply_patches.sh ${{ matrix.coin }} + ./apply_patches.sh monero + ./apply_patches.sh wownero + ./apply_patches.sh zano - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }}-${{ matrix.coin }} + key: ${{ github.job }} - name: Cache built if: ${{ !startsWith(github.ref, 'refs/tags/v') }} uses: actions/cache@v4 @@ -230,16 +297,28 @@ jobs: key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} - name: build (aarch64-apple-darwin) run: | - ./build_single.sh ${{ matrix.coin }} aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) + ./build_single.sh monero aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) + ./build_single.sh wownero aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) + ./build_single.sh zano aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) - name: build (x86_64-apple-darwin) run: | - ./build_single.sh ${{ matrix.coin }} x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) + ./build_single.sh monero x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) + ./build_single.sh wownero x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) + ./build_single.sh zano x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) - name: rename artifacts run: | mkdir release/gh/ - for i in release/${{ matrix.coin }}/* + for i in release/monero/* do - cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" + cp "$i" "release/gh/monero_$(basename $i)" + done + for i in release/wownero/* + do + cp "$i" "release/gh/wownero_$(basename $i)" + done + for i in release/zano/* + do + cp "$i" "release/gh/zano_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -250,13 +329,21 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: macos ${{ matrix.coin }} - path: release/${{ matrix.coin }} + name: macos monero + path: release/monero + - name: Upload lib wownero + uses: actions/upload-artifact@v4 + with: + name: macos wownero + path: release/wownero + - name: Upload lib zano + uses: actions/upload-artifact@v4 + with: + name: macos zano + path: release/zano lib_ios: strategy: fail-fast: false - matrix: - coin: [monero, wownero, zano] name: ios build runs-on: macos-15 steps: @@ -268,7 +355,7 @@ jobs: submodules: recursive - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '16.1' + xcode-version: '16.2' - name: install dependencies run: | brew install ccache cmake autoconf automake libtool @@ -277,11 +364,13 @@ jobs: git config --global --add safe.directory '*' git config --global user.email "ci@mrcyjanek.net" git config --global user.name "CI mrcyjanek.net" - ./apply_patches.sh ${{ matrix.coin }} + ./apply_patches.sh monero + ./apply_patches.sh wownero + ./apply_patches.sh zano - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }}-${{ matrix.coin }} + key: ${{ github.job }} - name: Cache built if: ${{ !startsWith(github.ref, 'refs/tags/v') }} uses: actions/cache@v4 @@ -291,18 +380,30 @@ jobs: key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} - name: build (aarch64-apple-ios) run: | - ./build_single.sh ${{ matrix.coin }} aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) + ./build_single.sh monero aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) + ./build_single.sh wownero aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) + ./build_single.sh zano aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) - name: build (aarch64-apple-iossimulator) run: | - ./build_single.sh ${{ matrix.coin }} aarch64-apple-iossimulator -j$(sysctl -n hw.logicalcpu) + ./build_single.sh monero aarch64-apple-iossimulator -j$(sysctl -n hw.logicalcpu) + ./build_single.sh wownero aarch64-apple-iossimulator -j$(sysctl -n hw.logicalcpu) + ./build_single.sh zano aarch64-apple-iossimulator -j$(sysctl -n hw.logicalcpu) - name: rename artifacts run: | mkdir release/gh/ - for i in release/${{ matrix.coin }}/* + for i in release/monero/* do - cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" + cp "$i" "release/gh/monero_$(basename $i)" + done + for i in release/wownero/* + do + cp "$i" "release/gh/wownero_$(basename $i)" + done + for i in release/zano/* + do + cp "$i" "release/gh/zano_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -313,8 +414,18 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: ios ${{ matrix.coin }} - path: release/${{ matrix.coin }} + name: ios monero + path: release/monero + - name: Upload lib wownero + uses: actions/upload-artifact@v4 + with: + name: ios wownero + path: release/wownero + - name: Upload lib zano + uses: actions/upload-artifact@v4 + with: + name: ios zano + path: release/zano bulk_lib_release: name: create single release file runs-on: ubuntu-latest diff --git a/impls/monero.dart/lib/src/checksum_zano.dart b/impls/monero.dart/lib/src/checksum_zano.dart index 8868b3b..cbb9b17 100644 --- a/impls/monero.dart/lib/src/checksum_zano.dart +++ b/impls/monero.dart/lib/src/checksum_zano.dart @@ -1,4 +1,4 @@ // ignore_for_file: constant_identifier_names const String wallet2_api_c_h_sha256 = "8acaa95513b85a984c08e05cc3f2ac7530bb8f32946eeeb45357bd846aef33dd"; -const String wallet2_api_c_cpp_sha256 = "4efacd3812d53dd268b6869cc0a9560e7320574d96e09136cf067f796edfeba6-ccfc0327e05f73478b8493accec4a7a1878ff4b1"; +const String wallet2_api_c_cpp_sha256 = "4efacd3812d53dd268b6869cc0a9560e7320574d96e09136cf067f796edfeba6-83eefd205e3df84da0bf095257459fe778330316"; const String wallet2_api_c_exp_sha256 = "66f3ff655bbfd11ad28c318ab707090b5a93276f436b06f7b1c0f329dba3c9c2"; diff --git a/impls/monero.ts/checksum_zano.ts b/impls/monero.ts/checksum_zano.ts index 6044c9a..227a109 100644 --- a/impls/monero.ts/checksum_zano.ts +++ b/impls/monero.ts/checksum_zano.ts @@ -1,5 +1,5 @@ export const zanoChecksum = { wallet2_api_c_h_sha256: "8acaa95513b85a984c08e05cc3f2ac7530bb8f32946eeeb45357bd846aef33dd", - wallet2_api_c_cpp_sha256: "4efacd3812d53dd268b6869cc0a9560e7320574d96e09136cf067f796edfeba6-ccfc0327e05f73478b8493accec4a7a1878ff4b1", + wallet2_api_c_cpp_sha256: "4efacd3812d53dd268b6869cc0a9560e7320574d96e09136cf067f796edfeba6-83eefd205e3df84da0bf095257459fe778330316", wallet2_api_c_exp_sha256: "66f3ff655bbfd11ad28c318ab707090b5a93276f436b06f7b1c0f329dba3c9c2", } diff --git a/patches/monero/0017-fix-unary_function-__unary_function.patch b/patches/monero/0017-fix-unary_function-__unary_function.patch new file mode 100644 index 0000000..22e5275 --- /dev/null +++ b/patches/monero/0017-fix-unary_function-__unary_function.patch @@ -0,0 +1,28 @@ +From 0a3a2df040e177b5741706e0a0c76fac585f0356 Mon Sep 17 00:00:00 2001 +From: Czarek Nakamoto +Date: Thu, 10 Apr 2025 13:28:05 +0200 +Subject: [PATCH] fix: unary_function -> __unary_function + +--- + src/cryptonote_basic/cryptonote_basic_impl.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/cryptonote_basic/cryptonote_basic_impl.h b/src/cryptonote_basic/cryptonote_basic_impl.h +index b423573..a9aef7a 100644 +--- a/src/cryptonote_basic/cryptonote_basic_impl.h ++++ b/src/cryptonote_basic/cryptonote_basic_impl.h +@@ -40,7 +40,11 @@ namespace cryptonote { + /* */ + /************************************************************************/ + template ++#ifdef __APPLE__ ++ struct array_hasher: std::__unary_function ++#else + struct array_hasher: std::unary_function ++#endif + { + std::size_t operator()(const t_array& val) const + { +-- +2.49.0 + diff --git a/patches/wownero/0017-pr-9880.patch b/patches/wownero/0017-pr-9880.patch new file mode 100644 index 0000000..dbf604f --- /dev/null +++ b/patches/wownero/0017-pr-9880.patch @@ -0,0 +1,25 @@ +From 31ef09596a9d8d547905577823ff52d33e10a3d2 Mon Sep 17 00:00:00 2001 +From: Czarek Nakamoto +Date: Tue, 1 Apr 2025 11:30:45 +0200 +Subject: [PATCH] pr-9880 + +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5938be6..1c47285 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -216,7 +216,7 @@ function(forbid_undefined_symbols) + file(MAKE_DIRECTORY "${TEST_PROJECT}") + file(WRITE "${TEST_PROJECT}/CMakeLists.txt" + [=[ +-cmake_minimum_required(VERSION 3.1) ++cmake_minimum_required(VERSION 3.5) + project(test) + option(EXPECT_SUCCESS "" ON) + file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }") +-- +2.49.0 + diff --git a/patches/wownero/0018-fix-unary_function-__unary_function.patch b/patches/wownero/0018-fix-unary_function-__unary_function.patch new file mode 100644 index 0000000..5fc385c --- /dev/null +++ b/patches/wownero/0018-fix-unary_function-__unary_function.patch @@ -0,0 +1,28 @@ +From e488eaa7397d388cee6e914e10d23790f005f6f7 Mon Sep 17 00:00:00 2001 +From: Czarek Nakamoto +Date: Thu, 10 Apr 2025 13:28:06 +0200 +Subject: [PATCH] fix: unary_function -> __unary_function + +--- + src/cryptonote_basic/cryptonote_basic_impl.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/cryptonote_basic/cryptonote_basic_impl.h b/src/cryptonote_basic/cryptonote_basic_impl.h +index b423573..a9aef7a 100644 +--- a/src/cryptonote_basic/cryptonote_basic_impl.h ++++ b/src/cryptonote_basic/cryptonote_basic_impl.h +@@ -40,7 +40,11 @@ namespace cryptonote { + /* */ + /************************************************************************/ + template ++#ifdef __APPLE__ ++ struct array_hasher: std::__unary_function ++#else + struct array_hasher: std::unary_function ++#endif + { + std::size_t operator()(const t_array& val) const + { +-- +2.49.0 + diff --git a/zano b/zano index ccfc032..83eefd2 160000 --- a/zano +++ b/zano @@ -1 +1 @@ -Subproject commit ccfc0327e05f73478b8493accec4a7a1878ff4b1 +Subproject commit 83eefd205e3df84da0bf095257459fe778330316 diff --git a/zano_libwallet2_api_c/src/main/cpp/zano_checksum.h b/zano_libwallet2_api_c/src/main/cpp/zano_checksum.h index ba418be..9cca9ac 100644 --- a/zano_libwallet2_api_c/src/main/cpp/zano_checksum.h +++ b/zano_libwallet2_api_c/src/main/cpp/zano_checksum.h @@ -1,6 +1,6 @@ #ifndef MONEROC_CHECKSUMS #define MONEROC_CHECKSUMS const char * ZANO_wallet2_api_c_h_sha256 = "8acaa95513b85a984c08e05cc3f2ac7530bb8f32946eeeb45357bd846aef33dd"; -const char * ZANO_wallet2_api_c_cpp_sha256 = "4efacd3812d53dd268b6869cc0a9560e7320574d96e09136cf067f796edfeba6-ccfc0327e05f73478b8493accec4a7a1878ff4b1"; +const char * ZANO_wallet2_api_c_cpp_sha256 = "4efacd3812d53dd268b6869cc0a9560e7320574d96e09136cf067f796edfeba6-83eefd205e3df84da0bf095257459fe778330316"; const char * ZANO_wallet2_api_c_exp_sha256 = "66f3ff655bbfd11ad28c318ab707090b5a93276f436b06f7b1c0f329dba3c9c2"; #endif