The purpose of this project is to deliver reliable, robust payment receipts on the Tezos infrastructure, while minimizing chain usage and maximizing privacy.
The receipt needs to be easily human readable, for purposes of signing. The general text format is as follows:
Payment slip for {amount} mutez to {destination address} with message '{message}' and on-chain locator {opg_hash}[.{op_index}.{internal_index}]
The message
field differs between requested payments, where it is a server-side payment id, and peer to peer transfers, where it can be an arbitrary message. The current iteration focuses on using server-side ids.
- Transfer indexer: indexing the receiving address
- Cleanup worker: /NOT DONE/
- Refunds unclaimed transfers (minus fee) via Peppermint
- Cleans up timed out payment processes
- Payment processor class:
- Records payment processes (from store / backend)
- Records payment receipts (from user / frontend)
- Provides confirmation of payment
- Peppermint
- Originates transfers
- Client
- Taquito
- Server
- Payments DB
- Payments data access layer
- Que-pasa
- Blockchain
- Paypoint contract
SERVER - [saves payment record to DB] and sends data to client CLIENT - [assembles transfer object] and sends transfer SERVER - [queries Que-pasa for payment fulfillment]