You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

162 lines
3.5 KiB

/**
* Returns the sum of all confirmed unspent outputs under control by the wallet
* @param {[type]} lnd [description]
* @return {[type]} [description]
*/
export function walletBalance(lnd) {
return new Promise((resolve, reject) => {
lnd.walletBalance({}, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Creates a new address under control of the local wallet
* @param {[type]} lnd [description]
* @param {[type]} type [description]
* @return {[type]} [description]
*/
export function newAddress(lnd, type) {
return new Promise((resolve, reject) => {
lnd.newAddress({ type }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Creates a new witness address under control of the local wallet
* @param {[type]} lnd [description]
* @return {[type]} [description]
*/
export function newWitnessAddress(lnd, { addr }) {
return new Promise((resolve, reject) => {
lnd.newWitnessAddress({ address: addr }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Returns a list describing all the known transactions relevant to the wallet
* @param {[type]} lnd [description]
* @return {[type]} [description]
*/
export function getTransactions(lnd) {
return new Promise((resolve, reject) => {
lnd.getTransactions({}, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Executes a request to send coins to a particular address
* @param {[type]} lnd [description]
* @param {[type]} addr [description]
* @param {[type]} amount [description]
* @return {[type]} [description]
*/
export function sendCoins(lnd, { addr, amount }) {
return new Promise((resolve, reject) => {
lnd.sendCoins({ addr, amount }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Executes a request to set the alias for the node
* @param {[type]} new_alias [description]
*/
export function setAlias(lnd, { new_alias }) {
return new Promise((resolve, reject) => {
lnd.setAlias({ new_alias }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Generates a seed for the wallet
*/
export function genSeed(walletUnlocker) {
return new Promise((resolve, reject) => {
walletUnlocker.genSeed({}, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Unlocks a wallet with a password
* @param {[type]} password [description]
*/
export function unlockWallet(walletUnlocker, { wallet_password }) {
return new Promise((resolve, reject) => {
walletUnlocker.unlockWallet({ wallet_password: Buffer.from(wallet_password) }, (err, data) => {
if (err) {
reject(err)
}
resolve(data)
})
})
}
/**
* Unlocks a wallet with a password
* @param {[type]} password [description]
* @param {[type]} cipher_seed_mnemonic [description]
*/
export function initWallet(
walletUnlocker,
{ wallet_password, cipher_seed_mnemonic, aezeed_passphrase }
) {
return new Promise((resolve, reject) => {
walletUnlocker.initWallet(
{
wallet_password: Buffer.from(wallet_password),
cipher_seed_mnemonic,
aezeed_passphrase: Buffer.from(aezeed_passphrase, 'hex'),
recovery_window: 250
},
(err, data) => {
if (err) {
reject(err)
}
resolve(data)
}
)
})
}