removed dart

This commit is contained in:
Lex Berezhny 2019-08-04 20:57:05 -04:00
parent e9098887fb
commit 9a79b71d9f
98 changed files with 0 additions and 7461 deletions

View file

@ -1,9 +0,0 @@
# Files and directories created by pub
.dart_tool/
.packages
# Conventional directory for build outputs
build/
# Directory created by dartdoc
doc/api/

View file

@ -1,3 +0,0 @@
## 1.0.0
- Initial version, created by Stagehand

View file

@ -1 +0,0 @@
LBRY SDK in Dart.

View file

@ -1,14 +0,0 @@
# Defines a default set of lint rules enforced for
# projects at Google. For details and rationale,
# see https://github.com/dart-lang/pedantic#enabled-lints.
include: package:pedantic/analysis_options.yaml
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
# Uncomment to specify additional rules.
# linter:
# rules:
# - camel_case_types
analyzer:
# exclude:
# - path/to/excluded/files/**

View file

@ -1,6 +0,0 @@
import 'package:lbry/src/load_generator.dart' as load;
//import 'package:lbry/src/server_connection.dart' as load;
main(List<String> arguments) {
load.generate_load();
}

View file

@ -1,2 +0,0 @@
export 'src/load_generator.dart';
export 'src/server_connection.dart';

View file

@ -1,153 +0,0 @@
import 'dart:async';
import 'dart:io';
import 'dart:convert';
class LoadRequest {
final String host;
final int port;
final Map payload;
Completer completer;
Stopwatch timer;
Socket socket;
bool get isDone => completer.isCompleted;
int get elapsed => timer.elapsedMilliseconds;
LoadRequest(this.host, this.port, this.payload);
LoadRequest start() {
completer = Completer();
timer = Stopwatch()..start();
completer.future.whenComplete(() => timer.stop());
try {
Socket.connect(this.host, this.port).then((socket) {
this.socket = socket;
utf8.decoder.bind(socket).listen((r) {
if (r.contains('"jsonrpc": "2.0", "result": ')) {
socket.close();
completer.complete();
}
}, onError: (e) {print(e); completer.complete();});
try {
socket.write(jsonEncode(payload) + '\n');
} catch (exception, stackTrace) {
print(exception);
print(stackTrace);
completer.complete();
}
}, onError: (e) {print(e);completer.complete();});
} catch (exception, stackTrace) {
print(exception);
print(stackTrace);
completer.complete();
}
return this;
}
}
typedef bool LoadTickCallback(ClientLoadGenerator load_generator, ClientLoadDataPoint stats);
class ClientLoadGenerator {
Timer _timer;
final String host;
final int port;
final LoadTickCallback tickCallback;
int load = 1;
Map query;
List<LoadRequest> backlog = [];
ClientLoadGenerator(this.host, this.port, {this.tickCallback, this.query}) {
if (query == null) {
query = {
'id': 1,
'method': 'blockchain.claimtrie.resolve',
'params': ['one', 'two', 'three']
};
}
}
start() {
var previous = spawn_requests();
backlog = <LoadRequest>[];
_timer = Timer.periodic(Duration(seconds: 1), (t) {
var stat = ClientLoadDataPoint(t.tick);
backlog.removeWhere((r) {
if (r.isDone) stat.addCatchup(r);
return r.isDone;
});
for (var f in previous) {
if (f.isDone) {
stat.addSuccess(f);
} else {
backlog.add(f);
}
}
stat.backlog = backlog.length;
stat.load = load;
stat.close();
if (tickCallback(this, stat)) {
previous = spawn_requests();
} else {
stop();
}
});
}
stop() {
_timer.cancel();
for (var remaining in backlog) {
remaining?.socket?.close();
}
}
List<LoadRequest> spawn_requests() {
var requests = <LoadRequest>[];
for (var _ in Iterable.generate(load)) {
requests.add(LoadRequest(this.host, this.port, this.query).start());
}
return requests;
}
}
class ClientLoadDataPoint {
final int tick;
int success = 0;
int errored = 0;
int backlog = 0;
int catchup = 0;
int _success_total = 0;
int avg_success = 0;
int _catchup_total = 0;
int avg_catchup = 0;
int load = 0;
ClientLoadDataPoint(this.tick);
ClientLoadDataPoint.empty(): this(0);
addSuccess(LoadRequest r) {
success++; _success_total += r.elapsed;
}
addCatchup(LoadRequest r) {
catchup++; _catchup_total += r.elapsed;
}
close() {
avg_success = _success_total > 0 ? (_success_total/success).round() : 0;
avg_catchup = _catchup_total > 0 ? (_catchup_total/catchup).round() : 0;
}
}
generate_load() {
var runs = 1;
ClientLoadGenerator('localhost', 50001, tickCallback: (t, stats) {
print("run ${runs}: ${stats.load} load, ${stats.success} success, ${stats.backlog} backlog");
t.load = (runs < 4 ? t.load*2 : t.load/2).round();
return runs++ < 10;
}).start();
}

View file

