Ledger Hardware Wallet VAP JavaScript bindings.
- byContractAddress
- list
- Vap
Retrieve the token information by a given contract address if any
contractstring
Returns TokenInfo?
list all the ERC20 tokens informations
Returns Array<TokenInfo>
Vapory API
transportTransport<any>scrambleKeystring (optional, default"w0w")
import Vap from "@ledgerhq/hw-app-vap";
const vap = new Vap(transport)get Vapory address for a given BIP 32 path.
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
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.
infoany : a blob from "erc20.js" utilities that contains all token information.info.data
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)You can sign a transaction and retrieve v, r, s given the raw transaction and the BIP 32 path of the account to sign
vap.signTransaction("44'/60'/0'/0/0", "e8018504e3b292008252089428ee52a8f3d6e5d15f8b131996950d7f296c7952872bd72a2487400080").then(result => ...)Returns Promise<{s: string, v: string, r: string}>
Returns Promise<{arbitraryDataEnabled: number, erc20ProvisioningNecessary: number, starkEnabled: number, version: string}>
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.
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}>
Sign a prepared message following web3.vap.signTypedData specification. The host computes the domain separator and hashStruct(message)
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}>
get Stark public key for a given BIP 32 path.
Returns Promise<Buffer> the Stark public key
sign a Stark order
pathstring a path in BIP 32 formatsourceTokenAddressstring?sourceQuantizationBigNumber quantization used for the source tokendestinationTokenAddressstring?destinationQuantizationBigNumber quantization used for the destination tokensourceVaultnumber ID of the source vaultdestinationVaultnumber ID of the destination vaultamountSellBigNumber amount to sellamountBuyBigNumber amount to buynoncenumber transaction noncetimestampnumber transaction validity timestamp
Returns Promise<Buffer> the signature
sign a Stark transfer
pathstring a path in BIP 32 formattransferTokenAddressstring?transferQuantizationBigNumber quantization used for the token to be transferredtargetPublicKeystring target Stark public keysourceVaultnumber ID of the source vaultdestinationVaultnumber ID of the destination vaultamountTransferBigNumber amount to transfernoncenumber transaction noncetimestampnumber transaction validity timestamp
Returns Promise<Buffer> the signature
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
operationContractstring? contract address of the token to be transferred (not present for VAP)operationQuantizationBigNumber quantization used for the token to be transferred
