Security News
PyPI Introduces Digital Attestations to Strengthen Python Package Security
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
trezor-link
Advanced tools
DO NOT USE THIS YET - IT IS STILL IN DEVELOPMENT AND THE API IS CHANGING RAPIDLY
Library for low-level communication with TREZOR.
Intended as a "building block" for other packages - it is used in trezor.js and chrome extension.
You probably don't want to use this package directly. For communicating with Trezor with a more high-level API, use trezor.js (TODO).
Use like this (in node):
var LowlevelTransport = require('trezor-link/lib/lowlevel');
var NodeHidPlugin = require('trezor-link-node-hid'); // in npm
var link = new LowlevelTransport(new NodeHidPlugin());
// for simple config load; you can also load by file API from a disk without node-fetch
var fetch = require('node-fetch');
var config = fetch('https://wallet.mytrezor.com/data/config_signed.bin').then(function (response) {
if (response.ok) {
return response.text();
} else {
throw new Error(`Fetch error ${response.status}`);
}
});
return link.init().then(function () {
return config.then(function (configData) {
return link.configure(configData);
});
}).then(function () {
return link.enumerate();
}).then(function (devices) {
return link.acquire(devices[0].path);
}).then(function (session) {
return link.call(session, 'GetFeatures', {}).then(function (features) {
console.log(features);
return link.release(session);
});
}).catch(function (error) {
console.error(error);
});
We have several transports.
trezor-link/lib/bridge
uses bridgetrezor-link/lib/extension
uses official TREZOR Chrome Extension by contacting ittrezor-link/lib/parallel
allows you to use more transports at the same time
ParallelTransport
creates a new transport that acts like a normal transport from outsidetrezor-link/lib/fallback
tries to init multiple transports and uses the first onetrezor-link/lib/lowlevel
creates a low-level transport that "actually" talks to the device; you need to select one of the plug-ins
trezor-link/lib/lowlevel/chrome-hid
is a plug-in for HID API inside Chrome App environment (note: you should try to use trezor-link/lib/extension
first)trezor-link/lib/lowlevel/chrome-udp
is for a virtual simulator (internal SatoshiLabs tool, not yet released),which is connected via UDP inside Chrome App environmenttrezor-link/lib/lowlevel/node-hid
is for HID API inside Node environmentWe are transpiling to JS that runs on chrome >= 49 and node >= 5, since it doesn't run anywhere else anyway and there is no need to transpile to the other environments. If you have a reason why to transpile to anything else (older node / other browser), just write a github issue!
Source is annotated with Flow types, so it's more obvious what is going on from source code.
We use node-hid
as a dependency, but it's only used in node environment and it's compiled from C++, which might cause some issues down the line. Ping us if it's a problem.
If you want to use flow for typechecking, just include the file as normally, it will automatically use the included flow file. However, you need to add flowtype/*.js
to your [libs]
(or copy it yourself from flow-typed repository), and probably libs from flowconfig.
LGPLv3
FAQs
Trezor Link for browser
The npm package trezor-link receives a total of 91 weekly downloads. As such, trezor-link popularity was classified as not popular.
We found that trezor-link demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now supports digital attestations, enhancing security and trust by allowing package maintainers to verify the authenticity of Python packages.
Security News
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.