@ -1,2 +0,0 @@
build:
protoc --dart_out=v2 -I ../../../../../../../types/v2/proto/ ../../../../../../../types/v2/proto/*.proto

View file

@ -1,625 +0,0 @@
///
// Generated code. Do not modify.
// source: claim.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
import 'dart:core' as $core show bool, Deprecated, double, int, List, Map, override, pragma, String;
import 'package:fixnum/fixnum.dart';
import 'package:protobuf/protobuf.dart' as $pb;
import 'claim.pbenum.dart';
export 'claim.pbenum.dart';
enum Claim_Type {
stream,
channel,
collection,
repost,
notSet
}
class Claim extends $pb.GeneratedMessage {
static const $core.Map<$core.int, Claim_Type> _Claim_TypeByTag = {
1 : Claim_Type.stream,
2 : Claim_Type.channel,
3 : Claim_Type.collection,
4 : Claim_Type.repost,
0 : Claim_Type.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Claim', package: const $pb.PackageName('pb'))
..oo(0, [1, 2, 3, 4])
..a<Stream>(1, 'stream', $pb.PbFieldType.OM, Stream.getDefault, Stream.create)
..a<Channel>(2, 'channel', $pb.PbFieldType.OM, Channel.getDefault, Channel.create)
..a<ClaimList>(3, 'collection', $pb.PbFieldType.OM, ClaimList.getDefault, ClaimList.create)
..a<ClaimReference>(4, 'repost', $pb.PbFieldType.OM, ClaimReference.getDefault, ClaimReference.create)
..aOS(8, 'title')
..aOS(9, 'description')
..a<Source>(10, 'thumbnail', $pb.PbFieldType.OM, Source.getDefault, Source.create)
..pPS(11, 'tags')
..pc<Language>(12, 'languages', $pb.PbFieldType.PM,Language.create)
..pc<Location>(13, 'locations', $pb.PbFieldType.PM,Location.create)
..hasRequiredFields = false
;
Claim._() : super();
factory Claim() => create();
factory Claim.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Claim.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Claim clone() => Claim()..mergeFromMessage(this);
Claim copyWith(void Function(Claim) updates) => super.copyWith((message) => updates(message as Claim));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Claim create() => Claim._();
Claim createEmptyInstance() => create();
static $pb.PbList<Claim> createRepeated() => $pb.PbList<Claim>();
static Claim getDefault() => _defaultInstance ??= create()..freeze();
static Claim _defaultInstance;
Claim_Type whichType() => _Claim_TypeByTag[$_whichOneof(0)];
void clearType() => clearField($_whichOneof(0));
Stream get stream => $_getN(0);
set stream(Stream v) { setField(1, v); }
$core.bool hasStream() => $_has(0);
void clearStream() => clearField(1);
Channel get channel => $_getN(1);
set channel(Channel v) { setField(2, v); }
$core.bool hasChannel() => $_has(1);
void clearChannel() => clearField(2);
ClaimList get collection => $_getN(2);
set collection(ClaimList v) { setField(3, v); }
$core.bool hasCollection() => $_has(2);
void clearCollection() => clearField(3);
ClaimReference get repost => $_getN(3);
set repost(ClaimReference v) { setField(4, v); }
$core.bool hasRepost() => $_has(3);
void clearRepost() => clearField(4);
$core.String get title => $_getS(4, '');
set title($core.String v) { $_setString(4, v); }
$core.bool hasTitle() => $_has(4);
void clearTitle() => clearField(8);
$core.String get description => $_getS(5, '');
set description($core.String v) { $_setString(5, v); }
$core.bool hasDescription() => $_has(5);
void clearDescription() => clearField(9);
Source get thumbnail => $_getN(6);
set thumbnail(Source v) { setField(10, v); }
$core.bool hasThumbnail() => $_has(6);
void clearThumbnail() => clearField(10);
$core.List<$core.String> get tags => $_getList(7);
$core.List<Language> get languages => $_getList(8);
$core.List<Location> get locations => $_getList(9);
}
enum Stream_Type {
image,
video,
audio,
software,
notSet
}
class Stream extends $pb.GeneratedMessage {
static const $core.Map<$core.int, Stream_Type> _Stream_TypeByTag = {
10 : Stream_Type.image,
11 : Stream_Type.video,
12 : Stream_Type.audio,
13 : Stream_Type.software,
0 : Stream_Type.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Stream', package: const $pb.PackageName('pb'))
..oo(0, [10, 11, 12, 13])
..a<Source>(1, 'source', $pb.PbFieldType.OM, Source.getDefault, Source.create)
..aOS(2, 'author')
..aOS(3, 'license')
..aOS(4, 'licenseUrl')
..aInt64(5, 'releaseTime')
..a<Fee>(6, 'fee', $pb.PbFieldType.OM, Fee.getDefault, Fee.create)
..a<Image>(10, 'image', $pb.PbFieldType.OM, Image.getDefault, Image.create)
..a<Video>(11, 'video', $pb.PbFieldType.OM, Video.getDefault, Video.create)
..a<Audio>(12, 'audio', $pb.PbFieldType.OM, Audio.getDefault, Audio.create)
..a<Software>(13, 'software', $pb.PbFieldType.OM, Software.getDefault, Software.create)
..hasRequiredFields = false
;
Stream._() : super();
factory Stream() => create();
factory Stream.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Stream.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Stream clone() => Stream()..mergeFromMessage(this);
Stream copyWith(void Function(Stream) updates) => super.copyWith((message) => updates(message as Stream));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Stream create() => Stream._();
Stream createEmptyInstance() => create();
static $pb.PbList<Stream> createRepeated() => $pb.PbList<Stream>();
static Stream getDefault() => _defaultInstance ??= create()..freeze();
static Stream _defaultInstance;
Stream_Type whichType() => _Stream_TypeByTag[$_whichOneof(0)];
void clearType() => clearField($_whichOneof(0));
Source get source => $_getN(0);
set source(Source v) { setField(1, v); }
$core.bool hasSource() => $_has(0);
void clearSource() => clearField(1);
$core.String get author => $_getS(1, '');
set author($core.String v) { $_setString(1, v); }
$core.bool hasAuthor() => $_has(1);
void clearAuthor() => clearField(2);
$core.String get license => $_getS(2, '');
set license($core.String v) { $_setString(2, v); }
$core.bool hasLicense() => $_has(2);
void clearLicense() => clearField(3);
$core.String get licenseUrl => $_getS(3, '');
set licenseUrl($core.String v) { $_setString(3, v); }
$core.bool hasLicenseUrl() => $_has(3);
void clearLicenseUrl() => clearField(4);
Int64 get releaseTime => $_getI64(4);
set releaseTime(Int64 v) { $_setInt64(4, v); }
$core.bool hasReleaseTime() => $_has(4);
void clearReleaseTime() => clearField(5);
Fee get fee => $_getN(5);
set fee(Fee v) { setField(6, v); }
$core.bool hasFee() => $_has(5);
void clearFee() => clearField(6);
Image get image => $_getN(6);
set image(Image v) { setField(10, v); }
$core.bool hasImage() => $_has(6);
void clearImage() => clearField(10);
Video get video => $_getN(7);
set video(Video v) { setField(11, v); }
$core.bool hasVideo() => $_has(7);
void clearVideo() => clearField(11);
Audio get audio => $_getN(8);
set audio(Audio v) { setField(12, v); }
$core.bool hasAudio() => $_has(8);
void clearAudio() => clearField(12);
Software get software => $_getN(9);
set software(Software v) { setField(13, v); }
$core.bool hasSoftware() => $_has(9);
void clearSoftware() => clearField(13);
}
class Channel extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Channel', package: const $pb.PackageName('pb'))
..a<$core.List<$core.int>>(1, 'publicKey', $pb.PbFieldType.OY)
..aOS(2, 'email')
..aOS(3, 'websiteUrl')
..a<Source>(4, 'cover', $pb.PbFieldType.OM, Source.getDefault, Source.create)
..a<ClaimList>(5, 'featured', $pb.PbFieldType.OM, ClaimList.getDefault, ClaimList.create)
..hasRequiredFields = false
;
Channel._() : super();
factory Channel() => create();
factory Channel.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Channel.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Channel clone() => Channel()..mergeFromMessage(this);
Channel copyWith(void Function(Channel) updates) => super.copyWith((message) => updates(message as Channel));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Channel create() => Channel._();
Channel createEmptyInstance() => create();
static $pb.PbList<Channel> createRepeated() => $pb.PbList<Channel>();
static Channel getDefault() => _defaultInstance ??= create()..freeze();
static Channel _defaultInstance;
$core.List<$core.int> get publicKey => $_getN(0);
set publicKey($core.List<$core.int> v) { $_setBytes(0, v); }
$core.bool hasPublicKey() => $_has(0);
void clearPublicKey() => clearField(1);
$core.String get email => $_getS(1, '');
set email($core.String v) { $_setString(1, v); }
$core.bool hasEmail() => $_has(1);
void clearEmail() => clearField(2);
$core.String get websiteUrl => $_getS(2, '');
set websiteUrl($core.String v) { $_setString(2, v); }
$core.bool hasWebsiteUrl() => $_has(2);
void clearWebsiteUrl() => clearField(3);
Source get cover => $_getN(3);
set cover(Source v) { setField(4, v); }
$core.bool hasCover() => $_has(3);
void clearCover() => clearField(4);
ClaimList get featured => $_getN(4);
set featured(ClaimList v) { setField(5, v); }
$core.bool hasFeatured() => $_has(4);
void clearFeatured() => clearField(5);
}
class ClaimReference extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ClaimReference', package: const $pb.PackageName('pb'))
..a<$core.List<$core.int>>(1, 'claimHash', $pb.PbFieldType.OY)
..hasRequiredFields = false
;
ClaimReference._() : super();
factory ClaimReference() => create();
factory ClaimReference.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory ClaimReference.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
ClaimReference clone() => ClaimReference()..mergeFromMessage(this);
ClaimReference copyWith(void Function(ClaimReference) updates) => super.copyWith((message) => updates(message as ClaimReference));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ClaimReference create() => ClaimReference._();
ClaimReference createEmptyInstance() => create();
static $pb.PbList<ClaimReference> createRepeated() => $pb.PbList<ClaimReference>();
static ClaimReference getDefault() => _defaultInstance ??= create()..freeze();
static ClaimReference _defaultInstance;
$core.List<$core.int> get claimHash => $_getN(0);
set claimHash($core.List<$core.int> v) { $_setBytes(0, v); }
$core.bool hasClaimHash() => $_has(0);
void clearClaimHash() => clearField(1);
}
class ClaimList extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ClaimList', package: const $pb.PackageName('pb'))
..e<ClaimList_ListType>(1, 'listType', $pb.PbFieldType.OE, ClaimList_ListType.COLLECTION, ClaimList_ListType.valueOf, ClaimList_ListType.values)
..pc<ClaimReference>(2, 'claimReferences', $pb.PbFieldType.PM,ClaimReference.create)
..hasRequiredFields = false
;
ClaimList._() : super();
factory ClaimList() => create();
factory ClaimList.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory ClaimList.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
ClaimList clone() => ClaimList()..mergeFromMessage(this);
ClaimList copyWith(void Function(ClaimList) updates) => super.copyWith((message) => updates(message as ClaimList));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ClaimList create() => ClaimList._();
ClaimList createEmptyInstance() => create();
static $pb.PbList<ClaimList> createRepeated() => $pb.PbList<ClaimList>();
static ClaimList getDefault() => _defaultInstance ??= create()..freeze();
static ClaimList _defaultInstance;
ClaimList_ListType get listType => $_getN(0);
set listType(ClaimList_ListType v) { setField(1, v); }
$core.bool hasListType() => $_has(0);
void clearListType() => clearField(1);
$core.List<ClaimReference> get claimReferences => $_getList(1);
}
class Source extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Source', package: const $pb.PackageName('pb'))
..a<$core.List<$core.int>>(1, 'hash', $pb.PbFieldType.OY)
..aOS(2, 'name')
..a<Int64>(3, 'size', $pb.PbFieldType.OU6, Int64.ZERO)
..aOS(4, 'mediaType')
..aOS(5, 'url')
..a<$core.List<$core.int>>(6, 'sdHash', $pb.PbFieldType.OY)
..hasRequiredFields = false
;
Source._() : super();
factory Source() => create();
factory Source.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Source.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Source clone() => Source()..mergeFromMessage(this);
Source copyWith(void Function(Source) updates) => super.copyWith((message) => updates(message as Source));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Source create() => Source._();
Source createEmptyInstance() => create();
static $pb.PbList<Source> createRepeated() => $pb.PbList<Source>();
static Source getDefault() => _defaultInstance ??= create()..freeze();
static Source _defaultInstance;
$core.List<$core.int> get hash => $_getN(0);
set hash($core.List<$core.int> v) { $_setBytes(0, v); }
$core.bool hasHash() => $_has(0);
void clearHash() => clearField(1);
$core.String get name => $_getS(1, '');
set name($core.String v) { $_setString(1, v); }
$core.bool hasName() => $_has(1);
void clearName() => clearField(2);
Int64 get size => $_getI64(2);
set size(Int64 v) { $_setInt64(2, v); }
$core.bool hasSize() => $_has(2);
void clearSize() => clearField(3);
$core.String get mediaType => $_getS(3, '');
set mediaType($core.String v) { $_setString(3, v); }
$core.bool hasMediaType() => $_has(3);
void clearMediaType() => clearField(4);
$core.String get url => $_getS(4, '');
set url($core.String v) { $_setString(4, v); }
$core.bool hasUrl() => $_has(4);
void clearUrl() => clearField(5);
$core.List<$core.int> get sdHash => $_getN(5);
set sdHash($core.List<$core.int> v) { $_setBytes(5, v); }
$core.bool hasSdHash() => $_has(5);
void clearSdHash() => clearField(6);
}
class Fee extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Fee', package: const $pb.PackageName('pb'))
..e<Fee_Currency>(1, 'currency', $pb.PbFieldType.OE, Fee_Currency.UNKNOWN_CURRENCY, Fee_Currency.valueOf, Fee_Currency.values)
..a<$core.List<$core.int>>(2, 'address', $pb.PbFieldType.OY)
..a<Int64>(3, 'amount', $pb.PbFieldType.OU6, Int64.ZERO)
..hasRequiredFields = false
;
Fee._() : super();
factory Fee() => create();
factory Fee.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Fee.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Fee clone() => Fee()..mergeFromMessage(this);
Fee copyWith(void Function(Fee) updates) => super.copyWith((message) => updates(message as Fee));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Fee create() => Fee._();
Fee createEmptyInstance() => create();
static $pb.PbList<Fee> createRepeated() => $pb.PbList<Fee>();
static Fee getDefault() => _defaultInstance ??= create()..freeze();
static Fee _defaultInstance;
Fee_Currency get currency => $_getN(0);
set currency(Fee_Currency v) { setField(1, v); }
$core.bool hasCurrency() => $_has(0);
void clearCurrency() => clearField(1);
$core.List<$core.int> get address => $_getN(1);
set address($core.List<$core.int> v) { $_setBytes(1, v); }
$core.bool hasAddress() => $_has(1);
void clearAddress() => clearField(2);
Int64 get amount => $_getI64(2);
set amount(Int64 v) { $_setInt64(2, v); }
$core.bool hasAmount() => $_has(2);
void clearAmount() => clearField(3);
}
class Image extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Image', package: const $pb.PackageName('pb'))
..a<$core.int>(1, 'width', $pb.PbFieldType.OU3)
..a<$core.int>(2, 'height', $pb.PbFieldType.OU3)
..hasRequiredFields = false
;
Image._() : super();
factory Image() => create();
factory Image.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Image.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Image clone() => Image()..mergeFromMessage(this);
Image copyWith(void Function(Image) updates) => super.copyWith((message) => updates(message as Image));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Image create() => Image._();
Image createEmptyInstance() => create();
static $pb.PbList<Image> createRepeated() => $pb.PbList<Image>();
static Image getDefault() => _defaultInstance ??= create()..freeze();
static Image _defaultInstance;
$core.int get width => $_get(0, 0);
set width($core.int v) { $_setUnsignedInt32(0, v); }
$core.bool hasWidth() => $_has(0);
void clearWidth() => clearField(1);
$core.int get height => $_get(1, 0);
set height($core.int v) { $_setUnsignedInt32(1, v); }
$core.bool hasHeight() => $_has(1);
void clearHeight() => clearField(2);
}
class Video extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Video', package: const $pb.PackageName('pb'))
..a<$core.int>(1, 'width', $pb.PbFieldType.OU3)
..a<$core.int>(2, 'height', $pb.PbFieldType.OU3)
..a<$core.int>(3, 'duration', $pb.PbFieldType.OU3)
..a<Audio>(15, 'audio', $pb.PbFieldType.OM, Audio.getDefault, Audio.create)
..hasRequiredFields = false
;
Video._() : super();
factory Video() => create();
factory Video.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Video.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Video clone() => Video()..mergeFromMessage(this);
Video copyWith(void Function(Video) updates) => super.copyWith((message) => updates(message as Video));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Video create() => Video._();
Video createEmptyInstance() => create();
static $pb.PbList<Video> createRepeated() => $pb.PbList<Video>();
static Video getDefault() => _defaultInstance ??= create()..freeze();
static Video _defaultInstance;
$core.int get width => $_get(0, 0);
set width($core.int v) { $_setUnsignedInt32(0, v); }
$core.bool hasWidth() => $_has(0);
void clearWidth() => clearField(1);
$core.int get height => $_get(1, 0);
set height($core.int v) { $_setUnsignedInt32(1, v); }
$core.bool hasHeight() => $_has(1);
void clearHeight() => clearField(2);
$core.int get duration => $_get(2, 0);
set duration($core.int v) { $_setUnsignedInt32(2, v); }
$core.bool hasDuration() => $_has(2);
void clearDuration() => clearField(3);
Audio get audio => $_getN(3);
set audio(Audio v) { setField(15, v); }
$core.bool hasAudio() => $_has(3);
void clearAudio() => clearField(15);
}
class Audio extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Audio', package: const $pb.PackageName('pb'))
..a<$core.int>(1, 'duration', $pb.PbFieldType.OU3)
..hasRequiredFields = false
;
Audio._() : super();
factory Audio() => create();
factory Audio.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Audio.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Audio clone() => Audio()..mergeFromMessage(this);
Audio copyWith(void Function(Audio) updates) => super.copyWith((message) => updates(message as Audio));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Audio create() => Audio._();
Audio createEmptyInstance() => create();
static $pb.PbList<Audio> createRepeated() => $pb.PbList<Audio>();
static Audio getDefault() => _defaultInstance ??= create()..freeze();
static Audio _defaultInstance;
$core.int get duration => $_get(0, 0);
set duration($core.int v) { $_setUnsignedInt32(0, v); }
$core.bool hasDuration() => $_has(0);
void clearDuration() => clearField(1);
}
class Software extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Software', package: const $pb.PackageName('pb'))
..aOS(1, 'os')
..hasRequiredFields = false
;
Software._() : super();
factory Software() => create();
factory Software.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Software.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Software clone() => Software()..mergeFromMessage(this);
Software copyWith(void Function(Software) updates) => super.copyWith((message) => updates(message as Software));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Software create() => Software._();
Software createEmptyInstance() => create();
static $pb.PbList<Software> createRepeated() => $pb.PbList<Software>();
static Software getDefault() => _defaultInstance ??= create()..freeze();
static Software _defaultInstance;
$core.String get os => $_getS(0, '');
set os($core.String v) { $_setString(0, v); }
$core.bool hasOs() => $_has(0);
void clearOs() => clearField(1);
}
class Language extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Language', package: const $pb.PackageName('pb'))
..e<Language_Language>(1, 'language', $pb.PbFieldType.OE, Language_Language.UNKNOWN_LANGUAGE, Language_Language.valueOf, Language_Language.values)
..e<Language_Script>(2, 'script', $pb.PbFieldType.OE, Language_Script.UNKNOWN_SCRIPT, Language_Script.valueOf, Language_Script.values)
..e<Location_Country>(3, 'region', $pb.PbFieldType.OE, Location_Country.UNKNOWN_COUNTRY, Location_Country.valueOf, Location_Country.values)
..hasRequiredFields = false
;
Language._() : super();
factory Language() => create();
factory Language.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Language.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Language clone() => Language()..mergeFromMessage(this);
Language copyWith(void Function(Language) updates) => super.copyWith((message) => updates(message as Language));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Language create() => Language._();
Language createEmptyInstance() => create();
static $pb.PbList<Language> createRepeated() => $pb.PbList<Language>();
static Language getDefault() => _defaultInstance ??= create()..freeze();
static Language _defaultInstance;
Language_Language get language => $_getN(0);
set language(Language_Language v) { setField(1, v); }
$core.bool hasLanguage() => $_has(0);
void clearLanguage() => clearField(1);
Language_Script get script => $_getN(1);
set script(Language_Script v) { setField(2, v); }
$core.bool hasScript() => $_has(1);
void clearScript() => clearField(2);
Location_Country get region => $_getN(2);
set region(Location_Country v) { setField(3, v); }
$core.bool hasRegion() => $_has(2);
void clearRegion() => clearField(3);
}
class Location extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Location', package: const $pb.PackageName('pb'))
..e<Location_Country>(1, 'country', $pb.PbFieldType.OE, Location_Country.UNKNOWN_COUNTRY, Location_Country.valueOf, Location_Country.values)
..aOS(2, 'state')
..aOS(3, 'city')
..aOS(4, 'code')
..a<$core.int>(5, 'latitude', $pb.PbFieldType.OS3)
..a<$core.int>(6, 'longitude', $pb.PbFieldType.OS3)
..hasRequiredFields = false
;
Location._() : super();
factory Location() => create();
factory Location.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Location.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Location clone() => Location()..mergeFromMessage(this);
Location copyWith(void Function(Location) updates) => super.copyWith((message) => updates(message as Location));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Location create() => Location._();
Location createEmptyInstance() => create();
static $pb.PbList<Location> createRepeated() => $pb.PbList<Location>();
static Location getDefault() => _defaultInstance ??= create()..freeze();
static Location _defaultInstance;
Location_Country get country => $_getN(0);
set country(Location_Country v) { setField(1, v); }
$core.bool hasCountry() => $_has(0);
void clearCountry() => clearField(1);
$core.String get state => $_getS(1, '');
set state($core.String v) { $_setString(1, v); }
$core.bool hasState() => $_has(1);
void clearState() => clearField(2);
$core.String get city => $_getS(2, '');
set city($core.String v) { $_setString(2, v); }
$core.bool hasCity() => $_has(2);
void clearCity() => clearField(3);
$core.String get code => $_getS(3, '');
set code($core.String v) { $_setString(3, v); }
$core.bool hasCode() => $_has(3);
void clearCode() => clearField(4);
$core.int get latitude => $_get(4, 0);
set latitude($core.int v) { $_setSignedInt32(4, v); }
$core.bool hasLatitude() => $_has(4);
void clearLatitude() => clearField(5);
$core.int get longitude => $_get(5, 0);
set longitude($core.int v) { $_setSignedInt32(5, v); }
$core.bool hasLongitude() => $_has(5);
void clearLongitude() => clearField(6);
}

File diff suppressed because it is too large Load diff

View file

@ -1,833 +0,0 @@
///
// Generated code. Do not modify.
// source: claim.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
const Claim$json = const {
'1': 'Claim',
'2': const [
const {'1': 'stream', '3': 1, '4': 1, '5': 11, '6': '.pb.Stream', '9': 0, '10': 'stream'},
const {'1': 'channel', '3': 2, '4': 1, '5': 11, '6': '.pb.Channel', '9': 0, '10': 'channel'},
const {'1': 'collection', '3': 3, '4': 1, '5': 11, '6': '.pb.ClaimList', '9': 0, '10': 'collection'},
const {'1': 'repost', '3': 4, '4': 1, '5': 11, '6': '.pb.ClaimReference', '9': 0, '10': 'repost'},
const {'1': 'title', '3': 8, '4': 1, '5': 9, '10': 'title'},
const {'1': 'description', '3': 9, '4': 1, '5': 9, '10': 'description'},
const {'1': 'thumbnail', '3': 10, '4': 1, '5': 11, '6': '.pb.Source', '10': 'thumbnail'},
const {'1': 'tags', '3': 11, '4': 3, '5': 9, '10': 'tags'},
const {'1': 'languages', '3': 12, '4': 3, '5': 11, '6': '.pb.Language', '10': 'languages'},
const {'1': 'locations', '3': 13, '4': 3, '5': 11, '6': '.pb.Location', '10': 'locations'},
],
'8': const [
const {'1': 'type'},
],
};
const Stream$json = const {
'1': 'Stream',
'2': const [
const {'1': 'source', '3': 1, '4': 1, '5': 11, '6': '.pb.Source', '10': 'source'},
const {'1': 'author', '3': 2, '4': 1, '5': 9, '10': 'author'},
const {'1': 'license', '3': 3, '4': 1, '5': 9, '10': 'license'},
const {'1': 'license_url', '3': 4, '4': 1, '5': 9, '10': 'licenseUrl'},
const {'1': 'release_time', '3': 5, '4': 1, '5': 3, '10': 'releaseTime'},
const {'1': 'fee', '3': 6, '4': 1, '5': 11, '6': '.pb.Fee', '10': 'fee'},
const {'1': 'image', '3': 10, '4': 1, '5': 11, '6': '.pb.Image', '9': 0, '10': 'image'},
const {'1': 'video', '3': 11, '4': 1, '5': 11, '6': '.pb.Video', '9': 0, '10': 'video'},
const {'1': 'audio', '3': 12, '4': 1, '5': 11, '6': '.pb.Audio', '9': 0, '10': 'audio'},
const {'1': 'software', '3': 13, '4': 1, '5': 11, '6': '.pb.Software', '9': 0, '10': 'software'},
],
'8': const [
const {'1': 'type'},
],
};
const Channel$json = const {
'1': 'Channel',
'2': const [
const {'1': 'public_key', '3': 1, '4': 1, '5': 12, '10': 'publicKey'},
const {'1': 'email', '3': 2, '4': 1, '5': 9, '10': 'email'},
const {'1': 'website_url', '3': 3, '4': 1, '5': 9, '10': 'websiteUrl'},
const {'1': 'cover', '3': 4, '4': 1, '5': 11, '6': '.pb.Source', '10': 'cover'},
const {'1': 'featured', '3': 5, '4': 1, '5': 11, '6': '.pb.ClaimList', '10': 'featured'},
],
};
const ClaimReference$json = const {
'1': 'ClaimReference',
'2': const [
const {'1': 'claim_hash', '3': 1, '4': 1, '5': 12, '10': 'claimHash'},
],
};
const ClaimList$json = const {
'1': 'ClaimList',
'2': const [
const {'1': 'list_type', '3': 1, '4': 1, '5': 14, '6': '.pb.ClaimList.ListType', '10': 'listType'},
const {'1': 'claim_references', '3': 2, '4': 3, '5': 11, '6': '.pb.ClaimReference', '10': 'claimReferences'},
],
'4': const [ClaimList_ListType$json],
};
const ClaimList_ListType$json = const {
'1': 'ListType',
'2': const [
const {'1': 'COLLECTION', '2': 0},
const {'1': 'DERIVATION', '2': 2},
],
};
const Source$json = const {
'1': 'Source',
'2': const [
const {'1': 'hash', '3': 1, '4': 1, '5': 12, '10': 'hash'},
const {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'},
const {'1': 'size', '3': 3, '4': 1, '5': 4, '10': 'size'},
const {'1': 'media_type', '3': 4, '4': 1, '5': 9, '10': 'mediaType'},
const {'1': 'url', '3': 5, '4': 1, '5': 9, '10': 'url'},
const {'1': 'sd_hash', '3': 6, '4': 1, '5': 12, '10': 'sdHash'},
],
};
const Fee$json = const {
'1': 'Fee',
'2': const [
const {'1': 'currency', '3': 1, '4': 1, '5': 14, '6': '.pb.Fee.Currency', '10': 'currency'},
const {'1': 'address', '3': 2, '4': 1, '5': 12, '10': 'address'},
const {'1': 'amount', '3': 3, '4': 1, '5': 4, '10': 'amount'},
],
'4': const [Fee_Currency$json],
};
const Fee_Currency$json = const {
'1': 'Currency',
'2': const [
const {'1': 'UNKNOWN_CURRENCY', '2': 0},
const {'1': 'LBC', '2': 1},
const {'1': 'BTC', '2': 2},
const {'1': 'USD', '2': 3},
],
};
const Image$json = const {
'1': 'Image',
'2': const [
const {'1': 'width', '3': 1, '4': 1, '5': 13, '10': 'width'},
const {'1': 'height', '3': 2, '4': 1, '5': 13, '10': 'height'},
],
};
const Video$json = const {
'1': 'Video',
'2': const [
const {'1': 'width', '3': 1, '4': 1, '5': 13, '10': 'width'},
const {'1': 'height', '3': 2, '4': 1, '5': 13, '10': 'height'},
const {'1': 'duration', '3': 3, '4': 1, '5': 13, '10': 'duration'},
const {'1': 'audio', '3': 15, '4': 1, '5': 11, '6': '.pb.Audio', '10': 'audio'},
],
};
const Audio$json = const {
'1': 'Audio',
'2': const [
const {'1': 'duration', '3': 1, '4': 1, '5': 13, '10': 'duration'},
],
};
const Software$json = const {
'1': 'Software',
'2': const [
const {'1': 'os', '3': 1, '4': 1, '5': 9, '10': 'os'},
],
'4': const [Software_OS$json],
};
const Software_OS$json = const {
'1': 'OS',
'2': const [
const {'1': 'UNKNOWN_OS', '2': 0},
const {'1': 'ANY', '2': 1},
const {'1': 'LINUX', '2': 2},
const {'1': 'WINDOWS', '2': 3},
const {'1': 'MAC', '2': 4},
const {'1': 'ANDROID', '2': 5},
const {'1': 'IOS', '2': 6},
],
};
const Language$json = const {
'1': 'Language',
'2': const [
const {'1': 'language', '3': 1, '4': 1, '5': 14, '6': '.pb.Language.Language', '10': 'language'},
const {'1': 'script', '3': 2, '4': 1, '5': 14, '6': '.pb.Language.Script', '10': 'script'},
const {'1': 'region', '3': 3, '4': 1, '5': 14, '6': '.pb.Location.Country', '10': 'region'},
],
'4': const [Language_Language$json, Language_Script$json],
};
const Language_Language$json = const {
'1': 'Language',
'2': const [
const {'1': 'UNKNOWN_LANGUAGE', '2': 0},
const {'1': 'en', '2': 1},
const {'1': 'aa', '2': 2},
const {'1': 'ab', '2': 3},
const {'1': 'ae', '2': 4},
const {'1': 'af', '2': 5},
const {'1': 'ak', '2': 6},
const {'1': 'am', '2': 7},
const {'1': 'an', '2': 8},
const {'1': 'ar', '2': 9},
const {'1': 'as', '2': 10},
const {'1': 'av', '2': 11},
const {'1': 'ay', '2': 12},
const {'1': 'az', '2': 13},
const {'1': 'ba', '2': 14},
const {'1': 'be', '2': 15},
const {'1': 'bg', '2': 16},
const {'1': 'bh', '2': 17},
const {'1': 'bi', '2': 18},
const {'1': 'bm', '2': 19},
const {'1': 'bn', '2': 20},
const {'1': 'bo', '2': 21},
const {'1': 'br', '2': 22},
const {'1': 'bs', '2': 23},
const {'1': 'ca', '2': 24},
const {'1': 'ce', '2': 25},
const {'1': 'ch', '2': 26},
const {'1': 'co', '2': 27},
const {'1': 'cr', '2': 28},
const {'1': 'cs', '2': 29},
const {'1': 'cu', '2': 30},
const {'1': 'cv', '2': 31},
const {'1': 'cy', '2': 32},
const {'1': 'da', '2': 33},
const {'1': 'de', '2': 34},
const {'1': 'dv', '2': 35},
const {'1': 'dz', '2': 36},
const {'1': 'ee', '2': 37},
const {'1': 'el', '2': 38},
const {'1': 'eo', '2': 39},
const {'1': 'es', '2': 40},
const {'1': 'et', '2': 41},
const {'1': 'eu', '2': 42},
const {'1': 'fa', '2': 43},
const {'1': 'ff', '2': 44},
const {'1': 'fi', '2': 45},
const {'1': 'fj', '2': 46},
const {'1': 'fo', '2': 47},
const {'1': 'fr', '2': 48},
const {'1': 'fy', '2': 49},
const {'1': 'ga', '2': 50},
const {'1': 'gd', '2': 51},
const {'1': 'gl', '2': 52},
const {'1': 'gn', '2': 53},
const {'1': 'gu', '2': 54},
const {'1': 'gv', '2': 55},
const {'1': 'ha', '2': 56},
const {'1': 'he', '2': 57},
const {'1': 'hi', '2': 58},
const {'1': 'ho', '2': 59},
const {'1': 'hr', '2': 60},
const {'1': 'ht', '2': 61},
const {'1': 'hu', '2': 62},
const {'1': 'hy', '2': 63},
const {'1': 'hz', '2': 64},
const {'1': 'ia', '2': 65},
const {'1': 'id', '2': 66},
const {'1': 'ie', '2': 67},
const {'1': 'ig', '2': 68},
const {'1': 'ii', '2': 69},
const {'1': 'ik', '2': 70},
const {'1': 'io', '2': 71},
const {'1': 'is', '2': 72},
const {'1': 'it', '2': 73},
const {'1': 'iu', '2': 74},
const {'1': 'ja', '2': 75},
const {'1': 'jv', '2': 76},
const {'1': 'ka', '2': 77},
const {'1': 'kg', '2': 78},
const {'1': 'ki', '2': 79},
const {'1': 'kj', '2': 80},
const {'1': 'kk', '2': 81},
const {'1': 'kl', '2': 82},
const {'1': 'km', '2': 83},
const {'1': 'kn', '2': 84},
const {'1': 'ko', '2': 85},
const {'1': 'kr', '2': 86},
const {'1': 'ks', '2': 87},
const {'1': 'ku', '2': 88},
const {'1': 'kv', '2': 89},
const {'1': 'kw', '2': 90},
const {'1': 'ky', '2': 91},
const {'1': 'la', '2': 92},
const {'1': 'lb', '2': 93},
const {'1': 'lg', '2': 94},
const {'1': 'li', '2': 95},
const {'1': 'ln', '2': 96},
const {'1': 'lo', '2': 97},
const {'1': 'lt', '2': 98},
const {'1': 'lu', '2': 99},
const {'1': 'lv', '2': 100},
const {'1': 'mg', '2': 101},
const {'1': 'mh', '2': 102},
const {'1': 'mi', '2': 103},
const {'1': 'mk', '2': 104},
const {'1': 'ml', '2': 105},
const {'1': 'mn', '2': 106},
const {'1': 'mr', '2': 107},
const {'1': 'ms', '2': 108},
const {'1': 'mt', '2': 109},
const {'1': 'my', '2': 110},
const {'1': 'na', '2': 111},
const {'1': 'nb', '2': 112},
const {'1': 'nd', '2': 113},
const {'1': 'ne', '2': 114},
const {'1': 'ng', '2': 115},
const {'1': 'nl', '2': 116},
const {'1': 'nn', '2': 117},
const {'1': 'no', '2': 118},
const {'1': 'nr', '2': 119},
const {'1': 'nv', '2': 120},
const {'1': 'ny', '2': 121},
const {'1': 'oc', '2': 122},
const {'1': 'oj', '2': 123},
const {'1': 'om', '2': 124},
const {'1': 'or', '2': 125},
const {'1': 'os', '2': 126},
const {'1': 'pa', '2': 127},
const {'1': 'pi', '2': 128},
const {'1': 'pl', '2': 129},
const {'1': 'ps', '2': 130},
const {'1': 'pt', '2': 131},
const {'1': 'qu', '2': 132},
const {'1': 'rm', '2': 133},
const {'1': 'rn', '2': 134},
const {'1': 'ro', '2': 135},
const {'1': 'ru', '2': 136},
const {'1': 'rw', '2': 137},
const {'1': 'sa', '2': 138},
const {'1': 'sc', '2': 139},
const {'1': 'sd', '2': 140},
const {'1': 'se', '2': 141},
const {'1': 'sg', '2': 142},
const {'1': 'si', '2': 143},
const {'1': 'sk', '2': 144},
const {'1': 'sl', '2': 145},
const {'1': 'sm', '2': 146},
const {'1': 'sn', '2': 147},
const {'1': 'so', '2': 148},
const {'1': 'sq', '2': 149},
const {'1': 'sr', '2': 150},
const {'1': 'ss', '2': 151},
const {'1': 'st', '2': 152},
const {'1': 'su', '2': 153},
const {'1': 'sv', '2': 154},
const {'1': 'sw', '2': 155},
const {'1': 'ta', '2': 156},
const {'1': 'te', '2': 157},
const {'1': 'tg', '2': 158},
const {'1': 'th', '2': 159},
const {'1': 'ti', '2': 160},
const {'1': 'tk', '2': 161},
const {'1': 'tl', '2': 162},
const {'1': 'tn', '2': 163},
const {'1': 'to', '2': 164},
const {'1': 'tr', '2': 165},
const {'1': 'ts', '2': 166},
const {'1': 'tt', '2': 167},
const {'1': 'tw', '2': 168},
const {'1': 'ty', '2': 169},
const {'1': 'ug', '2': 170},
const {'1': 'uk', '2': 171},
const {'1': 'ur', '2': 172},
const {'1': 'uz', '2': 173},
const {'1': 've', '2': 174},
const {'1': 'vi', '2': 175},
const {'1': 'vo', '2': 176},
const {'1': 'wa', '2': 177},
const {'1': 'wo', '2': 178},
const {'1': 'xh', '2': 179},
const {'1': 'yi', '2': 180},
const {'1': 'yo', '2': 181},
const {'1': 'za', '2': 182},
const {'1': 'zh', '2': 183},
const {'1': 'zu', '2': 184},
],
};
const Language_Script$json = const {
'1': 'Script',
'2': const [
const {'1': 'UNKNOWN_SCRIPT', '2': 0},
const {'1': 'Adlm', '2': 1},
const {'1': 'Afak', '2': 2},
const {'1': 'Aghb', '2': 3},
const {'1': 'Ahom', '2': 4},
const {'1': 'Arab', '2': 5},
const {'1': 'Aran', '2': 6},
const {'1': 'Armi', '2': 7},
const {'1': 'Armn', '2': 8},
const {'1': 'Avst', '2': 9},
const {'1': 'Bali', '2': 10},
const {'1': 'Bamu', '2': 11},
const {'1': 'Bass', '2': 12},
const {'1': 'Batk', '2': 13},
const {'1': 'Beng', '2': 14},
const {'1': 'Bhks', '2': 15},
const {'1': 'Blis', '2': 16},
const {'1': 'Bopo', '2': 17},
const {'1': 'Brah', '2': 18},
const {'1': 'Brai', '2': 19},
const {'1': 'Bugi', '2': 20},
const {'1': 'Buhd', '2': 21},
const {'1': 'Cakm', '2': 22},
const {'1': 'Cans', '2': 23},
const {'1': 'Cari', '2': 24},
const {'1': 'Cham', '2': 25},
const {'1': 'Cher', '2': 26},
const {'1': 'Cirt', '2': 27},
const {'1': 'Copt', '2': 28},
const {'1': 'Cpmn', '2': 29},
const {'1': 'Cprt', '2': 30},
const {'1': 'Cyrl', '2': 31},
const {'1': 'Cyrs', '2': 32},
const {'1': 'Deva', '2': 33},
const {'1': 'Dogr', '2': 34},
const {'1': 'Dsrt', '2': 35},
const {'1': 'Dupl', '2': 36},
const {'1': 'Egyd', '2': 37},
const {'1': 'Egyh', '2': 38},
const {'1': 'Egyp', '2': 39},
const {'1': 'Elba', '2': 40},
const {'1': 'Elym', '2': 41},
const {'1': 'Ethi', '2': 42},
const {'1': 'Geok', '2': 43},
const {'1': 'Geor', '2': 44},
const {'1': 'Glag', '2': 45},
const {'1': 'Gong', '2': 46},
const {'1': 'Gonm', '2': 47},
const {'1': 'Goth', '2': 48},
const {'1': 'Gran', '2': 49},
const {'1': 'Grek', '2': 50},
const {'1': 'Gujr', '2': 51},
const {'1': 'Guru', '2': 52},
const {'1': 'Hanb', '2': 53},
const {'1': 'Hang', '2': 54},
const {'1': 'Hani', '2': 55},
const {'1': 'Hano', '2': 56},
const {'1': 'Hans', '2': 57},
const {'1': 'Hant', '2': 58},
const {'1': 'Hatr', '2': 59},
const {'1': 'Hebr', '2': 60},
const {'1': 'Hira', '2': 61},
const {'1': 'Hluw', '2': 62},
const {'1': 'Hmng', '2': 63},
const {'1': 'Hmnp', '2': 64},
const {'1': 'Hrkt', '2': 65},
const {'1': 'Hung', '2': 66},
const {'1': 'Inds', '2': 67},
const {'1': 'Ital', '2': 68},
const {'1': 'Jamo', '2': 69},
const {'1': 'Java', '2': 70},
const {'1': 'Jpan', '2': 71},
const {'1': 'Jurc', '2': 72},
const {'1': 'Kali', '2': 73},
const {'1': 'Kana', '2': 74},
const {'1': 'Khar', '2': 75},
const {'1': 'Khmr', '2': 76},
const {'1': 'Khoj', '2': 77},
const {'1': 'Kitl', '2': 78},
const {'1': 'Kits', '2': 79},
const {'1': 'Knda', '2': 80},
const {'1': 'Kore', '2': 81},
const {'1': 'Kpel', '2': 82},
const {'1': 'Kthi', '2': 83},
const {'1': 'Lana', '2': 84},
const {'1': 'Laoo', '2': 85},
const {'1': 'Latf', '2': 86},
const {'1': 'Latg', '2': 87},
const {'1': 'Latn', '2': 88},
const {'1': 'Leke', '2': 89},
const {'1': 'Lepc', '2': 90},
const {'1': 'Limb', '2': 91},
const {'1': 'Lina', '2': 92},
const {'1': 'Linb', '2': 93},
const {'1': 'Lisu', '2': 94},
const {'1': 'Loma', '2': 95},
const {'1': 'Lyci', '2': 96},
const {'1': 'Lydi', '2': 97},
const {'1': 'Mahj', '2': 98},
const {'1': 'Maka', '2': 99},
const {'1': 'Mand', '2': 100},
const {'1': 'Mani', '2': 101},
const {'1': 'Marc', '2': 102},
const {'1': 'Maya', '2': 103},
const {'1': 'Medf', '2': 104},
const {'1': 'Mend', '2': 105},
const {'1': 'Merc', '2': 106},
const {'1': 'Mero', '2': 107},
const {'1': 'Mlym', '2': 108},
const {'1': 'Modi', '2': 109},
const {'1': 'Mong', '2': 110},
const {'1': 'Moon', '2': 111},
const {'1': 'Mroo', '2': 112},
const {'1': 'Mtei', '2': 113},
const {'1': 'Mult', '2': 114},
const {'1': 'Mymr', '2': 115},
const {'1': 'Nand', '2': 116},
const {'1': 'Narb', '2': 117},
const {'1': 'Nbat', '2': 118},
const {'1': 'Newa', '2': 119},
const {'1': 'Nkdb', '2': 120},
const {'1': 'Nkgb', '2': 121},
const {'1': 'Nkoo', '2': 122},
const {'1': 'Nshu', '2': 123},
const {'1': 'Ogam', '2': 124},
const {'1': 'Olck', '2': 125},
const {'1': 'Orkh', '2': 126},
const {'1': 'Orya', '2': 127},
const {'1': 'Osge', '2': 128},
const {'1': 'Osma', '2': 129},
const {'1': 'Palm', '2': 130},
const {'1': 'Pauc', '2': 131},
const {'1': 'Perm', '2': 132},
const {'1': 'Phag', '2': 133},
const {'1': 'Phli', '2': 134},
const {'1': 'Phlp', '2': 135},
const {'1': 'Phlv', '2': 136},
const {'1': 'Phnx', '2': 137},
const {'1': 'Plrd', '2': 138},
const {'1': 'Piqd', '2': 139},
const {'1': 'Prti', '2': 140},
const {'1': 'Qaaa', '2': 141},
const {'1': 'Qabx', '2': 142},
const {'1': 'Rjng', '2': 143},
const {'1': 'Rohg', '2': 144},
const {'1': 'Roro', '2': 145},
const {'1': 'Runr', '2': 146},
const {'1': 'Samr', '2': 147},
const {'1': 'Sara', '2': 148},
const {'1': 'Sarb', '2': 149},
const {'1': 'Saur', '2': 150},
const {'1': 'Sgnw', '2': 151},
const {'1': 'Shaw', '2': 152},
const {'1': 'Shrd', '2': 153},
const {'1': 'Shui', '2': 154},
const {'1': 'Sidd', '2': 155},
const {'1': 'Sind', '2': 156},
const {'1': 'Sinh', '2': 157},
const {'1': 'Sogd', '2': 158},
const {'1': 'Sogo', '2': 159},
const {'1': 'Sora', '2': 160},
const {'1': 'Soyo', '2': 161},
const {'1': 'Sund', '2': 162},
const {'1': 'Sylo', '2': 163},
const {'1': 'Syrc', '2': 164},
const {'1': 'Syre', '2': 165},
const {'1': 'Syrj', '2': 166},
const {'1': 'Syrn', '2': 167},
const {'1': 'Tagb', '2': 168},
const {'1': 'Takr', '2': 169},
const {'1': 'Tale', '2': 170},
const {'1': 'Talu', '2': 171},
const {'1': 'Taml', '2': 172},
const {'1': 'Tang', '2': 173},
const {'1': 'Tavt', '2': 174},
const {'1': 'Telu', '2': 175},
const {'1': 'Teng', '2': 176},
const {'1': 'Tfng', '2': 177},
const {'1': 'Tglg', '2': 178},
const {'1': 'Thaa', '2': 179},
const {'1': 'Thai', '2': 180},
const {'1': 'Tibt', '2': 181},
const {'1': 'Tirh', '2': 182},
const {'1': 'Ugar', '2': 183},
const {'1': 'Vaii', '2': 184},
const {'1': 'Visp', '2': 185},
const {'1': 'Wara', '2': 186},
const {'1': 'Wcho', '2': 187},
const {'1': 'Wole', '2': 188},
const {'1': 'Xpeo', '2': 189},
const {'1': 'Xsux', '2': 190},
const {'1': 'Yiii', '2': 191},
const {'1': 'Zanb', '2': 192},
const {'1': 'Zinh', '2': 193},
const {'1': 'Zmth', '2': 194},
const {'1': 'Zsye', '2': 195},
const {'1': 'Zsym', '2': 196},
const {'1': 'Zxxx', '2': 197},
const {'1': 'Zyyy', '2': 198},
const {'1': 'Zzzz', '2': 199},
],
};
const Location$json = const {
'1': 'Location',
'2': const [
const {'1': 'country', '3': 1, '4': 1, '5': 14, '6': '.pb.Location.Country', '10': 'country'},
const {'1': 'state', '3': 2, '4': 1, '5': 9, '10': 'state'},
const {'1': 'city', '3': 3, '4': 1, '5': 9, '10': 'city'},
const {'1': 'code', '3': 4, '4': 1, '5': 9, '10': 'code'},
const {'1': 'latitude', '3': 5, '4': 1, '5': 17, '10': 'latitude'},
const {'1': 'longitude', '3': 6, '4': 1, '5': 17, '10': 'longitude'},
],
'4': const [Location_Country$json],
};
const Location_Country$json = const {
'1': 'Country',
'2': const [
const {'1': 'UNKNOWN_COUNTRY', '2': 0},
const {'1': 'AF', '2': 1},
const {'1': 'AX', '2': 2},
const {'1': 'AL', '2': 3},
const {'1': 'DZ', '2': 4},
const {'1': 'AS', '2': 5},
const {'1': 'AD', '2': 6},
const {'1': 'AO', '2': 7},
const {'1': 'AI', '2': 8},
const {'1': 'AQ', '2': 9},
const {'1': 'AG', '2': 10},
const {'1': 'AR', '2': 11},
const {'1': 'AM', '2': 12},
const {'1': 'AW', '2': 13},
const {'1': 'AU', '2': 14},
const {'1': 'AT', '2': 15},
const {'1': 'AZ', '2': 16},
const {'1': 'BS', '2': 17},
const {'1': 'BH', '2': 18},
const {'1': 'BD', '2': 19},
const {'1': 'BB', '2': 20},
const {'1': 'BY', '2': 21},
const {'1': 'BE', '2': 22},
const {'1': 'BZ', '2': 23},
const {'1': 'BJ', '2': 24},
const {'1': 'BM', '2': 25},
const {'1': 'BT', '2': 26},
const {'1': 'BO', '2': 27},
const {'1': 'BQ', '2': 28},
const {'1': 'BA', '2': 29},
const {'1': 'BW', '2': 30},
const {'1': 'BV', '2': 31},
const {'1': 'BR', '2': 32},
const {'1': 'IO', '2': 33},
const {'1': 'BN', '2': 34},
const {'1': 'BG', '2': 35},
const {'1': 'BF', '2': 36},
const {'1': 'BI', '2': 37},
const {'1': 'KH', '2': 38},
const {'1': 'CM', '2': 39},
const {'1': 'CA', '2': 40},
const {'1': 'CV', '2': 41},
const {'1': 'KY', '2': 42},
const {'1': 'CF', '2': 43},
const {'1': 'TD', '2': 44},
const {'1': 'CL', '2': 45},
const {'1': 'CN', '2': 46},
const {'1': 'CX', '2': 47},
const {'1': 'CC', '2': 48},
const {'1': 'CO', '2': 49},
const {'1': 'KM', '2': 50},
const {'1': 'CG', '2': 51},
const {'1': 'CD', '2': 52},
const {'1': 'CK', '2': 53},
const {'1': 'CR', '2': 54},
const {'1': 'CI', '2': 55},
const {'1': 'HR', '2': 56},
const {'1': 'CU', '2': 57},
const {'1': 'CW', '2': 58},
const {'1': 'CY', '2': 59},
const {'1': 'CZ', '2': 60},
const {'1': 'DK', '2': 61},
const {'1': 'DJ', '2': 62},
const {'1': 'DM', '2': 63},
const {'1': 'DO', '2': 64},
const {'1': 'EC', '2': 65},
const {'1': 'EG', '2': 66},
const {'1': 'SV', '2': 67},
const {'1': 'GQ', '2': 68},
const {'1': 'ER', '2': 69},
const {'1': 'EE', '2': 70},
const {'1': 'ET', '2': 71},
const {'1': 'FK', '2': 72},
const {'1': 'FO', '2': 73},
const {'1': 'FJ', '2': 74},
const {'1': 'FI', '2': 75},
const {'1': 'FR', '2': 76},
const {'1': 'GF', '2': 77},
const {'1': 'PF', '2': 78},
const {'1': 'TF', '2': 79},
const {'1': 'GA', '2': 80},
const {'1': 'GM', '2': 81},
const {'1': 'GE', '2': 82},
const {'1': 'DE', '2': 83},
const {'1': 'GH', '2': 84},
const {'1': 'GI', '2': 85},
const {'1': 'GR', '2': 86},
const {'1': 'GL', '2': 87},
const {'1': 'GD', '2': 88},
const {'1': 'GP', '2': 89},
const {'1': 'GU', '2': 90},
const {'1': 'GT', '2': 91},
const {'1': 'GG', '2': 92},
const {'1': 'GN', '2': 93},
const {'1': 'GW', '2': 94},
const {'1': 'GY', '2': 95},
const {'1': 'HT', '2': 96},
const {'1': 'HM', '2': 97},
const {'1': 'VA', '2': 98},
const {'1': 'HN', '2': 99},
const {'1': 'HK', '2': 100},
const {'1': 'HU', '2': 101},
const {'1': 'IS', '2': 102},
const {'1': 'IN', '2': 103},
const {'1': 'ID', '2': 104},
const {'1': 'IR', '2': 105},
const {'1': 'IQ', '2': 106},
const {'1': 'IE', '2': 107},
const {'1': 'IM', '2': 108},
const {'1': 'IL', '2': 109},
const {'1': 'IT', '2': 110},
const {'1': 'JM', '2': 111},
const {'1': 'JP', '2': 112},
const {'1': 'JE', '2': 113},
const {'1': 'JO', '2': 114},
const {'1': 'KZ', '2': 115},
const {'1': 'KE', '2': 116},
const {'1': 'KI', '2': 117},
const {'1': 'KP', '2': 118},
const {'1': 'KR', '2': 119},
const {'1': 'KW', '2': 120},
const {'1': 'KG', '2': 121},
const {'1': 'LA', '2': 122},
const {'1': 'LV', '2': 123},
const {'1': 'LB', '2': 124},
const {'1': 'LS', '2': 125},
const {'1': 'LR', '2': 126},
const {'1': 'LY', '2': 127},
const {'1': 'LI', '2': 128},
const {'1': 'LT', '2': 129},
const {'1': 'LU', '2': 130},
const {'1': 'MO', '2': 131},
const {'1': 'MK', '2': 132},
const {'1': 'MG', '2': 133},
const {'1': 'MW', '2': 134},
const {'1': 'MY', '2': 135},
const {'1': 'MV', '2': 136},
const {'1': 'ML', '2': 137},
const {'1': 'MT', '2': 138},
const {'1': 'MH', '2': 139},
const {'1': 'MQ', '2': 140},
const {'1': 'MR', '2': 141},
const {'1': 'MU', '2': 142},
const {'1': 'YT', '2': 143},
const {'1': 'MX', '2': 144},
const {'1': 'FM', '2': 145},
const {'1': 'MD', '2': 146},
const {'1': 'MC', '2': 147},
const {'1': 'MN', '2': 148},
const {'1': 'ME', '2': 149},
const {'1': 'MS', '2': 150},
const {'1': 'MA', '2': 151},
const {'1': 'MZ', '2': 152},
const {'1': 'MM', '2': 153},
const {'1': 'NA', '2': 154},
const {'1': 'NR', '2': 155},
const {'1': 'NP', '2': 156},
const {'1': 'NL', '2': 157},
const {'1': 'NC', '2': 158},
const {'1': 'NZ', '2': 159},
const {'1': 'NI', '2': 160},
const {'1': 'NE', '2': 161},
const {'1': 'NG', '2': 162},
const {'1': 'NU', '2': 163},
const {'1': 'NF', '2': 164},
const {'1': 'MP', '2': 165},
const {'1': 'NO', '2': 166},
const {'1': 'OM', '2': 167},
const {'1': 'PK', '2': 168},
const {'1': 'PW', '2': 169},
const {'1': 'PS', '2': 170},
const {'1': 'PA', '2': 171},
const {'1': 'PG', '2': 172},
const {'1': 'PY', '2': 173},
const {'1': 'PE', '2': 174},
const {'1': 'PH', '2': 175},
const {'1': 'PN', '2': 176},
const {'1': 'PL', '2': 177},
const {'1': 'PT', '2': 178},
const {'1': 'PR', '2': 179},
const {'1': 'QA', '2': 180},
const {'1': 'RE', '2': 181},
const {'1': 'RO', '2': 182},
const {'1': 'RU', '2': 183},
const {'1': 'RW', '2': 184},
const {'1': 'BL', '2': 185},
const {'1': 'SH', '2': 186},
const {'1': 'KN', '2': 187},
const {'1': 'LC', '2': 188},
const {'1': 'MF', '2': 189},
const {'1': 'PM', '2': 190},
const {'1': 'VC', '2': 191},
const {'1': 'WS', '2': 192},
const {'1': 'SM', '2': 193},
const {'1': 'ST', '2': 194},
const {'1': 'SA', '2': 195},
const {'1': 'SN', '2': 196},
const {'1': 'RS', '2': 197},
const {'1': 'SC', '2': 198},
const {'1': 'SL', '2': 199},
const {'1': 'SG', '2': 200},
const {'1': 'SX', '2': 201},
const {'1': 'SK', '2': 202},
const {'1': 'SI', '2': 203},
const {'1': 'SB', '2': 204},
const {'1': 'SO', '2': 205},
const {'1': 'ZA', '2': 206},
const {'1': 'GS', '2': 207},
const {'1': 'SS', '2': 208},
const {'1': 'ES', '2': 209},
const {'1': 'LK', '2': 210},
const {'1': 'SD', '2': 211},
const {'1': 'SR', '2': 212},
const {'1': 'SJ', '2': 213},
const {'1': 'SZ', '2': 214},
const {'1': 'SE', '2': 215},
const {'1': 'CH', '2': 216},
const {'1': 'SY', '2': 217},
const {'1': 'TW', '2': 218},
const {'1': 'TJ', '2': 219},
const {'1': 'TZ', '2': 220},
const {'1': 'TH', '2': 221},
const {'1': 'TL', '2': 222},
const {'1': 'TG', '2': 223},
const {'1': 'TK', '2': 224},
const {'1': 'TO', '2': 225},
const {'1': 'TT', '2': 226},
const {'1': 'TN', '2': 227},
const {'1': 'TR', '2': 228},
const {'1': 'TM', '2': 229},
const {'1': 'TC', '2': 230},
const {'1': 'TV', '2': 231},
const {'1': 'UG', '2': 232},
const {'1': 'UA', '2': 233},
const {'1': 'AE', '2': 234},
const {'1': 'GB', '2': 235},
const {'1': 'US', '2': 236},
const {'1': 'UM', '2': 237},
const {'1': 'UY', '2': 238},
const {'1': 'UZ', '2': 239},
const {'1': 'VU', '2': 240},
const {'1': 'VE', '2': 241},
const {'1': 'VN', '2': 242},
const {'1': 'VG', '2': 243},
const {'1': 'VI', '2': 244},
const {'1': 'WF', '2': 245},
const {'1': 'EH', '2': 246},
const {'1': 'YE', '2': 247},
const {'1': 'ZM', '2': 248},
const {'1': 'ZW', '2': 249},
],
};

View file

@ -1,8 +0,0 @@
///
// Generated code. Do not modify.
// source: claim.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
export 'claim.pb.dart';

View file

@ -1,260 +0,0 @@
///
// Generated code. Do not modify.
// source: result.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
import 'dart:core' as $core show bool, Deprecated, double, int, List, Map, override, pragma, String;
import 'package:fixnum/fixnum.dart';
import 'package:protobuf/protobuf.dart' as $pb;
import 'result.pbenum.dart';
export 'result.pbenum.dart';
class Outputs extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Outputs', package: const $pb.PackageName('pb'))
..pc<Output>(1, 'txos', $pb.PbFieldType.PM,Output.create)
..pc<Output>(2, 'extraTxos', $pb.PbFieldType.PM,Output.create)
..a<$core.int>(3, 'total', $pb.PbFieldType.OU3)
..a<$core.int>(4, 'offset', $pb.PbFieldType.OU3)
..hasRequiredFields = false
;
Outputs._() : super();
factory Outputs() => create();
factory Outputs.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Outputs.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Outputs clone() => Outputs()..mergeFromMessage(this);
Outputs copyWith(void Function(Outputs) updates) => super.copyWith((message) => updates(message as Outputs));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Outputs create() => Outputs._();
Outputs createEmptyInstance() => create();
static $pb.PbList<Outputs> createRepeated() => $pb.PbList<Outputs>();
static Outputs getDefault() => _defaultInstance ??= create()..freeze();
static Outputs _defaultInstance;
$core.List<Output> get txos => $_getList(0);
$core.List<Output> get extraTxos => $_getList(1);
$core.int get total => $_get(2, 0);
set total($core.int v) { $_setUnsignedInt32(2, v); }
$core.bool hasTotal() => $_has(2);
void clearTotal() => clearField(3);
$core.int get offset => $_get(3, 0);
set offset($core.int v) { $_setUnsignedInt32(3, v); }
$core.bool hasOffset() => $_has(3);
void clearOffset() => clearField(4);
}
enum Output_Meta {
claim,
error,
notSet
}
class Output extends $pb.GeneratedMessage {
static const $core.Map<$core.int, Output_Meta> _Output_MetaByTag = {
7 : Output_Meta.claim,
15 : Output_Meta.error,
0 : Output_Meta.notSet
};
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Output', package: const $pb.PackageName('pb'))
..oo(0, [7, 15])
..a<$core.List<$core.int>>(1, 'txHash', $pb.PbFieldType.OY)
..a<$core.int>(2, 'nout', $pb.PbFieldType.OU3)
..a<$core.int>(3, 'height', $pb.PbFieldType.OU3)
..a<ClaimMeta>(7, 'claim', $pb.PbFieldType.OM, ClaimMeta.getDefault, ClaimMeta.create)
..a<Error>(15, 'error', $pb.PbFieldType.OM, Error.getDefault, Error.create)
..hasRequiredFields = false
;
Output._() : super();
factory Output() => create();
factory Output.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Output.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Output clone() => Output()..mergeFromMessage(this);
Output copyWith(void Function(Output) updates) => super.copyWith((message) => updates(message as Output));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Output create() => Output._();
Output createEmptyInstance() => create();
static $pb.PbList<Output> createRepeated() => $pb.PbList<Output>();
static Output getDefault() => _defaultInstance ??= create()..freeze();
static Output _defaultInstance;
Output_Meta whichMeta() => _Output_MetaByTag[$_whichOneof(0)];
void clearMeta() => clearField($_whichOneof(0));
$core.List<$core.int> get txHash => $_getN(0);
set txHash($core.List<$core.int> v) { $_setBytes(0, v); }
$core.bool hasTxHash() => $_has(0);
void clearTxHash() => clearField(1);
$core.int get nout => $_get(1, 0);
set nout($core.int v) { $_setUnsignedInt32(1, v); }
$core.bool hasNout() => $_has(1);
void clearNout() => clearField(2);
$core.int get height => $_get(2, 0);
set height($core.int v) { $_setUnsignedInt32(2, v); }
$core.bool hasHeight() => $_has(2);
void clearHeight() => clearField(3);
ClaimMeta get claim => $_getN(3);
set claim(ClaimMeta v) { setField(7, v); }
$core.bool hasClaim() => $_has(3);
void clearClaim() => clearField(7);
Error get error => $_getN(4);
set error(Error v) { setField(15, v); }
$core.bool hasError() => $_has(4);
void clearError() => clearField(15);
}
class ClaimMeta extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('ClaimMeta', package: const $pb.PackageName('pb'))
..a<Output>(1, 'channel', $pb.PbFieldType.OM, Output.getDefault, Output.create)
..aOS(2, 'shortUrl')
..aOS(3, 'canonicalUrl')
..aOB(4, 'isControlling')
..a<$core.int>(5, 'takeOverHeight', $pb.PbFieldType.OU3)
..a<$core.int>(6, 'creationHeight', $pb.PbFieldType.OU3)
..a<$core.int>(7, 'activationHeight', $pb.PbFieldType.OU3)
..a<$core.int>(8, 'expirationHeight', $pb.PbFieldType.OU3)
..a<$core.int>(9, 'claimsInChannel', $pb.PbFieldType.OU3)
..a<Int64>(10, 'effectiveAmount', $pb.PbFieldType.OU6, Int64.ZERO)
..a<Int64>(11, 'supportAmount', $pb.PbFieldType.OU6, Int64.ZERO)
..a<$core.int>(12, 'trendingGroup', $pb.PbFieldType.OU3)
..a<$core.double>(13, 'trendingMixed', $pb.PbFieldType.OF)
..a<$core.double>(14, 'trendingLocal', $pb.PbFieldType.OF)
..a<$core.double>(15, 'trendingGlobal', $pb.PbFieldType.OF)
..hasRequiredFields = false
;
ClaimMeta._() : super();
factory ClaimMeta() => create();
factory ClaimMeta.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory ClaimMeta.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
ClaimMeta clone() => ClaimMeta()..mergeFromMessage(this);
ClaimMeta copyWith(void Function(ClaimMeta) updates) => super.copyWith((message) => updates(message as ClaimMeta));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static ClaimMeta create() => ClaimMeta._();
ClaimMeta createEmptyInstance() => create();
static $pb.PbList<ClaimMeta> createRepeated() => $pb.PbList<ClaimMeta>();
static ClaimMeta getDefault() => _defaultInstance ??= create()..freeze();
static ClaimMeta _defaultInstance;
Output get channel => $_getN(0);
set channel(Output v) { setField(1, v); }
$core.bool hasChannel() => $_has(0);
void clearChannel() => clearField(1);
$core.String get shortUrl => $_getS(1, '');
set shortUrl($core.String v) { $_setString(1, v); }
$core.bool hasShortUrl() => $_has(1);
void clearShortUrl() => clearField(2);
$core.String get canonicalUrl => $_getS(2, '');
set canonicalUrl($core.String v) { $_setString(2, v); }
$core.bool hasCanonicalUrl() => $_has(2);
void clearCanonicalUrl() => clearField(3);
$core.bool get isControlling => $_get(3, false);
set isControlling($core.bool v) { $_setBool(3, v); }
$core.bool hasIsControlling() => $_has(3);
void clearIsControlling() => clearField(4);
$core.int get takeOverHeight => $_get(4, 0);
set takeOverHeight($core.int v) { $_setUnsignedInt32(4, v); }
$core.bool hasTakeOverHeight() => $_has(4);
void clearTakeOverHeight() => clearField(5);
$core.int get creationHeight => $_get(5, 0);
set creationHeight($core.int v) { $_setUnsignedInt32(5, v); }
$core.bool hasCreationHeight() => $_has(5);
void clearCreationHeight() => clearField(6);
$core.int get activationHeight => $_get(6, 0);
set activationHeight($core.int v) { $_setUnsignedInt32(6, v); }
$core.bool hasActivationHeight() => $_has(6);
void clearActivationHeight() => clearField(7);
$core.int get expirationHeight => $_get(7, 0);
set expirationHeight($core.int v) { $_setUnsignedInt32(7, v); }
$core.bool hasExpirationHeight() => $_has(7);
void clearExpirationHeight() => clearField(8);
$core.int get claimsInChannel => $_get(8, 0);
set claimsInChannel($core.int v) { $_setUnsignedInt32(8, v); }
$core.bool hasClaimsInChannel() => $_has(8);
void clearClaimsInChannel() => clearField(9);
Int64 get effectiveAmount => $_getI64(9);
set effectiveAmount(Int64 v) { $_setInt64(9, v); }
$core.bool hasEffectiveAmount() => $_has(9);
void clearEffectiveAmount() => clearField(10);
Int64 get supportAmount => $_getI64(10);
set supportAmount(Int64 v) { $_setInt64(10, v); }
$core.bool hasSupportAmount() => $_has(10);
void clearSupportAmount() => clearField(11);
$core.int get trendingGroup => $_get(11, 0);
set trendingGroup($core.int v) { $_setUnsignedInt32(11, v); }
$core.bool hasTrendingGroup() => $_has(11);
void clearTrendingGroup() => clearField(12);
$core.double get trendingMixed => $_getN(12);
set trendingMixed($core.double v) { $_setFloat(12, v); }
$core.bool hasTrendingMixed() => $_has(12);
void clearTrendingMixed() => clearField(13);
$core.double get trendingLocal => $_getN(13);
set trendingLocal($core.double v) { $_setFloat(13, v); }
$core.bool hasTrendingLocal() => $_has(13);
void clearTrendingLocal() => clearField(14);
$core.double get trendingGlobal => $_getN(14);
set trendingGlobal($core.double v) { $_setFloat(14, v); }
$core.bool hasTrendingGlobal() => $_has(14);
void clearTrendingGlobal() => clearField(15);
}
class Error extends $pb.GeneratedMessage {
static final $pb.BuilderInfo _i = $pb.BuilderInfo('Error', package: const $pb.PackageName('pb'))
..e<Error_Code>(1, 'code', $pb.PbFieldType.OE, Error_Code.UNKNOWN_CODE, Error_Code.valueOf, Error_Code.values)
..aOS(2, 'text')
..hasRequiredFields = false
;
Error._() : super();
factory Error() => create();
factory Error.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
factory Error.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
Error clone() => Error()..mergeFromMessage(this);
Error copyWith(void Function(Error) updates) => super.copyWith((message) => updates(message as Error));
$pb.BuilderInfo get info_ => _i;
@$core.pragma('dart2js:noInline')
static Error create() => Error._();
Error createEmptyInstance() => create();
static $pb.PbList<Error> createRepeated() => $pb.PbList<Error>();
static Error getDefault() => _defaultInstance ??= create()..freeze();
static Error _defaultInstance;
Error_Code get code => $_getN(0);
set code(Error_Code v) { setField(1, v); }
$core.bool hasCode() => $_has(0);
void clearCode() => clearField(1);
$core.String get text => $_getS(1, '');
set text($core.String v) { $_setString(1, v); }
$core.bool hasText() => $_has(1);
void clearText() => clearField(2);
}

View file

@ -1,27 +0,0 @@
///
// Generated code. Do not modify.
// source: result.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
// ignore_for_file: UNDEFINED_SHOWN_NAME,UNUSED_SHOWN_NAME
import 'dart:core' as $core show int, dynamic, String, List, Map;
import 'package:protobuf/protobuf.dart' as $pb;
class Error_Code extends $pb.ProtobufEnum {
static const Error_Code UNKNOWN_CODE = Error_Code._(0, 'UNKNOWN_CODE');
static const Error_Code NOT_FOUND = Error_Code._(1, 'NOT_FOUND');
static const Error_Code INVALID = Error_Code._(2, 'INVALID');
static const $core.List<Error_Code> values = <Error_Code> [
UNKNOWN_CODE,
NOT_FOUND,
INVALID,
];
static final $core.Map<$core.int, Error_Code> _byValue = $pb.ProtobufEnum.initByValue(values);
static Error_Code valueOf($core.int value) => _byValue[value];
const Error_Code._($core.int v, $core.String n) : super(v, n);
}

View file

@ -1,69 +0,0 @@
///
// Generated code. Do not modify.
// source: result.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
const Outputs$json = const {
'1': 'Outputs',
'2': const [
const {'1': 'txos', '3': 1, '4': 3, '5': 11, '6': '.pb.Output', '10': 'txos'},
const {'1': 'extra_txos', '3': 2, '4': 3, '5': 11, '6': '.pb.Output', '10': 'extraTxos'},
const {'1': 'total', '3': 3, '4': 1, '5': 13, '10': 'total'},
const {'1': 'offset', '3': 4, '4': 1, '5': 13, '10': 'offset'},
],
};
const Output$json = const {
'1': 'Output',
'2': const [
const {'1': 'tx_hash', '3': 1, '4': 1, '5': 12, '10': 'txHash'},
const {'1': 'nout', '3': 2, '4': 1, '5': 13, '10': 'nout'},
const {'1': 'height', '3': 3, '4': 1, '5': 13, '10': 'height'},
const {'1': 'claim', '3': 7, '4': 1, '5': 11, '6': '.pb.ClaimMeta', '9': 0, '10': 'claim'},
const {'1': 'error', '3': 15, '4': 1, '5': 11, '6': '.pb.Error', '9': 0, '10': 'error'},
],
'8': const [
const {'1': 'meta'},
],
};
const ClaimMeta$json = const {
'1': 'ClaimMeta',
'2': const [
const {'1': 'channel', '3': 1, '4': 1, '5': 11, '6': '.pb.Output', '10': 'channel'},
const {'1': 'short_url', '3': 2, '4': 1, '5': 9, '10': 'shortUrl'},
const {'1': 'canonical_url', '3': 3, '4': 1, '5': 9, '10': 'canonicalUrl'},
const {'1': 'is_controlling', '3': 4, '4': 1, '5': 8, '10': 'isControlling'},
const {'1': 'take_over_height', '3': 5, '4': 1, '5': 13, '10': 'takeOverHeight'},
const {'1': 'creation_height', '3': 6, '4': 1, '5': 13, '10': 'creationHeight'},
const {'1': 'activation_height', '3': 7, '4': 1, '5': 13, '10': 'activationHeight'},
const {'1': 'expiration_height', '3': 8, '4': 1, '5': 13, '10': 'expirationHeight'},
const {'1': 'claims_in_channel', '3': 9, '4': 1, '5': 13, '10': 'claimsInChannel'},
const {'1': 'effective_amount', '3': 10, '4': 1, '5': 4, '10': 'effectiveAmount'},
const {'1': 'support_amount', '3': 11, '4': 1, '5': 4, '10': 'supportAmount'},
const {'1': 'trending_group', '3': 12, '4': 1, '5': 13, '10': 'trendingGroup'},
const {'1': 'trending_mixed', '3': 13, '4': 1, '5': 2, '10': 'trendingMixed'},
const {'1': 'trending_local', '3': 14, '4': 1, '5': 2, '10': 'trendingLocal'},
const {'1': 'trending_global', '3': 15, '4': 1, '5': 2, '10': 'trendingGlobal'},
],
};
const Error$json = const {
'1': 'Error',
'2': const [
const {'1': 'code', '3': 1, '4': 1, '5': 14, '6': '.pb.Error.Code', '10': 'code'},
const {'1': 'text', '3': 2, '4': 1, '5': 9, '10': 'text'},
],
'4': const [Error_Code$json],
};
const Error_Code$json = const {
'1': 'Code',
'2': const [
const {'1': 'UNKNOWN_CODE', '2': 0},
const {'1': 'NOT_FOUND', '2': 1},
const {'1': 'INVALID', '2': 2},
],
};

View file

@ -1,8 +0,0 @@
///
// Generated code. Do not modify.
// source: result.proto
///
// ignore_for_file: camel_case_types,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type
export 'result.pb.dart';

View file

@ -1,159 +0,0 @@
import 'dart:async';
import 'dart:convert';
import 'package:web_socket_channel/io.dart';
import 'package:web_socket_channel/status.dart' as status;
class ServerConnection {
String url = "";
IOWebSocketChannel channel;
bool get isConnected => channel != null && channel.closeCode == null;
final StreamController<ServerLoadDataPoint> _loadDataController = StreamController.broadcast();
Stream<ServerLoadDataPoint> get load_data => _loadDataController.stream;
ServerConnection({this.url});
open() {
if (isConnected) return Future.value('already open');
channel = IOWebSocketChannel.connect(this.url);
int tick = 1;
channel.stream.listen((message) {
var data = json.decode(message);
print(data);
_loadDataController.add(
ServerLoadDataPoint.from_map(
tick, data
)
);
tick++;
});
}
close() {
if (isConnected) {
return channel.sink.close(status.goingAway);
}
return Future.value('already closed');
}
subscribe_to_server_load_data() {
if (isConnected) channel.sink.add('subscribe');
}
unsubscribe_from_server_load_data() {
if (isConnected) channel.sink.add('unsubscribe');
}
}
class TimeStats {
final int avg, min, max;
// percentiles
final int five;
final int twenty_five;
final int fifty;
final int seventy_five;
final int ninety_five;
TimeStats(
this.avg, this.min, this.five, this.twenty_five,
this.fifty, this.seventy_five, this.ninety_five,
this.max
);
TimeStats.from_list(List l): this(
l[0], l[1], l[2], l[3], l[4], l[5], l[6], l[7]
);
TimeStats.from_zeros(): this(
0, 0, 0, 0, 0, 0, 0, 0
);
factory TimeStats.from_list_or_zeros(List l) =>
l != null ? TimeStats.from_list(l): TimeStats.from_zeros();
}
class APICallMetrics {
// total requests received
final int receive_count;
// sum of these is total responses made
final int cache_response_count;
final int query_response_count;
final int intrp_response_count;
final int error_response_count;
// stacked values for chart
final int cache_response_stack;
final int query_response_stack;
final int intrp_response_stack;
final int error_response_stack;
// millisecond timings for non-cache responses
final TimeStats response;
final TimeStats interrupt;
final TimeStats error;
// response, interrupt and error each also report the python, wait and sql stats:
final TimeStats python;
final TimeStats wait;
final TimeStats sql;
// extended timings for individual sql executions
final TimeStats individual_sql;
final int individual_sql_count;
// actual queries
final List<String> errored_queries;
final List<String> interrupted_queries;
APICallMetrics(
this.receive_count,
this.cache_response_count, this.query_response_count,
this.intrp_response_count, this.error_response_count,
this.response, this.interrupt, this.error,
this.python, this.wait, this.sql,
this.individual_sql, this.individual_sql_count,
this.errored_queries, this.interrupted_queries
):
cache_response_stack=cache_response_count+query_response_count+intrp_response_count+error_response_count,
query_response_stack=query_response_count+intrp_response_count+error_response_count,
intrp_response_stack=intrp_response_count+error_response_count,
error_response_stack=error_response_count;
APICallMetrics.from_map(Map data): this(
data["receive_count"] ?? 0,
data["cache_response_count"] ?? 0,
data["query_response_count"] ?? 0,
data["intrp_response_count"] ?? 0,
data["error_response_count"] ?? 0,
TimeStats.from_list_or_zeros(data["response"]),
TimeStats.from_list_or_zeros(data["interrupt"]),
TimeStats.from_list_or_zeros(data["error"]),
TimeStats.from_list_or_zeros(data["python"]),
TimeStats.from_list_or_zeros(data["wait"]),
TimeStats.from_list_or_zeros(data["sql"]),
TimeStats.from_list_or_zeros(data["individual_sql"]),
data["individual_sql_count"] ?? 0,
List<String>.from(data["errored_queries"] ?? const []),
List<String>.from(data["interrupted_queries"] ?? const []),
);
}
class ServerLoadDataPoint {
final int tick;
final int sessions;
final APICallMetrics search;
final APICallMetrics resolve;
const ServerLoadDataPoint(
this.tick, this.sessions, this.search, this.resolve
);
ServerLoadDataPoint.from_map(int tick, Map data): this(
tick, (data['status'] ?? const {})['sessions'] ?? 0,
APICallMetrics.from_map((data['api'] ?? const {})['search'] ?? const {}),
APICallMetrics.from_map((data['api'] ?? const {})['resolve'] ?? const {})
);
ServerLoadDataPoint.empty(): this(
0, 0, APICallMetrics.from_map(const {}), APICallMetrics.from_map(const {})
);
}
connect_and_listen_for_load_data() {
ServerConnection(url: 'ws://localhost:8181/')..open()..load_data.listen((m) {
print(m.search);
});
}

View file

@ -1,376 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
version: "0.37.0"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.2"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.11"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
csslib:
dependency: transitive
description:
name: csslib
url: "https://pub.dartlang.org"
source: hosted
version: "0.16.1"
dart_style:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.9"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.9"
front_end:
dependency: transitive
description:
name: front_end
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.20"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.7"
html:
dependency: transitive
description:
name: html
url: "https://pub.dartlang.org"
source: hosted
version: "0.14.0+2"
http:
dependency: "direct main"
description:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.0+2"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.3"
io:
dependency: transitive
description:
name: io
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.3"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.1+1"
kernel:
dependency: transitive
description:
name: kernel
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.20"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.5"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.7"
mime:
dependency: transitive
description:
name: mime
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.6+3"
multi_server_socket:
dependency: transitive
description:
name: multi_server_socket
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
node_preamble:
dependency: transitive
description:
name: node_preamble
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.4"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
package_resolver:
dependency: transitive
description:
name: package_resolver
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.10"
path:
dependency: "direct main"
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.2"
pedantic:
dependency: "direct dev"
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0+1"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
protobuf:
dependency: "direct main"
description:
name: protobuf
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.15"
protoc_plugin:
dependency: "direct dev"
description:
name: protoc_plugin
url: "https://pub.dartlang.org"
source: hosted
version: "17.0.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.2"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.5"
shelf_packages_handler:
dependency: transitive
description:
name: shelf_packages_handler
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
shelf_static:
dependency: transitive
description:
name: shelf_static
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.8"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.3"
source_map_stack_trace:
dependency: transitive
description:
name: source_map_stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.5"
source_maps:
dependency: transitive
description:
name: source_maps
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.8"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.5"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
stream_transform:
dependency: transitive
description:
name: stream_transform
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.19"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
test:
dependency: "direct dev"
description:
name: test
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.5"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.6"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.7"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
vm_service_lib:
dependency: transitive
description:
name: vm_service_lib
url: "https://pub.dartlang.org"
source: hosted
version: "3.22.0"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.9.7+10"
web_socket_channel:
dependency: "direct main"
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.14"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.16"
sdks:
dart: ">=2.3.0 <3.0.0"

View file

@ -1,19 +0,0 @@
name: lbry
description: LBRY SDK in Dart.
version: 0.0.1
homepage: https://lbry.com
author: LBRY Inc. <hello@lbry.com>
environment:
sdk: '>=2.2.0 <3.0.0'
dependencies:
http: ^0.12.0+2
path: ^1.4.1
protobuf: ^0.13.12
web_socket_channel: ^1.0.4
dev_dependencies:
pedantic: ^1.0.0
test: ^1.0.0
protoc_plugin: ^17.0.2

View file

@ -1,8 +0,0 @@
import 'package:lbry/lbry.dart';
import 'package:test/test.dart';
void main() {
test('calculate', () {
expect(calculate(), 42);
});
}

View file

@ -1,72 +0,0 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.packages
.pub-cache/
.pub/
/build/
# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*
# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages

View file

@ -1,10 +0,0 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
version:
revision: 871b58986d6d401efb8dd66af67814bf37c42cd1
channel: master
project_type: app

View file

@ -1,16 +0,0 @@
# ver
A new Flutter project.
## Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials,
samples, guidance on mobile development, and a full API reference.

View file

@ -1,61 +0,0 @@
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.lbry.ver"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

View file

@ -1,7 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lbry.ver">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View file

@ -1,33 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lbry.ver">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="ver"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- This keeps the window background of the activity showing
until Flutter renders its first frame. It can be removed if
there is no splash screen (such as the default splash screen
defined in @style/LaunchTheme). -->
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>

View file

@ -1,13 +0,0 @@
package com.lbry.ver;
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}
}

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
</resources>

View file

@ -1,7 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lbry.ver">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View file

@ -1,29 +0,0 @@
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}

View file

@ -1,2 +0,0 @@
org.gradle.jvmargs=-Xmx1536M

View file

@ -1,6 +0,0 @@
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

View file

@ -1,15 +0,0 @@
include ':app'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
include ":$name"
project(":$name").projectDir = pluginDirectory
}

View file

@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View file

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>8.0</string>
</dict>
</plist>

View file

@ -1 +0,0 @@
#include "Generated.xcconfig"

View file

@ -1 +0,0 @@
#include "Generated.xcconfig"

View file

@ -1,519 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
9705A1C41CF9048500538489 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
3B80C3931E831B6300D905FE /* App.framework */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEBA1CF902C7004384FC /* Flutter.framework */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
);
name = Flutter;
sourceTree = "<group>";
};
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
);
sourceTree = "<group>";
};
97C146EF1CF9000F007C117D /* Products */ = {
isa = PBXGroup;
children = (
97C146EE1CF9000F007C117D /* Runner.app */,
);
name = Products;
sourceTree = "<group>";
};
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
97C147021CF9000F007C117D /* Info.plist */,
97C146F11CF9000F007C117D /* Supporting Files */,
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
);
path = Runner;
sourceTree = "<group>";
};
97C146F11CF9000F007C117D /* Supporting Files */ = {
isa = PBXGroup;
children = (
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
97C146ED1CF9000F007C117D /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
);
buildRules = (
);
dependencies = (
);
name = Runner;
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = "The Chromium Authors";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
LastSwiftMigration = 0910;
};
};
};
buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 97C146E51CF9000F007C117D;
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
97C146ED1CF9000F007C117D /* Runner */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
97C146EC1CF9000F007C117D /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Thin Binary";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Run Script";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
97C146EA1CF9000F007C117D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
97C146FA1CF9000F007C117D /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
97C146FB1CF9000F007C117D /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
97C147001CF9000F007C117D /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
249021D4217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.lbry.ver;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 4.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
};
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
97C147041CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
97C147061CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.lbry.ver;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
97C147071CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.lbry.ver;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 4.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
249021D3217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
249021D4217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
</Workspace>

