Ledger Hardware Wallet VAP JavaScript bindings.
- byContractAddress
- list
- Vap
Retrieve the token information by a given contract address if any
contract
string
Returns TokenInfo?
list all the ERC20 tokens informations
Returns Array<TokenInfo>
Vapory API
transport
Transport<any>scrambleKey
string (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.
info
any : 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
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
sign a Stark transfer
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
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
operationContract
string? contract address of the token to be transferred (not present for VAP)operationQuantization
BigNumber quantization used for the token to be transferred