{"id":23263173,"url":"https://github.com/wavesplatform/waves-ledger-js","last_synced_at":"2025-08-20T18:35:04.726Z","repository":{"id":32972496,"uuid":"142307370","full_name":"wavesplatform/waves-ledger-js","owner":"wavesplatform","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-28T03:08:50.000Z","size":605,"stargazers_count":5,"open_issues_count":7,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-29T09:55:02.727Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wavesplatform.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-25T13:56:14.000Z","updated_at":"2024-06-03T15:42:15.000Z","dependencies_parsed_at":"2024-06-19T00:08:47.754Z","dependency_job_id":"ec1d9fd5-6a65-46b1-bdf7-11e133c970d7","html_url":"https://github.com/wavesplatform/waves-ledger-js","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fwaves-ledger-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fwaves-ledger-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fwaves-ledger-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavesplatform%2Fwaves-ledger-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wavesplatform","download_url":"https://codeload.github.com/wavesplatform/waves-ledger-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230445917,"owners_count":18227060,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-19T14:15:04.300Z","updated_at":"2024-12-19T14:15:04.933Z","avatar_url":"https://github.com/wavesplatform.png","language":"JavaScript","readme":"# Waves sign data by ledger in browser\n\n## Install\n\n```\n$ npm install --save @waves/ledger\n```\n\n## Usage\n\n##### Create connection\n```js\nconst WavesLedger = require('@Waves/ledger');\nconst ledger = new WavesLedger();\n```\n`WavesLedger` can have optional arguments.\n\n```js\n    import TransportNodeHid from '@ledgerhq/hw-transport-node-u2f';\n\n    const options = {\n        debug: true, //boolean,\n        openTimeout: 3000, //number,\n        listenTimeout: 30000, //number,\n        exchangeTimeout: 30000, //number,\n        networkCode: 87, //number,\n        transport: TransportNodeHid\n    };\n\n    const ledger = new WavesLedger(options);\n```\n \n##### Where: \n`debug` enable or not logs of the binary exchange.\n`openTimeout` is a delay number in ms for waiting connection.    \n`listenTimeout` is a delay number in ms for waiting listen request to U2F device.    \n`exchangeTimeout` is a timeout (in milliseconds) for the exchange call. Only some transport might implement it. (e.g. U2F).    \n`networkCode` is Waves network code (87 - for mainet)  \n`transport` is U2F Transport implementation. (hw-transport-u2f by default) \n+ [@ledgerhq/hw-transport-u2f](https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport-u2f) \n+ [@ledgerhq/hw-transport-webusb](https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport-webusb) \n+ [@ledgerhq/hw-transport-web-ble](https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport-web-ble) \n+ [@ledgerhq/hw-transport-http](https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport-http) \n\n[Read about transport](https://github.com/LedgerHQ/ledgerjs)\n\n### WavesLedger API\n\n\n\n+ ##### probeDevice\n    \n    probeDevice(): Promise\u003cboolean\u003e. If device available and ready, Promise returned true.\n    \n    ```js\n      const canIUse = async () =\u003e {\n          return await ledger.probeDevice();\n      }\n    ```\n+ ##### tryConnect\n\n    tryConnect(): Promise\u003c\u003e. reconnect to Transport and init ledger libs.\n\n    ```js\n      const isLedgerReady = async () =\u003e {\n          try {\n              return await ledger.tryConnect();\n          } catch (e) {\n              ///...error handlers\n          }\n      };\n\n+ ##### getUserDataById\n     getUserDataById(id): Promise\u003cuser\u003e. Get user from ledger, where user is:\n     `{ id: number, path: string, wavesAddress: string, publicKey: string }` \n\n     id - is number from 0  \n     path - is string in internal ledger format  \n     wavesAddress - is string in base58 format  \n     publicKey - is string in base58 format  \n     \n    ```js\n    ledger.getUserDataById(id)\n        .then(\n            (user) =\u003e {...},\n            (err) =\u003e {...}\n        );\n    ```\n\n+ ##### signTransaction\n    Sign waves transaction bytes (ledger show detailed transaction info)\n    ```js\n        ledger.signTransaction(userId, asset, data)\n    ```\n    userId - number\u003cbr\u003e\n    data - Array\u003cuInt8\u003e number form 0 to 255\n    asset - {precision: number, ...}\n    \n    Result is Promise with signature string in base58 format\n\n+ ##### signSomeData     \n    Sign any bytes (ledger can't show detail info)\n    ```js\n      ledger.signSomeData(userId, data)\n    ```\n    userId - number\u003cbr\u003e\n    data - Array\u003cuInt8\u003e number form 0 to 255\n    \n    Result is Promise with signature string in base58 format\n    \n+ ##### signRequest   \n    \n    Sign any bytes (ledger can't show detail info)\n    \n    ```js\n      ledger.signRequest(userId, data)\n    ```\n    userId - number\u003cbr\u003e\n    data - Array\u003cuInt8\u003e number form 0 to 255\n    \n    Result is Promise with signature string in base58 format\n    \n+ ##### signMessage      \n    Sign any string (ledger can't show detail info)\n\n    ```js\n    ledger.signMessage(userId, data)\n    ```\n    userId - number\u003cbr\u003e\n    data - string\n    \n    Result is Promise with signature string in base58 format\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesplatform%2Fwaves-ledger-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwavesplatform%2Fwaves-ledger-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavesplatform%2Fwaves-ledger-js/lists"}