https://github.com/crcdng/tezos_statz

Get a Tezos balance and transactions from the TzPro API

https://github.com/crcdng/tezos_statz

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

Get a Tezos balance and transactions from the TzPro API

Basic Info
  • Host: GitHub
  • Owner: crcdng
  • License: apache-2.0
  • Language: Dart
  • Default Branch: main
  • Homepage:
  • Size: 843 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Archived
Created almost 5 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

Tezos Statz Demo

A demonstration app written in Flutter that allows to view Tezos blockchain data (balance and list of transactions). On Android and iOS it includes a QR code scanner to scan the Tezos address.

Tezos Statz Demo calls the TzPro REST API (formerly TzStats) provided by Blockwatch https://blockwatch.cc/.

The TzPro API is documented here: https://docs.tzpro.io/. It requires an API key from Blockwatch that you can get for free here: https://tzpro.io/. When you generate the key, klick the "Edit" button and look for a field called "HMAC Secret". Delete the contents of that field and click "Save".

How to run the code

This repository contains only the source code. You have to build the app yourself. Get Flutter here https://flutter.dev/docs/get-started/install. Clone this repository and run flutter create . or add the target platforms (e.g. Web, iOS, Android, Mac) in your code editor.

The API key is provided via an environment variable. Run your app with:

flutter run --dart-define TZPRO_KEY=<YOUR_API_KEY>

More info about handling API keys in Flutter, obfuscation and other issues: https://codewithandrea.com/articles/flutter-api-keys-dart-define-env-files/ as well as https://docs.tzpro.io/intro/access for securing API keys in general. Make sure you understand the implications of API key management, especially if you are not on the free API tier.

If you deploy to macOS, you need to edit both macos/Runner/DebugProfile.entitlements and macos/Runner/Release.entitlements and add the following key:

<key>com.apple.security.network.client</key> <true/>

If you deploy to Android, you need to edit AndroidManifest.xml as shown:

<manifest xmlns:android...> ... <uses-permission android:name="android.permission.INTERNET" /> <application ... </manifest>

If you deploy to iOS, you need to edit iOS/Runner/Info.plist and add the following key for the QR Code scanner to work:

<key>NSCameraUsageDescription</key> <string>This app uses the camera to scan QR codes of Tezos addresses.</string>

Support development

You can support development and creative digital artwork curation by donating to crcrtn.tez / tz1ffYDwFHchNy5vA5isuCAK2yVxh4Ye9pnk

3rd party contributions

Blip sound by: http://jazzy.junggle.net/ (CC BY 3.0)

STATUS

Rewrite completed the app is working with the new TzPro API, rewritten in lightweight clean architecture and adding tests is in progress

TODO

  • add tests for the ui layer: widget tests
  • add integration test
  • test platform specific feature (qr code scanner)
  • test on mobile device

  • better error ui

  • check remaining TODO markers

  • improve transaction handling (currently limited to 100) https://docs.flutter.dev/cookbook/lists/long-lists

  • improve information on transactions

  • add a filter for transactions types, e.g. transfers

  • refactor dependency on SharedPreferences in main into LocalStorage

  • improve / expand the color theme

  • add a detail view for transactions

  • add statistics (view)

  • add .tez domain support

  • add view support for specific tokens

  • support originated addresses (KT1)

DONE

Version 1.0 "minimal prototype"

  • create a minimal implementation, model-free (just functions) 🤯
  • pull to refresh
  • tap to copy donation address
  • balance: show balance in Tz and USD
  • make workable Web version (without QR Code scanner)
  • store address in Shared Preferences
  • animate screen change
  • address: show current address
  • balance: fix refresh bug
  • fixed parse URL scan
  • animate USD / Tz switch
  • fixed transaction type filter
  • address: UI flow Text entry
  • address: UI flow QR Code scan
  • address: QR scan sound
  • fix late initialization and setState after dispose

Version 1.1 "new API"

  • update Flutter and dependencies
  • replace deprecated TzStats API with TzPro API
  • handle API key via ENV variable

Version 1.2 "rewrite architecture"

  • overhaul architecture
  • add unit tests
  • fix bug in "About" page URIs

Version 1.3 "rewrite architecture again and test thoroughly"

  • refactor to lightweight clean architecture
  • refactor: get rid of constants.dart
  • refactor unit tests
  • add additional unit tests
  • add tests for the ui layer: notifiers

--

This code is published under the Apache license. It is not affiliated with Blockwatch or Tezos.

Owner

  • Name: crcdng
  • Login: crcdng
  • Kind: user

may the farce be with you

GitHub Events

Total
Last Year

Dependencies

pubspec.lock pub
  • animations 2.0.11
  • async 2.11.0
  • audio_session 0.1.18
  • boolean_selector 2.1.1
  • characters 1.3.0
  • clock 1.1.1
  • collection 1.18.0
  • crypto 3.0.3
  • cupertino_icons 1.0.6
  • fake_async 1.3.1
  • ffi 2.1.2
  • file 7.0.0
  • fixnum 1.1.0
  • flutter 0.0.0
  • flutter_test 0.0.0
  • flutter_web_plugins 0.0.0
  • http 1.2.1
  • http_parser 4.0.2
  • js 0.6.7
  • just_audio 0.9.36
  • just_audio_platform_interface 4.2.2
  • just_audio_web 0.4.9
  • leak_tracker 10.0.0
  • leak_tracker_flutter_testing 2.0.1
  • leak_tracker_testing 2.0.1
  • matcher 0.12.16+1
  • material_color_utilities 0.8.0
  • meta 1.11.0
  • path 1.9.0
  • path_provider 2.1.2
  • path_provider_android 2.2.2
  • path_provider_foundation 2.3.2
  • path_provider_linux 2.2.1
  • path_provider_platform_interface 2.1.2
  • path_provider_windows 2.2.1
  • platform 3.1.4
  • plugin_platform_interface 2.1.8
  • qr_code_scanner 1.0.1
  • rxdart 0.27.7
  • shared_preferences 2.2.2
  • shared_preferences_android 2.2.1
  • shared_preferences_foundation 2.3.5
  • shared_preferences_linux 2.3.2
  • shared_preferences_platform_interface 2.3.2
  • shared_preferences_web 2.3.0
  • shared_preferences_windows 2.3.2
  • sky_engine 0.0.99
  • source_span 1.10.0
  • sprintf 7.0.0
  • stack_trace 1.11.1
  • stream_channel 2.1.2
  • string_scanner 1.2.0
  • term_glyph 1.2.1
  • test_api 0.6.1
  • typed_data 1.3.2
  • url_launcher 6.2.5
  • url_launcher_android 6.3.0
  • url_launcher_ios 6.2.5
  • url_launcher_linux 3.1.1
  • url_launcher_macos 3.1.0
  • url_launcher_platform_interface 2.3.2
  • url_launcher_web 2.3.0
  • url_launcher_windows 3.1.1
  • uuid 4.3.3
  • vector_math 2.1.4
  • vm_service 13.0.0
  • web 0.5.1
  • win32 5.3.0
  • xdg_directories 1.0.4
pubspec.yaml pub
  • flutter_test --- !ruby/hash:ActiveSupport::HashWithIndifferentAccess sdk: flutter development
  • animations ^2.0.11
  • cupertino_icons ^1.0.6
  • flutter --- !ruby/hash:ActiveSupport::HashWithIndifferentAccess sdk: flutter
  • http ^1.2.1
  • just_audio ^0.9.36
  • qr_code_scanner ^1.0.1
  • shared_preferences ^2.2.2
  • url_launcher ^6.2.5