View file

@ -1,91 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
</Workspace>

View file

@ -1,13 +0,0 @@
import UIKit
import Flutter
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}

View file

@ -1,122 +0,0 @@
{
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "Icon-App-1024x1024@1x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -1,23 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "LaunchImage.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

View file

@ -1,5 +0,0 @@
# Launch Screen Assets
You can customize the launch screen with your own desired assets by replacing the image files in this directory.
You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
</imageView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
<resources>
<image name="LaunchImage" width="168" height="185"/>
</resources>
</document>

View file

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--Flutter View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

View file

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>ver</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>

View file

@ -1 +0,0 @@
#import "GeneratedPluginRegistrant.h"

View file

@ -1,83 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart' show debugDefaultTargetPlatformOverride;
import 'package:provider/provider.dart';
import 'package:ver/src/servers.dart';
import 'package:ver/src/models/server.dart';
import 'package:ver/utils.dart';
class UnderConstructionPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Under Construction')),
body: SizedBox.expand(
child: Center(child: Text('Under Construction')),
),
);
}
}
class MainPage extends StatefulWidget {
@override
_MainPageState createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
int _currentIndex = 3;
@override
Widget build(BuildContext context) {
return Scaffold(
body: IndexedStack(
index: _currentIndex,
children: [
UnderConstructionPage(),
UnderConstructionPage(),
UnderConstructionPage(),
ServersSectionNavigation(),
UnderConstructionPage(),
],
),
bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(icon: Icon(Icons.home), title: Text('Home')),
BottomNavigationBarItem(icon: Icon(Icons.trending_up), title: Text('Trending')),
BottomNavigationBarItem(icon: Icon(Icons.subscriptions), title: Text('Subscriptions')),
BottomNavigationBarItem(icon: Icon(Icons.router), title: Text('Servers')),
BottomNavigationBarItem(icon: Icon(Icons.folder), title: Text('Library')),
],
currentIndex: _currentIndex,
onTap: (int index) {
setState(() {
_currentIndex = index;
});
},
selectedItemColor: Colors.amber[800],
),
);
}
}
void main() {
debugDefaultTargetPlatformOverride = getTargetPlatformForDesktop();
runApp(
MaterialApp(
title: 'Ver',
theme: ThemeData(
brightness: Brightness.dark,
//primaryColor: Colors.lightBlue[800],
//accentColor: Colors.cyan[600],
fontFamily: 'Roboto',
),
home: MultiProvider(
providers: [
ChangeNotifierProvider<ServerManager>(builder: (context) => ServerManager())
],
child: MainPage()
)
)
);
}

