Compare commits

...

41 Commits

Author SHA1 Message Date
wowario 804c7586d5 Update 'README.md'
3 years ago
wowario cc0e40e6dc Merge pull request 'update' (#13) from wowario/cyberwow:update into master
3 years ago
wowario f504bad5ae
update img screen
3 years ago
wowario fce1ee2b22
update openssl
3 years ago
wowario 7f69814827
bump to wownero v0.9.3.3
3 years ago
wowario 7918db09ec
remove google link
3 years ago
wowario f53fd248d6
update README.md
4 years ago
jw b3b54abed6
Merge pull request #10 from fuwa0529/fix-fdroid
4 years ago
fuwa d27ff15c63 up version
4 years ago
fuwa 93e8017435 fix build for fdroid
4 years ago
jw d62434b2a9
Merge pull request #9 from fuwa0529/dev
4 years ago
fuwa 7598775243 fix build for non nix-shell
4 years ago
fuwa 77d637aaf1 use wownero 0.8
4 years ago
fuwa 589e223c4a use flutter stable
4 years ago
fuwa ffc9aceeae add unbound
4 years ago
fuwa 87fd4e8bee add bsd3 license to shell.nix
4 years ago
fuwa e9bc70a26d clean up makefile
4 years ago
fuwa 95a6ad7ae5 point to the fdroid build script in readme
4 years ago
fuwa 44dad34fa2 bundle deps
4 years ago
fuwa a0557ba036 update flutter beta to 1.17
4 years ago
fuwa a598d517cd update openssl
4 years ago
fuwa b845c6eee2 use ndk21b
4 years ago
fuwa c60b82e608 only build daemon
4 years ago
fuwa 034baa21d2 remove zlib
4 years ago
fuwa a4cf3bb9de set theme background color
4 years ago
fuwa 00b12b09a9 add build-bundle task
4 years ago
fuwa 022ed929dc remove unbound
4 years ago
fuwa 4386f00f6a use dev-v0.8
4 years ago
fuwa e2d90dbca9 update wownero build script
4 years ago
fuwa 73a50151bd add changelog
4 years ago
jw cc5f0a6882
Merge pull request #7 from fuwa0529/dev
4 years ago
fuwa cff517b6b0 up version
4 years ago
fuwa 62edd0c4f9 update openssl
4 years ago
fuwa b02b5f8bb3 useless clean up using switch
4 years ago
fuwa c6d6f2984f fix ui lag caused by large tx pool
4 years ago
fuwa 4e16219f61 fix nullable intent
4 years ago
fuwa 597b9bdb84 upgrade gradle to 6.3 for jdk13
4 years ago
fuwa 54ff3cf83c rework resyncing state
4 years ago
fuwa 03cbfc78f3 use jdk13
4 years ago
fuwa 48b87fa11f log to /dev/null
4 years ago
fuwa 14b1d83672 increase terminal buffer size
4 years ago

@ -50,32 +50,17 @@ run-release:
cd cyberwow && \
flutter run --release --pid-file /tmp/flutter.pid
# clang -target aarch64-linux-android21 cyberwow/native/hello.c -o cyberwow/native/output/hello
c:
clang -target x86_64-linux-android21 cyberwow/native/hello.c -o cyberwow/native/output/x86_64/wownerod
build-c: c
build:
cd cyberwow && \
flutter clean
push:
adb push cyberwow/native/output/hello /data/local/tmp
test-android:
adb shell /data/local/tmp/hello
test-c: c push test-android
flutter build apk --target-platform android-arm64
collect:
cp ../vendor/wownero/bin/wownerod cyberwow/native/output/arm64/
build:
build-bundle:
cd cyberwow && \
flutter build apk --target-platform android-arm64 -v
flutter build appbundle --target-platform android-arm64
build-debug:
cd cyberwow && \
flutter build apk --debug --target-platform android-arm64
flutter build appbundle --debug --target-platform android-arm64
install: build
cd cyberwow && \
@ -87,8 +72,6 @@ script := etc/scripts/build-external-libs
wow: clean-external-libs collect-wownero build
wow-no-native: build
clean-external-libs:
$(script)/clean.sh
@ -103,11 +86,7 @@ boost: iconv
$(script)/boost/fetch.sh
$(script)/boost/build.sh
zlib: toolchain
$(script)/zlib/fetch.sh
$(script)/zlib/build.sh
openssl: zlib
openssl: toolchain
$(script)/openssl/fetch.sh
$(script)/openssl/build.sh

@ -1,70 +1,3 @@
# CyberWOW
# CyberWOW Mobile Node
A dumb android pruned full node for Wownero.
[<img src="https://f-droid.org/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/org.wownero.cyberwow/)
<a href='https://play.google.com/store/apps/details?id=org.wownero.cyberwow'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png' height='80'/></a>
## How to build
### Compile wownerod for android-arm64
#### Simple method with Docker
```
pushd .
git clone https://github.com/wownero/wownero
cd wownero
git submodule init && git submodule update
docker build -f utils/build_scripts/android64.Dockerfile -t wownero-android .
# Create container
docker create -it --name wownero-android wownero-android bash
# Get binaries
docker cp wownero-android:/src/build/release/bin .
```
The binary needed is `./bin/wownerod`.
#### Alternative methods
1. One docker instance per hash
See `etc/scripts/docker-build-wownero.sh`, modify the value of `version` per build.
2. Debian based system similar to F-droid
See the `wow` task in `Makefile`.
### Install flutter and make sure it's in path
### Compile CyberWOW
```
popd
git clone https://github.com/wownero/cyberwow/
cd cyberwow
mkdir -p cyberwow/android/app/src/main/jniLibs/arm64-v8a
# Copy wownerod that we just built
cp $PATH_TO_WOWNEROD \
cyberwow/android/app/src/main/jniLibs/arm64-v8a/libwownerod.so
make build
```
The resulting apk is `cyberwow/build/app/outputs/apk/release/app-release.apk`.
## How to use custom start up arguments
Sending the arguments to an unopened CyberWOW app will cause `wownerod` to use them on start up, for example:
`--add-exclusive-node 192.168.1.3`
## F-droid build status
<https://f-droid.org/wiki/page/org.wownero.cyberwow/lastbuild>
archived

@ -41,8 +41,8 @@ android {
applicationId "org.wownero.cyberwow"
minSdkVersion 26
targetSdkVersion 29
versionCode 24
versionName "0.7.0.0-k"
versionCode 28
versionName "0.9.3.3"
}
if(project.hasProperty("RELEASE_STORE_FILE")) {

@ -44,9 +44,9 @@ class MainActivity: FlutterActivity() {
}
internal fun handleSendText(intent:Intent) {
val text:String = intent.getStringExtra(Intent.EXTRA_TEXT)
val text:String? = intent.getStringExtra(Intent.EXTRA_TEXT)
if (initialIntentSet == false) {
initialIntentText = text
initialIntentText = text ?: "";
}
}

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

@ -35,6 +35,8 @@ const emuHost = '192.168.10.100';
const host = isEmu ? emuHost : '127.0.0.1';
const stdoutLineBufferSize = 100;
const stdoutLineBufferSize = 200;
const bannerShownKey = 'banner-shown';
const int maxPoolTxSize = 5000;

@ -34,6 +34,7 @@ final _theme = ThemeData
accentColor: crtGreen,
cursorColor: crtGreen,
backgroundColor: Colors.black,
scaffoldBackgroundColor: Colors.black,
textTheme: TextTheme
@ -83,7 +84,7 @@ final config = CryptoConfig
(
'libwownerod.so',
'wownerod',
'Follow the white rabbit.',
'You ever danced with the devil in the pale moonlight?',
70,
_theme,
34568,
@ -95,6 +96,7 @@ final config = CryptoConfig
'--no-igd',
'--check-updates=disabled',
'--disable-dns-checkpoints',
'--log-file=/dev/null',
'--max-log-file-size=0',
'--p2p-use-ipv6',
],

@ -27,11 +27,14 @@ import 'package:http/http.dart' as http;
import 'package:flutter/foundation.dart';
import '../../../helper.dart';
import '../../../config.dart' as config;
import '../../../logging.dart';
import '../../interface/rpc/rpc2.dart' as rpc2;
Future<http.Response> getTransactionPool() async => rpc2.rpc2('get_transaction_pool');
Map<String, String> txInOutCache = {};
Future<List<Map<String, dynamic>>> getTransactionPoolSimple() async {
final response = await getTransactionPool();
@ -57,12 +60,31 @@ Future<List<Map<String, dynamic>>> getTransactionPoolSimple() async {
final _decodedPool = await Stream.fromIterable(_sortedPool).asyncMap
(
(x) async {
final String _tx_json = x['tx_json'];
final _tx_json_decoded = await compute(jsonDecode, _tx_json);
if (txInOutCache.length > config.maxPoolTxSize) {
txInOutCache = {};
}
final _txid = x['id_hash'];
if (txInOutCache[_txid] == null) {
final String _tx_json = x['tx_json'];
final _tx_json_decoded = await compute(jsonDecode, _tx_json);
final _inOut =
{
'vin': _tx_json_decoded['vin'].length,
'vout': _tx_json_decoded['vout'].length,
};
final _inOutString = _inOut['vin'].toString() + '/' + _inOut['vout'].toString();
txInOutCache[_txid] = _inOutString;
log.fine('cached tx_json in pool for: ${_txid}');
}
return {
...x,
...{'tx_decoded': _tx_json_decoded},
...{'i/o': txInOutCache[_txid]},
};
}
);

@ -58,29 +58,30 @@ Map<String, dynamic> getConnectionView(Map<String, dynamic> x) {
final _formattedConn = _filteredConn.map
(
(k, v) {
if (k == 'connection_id') {
return MapEntry(k, trimHash(v));
}
const speedField =
[
'avg_download',
'avg_upload',
'current_download',
'current_upload',
];
if (speedField.contains(k)) {
return MapEntry(k, '${v} kB/s');
}
else if (k == 'live_time') {
final _duration = Duration(seconds: v);
format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
return MapEntry(k, format(_duration));
}
else {
return MapEntry(k, v);
switch (k) {
case 'connection_id': {
return MapEntry(k, trimHash(v));
}
case 'live_time': {
final _duration = Duration(seconds: v);
format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
return MapEntry(k, format(_duration));
}
default: {
const speedField =
[
'avg_download',
'avg_upload',
'current_download',
'current_upload',
];
if (speedField.contains(k)) {
return MapEntry(k, '${v} kB/s');
}
else {
return MapEntry(k, v);
}
}
}
}
);
@ -171,38 +172,39 @@ Map<String, dynamic> getInfoView(Map<String, dynamic> x) {
final _formattedInfo = _ammendedInfo.map
(
(k, v) {
if (k == 'top_block_hash') {
return MapEntry(k, trimHash(v));
}
const sizeField =
[
'block_size_limit',
'block_size_median',
'block_weight_limit',
'block_weight_median',
'difficulty',
'tx_count',
'cumulative_difficulty',
'free_space',
'database_size',
'hash_rate',
];
if (sizeField.contains(k)) {
final formatter = NumberFormat.compact();
return MapEntry(k, formatter.format(v));
}
else if (k == 'start_time') {
final _receive_time = DateTime.fromMillisecondsSinceEpoch(v * 1000);
final _diff = DateTime.now().difference(_receive_time);
format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
return MapEntry('uptime', format(_diff));
}
switch (k) {
case 'top_block_hash': {
return MapEntry(k, trimHash(v));
}
case 'start_time': {
final _receive_time = DateTime.fromMillisecondsSinceEpoch(v * 1000);
final _diff = DateTime.now().difference(_receive_time);
else {
return MapEntry(k, v);
format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
return MapEntry('uptime', format(_diff));
}
default: {
const sizeField =
[
'block_size_limit',
'block_size_median',
'block_weight_limit',
'block_weight_median',
'difficulty',
'tx_count',
'cumulative_difficulty',
'free_space',
'database_size',
'hash_rate',
];
if (sizeField.contains(k)) {
final formatter = NumberFormat.compact();
return MapEntry(k, formatter.format(v));
}
else {
return MapEntry(k, v);
}
}
}
}
);

@ -53,45 +53,33 @@ Map<String, dynamic> txView(Map<String, dynamic> x) {
final _formattedTx = _filteredTx.map
(
(k, v) {
if (k == 'id_hash') {
return MapEntry('id', trimHash(v));
switch (k) {
case 'id_hash':
return MapEntry('id', trimHash(v));
case 'blob_size':
return MapEntry('size', (v / 1024).toStringAsFixed(2) + ' kB');
case 'fee': {
final formatter = NumberFormat.currency
(
symbol: '',
decimalDigits: 2,
);
return MapEntry(k, formatter.format(v / pow(10, 11)) + '');
}
case 'receive_time': {
final _receive_time = DateTime.fromMillisecondsSinceEpoch(v * 1000);
final _diff = DateTime.now().difference(_receive_time);
format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
return MapEntry('age', format(_diff));
}
default:
return MapEntry(k, v);
}
}
else if (k == 'blob_size') {
return MapEntry('size', (v / 1024).toStringAsFixed(2) + ' kB');
}
else if (k == 'fee') {
final formatter = NumberFormat.currency
(
symbol: '',
decimalDigits: 2,
);
return MapEntry(k, formatter.format(v / pow(10, 11)) + '');
}
else if (k == 'receive_time') {
final _receive_time = DateTime.fromMillisecondsSinceEpoch(v * 1000);
final _diff = DateTime.now().difference(_receive_time);
format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
return MapEntry('age', format(_diff));
}
else if (k == 'tx_decoded') {
final _out =
{
'vin': v['vin'].length,
'vout': v['vout'].length,
};
final _outString = _out['vin'].toString() + '/' + _out['vout'].toString();
return MapEntry('i/o', _outString);
}
else {
return MapEntry(k, v);
}
}
);
final List<String> keys =

@ -25,49 +25,53 @@ import '../state.dart';
import '../config.dart' as config;
Widget build(BuildContext context, ReSyncingState state) {
final progressWidget =
[
Spacer
(
flex: 3,
),
LinearProgressIndicator(),
Spacer
(
flex: 2,
),
Expanded
(
flex: 5,
child: Text
(
state.stdout.last,
style: Theme.of(context).textTheme.body1,
)
),
];
return Scaffold
(
// appBar: AppBar
// (
// // title: Text(widget.title),
// title: Text('CyberWOW'),
// ),
body: Container
(
// padding: const EdgeInsets.all(10.0),
child: Align
padding: const EdgeInsets.all(10.0),
child: Column
(
alignment: Alignment.topLeft,
child: Column
(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>
[
Spacer
(
flex: 1,
),
Expanded
(
flex: 1,
child: SingleChildScrollView
(
scrollDirection: Axis.vertical,
reverse: true,
child: Text
(
state.stdout.last,
style: Theme.of(context).textTheme.body1,
)
)
),
Spacer
(
flex: 1,
),
],
),
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>
[
Spacer
(
flex: 10,
),
] +
progressWidget +
[
Spacer
(
flex: 10,
),
]
),
),
)
);
}

@ -54,7 +54,7 @@ Widget summary(BuildContext context, SyncedState state) {
flex: 17,
),
Image.asset
('assets/wownero_symbol.png',
('assets/wow-sonic.png',
height: 220,
),
Spacer

@ -7,42 +7,42 @@ packages:
name: archive
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.11"
version: "2.0.13"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.2"
version: "1.6.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.0"
version: "2.4.1"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
version: "2.0.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
version: "1.1.3"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.11"
version: "1.14.12"
convert:
dependency: transitive
description:
@ -56,7 +56,7 @@ packages:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.3"
version: "2.1.4"
flutter:
dependency: "direct main"
description: flutter
@ -78,7 +78,7 @@ packages:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.0+4"
version: "0.12.1"
http_parser:
dependency: transitive
description:
@ -92,7 +92,7 @@ packages:
name: image
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.4"
version: "2.1.12"
intl:
dependency: "direct main"
description:
@ -134,21 +134,21 @@ packages:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.5"
version: "1.6.8"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.4"
version: "0.0.4+2"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
version: "1.0.2"
pedantic:
dependency: transitive
description:
@ -183,35 +183,35 @@ packages:
name: quiver
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
version: "2.1.3"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
url: "https://pub.dartlang.org"
source: hosted
version: "0.5.6+3"
version: "0.5.7+2"
shared_preferences_macos:
dependency: transitive
description:
name: shared_preferences_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1+6"
version: "0.0.1+8"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
version: "1.0.4"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2+4"
version: "0.1.2+5"
sky_engine:
dependency: transitive
description: flutter
@ -223,7 +223,7 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.5"
version: "1.7.0"
stack_trace:
dependency: transitive
description:
@ -279,7 +279,7 @@ packages:
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "3.5.0"
version: "3.6.1"
sdks:
dart: ">=2.5.0 <3.0.0"
flutter: ">=1.12.13+hotfix.4 <2.0.0"
dart: ">=2.6.0 <3.0.0"
flutter: ">=1.12.13+hotfix.5 <2.0.0"

@ -1,7 +1,7 @@
name: cyberwow
description: A new Flutter project.
version: 0.7.0+24
version: 0.9.3+0
environment:
sdk: ">=2.1.0 <3.0.0"
@ -25,7 +25,7 @@ flutter:
uses-material-design: true
assets:
- assets/wownero_symbol.png
- assets/wow-sonic.png
fonts:
- family: RobotoMono

@ -18,7 +18,6 @@ let
pyasn1
pyasn1-modules
python-vagrant
libvirt
pyyaml
qrcode
requests

@ -1,3 +1,31 @@
# Copyright (c) 2019-2020, The Wownero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
let
nixpkgs = import <nixpkgs> {}
@ -33,12 +61,111 @@ let
xkeyboard_config
]
; ndk-r17c = (nixpkgs.androidenv.composeAndroidPackages
{
ndkVersion = "17.2.4988734"
; }).ndk-bundle
; ndk-r21b =
let
version = "r21b"
; in
nixpkgs.fetchzip
{
url = "https://dl.google.com/android/repository/android-ndk-${version}-linux-x86_64.zip"
; sha256 = "0shz45b6f2k4lnca8fgghh4cdh53vghfn26cj4mkirkk4cpv1qry"
; }
; openssl-source =
let
name = "openssl"
; version = "1.1.1g"
; in
nixpkgs.fetchurl
{
url = "https://www.openssl.org/source/${name}-${version}.tar.gz"
; sha256 = "0ikdcc038i7jk8h7asq5xcn8b1xc2rrbc88yfm4hqbz3y5s4gc6x"
; }
; iconv-source =
let
name = "libiconv"
; version = "1.16"
; in
nixpkgs.fetchurl
{
url = "http://ftp.gnu.org/pub/gnu/${name}/${name}-${version}.tar.gz"
; sha256 = "016c57srqr0bza5fxjxfrx6aqxkqy0s3gkhcg7p7fhk5i6sv38g6"
; }
; boost-source =
let
name = "boost"
; version = "1_71_0"
; dot_version = "1.71.0"
; in
nixpkgs.fetchurl
{
url =
"https://dl.bintray.com/boostorg/release/{dot_version}/source/${name}_${version}.tar.bz2"
; sha256 = "1vi40mcair6xgm9k8rsavyhcia3ia28q8k0blknwgy4b3sh8sfnp"
; }
; sodium-source =
let
name = "libsodium"
; version = "1.0.18"
; in
nixpkgs.fetchurl
{
url = "https://github.com/jedisct1/${name}/archive/${version}.tar.gz"
; sha256 = "1x6lll81z4ah732zwpw481qfbzg7yml0nwdgbnd5388jnz3274ym"
; }
; randomwow-source =
let
name = "RandomWOW"
; version = "1.1.6"
; in
nixpkgs.fetchurl
{
url = "https://github.com/wownero/${name}/archive/${version}.tar.gz"
; sha256 = "1c55y2dwrayh6k1avpchs89gq1mvy5c305h92jm2k48kzhw6a792"
; }
; wownero-source =
nixpkgs.fetchFromGitHub
{
owner = "wownero"
; repo = "wownero"
; rev = "dev-v0.8"
; sha256 = "13032pa9wx3h6x860f9iy28vdpkc94wzby153ig7hw4dixjqhs6w"
; }
; miniupnp-source =
nixpkgs.fetchFromGitHub
{
owner = "miniupnp"
; repo = "miniupnp"
; rev = "7800de9"
; sha256 = "1f7jgll8lxz2l5lifgqafgx8694x0svgwyz8w8w4cwavm9lmah63"
; }
; unbound-source =
nixpkgs.fetchFromGitHub
{
owner = "monero-project"
; repo = "unbound"
; rev = "9a77c29"
; sha256 = "0dmm5pz2yf1lfand9k1c8x0mbrwynkpphh877b8jbavjrwiwsw35"
; }
; in
with nixpkgs;
(buildFHSUserEnv {
name = "cyberwow-build-env"
name = "cyberwow-env"
; targetPkgs = pkgs: (with pkgs;
[
bash
@ -53,12 +180,12 @@ with nixpkgs;
# openjdk
# jetbrains.jdk
# zulu
jdk12
jdk13
# dart_dev
gnumake
gcc
entr
androidenv.androidPkgs_9_0.platform-tools
# androidenv.androidPkgs_9_0.platform-tools
zlib
@ -70,6 +197,7 @@ with nixpkgs;
gnum4
pkgconfig
cmake
ccache
]
++ android-studio-deps
)
@ -82,15 +210,25 @@ with nixpkgs;
; profile = ''
export ANDROID_HOME=~/SDK/Android/Sdk
PATH=~/local/sdk/flutter/beta/bin:$PATH
PATH=~/local/sdk/flutter/stable/bin:$PATH
PATH=~/SDK/Android/android-studio/bin:$PATH
PATH=~/SDK/Android/Sdk/tools/bin:$PATH
export ANDROID_NDK_VERSION=r20b
export ANDROID_NDK_ROOT=~/SDK/Android/ndk-archive/android-ndk-$ANDROID_NDK_VERSION
export ANDROID_NDK_VERSION=r21b
export ANDROID_NDK_ROOT=${ndk-r21b}
export NDK=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64
PATH=$NDK/bin:$PATH
export SRC_OPENSSL=${openssl-source}
export SRC_ICONV=${iconv-source}
export SRC_BOOST=${boost-source}
export SRC_SODIUM=${sodium-source}
export SRC_RANDOMWOW=${randomwow-source}
export SRC_MINIUPNP_DIR=${miniupnp-source}
export SRC_UNBOUND_DIR=${unbound-source}
export SRC_RAPIDJSON_DIR=${nixpkgs.rapidjson.src}
export SRC_WOWNERO_DIR=${wownero-source}
export PATH_NCURSES=${nixpkgs.ncurses5}
export PATH
@ -98,7 +236,7 @@ with nixpkgs;
export DART_VM_OPTIONS=--root-certs-file=/etc/ssl/certs/ca-certificates.crt
export ANDROID_NDK_VERSION_WOW=r17c
export ANDROID_NDK_ROOT_WOW=~/SDK/Android/ndk-archive/android-ndk-$ANDROID_NDK_VERSION_WOW
export ANDROID_NDK_ROOT_WOW=${ndk-r17c}/libexec/android-sdk/ndk-bundle
export ZSH_INIT=${nixpkgs.oh-my-zsh}/share/oh-my-zsh/oh-my-zsh.sh
exec zsh

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
@ -66,33 +66,42 @@ for arch in ${archs[@]}; do
echo "building for ${arch}"
(
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \
CC=clang \
CXX=clang++; \
./b2 \
cxxstd=14 \
toolset=clang \
threading=multi \
threadapi=pthread \
link=static \
runtime-link=static \
target-os=android \
--ignore-site-config \
--prefix=${PREFIX} \
--build-dir=android \
-sICONV_PATH=${ICONV_PATH} \
--build-type=minimal \
--with-chrono \
--with-date_time \
--with-filesystem \
--with-program_options \
--with-regex \
--with-serialization \
--with-system \
--with-thread \
--with-locale \
install \
-j${NPROC} \
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH
if [ -x "$(command -v ccache)" ]; then
echo "////////////////////////////////////////////"
echo "// CCACHE 1 //"
echo "////////////////////////////////////////////"
CC="ccache clang"
CXX="ccache clang++"
else
CC=clang
CXX=clang++
fi
./b2 \
cxxstd=14 \
toolset=clang \
threading=multi \
threadapi=pthread \
link=static \
runtime-link=static \
target-os=android \
--ignore-site-config \
--prefix=${PREFIX} \
--build-dir=android \
-sICONV_PATH=${ICONV_PATH} \
--build-type=minimal \
--with-chrono \
--with-date_time \
--with-filesystem \
--with-program_options \
--with-regex \
--with-serialization \
--with-system \
--with-thread \
--with-locale \
install \
-j${NPROC} \
)
done

@ -39,12 +39,18 @@ name=boost
version=1_71_0
dot_version=1.71.0
hash=d73a8da01e8bf8c7eda40b4c84915071a8c8a0df4a6734537ddde4a8580524ee
url=https://dl.bintray.com/boostorg/release/${dot_version}/source/${name}_${version}.tar.bz2
out=${name}_${version}.tar.bz2
rm -rf ${name}_${version}
curl -# -L -O \
https://dl.bintray.com/boostorg/release/${dot_version}/source/${name}_${version}.tar.bz2
if [ ! -z $SRC_BOOST ]; then
echo "using pre-fetched $name"
cp $SRC_BOOST $out
else
curl -# -L -o $out -O $url
fi
echo "${hash} ${name}_${version}.tar.bz2" | sha256sum -c
echo "$hash $out" | sha256sum -c
tar xfv ${name}_${version}.tar.bz2
tar xfv $out

@ -35,7 +35,6 @@ source etc/scripts/build-external-libs/env.sh
build_root=$BUILD_PATH
chmod u+w -f -R $build_root || true
rm -rf $build_root
mkdir -p $build_root
rm -rf cyberwow/native/output

@ -1,45 +0,0 @@
#!/bin/bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
source etc/scripts/build-external-libs/env.sh
src_root=$BUILD_ROOT_SRC
target_root=`pwd`
mkdir -p $target_root/cyberwow/native/output/arm64
touch $target_root/cyberwow/native/output/arm64/wownerod
mkdir -p $target_root/cyberwow/native/output/x86_64
touch $target_root/cyberwow/native/output/x86_64/wownerod
exit 0

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
@ -34,6 +34,7 @@ set -e
source etc/scripts/build-external-libs/env.sh
src_root=$BUILD_ROOT_SRC
build_root=$BUILD_ROOT
target_root=`pwd`
name=wownero
@ -62,7 +63,7 @@ for arch in ${archs[@]}; do
echo "collecting for ${arch}"
mkdir -p $target_root/cyberwow/android/app/src/main/jniLibs/$target_abi
cp build/release/bin/wownerod \
$target_root/cyberwow/android/app/src/main/jniLibs/$target_abi/libwownerod.so
$target_root/cyberwow/android/app/src/main/jniLibs/$target_abi/libwownerod.so
done

@ -1,3 +1,5 @@
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
@ -61,15 +61,24 @@ for arch in ${archs[@]}; do
echo "building for ${arch}"
(
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \
CC=clang \
CXX=clang++; \
./configure \
--prefix=${PREFIX} \
--build=x86_64-linux-gnu \
--host=${target_host} \
--disable-rpath \
&& make -j${NPROC} && make install && make clean \
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH
if [ -x "$(command -v ccache)" ]; then
echo "////////////////////////////////////////////"
echo "// CCACHE 1 //"
echo "////////////////////////////////////////////"
CC="ccache clang"
CXX="ccache clang++"
else
CC=clang
CXX=clang++
fi
./configure \
--prefix=${PREFIX} \
--build=x86_64-linux-gnu \
--host=${target_host} \
--disable-rpath \
&& make -j${NPROC} && make install && make clean \
)
done

@ -35,15 +35,21 @@ source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC
name=libiconv
version=1.16
hash=e6a1b1b589654277ee790cce3734f07876ac4ccfaecbee8afa0b649cf529cc04
name=libiconv
url=http://ftp.gnu.org/pub/gnu/${name}/${name}-${version}.tar.gz
out=${name}-${version}.tar.gz
rm -rf ${name}-${version}
curl -# -L -O \
http://ftp.gnu.org/pub/gnu/${name}/${name}-${version}.tar.gz
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c
if [ ! -z $SRC_ICONV ]; then
echo "using pre-fetched $name"
cp $SRC_ICONV $out
else
curl -# -L -o $out -O $url
fi
tar -xzf ${name}-${version}.tar.gz
echo "$hash $out" | sha256sum -c
tar -xzf $out

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
@ -37,7 +37,7 @@ build_root=$BUILD_ROOT
src_root=$BUILD_ROOT_SRC
name=openssl
version=1.1.1d
version=1.1.1k
cd $src_root/${name}-${version}
@ -64,19 +64,30 @@ for arch in ${archs[@]}; do
echo "building for ${arch}"
(
export CC=clang
export CXX=clang++
export ANDROID_API=23
export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
ANDROID_API=29
export ANDROID_NDK_HOME=$ANDROID_NDK_ROOT
PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
if [ -x "$(command -v ccache)" ]; then
echo "////////////////////////////////////////////"
echo "// CCACHE 1 //"
echo "////////////////////////////////////////////"
CC="ccache clang"
CXX="ccache clang++"
else
CC=clang
CXX=clang++
fi
./Configure android-${arch} \
--prefix=${PREFIX} \
no-comp \
-D__ANDROID_API__=$ANDROID_API \
--with-zlib-include=${ZLIB_PATH}/include \
--with-zlib-lib=${ZLIB_PATH}/lib \
&& make -j${NPROC} && make install && make clean \
&& make -j${NPROC} SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \
&& make install_sw SHLIB_VERSION_NUMBER= SHLIB_EXT=.so \
&& make clean \
)
done

@ -36,14 +36,20 @@ source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC
name=openssl
version=1.1.1d
hash=1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2
version=1.1.1k
hash=892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5
url=https://www.openssl.org/source/openssl-${version}.tar.gz
out=openssl-${version}.tar.gz
rm -rf ${name}-${version}
curl -# -L -O \
https://www.openssl.org/source/openssl-${version}.tar.gz
if [ ! -z $SRC_OPENSSL ]; then
echo "using pre-fetched $name"
cp $SRC_OPENSSL $out
else
curl -# -L -o $out -O $url
fi
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c
echo "${hash} $out" | sha256sum -c
tar xzf ${name}-${version}.tar.gz
tar xzf $out

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
@ -63,16 +63,24 @@ for arch in ${archs[@]}; do
echo "building for ${arch}"
(
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH \
CC=clang \
CXX=clang++; \
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH
if [ -x "$(command -v ccache)" ]; then
echo "////////////////////////////////////////////"
echo "// CCACHE 1 //"
echo "////////////////////////////////////////////"
CC="ccache clang"
CXX="ccache clang++"
else
CC=clang
CXX=clang++
fi
./configure \
--prefix=${PREFIX} \
--host=${target_host} \
--enable-static \
--disable-shared \
&& make -j${NPROC} && make install && make clean \
./configure \
--prefix=${PREFIX} \
--host=${target_host} \
--enable-static \
--disable-shared \
&& make -j${NPROC} && make install && make clean \
)
done

@ -38,12 +38,18 @@ cd $BUILD_ROOT_SRC
name=libsodium
version=1.0.18
hash=d59323c6b712a1519a5daf710b68f5e7fde57040845ffec53850911f10a5d4f4
url=https://github.com/jedisct1/libsodium/archive/${version}.tar.gz
out=${name}-${version}.tar.gz
rm -rf ${name}-${version}
curl -# -L -o ${name}-${version}.tar.gz \
https://github.com/jedisct1/libsodium/archive/${version}.tar.gz
if [ ! -z $SRC_SODIUM ]; then
echo "using pre-fetched $name"
cp $SRC_SODIUM $out
else
curl -# -L -o $out -O $url
fi
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c
echo "${hash} $out" | sha256sum -c
tar xzf ${name}-${version}.tar.gz
tar xzf $out

@ -36,7 +36,7 @@ source etc/scripts/build-external-libs/env.sh
build_root=$BUILD_ROOT
PATH=$ANDROID_NDK_ROOT/build/tools/:$PATH
args="--api 23 --stl=libc++"
args="--api 29 --stl=libc++"
archs=(arm64)
for arch in ${archs[@]}; do

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
@ -72,13 +72,30 @@ for arch in ${archs[@]}; do
export TOOLCHAIN_DIR=`realpath $build_root_wow/tool/${arch}`
export PATH=$PATH:$build_root/host/bin
mkdir -p build/release
pushd .
cd build/release
(
CMAKE_INCLUDE_PATH="${PREFIX}/include" \
CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
ANDROID_STANDALONE_TOOLCHAIN_PATH=${TOOLCHAIN_DIR} \
USE_SINGLE_BUILDDIR=1 \
make release-static-android-armv8 -j${NPROC} \
CC=aarch64-linux-android-clang \
CXX=aarch64-linux-android-clang++ \
cmake \
-D BUILD_TESTS=OFF \
-D ARCH="armv8-a" \
-D STATIC=ON \
-D BUILD_64=ON \
-D CMAKE_BUILD_TYPE=release \
-D ANDROID=true \
-D INSTALL_VENDORED_LIBUNBOUND=ON \
-D BUILD_TAG="android-armv8" \
-D CMAKE_SYSTEM_NAME="Android" \
-D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${TOOLCHAIN_DIR}" \
-D CMAKE_ANDROID_ARCH_ABI="arm64-v8a" \
-D MANUAL_SUBMODULES=ON \
../.. && make -j${NPROC} daemon
)
popd
done

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2019-2020, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
@ -36,14 +36,50 @@ source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC
name=wownero
version=v0.7.0
githash=4c6c7ab87b2a56165f400f6e49f17b9577a2bcad
version=v0.9.3.3
githash=e2d2b9a447502e22467af9df20e0732b3dd4ac4c
out=wownero
rm -rf $name
chmod u+w -f -R $out || true
git clone --depth 1 https://github.com/wownero/wownero.git -b $version
rm -rf $out
cd $name
test `git rev-parse HEAD` = $githash || exit 1
if [ ! -z $SRC_WOWNERO_DIR ]; then
echo "using pre-fetched $name"
rsync -av --no-perms --no-owner --no-group --delete $SRC_WOWNERO_DIR/* $out
chmod u+w -R $out/external
cd $name
else
git clone --depth 1 https://git.wownero.com/wownero/wownero.git -b $version
cd $name
test `git rev-parse HEAD` = $githash || exit 1
fi
git submodule init && git submodule update
if [ ! -z $SRC_MINIUPNP_DIR ]; then
echo "using pre-fetched miniupnpc"
rsync -av --no-perms --no-owner --no-group --delete $SRC_MINIUPNP_DIR/* external/miniupnp
else
git submodule update --init external/miniupnp
fi
if [ ! -z $SRC_RAPIDJSON_DIR ]; then
echo "using pre-fetched rapidjson"
rsync -av --no-perms --no-owner --no-group --delete $SRC_RAPIDJSON_DIR/* external/rapidjson
else
git submodule update --init external/rapidjson
fi
if [ ! -z $SRC_RANDOMWOW ]; then
echo "using pre-fetched RandomWOW"
tar xzf $SRC_RANDOMWOW -C external/RandomWOW --strip-components=1
else
git submodule update --init external/RandomWOW
fi
if [ ! -z $SRC_UNBOUND_DIR ]; then
echo "using pre-fetched unbound"
rsync -av --no-perms --no-owner --no-group --delete $SRC_UNBOUND_DIR/* external/unbound
else
git submodule update --init external/unbound
fi

@ -1,76 +0,0 @@
#!/bin/bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
source etc/scripts/build-external-libs/env.sh
build_root=$BUILD_ROOT
src_root=$BUILD_ROOT_SRC
name=zlib
version=1.2.11
cd $src_root/${name}-${version}
archs=(arm64)
for arch in ${archs[@]}; do
extra_cmake_flags=""
case ${arch} in
"arm64")
target_host=aarch64-linux-android
;;
"x86_64")
target_host=x86_64-linux-android
;;
*)
exit 16
;;
esac
# PREFIX=$build_root/build/${name}/$arch
PREFIX=$build_root/build/$arch
echo "building for ${arch}"
export CC=clang
export CXX=clang++
(
PATH=$build_root/tool/$arch/$target_host/bin:$build_root/tool/$arch/bin:$PATH; \
./configure \
--prefix=${PREFIX} \
--static \
&& make -j${NPROC} && make install && make clean \
)
done
exit 0

@ -1,49 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
source etc/scripts/build-external-libs/env.sh
cd $BUILD_ROOT_SRC
name=zlib
version=1.2.11
hash=c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1
rm -rf ${name}-${version}
curl -# -L -O \
https://zlib.net/${name}-${version}.tar.gz
echo "${hash} ${name}-${version}.tar.gz" | sha256sum -c
tar xzf ${name}-${version}.tar.gz

@ -1,49 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2019, The Wownero Project
# Copyright (c) 2014-2019, The Monero Project
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
set -e
version="aba46a"
container="wownero-android-${version}"
echo "Building: ${container}"
echo
cd ../vendor/wownero
git fetch --all
git checkout $version
git submodule init && git submodule update
docker build -f utils/build_scripts/android64.Dockerfile -t $container .
docker create -it --name $container $container bash
docker cp ${container}:/src/build/release/bin .

@ -0,0 +1,2 @@
* Support custom start up args
* Upgrade to AndroidX

@ -0,0 +1,2 @@
* Use flutter beta
* Make connection checking more conservative by requiring at least one active peer

@ -0,0 +1,2 @@
* Fix openssl checksum
* Optimize UI for large tx pool

@ -0,0 +1 @@
* Base on Wownero v0.8 Hallucenogenic Hypnotoad

@ -0,0 +1 @@
* Base on Wownero v0.9 Illiterate Illuminati

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 29 KiB