@moneybutton/express-paymail
Description
This package intents to be a full implementation of BSV paymail specification
easy to plug in any expressjs app.
Getting started
This is a minimal example of an express app using this package:
import { buildRouter } from '@moneybutton/express-paymail'
import express from 'express'
const BASE_URL = 'example.tls'
const paymailRouter = buildRouter(BASE_URL, {
basePath: '/api/bsvalias',
getIdentityKey: async (name, domain) => {
return '0335e5e7b86c12a4b5df082acb43ca7805382b58c805172bdef20ced310df845aa'
},
getPaymentDestination: async (name, domain, body, helpers) => {
return helpers.p2pkhFromAddress('1FJJkRqyxTKAVX3dGFpddERt9XRbiSRZkL')
},
verifyPublicKeyOwner: async (name, domain, publicKeyToCheck) => {
return '0335e5e7b86c12a4b5df082acb43ca7805382b58c805172bdef20ced310df845aa' === publicKeyToCheck
}
})
const app = express()
app.use(paymailRouter)
app.listen('3000', () => {
logger.info(`Listening on port ${API_REST_PORT}.`)
})
This generates an app with the following endpoints:
endpoint | description |
---|
/.well-known/bsvalias | Api descriptor. Generated automatically. |
/api/bsvalias/id/{alias}@{domain.tld} | Returns public key for a given paymail. |
/api/bsvalias/address/{alias}@{domain.tld} | Returns an output to send money to a given paymail owner. |
/verifypubkey/{alias}@{domain.tld}/{pubkey} | Checks if a given pubkey belongs to given paymail. |