View file

@ -1,190 +0,0 @@
import 'dart:async';
import 'dart:collection';
import 'package:flutter/foundation.dart';
import 'package:lbry/lbry.dart';
class ServerManager extends ChangeNotifier {
final List<Server> _servers = [];
UnmodifiableListView<Server> get items => UnmodifiableListView(_servers);
add(Server server) {
_servers.add(server);
notifyListeners();
}
remove(Server server) {
server.dispose();
_servers.remove(server);
notifyListeners();
}
@override
void dispose() {
super.dispose();
for (var server in _servers) {
server.dispose();
}
}
}
class Server extends ChangeNotifier {
String _label = "";
String get label => _label;
String get labelOrHost => _label.length > 0 ? _label : host;
String _host = "";
String get host => _host;
int _port = 8181;
int get port => _port;
bool _ssl = false;
bool get ssl => _ssl;
String get url => _connection.url;
_setURL(String host, int port, bool ssl) {
_host = host;
_port = port;
_connection.url = "ws${ssl?'s':''}://$host:$port";
}
DateTime _added = new DateTime.now();
String get added => _added.toIso8601String();
bool _isDefault = false;
bool get isDefault => _isDefault;
bool _isEnabled = false;
bool get isEnabled => _isEnabled;
bool _isTrackingServerLoad = false;
bool get isTrackingServerLoad => _isTrackingServerLoad;
_setIsTrackingServerLoad(bool toggle_tracking) {
if (_isTrackingServerLoad && !toggle_tracking) {
_connection.unsubscribe_from_server_load_data();
} else if (!_isTrackingServerLoad && toggle_tracking) {
_connection.subscribe_to_server_load_data();
}
_isTrackingServerLoad = toggle_tracking;
}
ClientLoadManager clientLoadManager;
final ServerConnection _connection = ServerConnection();
bool get isConnected => _connection.isConnected;
Stream<ServerLoadDataPoint> get serverLoadStream => _connection.load_data;
final List<ServerLoadDataPoint> serverLoadData = [ServerLoadDataPoint.empty()];
Server() {
clientLoadManager = ClientLoadManager(this);
serverLoadStream.listen(serverLoadData.add);
}
update({String host, int port, bool ssl, String label,
bool isDefault, bool isEnabled, bool isTrackingServerLoad}) {
if (host != null && port != null && ssl != null) {
_setURL(host, port, ssl);
}
if (isTrackingServerLoad != null) {
_setIsTrackingServerLoad(isTrackingServerLoad);
}
_label = label ?? _label;
_isDefault = isDefault ?? _isDefault;
_isEnabled = isEnabled ?? _isEnabled;
notifyListeners();
}
connect() async {
await _connection.open();
if (_isTrackingServerLoad) {
_connection.subscribe_to_server_load_data();
}
notifyListeners();
}
disconnect() {
clientLoadManager.stop();
_connection.close();
notifyListeners();
}
@override
void dispose() {
disconnect();
super.dispose();
}
}
class ClientLoadManager extends ChangeNotifier {
final Server _server;
ClientLoadGenerator clientLoadGenerator;
final StreamController<ClientLoadDataPoint> _loadDataController = StreamController.broadcast();
Stream<ClientLoadDataPoint> get clientLoadStream => _loadDataController.stream;
final List<ClientLoadDataPoint> clientLoadData = [ClientLoadDataPoint.empty()];
int _load = 1;
int get load => _load;
int _offset = 0;
int get offset => _offset;
bool _noTotals = false;
bool get noTotals => _noTotals;
ClientLoadManager(this._server) {
clientLoadStream.listen(clientLoadData.add);
}
update({int load, int offset, bool noTotals}) {
_load = load ?? _load;
_offset = offset ?? _offset;
_noTotals = noTotals ?? _noTotals;
notifyListeners();
}
start() {
clientLoadData.clear();
clientLoadData.add(ClientLoadDataPoint.empty());
clientLoadGenerator = ClientLoadGenerator(
_server.host, _server.port,
query: {
'id': 1,
'method': 'blockchain.claimtrie.search',
'params': {
'no_totals': _noTotals,
'offset': _offset,
'limit': 20,
'fee_amount': '<1',
//'all_tags': ['funny'],
'any_tags': [
'crypto',
'outdoors',
'cars',
'automotive'
]
}
}, tickCallback: (t, stats) {
_loadDataController.add(stats);
//increase = max(1, min(100, increase+2)-stats.backlog);
//increase += 1;
//t.query['params']['offset'] = (increase/2).ceil()*t.query['params']['limit'];
t.load = _load;//rand.nextInt(10)+5;
return true;
})..start();
}
stop() {
if (clientLoadGenerator != null) {
clientLoadGenerator.stop();
}
}
@override
void dispose() {
super.dispose();
stop();
}
}

