Pay server - is the blockchain microservice which is working on zigzag.io. It is used as unified API for other microservices to receive and send cryptocurrency.
| State | Feature |
|---|---|
| implemented | Unify payment API for BTC, LTC, DASH, ETH, BCH, and Lightning Network |
| implemented | Report health statistics about internal state of synchronisation, fees, request delays, sent and received volume, amount of fees spent on payments |
| not implemented | Payment re-try in case of failure |
| not implemented | UTXO re-orginisation |
| not implemented | Lightning Network channel re-balancing |
| not implemented | Support of payments on HTLC addresses |
GRPC API: // CreateReceipt is used to create blockchain deposit address in // case of blockchain media, and lightning network invoice in // case of the lightning media, which will be used to receive money from // external entity. rpc CreateReceipt (CreateReceiptRequest) returns (CreateReceiptResponse); // ValidateReceipt is used to validate receipt for given asset and media. rpc ValidateReceipt (ValidateReceiptRequest) returns (EmptyResponse); // Balance is used to determine balance. rpc Balance (BalanceRequest) returns (BalanceResponse); // EstimateFee estimates the fee of the payment. rpc EstimateFee (EstimateFeeRequest) returns (EstimateFeeResponse); // SendPayment sends payment to the given recipient, // ensures in the validity of the receipt as well as the // account has enough money for doing that. rpc SendPayment (SendPaymentRequest) returns (Payment); // PaymentByID is used to fetch the information about payment, by the // given system payment id. rpc PaymentByID (PaymentByIDRequest) returns (Payment); // PaymentsByReceipt is used to fetch the information about payment, by the // given receipt. rpc PaymentsByReceipt (PaymentsByReceiptRequest) returns (PaymentsByReceiptResponse); // ListPayments returnes list of payment which were registered by the // system. rpc ListPayments (ListPaymentsRequest) returns (ListPaymentsResponse);