open-baemail
v0.3.4
Published
Baemail Protocol, send from anywhere. Requires merchant registration for just now.
Downloads
77
Readme
Open Baemail
Baemail Protocol, send from anywhere. Requires merchant registration for just now.
Please register here --> Registrations & Demo
Baemail
Check out regular Baemail here --> baemail.me
#PowPing style Invisible creation, with swipe to send.
import Baemail from 'open-baemail'
const message = await Baemail.createMessage(imb, toPaymail, name, paymail, pki, subject, body, amount)
// dev can then render as they see fit from user to send:
moneyButton.render(div, message)Latest Feature ^0.3.0
Send from any paymail based app.
import Baemail from 'open-baemail'
// Assuming in your existing app you use the following
// An authenticated Invisible MoneyButton instance
// The primary paymail of that MB account
// The user's name
// The user's paymail pki
const { imb, paymail, name, pki } = userContext
const toPaymail = '[email protected]' // Send something to this paymail
const subject = 'Something'
const body = '<div><p>Hello Baemail</p></div>'
const amount = 0.01 // minimum in USD, be careful with this as your user will pay this.
Baemail.send(imb, toPaymail, name, paymail, pki, subject, body, amount)
.then(mb => {
console.log(mb.payment.txid)
})
// That's it, console confirms the baemail is sent, and the
Example Integration
<!DOCTYPE html>
<html>
<head>
<title>YOUR APP NAME</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://www.moneybutton.com/moneybutton.js"></script>
<script src='https://unpkg.com/[email protected]/bsv.min.js'></script>
<script src='https://unpkg.com/[email protected]/bsv-mnemonic.min.js'></script>
<script src="https://baemail.me/static/open/baemail.js"></script>
</head>
<body>
<section>
<h1>METANET.ICU DEMO</h1>
<p>Buy something with a receipt</p>
<div id="user"></div>
</section>
<script>
const userButton = document.getElementById('user')
Baemail.user = {}
// Your app will probably have a user paymail already, if not then you can use this to grab it from MoneyButton.
const setPaymailButton = () => {
moneyButton.render(userButton, {
label: 'Set Paymail',
cryptoOperations: [
{
name: 'myPaymail',
method: 'paymail'
}
],
onCryptoOperations: (cryptoOperations) => {
Baemail.user.paymail = cryptoOperations[0].value
sendBaemailButton()
}
})
}
// This will purchase whatever you're selling, and send a Baemail from your app to your app's paymail and the user's paymail.
const sendBaemailButton = async () => {
Baemail.service = {}
Baemail.service.paymail = '<<<<< YOUR PAYMAIL >>>>>'
if (Baemail.user.paymail) {
await Baemail.fromString('This is a receipt, thanks for your purchase.', 0.05)
moneyButton.render(userButton, {
outputs: [{
script: bsv.Script.buildSafeDataOut(['Some Custom', 'App Data']).toASM(), // add your own OP_RETURN data here
amount: '0.00',
currency: 'USD'
}, ...Baemail.outputs ], // This spread object adds the Baemail Payments
cryptoOperations: [ ...Baemail.cryptoOperations ], // This spread object adds the Baemail Message
buttonData: 'Your App Data',
label: 'Pay & Bae' })
} else {
setPaymailButton()
}
}
setPaymailButton()
</script>
</body>
</html>