URI: 
       tpaymentrequest.proto - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
       tpaymentrequest.proto (2373B)
       ---
            1 //
            2 // Simple Bitcoin Payment Protocol messages
            3 //
            4 // Use fields 1000+ for extensions;
            5 // to avoid conflicts, register extensions via pull-req at
            6 // https://github.com/bitcoin/bips/bip-0070/extensions.mediawiki
            7 //
            8 
            9 syntax = "proto2";
           10 package payments;
           11 option java_package = "org.bitcoin.protocols.payments";
           12 option java_outer_classname = "Protos";
           13 
           14 // Generalized form of "send payment to this/these bitcoin addresses"
           15 message Output {
           16         optional uint64 amount = 1 [default = 0]; // amount is integer-number-of-satoshis
           17         required bytes script = 2; // usually one of the standard Script forms
           18 }
           19 message PaymentDetails {
           20         optional string network = 1 [default = "main"]; // "main" or "test"
           21         repeated Output outputs = 2;        // Where payment should be sent
           22         required uint64 time = 3;           // Timestamp; when payment request created
           23         optional uint64 expires = 4;        // Timestamp; when this request should be considered invalid
           24         optional string memo = 5;           // Human-readable description of request for the customer
           25         optional string payment_url = 6;    // URL to send Payment and get PaymentACK
           26         optional bytes merchant_data = 7;   // Arbitrary data to include in the Payment message
           27 }
           28 message PaymentRequest {
           29         optional uint32 payment_details_version = 1 [default = 1];
           30         optional string pki_type = 2 [default = "none"];  // none / x509+sha256 / x509+sha1
           31         optional bytes pki_data = 3;                      // depends on pki_type
           32         required bytes serialized_payment_details = 4;    // PaymentDetails
           33         optional bytes signature = 5;                     // pki-dependent signature
           34 }
           35 message X509Certificates {
           36         repeated bytes certificate = 1;    // DER-encoded X.509 certificate chain
           37 }
           38 message Payment {
           39         optional bytes merchant_data = 1;  // From PaymentDetails.merchant_data
           40         repeated bytes transactions = 2;   // Signed transactions that satisfy PaymentDetails.outputs
           41         repeated Output refund_to = 3;     // Where to send refunds, if a refund is necessary
           42         optional string memo = 4;          // Human-readable message for the merchant
           43 }
           44 message PaymentACK {
           45         required Payment payment = 1;      // Payment message that triggered this ACK
           46         optional string memo = 2;          // human-readable message for customer
           47 }