Skip to content

hyperdivision/dazaar-payment-eth

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dazaar-payment-eth

Ethereum payment api for Dazaar stream services

Usage

const PaymentETH = require('dazaar-payment-eth')
const market = require('dazaar/market')
const hypercore = require('hypercore')

const m = market('./tmp')
const feed = hypercore('./tmp/data')

const opts = {
  feedKey: 'de..adbeef', // feed key for the ethereum index
}

const paymentCard = {
  ethPubKey: '0x50c7d91e74b0e42bd8bce8ad6d199e4a23c0b193',
  id: 'dazaartest22'
  currency: 'microether',
  amount: '1',
  unit: 'seconds',
  interval: 1
}

let payment

// instantiate a seller for a feed and equip it
// with a validate function
const seller = m.sell(feed, {
  validate (remoteKey, cb) {
    payee.validate(remoteKey, cb)
  }
})

seller.ready(function (err) {
  // payment now set up. dazaar logic follows ... 
  payment = new PaymentETH(seller, paymentCard, opts)
})

Buyer

// instantiate a buyer for a specific feed 
const buyer = m.buy(seller.key)

// generate the ethereum adress to pay to for a given stream
const payTo = PaymentETH.tweak(buyer.key, opts)

// pay the desired amount to the address generated

API

const payment = PaymentETH(seller, payment, opts)

Create a new eth payment instance associated to a seller. seller should be a dazaar seller instance, payment may either be a dazaar payment card, or a string specifying the per second rate in either ETH, such as 0.0002 ETH/s. Options include:

{
  feedKey: ..., // feed key for a remote ethereum index
  client: ..., // client for the remote index service (see https://github.com/hyperdivision/eth-indexer-service)
  index: ..., // alternatively, a live indexer instance may also be passed in
  endpoint: ..., // specify an chain endpoint and an new index shall be made 
}

payment.validate(buyerKey, cb)

A seller can validate the time left for a given buyer. Returns error if there is no time left on the subscription. The method shall check whether the given buyer has a subscription set-up and instantiate one not already present.

const payTo = PaymentETH.tweak(buyerKey, dazaarCard)

Static method to generate the ETH address to pay to for a given stream. buyerKey is the buyer's dazaar key and dazaarCard give the relevant stream details.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%