hw-app-vap
v5.27.2
Published
Ledger Hardware Wallet Vapory Application API
Downloads
18
Maintainers
Readme
@ledgerhq/hw-app-vap
Ledger Hardware Wallet VAP JavaScript bindings.
API
Table of Contents
- byContractAddress
- list
- Vap
byContractAddress
Retrieve the token information by a given contract address if any
Parameters
contract
string
Returns TokenInfo?
list
list all the ERC20 tokens informations
Returns Array<TokenInfo>
Vap
Vapory API
Parameters
transport
Transport<any>scrambleKey
string (optional, default"w0w"
)
Examples
import Vap from "@ledgerhq/hw-app-vap";
const vap = new Vap(transport)
getAddress
get Vapory address for a given BIP 32 path.
Parameters
Examples
vap.getAddress("44'/60'/0'/0/0").then(o => o.address)
Returns Promise<{publicKey: string, address: string, chainCode: string?}> an object with a publicKey, address and (optionally) chainCode
provideERC20TokenInformation
This commands provides a trusted description of an ERC 20 token to associate a contract address with a ticker and number of decimals.
It shall be run immediately before performing a transaction involving a contract calling this contract address to display the proper token information to the user if necessary.
Parameters
info
any : a blob from "erc20.js" utilities that contains all token information.info.data
Examples
import { byContractAddress } from "@ledgerhq/hw-app-vap/erc20"
const zrxInfo = byContractAddress("0xe41d2489571d322189246dafa5ebde1f4699f498")
if (zrxInfo) await appVap.provideERC20TokenInformation(zrxInfo)
const signed = await appVap.signTransaction(path, rawTxHex)
signTransaction
You can sign a transaction and retrieve v, r, s given the raw transaction and the BIP 32 path of the account to sign
Parameters
Examples
vap.signTransaction("44'/60'/0'/0/0", "e8018504e3b292008252089428ee52a8f3d6e5d15f8b131996950d7f296c7952872bd72a2487400080").then(result => ...)
Returns Promise<{s: string, v: string, r: string}>
getAppConfiguration
Returns Promise<{arbitraryDataEnabled: number, erc20ProvisioningNecessary: number, starkEnabled: number, version: string}>
signPersonalMessage
You can sign a message according to vap_sign RPC call and retrieve v, r, s given the message and the BIP 32 path of the account to sign.
Parameters
Examples
vap.signPersonalMessage("44'/60'/0'/0/0", Buffer.from("test").toString("hex")).then(result => {
var v = result['v'] - 27;
v = v.toString(16);
if (v.length < 2) {
v = "0" + v;
}
console.log("Signature 0x" + result['r'] + result['s'] + v);
})
Returns Promise<{v: number, s: string, r: string}>
signEIP712HashedMessage
Sign a prepared message following web3.vap.signTypedData specification. The host computes the domain separator and hashStruct(message)
Parameters
Examples
vap.signEIP712HashedMessage("44'/60'/0'/0/0", Buffer.from("0101010101010101010101010101010101010101010101010101010101010101").toString("hex"), Buffer.from("0202020202020202020202020202020202020202020202020202020202020202").toString("hex")).then(result => {
var v = result['v'] - 27;
v = v.toString(16);
if (v.length < 2) {
v = "0" + v;
}
console.log("Signature 0x" + result['r'] + result['s'] + v);
})
Returns Promise<{v: number, s: string, r: string}>
starkGetPublicKey
get Stark public key for a given BIP 32 path.
Parameters
Returns Promise<Buffer> the Stark public key
starkSignOrder
sign a Stark order
Parameters
path
string a path in BIP 32 formatsourceTokenAddress
string?sourceQuantization
BigNumber quantization used for the source tokendestinationTokenAddress
string?destinationQuantization
BigNumber quantization used for the destination tokensourceVault
number ID of the source vaultdestinationVault
number ID of the destination vaultamountSell
BigNumber amount to sellamountBuy
BigNumber amount to buynonce
number transaction noncetimestamp
number transaction validity timestamp
Returns Promise<Buffer> the signature
starkSignTransfer
sign a Stark transfer
Parameters
path
string a path in BIP 32 formattransferTokenAddress
string?transferQuantization
BigNumber quantization used for the token to be transferredtargetPublicKey
string target Stark public keysourceVault
number ID of the source vaultdestinationVault
number ID of the destination vaultamountTransfer
BigNumber amount to transfernonce
number transaction noncetimestamp
number transaction validity timestamp
Returns Promise<Buffer> the signature
starkProvideQuantum
provide quantization information before singing a deposit or withdrawal Stark powered contract call
It shall be run following a provideERC20TokenInformation call for the given contract
Parameters
operationContract
string? contract address of the token to be transferred (not present for VAP)operationQuantization
BigNumber quantization used for the token to be transferred