0.2.0 • Published 4 months ago

cordova-plugin-trezor v0.2.0

Weekly downloads
2
License
Apache-2.0
Repository
github
Last release
4 months ago

cordova-plugin-trezor

This plugin allows your cordova app to communicate with a Trezor device using a single API on browser and Android (Only for devices with OTG). The browser implementation uses the latest trezor-connect minified bundle and the Android implementation uses trezor-android. Unfortunately there is no trezor API for iOS.

cordova-trezor-plugin registers itself as cordovaTrezor in window. Although the object is in the global scope, it is not available until after the deviceready event.

Installation

cordova plugin add cordova-plugin-trezor

Quick Example

document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
    cordovaTrezor.manifest({
        email: 'your-email@host.com',
        appUrl: 'https://your-app-url.com'
    });

    cordovaTrezor.getPublicKeys({
        bundle: [{path: "m/49/0'/0'"}]
    }).then((result) => {
        if (result.success) {
            console.log(result.payload);
        }
    });
};

Implemented Methods

  • manifest
  • getPublicKeys

PRs are welcome for more api implementations.

manifest

Calling this method before any access to the device is required on browser by trezor-connect; This method has no effect on Android.

Refer to types for inputs and outputs.

Supported Platforms

  • Browser

getPublicKeys

This method accepts a bundle of paths and returns a Promise with a payload of public keys.

Refer to types for inputs and outputs.

Supported Platforms

  • Browser
  • Android

Important Note

  • The returned path array in Android is based on signed integer values and in browser it's based on unsigned 32 bit integer. So they are logically the same but they are different in representations. You can rely on serialized path for comparison purposes.

  • TODO: The returned xpub value in "Android" should start with tpub for testnet and upub for bip49 testnet. But currently these are formatted as "xpub" and "ypub".

Docs

For more info about how Android implementation works you can refer to draw.io diagram