You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.7 KiB
48 lines
1.7 KiB
syntax = "proto3"; |
|
package cash.z.wallet.sdk.rpc; |
|
option go_package = "walletrpc"; |
|
|
|
// Remember that proto3 fields are all optional. A field that is not present will be set to its zero value. |
|
// bytes fields of hashes are in canonical little-endian format. |
|
|
|
// CompactBlock is a packaging of ONLY the data from a block that's needed to: |
|
// 1. Detect a payment to your shielded Sapling address |
|
// 2. Detect a spend of your shielded Sapling notes |
|
// 3. Update your witnesses to generate new Sapling spend proofs. |
|
message CompactBlock { |
|
uint32 protoVersion = 1; // the version of this wire format, for storage |
|
uint64 height = 2; // the height of this block |
|
bytes hash = 3; |
|
bytes prevHash = 4; |
|
uint32 time = 5; |
|
bytes header = 6; // (hash, prevHash, and time) OR (full header) |
|
repeated CompactTx vtx = 7; // compact transactions from this block |
|
} |
|
|
|
message CompactTx { |
|
// Index and hash will allow the receiver to call out to chain |
|
// explorers or other data structures to retrieve more information |
|
// about this transaction. |
|
uint64 index = 1; |
|
bytes hash = 2; |
|
|
|
// The transaction fee: present if server can provide. In the case of a |
|
// stateless server and a transaction with transparent inputs, this will be |
|
// unset because the calculation requires reference to prior transactions. |
|
// in a pure-Sapling context, the fee will be calculable as: |
|
// valueBalance + (sum(vPubNew) - sum(vPubOld) - sum(tOut)) |
|
uint32 fee = 3; |
|
|
|
repeated CompactSpend spends = 4; |
|
repeated CompactOutput outputs = 5; |
|
} |
|
|
|
message CompactSpend { |
|
bytes nf = 1; |
|
} |
|
|
|
message CompactOutput { |
|
bytes cmu = 1; |
|
bytes epk = 2; |
|
bytes ciphertext = 3; |
|
}
|
|
|