forked from LedgerHQ/ledger-live
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
66abe9b
commit 30d3914
Showing
8 changed files
with
483 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"entry": ["src/Xah.ts"] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# @ledgerhq/hw-app-xah | ||
|
||
## 6.28.5 | ||
|
||
### Patch Changes | ||
|
||
- Updated dependencies []: | ||
- @ledgerhq/hw-transport@6.30.5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,154 @@ | ||
<img src="https://user-images.githubusercontent.com/4631227/191834116-59cf590e-25cc-4956-ae5c-812ea464f324.png" height="100" /> | ||
|
||
[GitHub](https://github.com/LedgerHQ/ledger-live/), | ||
[Ledger Devs Discord](https://developers.ledger.com/discord-pro), | ||
[Developer Portal](https://developers.ledger.com/) | ||
|
||
## @ledgerhq/hw-app-xrp | ||
|
||
Ledger Hardware Wallet XRP JavaScript bindings. | ||
|
||
*** | ||
|
||
## Are you adding Ledger support to your software wallet? | ||
|
||
You may be using this package to communicate with the XRP Nano App. | ||
|
||
For a smooth and quick integration: | ||
|
||
* See the developers’ documentation on the [Developer Portal](https://developers.ledger.com/docs/transport/overview/) and | ||
* Go on [Discord](https://developers.ledger.com/discord-pro/) to chat with developer support and the developer community. | ||
|
||
*** | ||
|
||
## API | ||
|
||
<!-- Generated by documentation.js. Update this documentation by updating the source code. --> | ||
|
||
#### Table of Contents | ||
|
||
* [Xrp](#xrp) | ||
* [Parameters](#parameters) | ||
* [Examples](#examples) | ||
* [getAddress](#getaddress) | ||
* [Parameters](#parameters-1) | ||
* [Examples](#examples-1) | ||
* [signTransaction](#signtransaction) | ||
* [Parameters](#parameters-2) | ||
* [Examples](#examples-2) | ||
* [getAppConfiguration](#getappconfiguration) | ||
* [Examples](#examples-3) | ||
|
||
### Xrp | ||
|
||
XRP API | ||
|
||
#### Parameters | ||
|
||
* `transport` **Transport**  | ||
* `scrambleKey` (optional, default `"XRP"`) | ||
|
||
#### Examples | ||
|
||
```javascript | ||
import Transport from "@ledgerhq/hw-transport-node-hid"; | ||
// import Transport from "@ledgerhq/hw-transport-u2f"; // for browser | ||
import Xrp from "@ledgerhq/hw-app-xrp"; | ||
import { encode } from 'ripple-binary-codec'; | ||
|
||
function establishConnection() { | ||
return Transport.create() | ||
.then(transport => new Xrp(transport)); | ||
} | ||
|
||
function fetchAddress(xrp) { | ||
return xrp.getAddress("44'/144'/0'/0/0"); | ||
} | ||
|
||
function signTransaction(xrp, deviceData, seqNo) { | ||
let transactionJSON = { | ||
TransactionType: "Payment", | ||
Account: deviceData.address, | ||
Destination: "rTooLkitCksh5mQa67eaa2JaWHDBnHkpy", | ||
Amount: "1000000", | ||
Fee: "15", | ||
Flags: 2147483648, | ||
Sequence: seqNo, | ||
SigningPubKey: deviceData.publicKey.toUpperCase() | ||
}; | ||
|
||
const transactionBlob = encode(transactionJSON); | ||
|
||
console.log('Sending transaction to device for approval...'); | ||
return xrp.signTransaction("44'/144'/0'/0/0", transactionBlob); | ||
} | ||
|
||
function prepareAndSign(xrp, seqNo) { | ||
return fetchAddress(xrp) | ||
.then(deviceData => signTransaction(xrp, deviceData, seqNo)); | ||
} | ||
|
||
establishConnection() | ||
.then(xrp => prepareAndSign(xrp, 123)) | ||
.then(signature => console.log(`Signature: ${signature}`)) | ||
.catch(e => console.log(`An error occurred (${e.message})`)); | ||
``` | ||
|
||
#### getAddress | ||
|
||
get XRP address for a given BIP 32 path. | ||
|
||
##### Parameters | ||
|
||
* `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** a path in BIP 32 format | ||
* `display` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** optionally enable or not the display | ||
* `chainCode` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** optionally enable or not the chainCode request | ||
* `ed25519` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** optionally enable or not the ed25519 curve (secp256k1 is default) | ||
|
||
##### Examples | ||
|
||
```javascript | ||
const result = await xrp.getAddress("44'/144'/0'/0/0"); | ||
const { publicKey, address } = result; | ||
``` | ||
|
||
Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{publicKey: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), address: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), chainCode: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?}>** an object with a publicKey, address and (optionally) chainCode | ||
|
||
#### signTransaction | ||
|
||
sign a XRP transaction with a given BIP 32 path | ||
|
||
The rawTxHex parameter is the serialized transaction blob represented as | ||
hex. | ||
|
||
##### Parameters | ||
|
||
* `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** a path in BIP 32 format | ||
* `rawTxHex` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** a raw hex string representing a serialized transaction blob. | ||
This parameter can be encoded using [ripple-binary-codec](https://www.npmjs.com/package/ripple-binary-codec). | ||
See <https://xrpl.org/serialization.html> for more documentation on the serialization format. | ||
* `ed25519` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** optionally enable or not the ed25519 curve (secp256k1 is default) | ||
|
||
##### Examples | ||
|
||
```javascript | ||
const signature = await xrp.signTransaction("44'/144'/0'/0/0", "12000022800000002400000002614000000001315D3468400000000000000C73210324E5F600B52BB3D9246D49C4AB1722BA7F32B7A3E4F9F2B8A1A28B9118CC36C48114F31B152151B6F42C1D61FE4139D34B424C8647D183142ECFC1831F6E979C6DA907E88B1CAD602DB59E2F"); | ||
``` | ||
|
||
Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** a signature as hex string | ||
|
||
#### getAppConfiguration | ||
|
||
get the version of the XRP app installed on the hardware device | ||
|
||
##### Examples | ||
|
||
```javascript | ||
const result = await xrp.getAppConfiguration(); | ||
|
||
{ | ||
"version": "1.0.3" | ||
} | ||
``` | ||
|
||
Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{version: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}>** an object with a version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import baseConfig from "../../jest.config"; | ||
|
||
export default { | ||
...baseConfig, | ||
rootDir: __dirname, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
{ | ||
"name": "@ledgerhq/hw-app-xah", | ||
"version": "6.28.5", | ||
"description": "Ledger Hardware Wallet Ripple Application API", | ||
"keywords": [ | ||
"Ledger", | ||
"LedgerWallet", | ||
"Xahau", | ||
"xah", | ||
"NanoS", | ||
"Blue", | ||
"Hardware Wallet" | ||
], | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/LedgerHQ/ledger-live.git" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/LedgerHQ/ledger-live/issues" | ||
}, | ||
"homepage": "https://github.com/LedgerHQ/ledger-live/tree/develop/libs/ledgerjs/packages/hw-app-xah", | ||
"publishConfig": { | ||
"access": "public" | ||
}, | ||
"main": "lib/Xah.js", | ||
"module": "lib-es/Xah.js", | ||
"types": "lib/Xah.d.ts", | ||
"license": "Apache-2.0", | ||
"dependencies": { | ||
"@ledgerhq/hw-transport": "workspace:^", | ||
"bip32-path": "0.4.2" | ||
}, | ||
"devDependencies": { | ||
"@ledgerhq/hw-transport-mocker": "workspace:^", | ||
"@types/jest": "^29.5.10", | ||
"@types/node": "^20.8.10", | ||
"documentation": "14.0.2", | ||
"jest": "^29.7.0", | ||
"rimraf": "^4.4.1", | ||
"source-map-support": "^0.5.21", | ||
"ts-jest": "^29.1.1", | ||
"ts-node": "^10.4.0" | ||
}, | ||
"scripts": { | ||
"clean": "rimraf lib lib-es", | ||
"build": "tsc && tsc -m ES6 --outDir lib-es", | ||
"prewatch": "pnpm build", | ||
"watch": "tsc --watch", | ||
"doc": "documentation readme src/** --section=API --pe ts --re ts --re d.ts", | ||
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache", | ||
"lint:fix": "pnpm lint --fix", | ||
"test": "jest", | ||
"unimported": "unimported" | ||
}, | ||
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec" | ||
} |
Oops, something went wrong.