View file

@ -1,73 +0,0 @@
import 'package:flutter/material.dart';
import 'package:ver/src/widgets/server.dart';
import 'package:provider/provider.dart';
import 'models/server.dart';
class ServerListPage extends StatelessWidget {
@override
Widget build(BuildContext context) =>
Scaffold(
appBar: AppBar(title: Text('Servers')),
body: ServerList(),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () => Navigator.of(context).pushNamed('/edit', arguments: true),
)
);
}
class ServerFormPage extends StatelessWidget {
final bool creating;
ServerFormPage(this.creating);
@override
Widget build(BuildContext context) =>
Scaffold(
appBar: AppBar(title: Text(creating ? 'Add Server' : 'Modify Server')),
body: ServerForm(creating),
);
}
class ServerViewPage extends StatelessWidget {
final Server server;
ServerViewPage(this.server);
@override
Widget build(BuildContext context) =>
Scaffold(
appBar: AppBar(title: Text(server.labelOrHost)),
body: ChangeNotifierProvider<Server>.value(
value: server,
child: ServerView()
)
);
}
class ServersSectionNavigation extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Navigator(
onGenerateRoute: (RouteSettings settings) {
return MaterialPageRoute(
settings: settings,
builder: (BuildContext context) {
switch (settings.name) {
case '/':
return ServerListPage();
case '/edit':
return ServerFormPage(settings.arguments);
case '/view':
return ServerViewPage(settings.arguments);
}
return ServerListPage();
},
);
},
);
}
}

