@coil/receipt-verifier

    1.0.5 • Public • Published

    Receipt Verifier

    Manages Interledger STREAM receipts

    npm version

    STREAM receipts allow recipients or third parties to verify received payments at the recipient's Interledger wallet.

    The Receipt Verifier:

    1. pre-shares a secret key with the receiving wallet for generating receipts, by acting as a proxy for SPSP queries to the recipient's payment pointer
    2. verifies receipts
    3. tracks balances where receipt amounts are credited

    For Web Monetization, website visitors submit receipts to the website in monetizationprogress events. The website backend can send receipts to the Receipt Verifier to credit the balance for the particular Monetization ID and can subsequently spend against the Monetization ID balance as desired to confirm the payment.

    Run

    npm install
    sudo docker run -p 6379:6379 -d redis
    SPSP_ENDPOINT=https://receiver-endpoint.com npm start
    

    Environment Variables

    RECEIPT_SEED

    • Type: String
    • Description: Base64-encoded secret value used to generate receipt secret keys.
    • Default: random seed

    RECEIPT_TTL

    • Type: Number
    • Description: The number of seconds since a stream's start time to consider a receipt valid.
    • Default: 300

    REDIS_URI

    • Type: String
    • Description: The URI at which to connect to Redis. Use mock for in-memory Redis (NOT RECOMMENDED for production)
    • Default: redis://127.0.0.1:6379/

    SPSP_ENDPOINT

    • Type: String
    • Description: The receiver's SPSP endpoint to which SPSP queries are proxied.

    SPSP_PROXY_PORT

    • Type: Number
    • Description: The port that SPSP proxy will listen on.
    • Default: 3001

    VERIFIER_PORT

    • Type: Number
    • Description: The port that Receipt Verifier API will listen on.
    • Default: 3000

    API Documentation

    POST /balances/{ID}:creditReceipt

    Verifies receipt and credits the receipt value to the specified balance

    Request Body:
    • Type: String
    • Description: base64-encoded STREAM receipt
    Return Value:
    • Type: String
    • Description: updated balance for ID

    POST /balances/{ID}:spend

    Debits an amount from the specified balance if the balance is sufficient

    Request Body:
    • Type: String
    • Description: amount to debit the balance
    Return Value:
    • Type: String
    • Description: updated balance for ID

    Keywords

    none

    Install

    npm i @coil/receipt-verifier

    DownloadsWeekly Downloads

    8

    Version

    1.0.5

    License

    Apache-2.0

    Unpacked Size

    131 kB

    Total Files

    45

    Last publish

    Collaborators

    • travis.v.crist
    • coilhq
    • justmoon
    • sharafian