beacondart 0.0.4 copy "beacondart: ^0.0.4" to clipboard
beacondart: ^0.0.4 copied to clipboard

This project implements tezos beacon (tzip-10) in dart.

beacondart #

This project implements tezos beacon (tzip-10) https://docs.walletbeacon.io/ in dart.

This is done using flutter method channels https://docs.flutter.dev/development/platform-integration/platform-channels to link the respective kotlin https://github.com/airgap-it/beacon-android-sdk and swift https://github.com/airgap-it/beacon-ios-sdk implementations to dart.

Scope #

The beacon protocol allows dapps on tezos to connect to user wallets. As such, defined in the protocol is a set of actions that the dapp can perform and those that the wallet can perform. This project focuses on the wallet part of the beacon protocol https://docs.walletbeacon.io/wallet/getting-started/web/getting-started .

Functionalites #

Since it implements only the wallet part of the beacon here is a list of functionalities;

  • Connect to dApp
    • Qrcode
    • Copy Paste
    • Deep Link

Note that the library itself does not include qrcode, deeplink, etc ... it only takes the input its given from an external lib. For example you can use a qrcode flutter lib to get the contents of the qrcode and send those params to beacondart.

  • Listen for incoming messages from dApp
    • Permission Request/Response
    • SignPayload Request/Response
    • Operation Request/Response
    • Broadcast Request/Response

Note that the library communicates with dart using purely json.

Implementation #

Ultimately one dart singleton class BeaconWalletClient which handles communication with the beacon android and ios sdk using flutter method channels.

Resources

https://github.com/airgap-it/beacon-ios-sdk

https://github.com/airgap-it/beacon-android-sdk

https://docs.walletbeacon.io/wallet/getting-started/web/getting-started

https://typedocs.walletbeacon.io/

https://gitlab.com/tezos/tzip/-/tree/master/proposals/tzip-10

The beacon library on the native side needs to communicate requests from the wallets as and when it receives them. This means that the native code needs to communicate also to the dart code.

Here is a good working example of this https://github.com/flutter/plugins/tree/main/packages/quick_actions

And some enlightening article

https://testfairy.com/blog/native-communication-with-a-callback-in-flutter/

0
likes
140
points
50
downloads

Publisher

unverified uploader

Weekly Downloads

This project implements tezos beacon (tzip-10) in dart.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on beacondart