View file

@ -1,172 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
import '../models/server.dart';
import 'time_series_chart.dart';
class ServerList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<ServerManager>(
builder: (_, servers, __) =>
ListView.builder(
itemCount: servers.items.length,
itemBuilder: (context, index) =>
ChangeNotifierProvider<Server>.value(
value: servers.items[index],
child: ServerListItem()
)
)
);
}
}
class ServerListItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Card(
child: Consumer<Server>(
builder: (_, server, __) =>
ListTile(
leading: FlutterLogo(size: 72.0),
title: Text(server.labelOrHost),
subtitle: Text("${server.url}\nadded ${server.added}"),
trailing: Icon(Icons.more_vert),
isThreeLine: true,
onTap: ()=> Navigator.of(context).pushNamed('/view', arguments: server),
)
)
);
}
}
class ServerView extends StatelessWidget {
@override
Widget build(BuildContext context) => ServerCharts();
}
class ServerForm extends StatefulWidget {
final bool creating;
ServerForm(this.creating);
@override
_ServerFormState createState() => _ServerFormState();
}
class _ServerFormState extends State<ServerForm> {
final _formKey = GlobalKey<FormState>();
final _formData = {
'label': '',
'host': 'localhost',
'port': 8181,
'ssl': false,
'isDefault': true,
'isEnabled': false,
'isTrackingServerLoad': false
};
@override
Widget build(BuildContext context) {
return Form(
key: _formKey,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ListTile(title: TextFormField(
initialValue: _formData['label'],
decoration: const InputDecoration(
labelText: 'Label',
hintText: 'Optional text to display in server list.'
),
onSaved: (value) => _formData['label'] = value,
)),
ListTile(title: TextFormField(
initialValue: _formData['host'],
keyboardType: TextInputType.url,
inputFormatters: [
WhitelistingTextInputFormatter(RegExp(r'[\w\-\.]+'))
],
decoration: const InputDecoration(
labelText: 'Host Name',
hintText: 'Enter the host name of the server.'
),
validator: (value) => value.isEmpty ? 'A host name is required.' : null,
onSaved: (value) => _formData['host'] = value,
)),
ListTile(title: TextFormField(
initialValue: _formData['port'].toString(),
keyboardType: TextInputType.number,
inputFormatters: [
WhitelistingTextInputFormatter.digitsOnly
],
decoration: const InputDecoration(
labelText: 'Port',
hintText: 'Enter the port of the server.'
),
validator: (value) => value.isEmpty ? 'A port is required.' : null,
onSaved: (value) => setState(() => _formData['port'] = int.parse(value)),
)),
SwitchListTile(
title: Text('Requires SSL.'),
value: _formData['ssl'],
onChanged: (value) => setState(() => _formData['ssl'] = value),
),
SwitchListTile(
title: Text('Use this as your primary and default server.'),
value: _formData['isDefault'],
onChanged: (value) => setState(() => _formData['isDefault'] = value),
),
SwitchListTile(
title: Text('Always stay connected.'),
value: _formData['isEnabled'],
onChanged: (value) => setState(() => _formData['isEnabled'] = value),
),
SwitchListTile(
title: Text('Track server load.'),
value: _formData['isTrackingServerLoad'],
onChanged: (value) =>
setState(() => _formData['isTrackingServerLoad'] = value),
),
ListTile(title: RaisedButton(
onPressed: () {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
var manager = Provider.of<ServerManager>(
context, listen: false
);
var server = Server();
server.update(
label: _formData['label'],
host: _formData['host'],
port: _formData['port'],
ssl: _formData['ssl'],
isDefault: _formData['isDefault'],
isEnabled: _formData['isEnabled'],
isTrackingServerLoad: _formData['isTrackingServerLoad'],
);
manager.add(server);
if (server.isEnabled) {
server.connect();
}
Navigator.of(context).pop();
}
},
child: Text(widget.creating ? 'Add Server' : 'Update Server'),
),
),
],
),
);
}
}

