feat(getPsffppPrice): New endpoint to get PSFFPP pin price

This commit is contained in:
Chris Troutner
2024-09-03 19:28:22 -07:00
parent 01a4d0f1aa
commit b34040cd08
2 changed files with 45 additions and 0 deletions
+36
View File
@@ -230,6 +230,42 @@ class Price {
else throw err else throw err
} }
} }
/**
* @api price.getPsffppPrice() getPsffppPrice()
* @apiName Price getPsffppPrice()
* @apiGroup Price
* @apiDescription Return the cost in PSF tokens to write 1MB of data to the PSFFPP
* Find out more at PSFFPP.com. This is a IPFS pinning service that can pin
* up to 100MB per transaction into its network. The cost is denominated in
* PSF SLP tokens. The endpoint returns the cost to pin 1MB of data to the
* PSFFPP network.
*
* @apiExample Example usage:
*(async () => {
* try {
* let current = await bchjs.Price.getPsffppPrice();
* console.log(current);
* } catch(err) {
* console.error(err)
* }
*})()
*
* // 0.08335233
*/
async getPsffppPrice () {
try {
const response = await this.axios.get(
`${this.restURL}price/psffpp`,
this.axiosOptions
)
return response.data.writePrice
} catch (err) {
if (err.response && err.response.data) throw err.response.data
else throw err
}
}
} }
module.exports = Price module.exports = Price
+9
View File
@@ -52,6 +52,15 @@ describe('#price', () => {
assert.property(result, 'CAD') assert.property(result, 'CAD')
}) })
}) })
describe('#getPsffppPrice', () => {
it('should get the price of BCH in several currencies', async () => {
const result = await bchjs.Price.getPsffppPrice()
// console.log(result)
assert.isNumber(result)
})
})
}) })
function sleep (ms) { function sleep (ms) {