0 purchases
cktap transport nfc manager
NFC Manager Transport for Coinkite Tap Protocol #
An implementation of cktap_transport using the nfc_manager plugin. This is currently designed for NFC Manager v3, when v4 is released this plugin will be reworked to support the new API.
Platform Support #
Please use the release/v3 branch or some devices may fail when performing the CKTapCard.wait command. The custom branch also allows you to update the NFC prompt text on iOS so you can provide a better UX.
✅ Android
✅ iOS
Getting Started #
dependencies:
# This transport plugin is designed to be used specifically for the cktap_protocol plugin
cktap_protocol: ^0.0.1
# The recommended way to use this plugin, we use a fork of nfc_manager which supports setting the timeout value for
# IsoDep tags. Unfortunately the required function is missing in the official nfc_manager codebase
cktap_transport_nfc_manager:
git:
url: https://github.com/PeteClubSeven/cktap-transport-nfc-manager.git
ref: release/v3
nfc_manager:
git:
url: https://github.com/PeteClubSeven/flutter-nfc-manager.git
ref: release/v3
# Uses an unmodified version of nfc_manager
cktap_transport_nfc_manager: ^0.1.0
nfc_manager: ^3.3.0
copied to clipboard
Usage #
import 'package:cktap_protocol/cktap_protocol.dart';
import 'package:cktap_protocol/cktapcard.dart';
import 'package:cktap_protocol/satscard.dart';
import 'package:cktap_protocol/tapsigner.dart';
import 'package:cktap_transport_nfc_manager/cktap_transport_nfc_manager.dart';
import 'package:nfc_manager/nfc_manager.dart';
void exampleFunction() {
NfcManager.instance.startSession(
onDiscovered: (NfcTag tag) async {
// Create the transport from the given tag
final transport = NfcManagerTransport(tag);
// Attempt to read the card, exceptions are thrown when errors occur
CKTapCard card = await CKTapProtocol.readCard(transport);
// Cast to the correct card type and reuse the transport during the same NFC session
if (card.isTapsigner) {
Tapsigner tapsigner = card.toTapsigner();
var result = await tapsigner.wait(transport);
} else {
Satscard satscard = card.toSatscard();
var slots = await satscard.listSlots(transport);
}
},
);
}
copied to clipboard
Additional Information #
See the cktap_protocol plugin for more information of how this transport plugin can be used.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.