View file

@ -1,354 +0,0 @@
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:charts_flutter/src/base_chart_state.dart' as state;
import 'package:charts_common/common.dart' as common;
import 'package:provider/provider.dart';
import 'package:lbry/lbry.dart';
import '../models/server.dart';
class ServerCharts extends StatelessWidget {
@override
Widget build(BuildContext context) {
var server = Provider.of<Server>(context, listen: false);
return ListView(children: <Widget>[
SizedBox(height: 300.0, child: APILoadChart(
server, "Search", (ServerLoadDataPoint dataPoint) => dataPoint.search
)),
//SizedBox(height: 300.0, child: APILoadChart(
// server, "Resolve", (ServerLoadDataPoint dataPoint) => dataPoint.resolve
//)),
SizedBox(height: 300.0, child: ServerPerformanceChart(server)),
//SizedBox(height: 220.0, child: ClientLoadChart(server.clientLoadManager)),
//SizedBox(height: 220.0, child: ClientPerformanceChart(server.clientLoadManager)),
]);
}
}
typedef APICallMetrics APIGetter(ServerLoadDataPoint dataPoint);
class APILoadChart extends StatefulWidget {
final Server server;
final String name;
final APIGetter getter;
APILoadChart(this.server, this.name, this.getter);
@override
State<StatefulWidget> createState() => APILoadChartState();
}
class APILoadChartState extends State<APILoadChart> {
List<charts.Series<ServerLoadDataPoint, int>> seriesData;
@override
void initState() {
super.initState();
seriesData = [
/*
charts.Series<ServerLoadDataPoint, int>(
id: 'Received',
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault.lighter,
strokeWidthPxFn: (_, __) => 4.0,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).receive_count,
data: widget.server.serverLoadData,
),*/
charts.Series<ServerLoadDataPoint, int>(
id: 'Cache',
colorFn: (_, __) =>
charts.MaterialPalette.green.shadeDefault,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).cache_response_stack,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: 'Query',
colorFn: (_, __) =>
charts.MaterialPalette.blue.shadeDefault,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).query_response_stack,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: 'Interrupts',
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault.lighter,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).intrp_response_stack,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: 'Errors',
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).error_response_stack,
data: widget.server.serverLoadData,
),
/*
charts.Series<ServerLoadDataPoint, int>(
id: '${widget.name} Interrupted',
colorFn: (_, __) =>
charts.MaterialPalette.pink.shadeDefault.lighter,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).interrupted,
strokeWidthPxFn: (ServerLoadDataPoint load, _) => 5.0,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: '${widget.name} Errored',
colorFn: (_, __) =>
charts.MaterialPalette.red.shadeDefault.darker,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).errored,
strokeWidthPxFn: (ServerLoadDataPoint load, _) => 5.0,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: '${widget.name} From Cache',
colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault.darker,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => widget.getter(load).cache_hits,
strokeWidthPxFn: (ServerLoadDataPoint load, _) => 3.0,
data: widget.server.serverLoadData,
),
*/
];
}
@override
Widget build(BuildContext context) {
return StreamBuilder<ServerLoadDataPoint>(
stream: widget.server.serverLoadStream,
builder: (BuildContext context, _) => BetterLineChart(seriesData,
//renderer: new charts.LineRendererConfig<num>(includeArea: true)
)
);
}
}
class ServerPerformanceChart extends StatefulWidget {
final Server server;
ServerPerformanceChart(this.server);
@override
State<StatefulWidget> createState() => ServerPerformanceChartState();
}
class ServerPerformanceChartState extends State<ServerPerformanceChart> {
List<charts.Series<ServerLoadDataPoint, int>> seriesData;
@override
void initState() {
super.initState();
seriesData = [
charts.Series<ServerLoadDataPoint, int>(
id: 'Waiting 95 Percentile',
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault.lighter,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => load.search.wait.ninety_five,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: 'Avg. Waiting',
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault.darker,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => load.search.wait.avg,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: 'Avg. Executing',
colorFn: (_, __) => charts.MaterialPalette.teal.shadeDefault.darker,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => load.search.python.avg,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: 'SQLite 95 Percentile',
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault.lighter,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => load.search.sql.ninety_five,
data: widget.server.serverLoadData,
),
charts.Series<ServerLoadDataPoint, int>(
id: 'Avg. SQLite',
colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault.darker,
domainFn: (ServerLoadDataPoint load, _) => load.tick,
measureFn: (ServerLoadDataPoint load, _) => load.search.sql.avg,
data: widget.server.serverLoadData,
),
];
}
@override
Widget build(BuildContext context) {
return StreamBuilder<ServerLoadDataPoint>(
stream: widget.server.serverLoadStream,
builder: (BuildContext context, _) => BetterLineChart(seriesData)
);
}
}
class ClientLoadChart extends StatefulWidget {
final ClientLoadManager client;
ClientLoadChart(this.client);
@override
State<StatefulWidget> createState() => ClientLoadChartState();
}
class ClientLoadChartState extends State<ClientLoadChart> {
List<charts.Series<ClientLoadDataPoint, int>> seriesData;
@override
void initState() {
super.initState();
seriesData = [
charts.Series<ClientLoadDataPoint, int>(
id: 'Load',
colorFn: (_, __) => charts.MaterialPalette.black.darker,
domainFn: (ClientLoadDataPoint load, _) => load.tick,
measureFn: (ClientLoadDataPoint load, _) => load.load,
data: widget.client.clientLoadData,
),
charts.Series<ClientLoadDataPoint, int>(
id: 'Success',
colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault,
domainFn: (ClientLoadDataPoint load, _) => load.tick,
measureFn: (ClientLoadDataPoint load, _) => load.success,
data: widget.client.clientLoadData,
),
charts.Series<ClientLoadDataPoint, int>(
id: 'Backlog',
colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault,
domainFn: (ClientLoadDataPoint load, _) => load.tick,
measureFn: (ClientLoadDataPoint load, _) => load.backlog,
data: widget.client.clientLoadData,
),
charts.Series<ClientLoadDataPoint, int>(
id: 'Catch-up',
colorFn: (_, __) => charts.MaterialPalette.yellow.shadeDefault,
domainFn: (ClientLoadDataPoint load, _) => load.tick,
measureFn: (ClientLoadDataPoint load, _) => load.catchup,
data: widget.client.clientLoadData,
)
];
}
@override
Widget build(BuildContext context) {
return StreamBuilder<ClientLoadDataPoint>(
stream: widget.client.clientLoadStream,
builder: (BuildContext context, _) => BetterLineChart(seriesData)
);
}
}
class ClientPerformanceChart extends StatefulWidget {
final ClientLoadManager client;
ClientPerformanceChart(this.client);
@override
State<StatefulWidget> createState() => ClientPerformanceChartState();
}
class ClientPerformanceChartState extends State<ClientPerformanceChart> {
List<charts.Series<ClientLoadDataPoint, int>> seriesData;
@override
void initState() {
super.initState();
seriesData = [
charts.Series<ClientLoadDataPoint, int>(
id: 'Avg. Success Time',
colorFn: (_, __) => charts.MaterialPalette.green.shadeDefault,
domainFn: (ClientLoadDataPoint load, _) => load.tick,
measureFn: (ClientLoadDataPoint load, _) => load.avg_success,
data: widget.client.clientLoadData,
),
charts.Series<ClientLoadDataPoint, int>(
id: 'Avg. Catch-up Time',
colorFn: (_, __) => charts.MaterialPalette.yellow.shadeDefault,
domainFn: (ClientLoadDataPoint load, _) => load.tick,
measureFn: (ClientLoadDataPoint load, _) => load.avg_catchup,
data: widget.client.clientLoadData,
),
];
}
@override
Widget build(BuildContext context) {
return StreamBuilder<ClientLoadDataPoint>(
stream: widget.client.clientLoadStream,
builder: (BuildContext context, _) => BetterLineChart(seriesData)
);
}
}
class BetterLineChart extends charts.LineChart {
final int itemCount;
final Object lastItem;
BetterLineChart(List<charts.Series<dynamic, int>> seriesList, {charts.LineRendererConfig renderer}):
itemCount = seriesList[0].data.length,
lastItem = seriesList[0].data.last,
super(
seriesList,
animate: false,
defaultRenderer: renderer,
behaviors: [charts.SeriesLegend()],
domainAxis: charts.NumericAxisSpec(
viewport: new charts.NumericExtents(
max(0, seriesList[0].data.last.tick - 60), seriesList[0].data.last.tick
),
renderSpec: new charts.SmallTickRendererSpec(
labelStyle: new charts.TextStyleSpec(
color: charts.MaterialPalette.gray.shade50
),
lineStyle: new charts.LineStyleSpec(
color: charts.MaterialPalette.black
)
),
),
primaryMeasureAxis: new charts.NumericAxisSpec(
renderSpec: new charts.GridlineRendererSpec(
labelStyle: new charts.TextStyleSpec(
color: charts.MaterialPalette.white
),
lineStyle: new charts.LineStyleSpec(
color: charts.MaterialPalette.gray.shade100
),
),
tickProviderSpec: new charts.BasicNumericTickProviderSpec(
dataIsInWholeNumbers: true,
desiredTickCount: 5
)
),
);
@override
void updateCommonChart(common.BaseChart baseChart, charts.BaseChart oldWidget,
state.BaseChartState chartState) {
super.updateCommonChart(baseChart, oldWidget, chartState);
final prev = oldWidget as BetterLineChart;
if (itemCount != prev?.itemCount || lastItem != prev?.lastItem) {
chartState.markChartDirty();
}
}
}

View file

@ -1,13 +0,0 @@
import 'dart:io';
import 'package:flutter/foundation.dart';
TargetPlatform getTargetPlatformForDesktop() {
// See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override
if (Platform.isMacOS || Platform.isIOS) {
return TargetPlatform.iOS;
} else if (Platform.isAndroid) {
return TargetPlatform.android;
}
return TargetPlatform.fuchsia;
}

View file

@ -1 +0,0 @@
flutter/

View file

