This library enables Yoroi extension to communicate with Ledger device, in process this library needs one web page that directly communicates with Ledger device. This library is responsible for opening, sendind resquest, passing back response to Yoroi and closing the target web page.
Flow:
Yoroi
requestsyoroi-extension-ledger-connect-handler
(Using function call).yoroi-extension-ledger-connect-handler
opens target Website.yoroi-extension-ledger-connect-handler
sends request message tocontent-script
(Using extension port).content-script
passes request to the target Website app(UsingpostMessage()
).- Target Website app processes the request and send response to
content-script
(UsingpostMessage()
). content-script
passes response toyoroi-extension-ledger-connect-handler
(Using extension port).- Finally,
yoroi-extension-ledger-connect-handler
passes response toYoroi
(Using function return).
Inputs
{
serial: ?string,
params: {
path: BIP32Path
},
}
Outputs
{
deriveSerial: {
serial: string
},
deviceVersion: {
flags: Flags,
major: string,
minor: string,
patch: string
},
response: GetExtendedPublicKeysResponse<GetExtendedPublicKeyResponse>
}
Inputs
{
serial: ?string,
params: {
paths: Array<BIP32Path>
},
}
Outputs
{
deriveSerial: {
serial: string
},
deviceVersion: {
flags: Flags,
major: string,
minor: string,
patch: string
},
response: GetExtendedPublicKeysResponse<GetExtendedPublicKeysResponse>
}
Inputs
{
serial: ?string,
params: Transaction,
}
Outputs
SignTransactionResponse
Inputs
{|
serial: ?string,
params: {
...ShowAddressRequest,
expectedAddr: string,
},
|}
Outputs
undefined
Inputs
{
serial: ?string,
params: DeriveAddressRequest,
}
Outputs
DeriveAddressResponse
Inputs
{
serial: ?string,
params: undefined,
}
Outputs
GetVersionResponse
Inputs
{
serial: ?string,
params: undefined,
}
Outputs
GetSerialResponse
Import
import LedgerConnect from 'yoroi-extension-ledger-connect-handler';
Create new instance
const ledgerConnect = new LedgerConnect(config);
config
is type of: Config
Calling function
const deviceVersionResp = await ledgerConnect.getVersion();
- @ledgerhq/hw-transport-webauthn [Default]
- @ledgerhq/hw-transport-u2f
- Has issues on
Windows 10 Version: >= 1903
. Refer.
- Has issues on
- @ledgerhq/hw-transport-webusb [Incomplete]
nvm i
yarn
yarn run build
Make sure you have followed Building up steps before publishing.
npm publish