bcp-js
Version:
BlockChain Payloads - OP_RETURN saved pointers to data
69 lines (59 loc) • 2.94 kB
JavaScript
const {
BCP,
BCP_SRC_URL,
BCP_SRC_IPFS
} = require('../dist/bcp.js')
function createBCP () {
try {
const ipfsHash = 'QmZmqLskJmghru919cvU4qSy3L5vc1S2JdzsUXrM17ZqT9'
const url = 'http://example.com/image.png'
const sipURL = 'sip:john@example.com'
const ipfsURL = 'ipfs://QmTYqoPYf7DiVebTnvwwFdTgsYXg2RnuPrt8uddjfW2kHS'
const slpAddress = 'simpleledger:qq2fg599ysqvfefr2ur0z34n2dk6f0aszg5pskpe06'
const bcp = new BCP()
// Simple text saved to the blockchain
let opReturn = bcp.createChainText('Hello BCP')
console.log(`OP_RETURN: ${JSON.stringify(opReturn.toString('hex'), null, 2)}`)
let parsed = bcp.parse(opReturn)
console.log(`text: ${JSON.stringify(parsed.data.toString(), null, 2)}`)
// .mp3 file on IPFS
opReturn = bcp.createAudio(BCP_SRC_IPFS, ipfsHash)
console.log(`OP_RETURN: ${JSON.stringify(opReturn.toString('hex'), null, 2)}`)
parsed = bcp.parse(opReturn)
console.log(`hash: ${JSON.stringify(parsed.data.hash.toString(), null, 2)}`)
// Monkey video on IPFS (URL source)
opReturn = bcp.createVideo(BCP_SRC_URL, ipfsURL)
console.log(`OP_RETURN: ${JSON.stringify(opReturn.toString('hex'), null, 2)}`)
parsed = bcp.parse(opReturn)
console.log(`url: ${JSON.stringify(parsed.data.url.toString(), null, 2)}`)
let parsedURL = JSON.parse(parsed.data.parsed.toString())
console.log(`parsed: ${JSON.stringify(parsedURL, null, 2)}`)
// Image on the usual HTTP URL
opReturn = bcp.createImage(BCP_SRC_URL, url)
console.log(`OP_RETURN: ${JSON.stringify(opReturn.toString('hex'), null, 2)}`)
parsed = bcp.parse(opReturn)
console.log(`url: ${JSON.stringify(parsed.data.url.toString(), null, 2)}`)
parsedURL = JSON.parse(parsed.data.parsed.toString())
console.log(`parsed: ${JSON.stringify(parsedURL, null, 2)}`)
// Same image, BCP automatically detected
opReturn = bcp.createFromString(ipfsHash)
console.log(`OP_RETURN: ${JSON.stringify(opReturn.toString('hex'), null, 2)}`)
parsed = bcp.parse(opReturn)
console.log(`url: ${JSON.stringify(parsed.data.hash.toString(), null, 2)}`)
// SIP URI for voice call
opReturn = bcp.createAudio(BCP_SRC_URL, sipURL)
console.log(`OP_RETURN: ${JSON.stringify(opReturn.toString('hex'), null, 2)}`)
parsed = bcp.parse(opReturn)
console.log(`sip: ${JSON.stringify(parsed.data.url.toString(), null, 2)}`)
parsedURL = JSON.parse(parsed.data.parsed.toString())
console.log(`parsed: ${JSON.stringify(parsedURL, null, 2)}`)
// SLP address for implementing changable objects (keeping the state etc.)
opReturn = bcp.createState(slpAddress)
console.log(`OP_RETURN: ${JSON.stringify(opReturn.toString('hex'), null, 2)}`)
parsed = bcp.parse(opReturn)
console.log(`address: ${JSON.stringify(parsed.data.address.toString(), null, 2)}`)
} catch (error) {
console.error('error in createBCP: ', error)
}
}
createBCP()