@ -1,127 +0,0 @@
# Copyright 2018 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Example-specific variables.
# To modify this Makefile for a different application, these are the values
# that are mostly likely to need to be changed.
# Executable name.
BINARY_NAME=flutter_desktop_example
# The C++ code for the embedder application.
SOURCES=flutter_embedder_example.cc
# Default build type. For a release build, set BUILD=release.
# Currently this only sets NDEBUG, which is used to control the flags passed
# to the Flutter engine in the example shell, and not the complation settings
# (e.g., optimization level) of the C++ code.
BUILD=debug
# Configuration provided via flutter tool.
include flutter/generated_config
# Dependency locations
FLUTTER_APP_CACHE_DIR=flutter/
FLUTTER_APP_DIR=$(CURDIR)/..
FLUTTER_APP_BUILD_DIR=$(FLUTTER_APP_DIR)/build
OUT_DIR=$(FLUTTER_APP_BUILD_DIR)/linux
# Libraries
FLUTTER_LIB_NAME=flutter_linux
FLUTTER_LIB=$(FLUTTER_APP_CACHE_DIR)/lib$(FLUTTER_LIB_NAME).so
# Tools
FLUTTER_BIN=$(FLUTTER_ROOT)/bin/flutter
LINUX_BUILD=$(FLUTTER_ROOT)/packages/flutter_tools/bin/linux_backend.sh
# Resources
ICU_DATA_NAME=icudtl.dat
ICU_DATA_SOURCE=$(FLUTTER_APP_CACHE_DIR)/$(ICU_DATA_NAME)
FLUTTER_ASSETS_NAME=flutter_assets
FLUTTER_ASSETS_SOURCE=$(FLUTTER_APP_BUILD_DIR)/$(FLUTTER_ASSETS_NAME)
# Bundle structure
BUNDLE_OUT_DIR=$(OUT_DIR)/$(BUILD)
BUNDLE_DATA_DIR=$(BUNDLE_OUT_DIR)/data
BUNDLE_LIB_DIR=$(BUNDLE_OUT_DIR)/lib
BIN_OUT=$(BUNDLE_OUT_DIR)/$(BINARY_NAME)
ICU_DATA_OUT=$(BUNDLE_DATA_DIR)/$(ICU_DATA_NAME)
FLUTTER_LIB_OUT=$(BUNDLE_LIB_DIR)/$(notdir $(FLUTTER_LIB))
# Add relevant code from the wrapper library, which is intended to be statically
# built into the client.
WRAPPER_ROOT=$(FLUTTER_APP_CACHE_DIR)/cpp_client_wrapper
WRAPPER_SOURCES= \
$(WRAPPER_ROOT)/flutter_window_controller.cc \
$(WRAPPER_ROOT)/plugin_registrar.cc \
$(WRAPPER_ROOT)/engine_method_result.cc
SOURCES+=$(WRAPPER_SOURCES)
# Headers
WRAPPER_INCLUDE_DIR=$(WRAPPER_ROOT)/include
INCLUDE_DIRS=$(FLUTTER_APP_CACHE_DIR) $(WRAPPER_INCLUDE_DIR)
# Build settings
CXX=clang++
CXXFLAGS.release=-DNDEBUG
CXXFLAGS=-std=c++14 -Wall -Werror $(CXXFLAGS.$(BUILD))
CPPFLAGS=$(patsubst %,-I%,$(INCLUDE_DIRS))
LDFLAGS=-L$(BUNDLE_LIB_DIR) \
-l$(FLUTTER_LIB_NAME) \
-Wl,-rpath=\$$ORIGIN/lib
# Targets
.PHONY: all
all: $(BIN_OUT) bundle
# This is a phony target because the flutter tool cannot describe
# its inputs and outputs yet.
.PHONY: sync
sync: flutter/generated_config
$(FLUTTER_ROOT)/packages/flutter_tools/bin/tool_backend.sh linux-x64 $(BUILD)
.PHONY: bundle
bundle: $(ICU_DATA_OUT) $(FLUTTER_LIB_OUT) bundleflutterassets
$(BIN_OUT): $(SOURCES) $(FLUTTER_LIB_OUT)
mkdir -p $(@D)
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(SOURCES) $(LDFLAGS) -o $@
$(WRAPPER_SOURCES) $(FLUTTER_LIB) $(ICU_DATA_SOURCE) $(FLUTTER_ASSETS_SOURCE): \
| sync
$(FLUTTER_LIB_OUT): $(FLUTTER_LIB)
mkdir -p $(BUNDLE_LIB_DIR)
cp $(FLUTTER_LIB) $(BUNDLE_LIB_DIR)
$(ICU_DATA_OUT): $(ICU_DATA_SOURCE)
mkdir -p $(dir $(ICU_DATA_OUT))
cp $(ICU_DATA_SOURCE) $(ICU_DATA_OUT)
# Fully re-copy the assets directory on each build to avoid having to keep a
# comprehensive list of all asset files here, which would be fragile to changes
# in the Flutter example (e.g., adding a new font to pubspec.yaml would require
# changes here).
.PHONY: bundleflutterassets
bundleflutterassets: $(FLUTTER_ASSETS_SOURCE)
mkdir -p $(BUNDLE_DATA_DIR)
rsync -rpu --delete $(FLUTTER_ASSETS_SOURCE) $(BUNDLE_DATA_DIR)
.PHONY: clean
clean:
rm -rf $(OUT_DIR); \
cd $(FLUTTER_APP_DIR); \
$(FLUTTER_BIN) clean

View file

@ -1,71 +0,0 @@
// Copyright 2018 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <linux/limits.h>
#include <unistd.h>
#include <cstdlib>
#include <iostream>
#include <memory>
#include <vector>
#include <flutter/flutter_window_controller.h>
namespace {
// Returns the path of the directory containing this executable, or an empty
// string if the directory cannot be found.
std::string GetExecutableDirectory() {
char buffer[PATH_MAX + 1];
ssize_t length = readlink("/proc/self/exe", buffer, sizeof(buffer));
if (length > PATH_MAX) {
std::cerr << "Couldn't locate executable" << std::endl;
return "";
}
std::string executable_path(buffer, length);
size_t last_separator_position = executable_path.find_last_of('/');
if (last_separator_position == std::string::npos) {
std::cerr << "Unabled to find parent directory of " << executable_path
<< std::endl;
return "";
}
return executable_path.substr(0, last_separator_position);
}
} // namespace
int main(int argc, char **argv) {
// Resources are located relative to the executable.
std::string base_directory = GetExecutableDirectory();
if (base_directory.empty()) {
base_directory = ".";
}
std::string data_directory = base_directory + "/data";
std::string assets_path = data_directory + "/flutter_assets";
std::string icu_data_path = data_directory + "/icudtl.dat";
// Arguments for the Flutter Engine.
std::vector<std::string> arguments;
flutter::FlutterWindowController flutter_controller(icu_data_path);
// Start the engine.
if (!flutter_controller.CreateWindow(800, 1200, "ver - lbry workbench",
assets_path, arguments)) {
return EXIT_FAILURE;
}
// Run until the window is closed.
flutter_controller.RunEventLoop();
return EXIT_SUCCESS;
}

View file

@ -1,237 +0,0 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
charts_common:
dependency: transitive
description:
name: charts_common
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.0"
charts_flutter:
dependency: "direct main"
description:
name: charts_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.11"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
source: hosted
version: "0.10.9"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
http:
dependency: transitive
description:
name: http
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.0+2"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.3"
intl:
dependency: transitive
description:
name: intl
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.8"
lbry:
dependency: "direct main"
description:
path: "../lbry"
relative: true
source: path
version: "0.0.1"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
source: hosted
version: "0.11.3+2"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.5"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.2"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0+1"
protobuf:
dependency: transitive
description:
name: protobuf
url: "https://pub.dartlang.org"
source: hosted
version: "0.13.15"
provider:
dependency: "direct main"
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0+1"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.99"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.5"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.5"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.8"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.14"
sdks:
dart: ">=2.2.2 <3.0.0"

View file

@ -1,54 +0,0 @@
name: ver
description: An app for LBRY.
version: 0.0.1+1
homepage: https://lbry.com
author: LBRY Inc. <hello@lbry.com>
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
charts_flutter: ^0.6.0
provider: ^3.0.0
lbry:
path: ../lbry
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
# See https://github.com/flutter/flutter/wiki/Desktop-shells#fonts
fonts:
- family: Roboto
fonts:
- asset: fonts/Roboto/Roboto-Thin.ttf
weight: 100
- asset: fonts/Roboto/Roboto-Light.ttf
weight: 300
- asset: fonts/Roboto/Roboto-Regular.ttf
weight: 400
- asset: fonts/Roboto/Roboto-Medium.ttf
weight: 500
- asset: fonts/Roboto/Roboto-Bold.ttf
weight: 700
- asset: fonts/Roboto/Roboto-Black.ttf
weight: 900
- family: ""
fonts:
- asset: fonts/Roboto/Roboto-Thin.ttf
weight: 100
- asset: fonts/Roboto/Roboto-Light.ttf
weight: 300
- asset: fonts/Roboto/Roboto-Regular.ttf
weight: 400
- asset: fonts/Roboto/Roboto-Medium.ttf
weight: 500
- asset: fonts/Roboto/Roboto-Bold.ttf
weight: 700
- asset: fonts/Roboto/Roboto-Black.ttf
weight: 900

View file

@ -1,30 +0,0 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:ver/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(MyApp());
// Verify that our counter starts at 0.
expect(find.text('0'), findsOneWidget);
expect(find.text('1'), findsNothing);
// Tap the '+' icon and trigger a frame.
await tester.tap(find.byIcon(Icons.add));
await tester.pump();
// Verify that our counter has incremented.
expect(find.text('0'), findsNothing);
expect(find.text('1'), findsOneWidget);
});
}

View file

@ -1,332 +0,0 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# Local additions, not from the link above
flutter/
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/

View file

@ -1,25 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.645
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Runner", "Runner.vcxproj", "{5A827760-CF8B-408A-99A3-B6C0AD2271E7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Debug|x64.ActiveCfg = Debug|x64
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Debug|x64.Build.0 = Debug|x64
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Release|x64.ActiveCfg = Release|x64
{5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B8A69CB0-A974-4774-9EBD-1E5EECACD186}
EndGlobalSection
EndGlobal

View file

@ -1,161 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{5A827760-CF8B-408A-99A3-B6C0AD2271E7}</ProjectGuid>
<RootNamespace>GLFWExample</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="flutter\Generated.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="flutter\Generated.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(ProjectDir)..\build\windows\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir>$(ProjectDir)..\build\windows\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<IncludePath>$(ProjectDir)flutter\;$(ProjectDir)flutter\cpp_client_wrapper\include\;$(IncludePath)</IncludePath>
<LibraryPath>$(ProjectDir)flutter;$(LibraryPath)</LibraryPath>
<TargetName>Flutter Desktop Example</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(ProjectDir)..\build\windows\$(Platform)\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir>$(ProjectDir)..\build\windows\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<IncludePath>$(ProjectDir)flutter\;$(ProjectDir)flutter\cpp_client_wrapper\include\;$(IncludePath)</IncludePath>
<LibraryPath>$(ProjectDir)flutter;$(LibraryPath)</LibraryPath>
<TargetName>Flutter Desktop Example</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>flutter_windows.dll.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>"$(ProjectDir)scripts\prepare_dependencies" debug</Command>
<Message>Sync and build dependencies</Message>
</PreBuildEvent>
<PreLinkEvent>
<Command>
</Command>
<Message>
</Message>
</PreLinkEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>
</Message>
</PostBuildEvent>
<CustomBuildStep>
<Command>"$(ProjectDir)scripts\bundle_assets_and_deps" "$(ProjectDir)flutter\" "$(OutputPath)" "$(TargetFileName)"</Command>
</CustomBuildStep>
<CustomBuildStep>
<Message>Bundling dependencies</Message>
<Outputs>Dummy_Run_Always</Outputs>
<Inputs>
</Inputs>
</CustomBuildStep>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>flutter_windows.dll.lib;opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>"$(ProjectDir)scripts\prepare_dependencies" release</Command>
<Message>Sync and build dependencies</Message>
</PreBuildEvent>
<PreLinkEvent>
<Command>
</Command>
<Message>
</Message>
</PreLinkEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>
</Message>
</PostBuildEvent>
<CustomBuildStep>
<Command>"$(ProjectDir)scripts\bundle_assets_and_deps" "$(ProjectDir)flutter\" "$(OutputPath)" "$(TargetFileName)"</Command>
</CustomBuildStep>
<CustomBuildStep>
<Message>Bundling dependencies</Message>
<Outputs>Dummy_Run_Always</Outputs>
<Inputs>
</Inputs>
</CustomBuildStep>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\engine_method_result.cc" />
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\flutter_window_controller.cc" />
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\plugin_registrar.cc" />
<ClCompile Include="flutter_embedder_example.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<PropertyGroup>
<LocalDebuggerWorkingDirectory>$(SolutionDir)</LocalDebuggerWorkingDirectory>
</PropertyGroup>
</Project>

View file

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Source Files\Client Wrapper">
<UniqueIdentifier>{2761a4b5-57b2-4d50-a677-d20ddc17a7f1}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="flutter_embedder_example.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\engine_method_result.cc">
<Filter>Source Files\Client Wrapper</Filter>
</ClCompile>
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\flutter_window_controller.cc">
<Filter>Source Files\Client Wrapper</Filter>
</ClCompile>
<ClCompile Include="$(ProjectDir)flutter\cpp_client_wrapper\plugin_registrar.cc">
<Filter>Source Files\Client Wrapper</Filter>
</ClCompile>
</ItemGroup>
</Project>

View file

@ -1,73 +0,0 @@
// Copyright 2018 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <iostream>
#include <string>
#include <vector>
#include "flutter/flutter_window_controller.h"
// Include windows.h last, to minimize potential conflicts. The CreateWindow
// macro needs to be undefined because it prevents calling
// FlutterWindowController's method.
#include <windows.h>
#undef CreateWindow
namespace {
// Returns the path of the directory containing this executable, or an empty
// string if the directory cannot be found.
std::string GetExecutableDirectory() {
char buffer[MAX_PATH];
if (GetModuleFileName(nullptr, buffer, MAX_PATH) == 0) {
std::cerr << "Couldn't locate executable" << std::endl;
return "";
}
std::string executable_path(buffer);
size_t last_separator_position = executable_path.find_last_of('\\');
if (last_separator_position == std::string::npos) {
std::cerr << "Unabled to find parent directory of " << executable_path
<< std::endl;
return "";
}
return executable_path.substr(0, last_separator_position);
}
} // namespace
int main(int argc, char **argv) {
// Resources are located relative to the executable.
std::string base_directory = GetExecutableDirectory();
if (base_directory.empty()) {
base_directory = ".";
}
std::string data_directory = base_directory + "\\data";
std::string assets_path = data_directory + "\\flutter_assets";
std::string icu_data_path = data_directory + "\\icudtl.dat";
// Arguments for the Flutter Engine.
std::vector<std::string> arguments;
flutter::FlutterWindowController flutter_controller(icu_data_path);
// Start the engine.
if (!flutter_controller.CreateWindow(800, 600, "ver - lbry workbench",
assets_path, arguments)) {
return EXIT_FAILURE;
}
// Run until the window is closed.
flutter_controller.RunEventLoop();
return EXIT_SUCCESS;
}

View file

@ -1,43 +0,0 @@
:: Copyright 2018 Google LLC
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
@echo off
set FLUTTER_CACHE_DIR=%~1
set BUNDLE_DIR=%~2
set EXE_NAME=%~3
set DATA_DIR=%BUNDLE_DIR%data
if not exist "%DATA_DIR%" call mkdir "%DATA_DIR%"
if %errorlevel% neq 0 exit /b %errorlevel%
:: Write the executable name to the location expected by the Flutter tool.
echo %EXE_NAME%>"%FLUTTER_CACHE_DIR%exe_filename"
:: Copy the Flutter assets to the data directory.
set FLUTTER_APP_DIR=%~dp0..\..
set ASSET_DIR_NAME=flutter_assets
set TARGET_ASSET_DIR=%DATA_DIR%\%ASSET_DIR_NAME%
if exist "%TARGET_ASSET_DIR%" call rmdir /s /q "%TARGET_ASSET_DIR%"
if %errorlevel% neq 0 exit /b %errorlevel%
call xcopy /s /e /i /q "%FLUTTER_APP_DIR%\build\%ASSET_DIR_NAME%" "%TARGET_ASSET_DIR%"
if %errorlevel% neq 0 exit /b %errorlevel%
:: Copy the icudtl.dat file from the Flutter tree to the data directory.
call xcopy /y /d /q "%FLUTTER_CACHE_DIR%icudtl.dat" "%DATA_DIR%"
if %errorlevel% neq 0 exit /b %errorlevel%
:: Copy the Flutter DLL to the target location.
call xcopy /y /d /q "%FLUTTER_CACHE_DIR%flutter_windows.dll" "%BUNDLE_DIR%"
if %errorlevel% neq 0 exit /b %errorlevel%

View file

@ -1,17 +0,0 @@
:: Copyright 2018 Google LLC
::
:: Licensed under the Apache License, Version 2.0 (the "License");
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an "AS IS" BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
@echo off
set BUILD_MODE=%~1
"%FLUTTER_ROOT%\packages\flutter_tools\bin\tool_backend" windows-x64 %BUILD_MODE%