2020-03-02 16:07:51 -08:00
<!DOCTYPE html>
< html >
< head >
< title > Protocol Documentation< / title >
< meta charset = "UTF-8" >
< link rel = "stylesheet" type = "text/css" href = "https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic" / >
< style >
body {
width: 60em;
margin: 1em auto;
color: #222;
font-family: "Ubuntu", sans-serif;
padding-bottom: 4em;
}
h1 {
font-weight: normal;
border-bottom: 1px solid #aaa;
padding-bottom: 0.5ex;
}
h2 {
border-bottom: 1px solid #aaa;
padding-bottom: 0.5ex;
margin: 1.5em 0;
}
h3 {
font-weight: normal;
border-bottom: 1px solid #aaa;
padding-bottom: 0.5ex;
}
a {
text-decoration: none;
color: #567e25;
}
table {
width: 100%;
font-size: 80%;
border-collapse: collapse;
}
thead {
font-weight: 700;
background-color: #dcdcdc;
}
tbody tr:nth-child(even) {
background-color: #fbfbfb;
}
td {
border: 1px solid #ccc;
padding: 0.5ex 2ex;
}
td p {
text-indent: 1em;
margin: 0;
}
td p:nth-child(1) {
text-indent: 0;
}
.field-table td:nth-child(1) {
width: 10em;
}
.field-table td:nth-child(2) {
width: 10em;
}
.field-table td:nth-child(3) {
width: 6em;
}
.field-table td:nth-child(4) {
width: auto;
}
.extension-table td:nth-child(1) {
width: 10em;
}
.extension-table td:nth-child(2) {
width: 10em;
}
.extension-table td:nth-child(3) {
width: 10em;
}
.extension-table td:nth-child(4) {
width: 5em;
}
.extension-table td:nth-child(5) {
width: auto;
}
.enum-table td:nth-child(1) {
width: 10em;
}
.enum-table td:nth-child(2) {
width: 10em;
}
.enum-table td:nth-child(3) {
width: auto;
}
.scalar-value-types-table tr {
height: 3em;
}
#toc-container ul {
list-style-type: none;
padding-left: 1em;
line-height: 180%;
margin: 0;
}
#toc > li > a {
font-weight: bold;
}
.file-heading {
width: 100%;
display: table;
border-bottom: 1px solid #aaa;
margin: 4em 0 1.5em 0;
}
.file-heading h2 {
border: none;
display: table-cell;
}
.file-heading a {
text-align: right;
display: table-cell;
}
.badge {
width: 1.6em;
height: 1.6em;
display: inline-block;
line-height: 1.6em;
text-align: center;
font-weight: bold;
font-size: 60%;
color: #89ba48;
background-color: #dff0c8;
margin: 0.5ex 1em 0.5ex -1em;
border: 1px solid #fbfbfb;
border-radius: 1ex;
}
< / style >
< link rel = "stylesheet" type = "text/css" href = "stylesheet.css" / >
< / head >
< body >
< h1 id = "title" > Protocol Documentation< / h1 >
< h2 > Table of Contents< / h2 >
< div id = "toc-container" >
< ul id = "toc" >
< li >
< a href = "#compact_formats.proto" > compact_formats.proto< / a >
< ul >
< li >
< a href = "#cash.z.wallet.sdk.rpc.CompactBlock" > < span class = "badge" > M< / span > CompactBlock< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.CompactOutput" > < span class = "badge" > M< / span > CompactOutput< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.CompactSpend" > < span class = "badge" > M< / span > CompactSpend< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.CompactTx" > < span class = "badge" > M< / span > CompactTx< / a >
< / li >
< / ul >
< / li >
< li >
< a href = "#service.proto" > service.proto< / a >
< ul >
< li >
< a href = "#cash.z.wallet.sdk.rpc.BlockID" > < span class = "badge" > M< / span > BlockID< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.BlockRange" > < span class = "badge" > M< / span > BlockRange< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.ChainSpec" > < span class = "badge" > M< / span > ChainSpec< / a >
< / li >
2020-03-11 13:56:23 -07:00
< li >
< a href = "#cash.z.wallet.sdk.rpc.Duration" > < span class = "badge" > M< / span > Duration< / a >
< / li >
2020-03-02 16:07:51 -08:00
< li >
< a href = "#cash.z.wallet.sdk.rpc.Empty" > < span class = "badge" > M< / span > Empty< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.LightdInfo" > < span class = "badge" > M< / span > LightdInfo< / a >
< / li >
2020-03-11 13:56:23 -07:00
< li >
< a href = "#cash.z.wallet.sdk.rpc.PingResponse" > < span class = "badge" > M< / span > PingResponse< / a >
< / li >
2020-03-02 16:07:51 -08:00
< li >
< a href = "#cash.z.wallet.sdk.rpc.RawTransaction" > < span class = "badge" > M< / span > RawTransaction< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.SendResponse" > < span class = "badge" > M< / span > SendResponse< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.TransparentAddressBlockFilter" > < span class = "badge" > M< / span > TransparentAddressBlockFilter< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.TxFilter" > < span class = "badge" > M< / span > TxFilter< / a >
< / li >
< li >
< a href = "#cash.z.wallet.sdk.rpc.CompactTxStreamer" > < span class = "badge" > S< / span > CompactTxStreamer< / a >
< / li >
< / ul >
< / li >
< li > < a href = "#scalar-value-types" > Scalar Value Types< / a > < / li >
< / ul >
< / div >
< div class = "file-heading" >
< h2 id = "compact_formats.proto" > compact_formats.proto< / h2 > < a href = "#title" > Top< / a >
< / div >
< p > < / p >
< h3 id = "cash.z.wallet.sdk.rpc.CompactBlock" > CompactBlock< / h3 >
< p > CompactBlock is a packaging of ONLY the data from a block that's needed to:< / p > < p > 1. Detect a payment to your shielded Sapling address< / p > < p > 2. Detect a spend of your shielded Sapling notes< / p > < p > 3. Update your witnesses to generate new Sapling spend proofs.< / p >
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > protoVersion< / td >
< td > < a href = "#uint32" > uint32< / a > < / td >
< td > < / td >
< td > < p > the version of this wire format, for storage < / p > < / td >
< / tr >
< tr >
< td > height< / td >
< td > < a href = "#uint64" > uint64< / a > < / td >
< td > < / td >
< td > < p > the height of this block < / p > < / td >
< / tr >
< tr >
< td > hash< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > the ID (hash) of this block, same as in block explorers < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > prevHash< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > the ID (hash) of this block' s predecessor < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > time< / td >
< td > < a href = "#uint32" > uint32< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > Unix epoch time when the block was mined < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > header< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
< td > < p > (hash, prevHash, and time) OR (full header) < / p > < / td >
< / tr >
< tr >
< td > vtx< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.CompactTx" > CompactTx< / a > < / td >
< td > repeated< / td >
2020-03-31 12:47:52 -07:00
< td > < p > zero or more compact transactions from this block < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.CompactOutput" > CompactOutput< / h3 >
2020-03-31 12:47:52 -07:00
< p > output is a Sapling Output Description as described in section 7.4 of the< / p > < p > Zcash protocol spec. Total size is 948.< / p >
2020-03-02 16:07:51 -08:00
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > cmu< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > note commitment u-coordinate < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > epk< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > ephemeral public key < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > ciphertext< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > ciphertext and zkproof < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.CompactSpend" > CompactSpend< / h3 >
2020-03-31 12:47:52 -07:00
< p > CompactSpend is a Sapling Spend Description as described in 7.3 of the Zcash< / p > < p > protocol specification.< / p >
2020-03-02 16:07:51 -08:00
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > nf< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > nullifier (see the Zcash protocol specification) < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.CompactTx" > CompactTx< / h3 >
2020-03-31 12:47:52 -07:00
< p > CompactTx contains the minimum information for a wallet to know if this transaction< / p > < p > is relevant to it (either pays to it or spends from it) via shielded elements< / p > < p > only. This message will not encode a transparent-to-transparent transaction.< / p >
2020-03-02 16:07:51 -08:00
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > index< / td >
< td > < a href = "#uint64" > uint64< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > the index within the full block < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > hash< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > the ID (hash) of this transaction, same as in block explorers < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > fee< / td >
< td > < a href = "#uint32" > uint32< / a > < / td >
< td > < / td >
< td > < p > 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)) < / p > < / td >
< / tr >
< tr >
< td > spends< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.CompactSpend" > CompactSpend< / a > < / td >
< td > repeated< / td >
2020-03-31 12:47:52 -07:00
< td > < p > inputs < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > outputs< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.CompactOutput" > CompactOutput< / a > < / td >
< td > repeated< / td >
2020-03-31 12:47:52 -07:00
< td > < p > outputs < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
< div class = "file-heading" >
< h2 id = "service.proto" > service.proto< / h2 > < a href = "#title" > Top< / a >
< / div >
< p > < / p >
< h3 id = "cash.z.wallet.sdk.rpc.BlockID" > BlockID< / h3 >
< p > A BlockID message contains identifiers to select a block: a height or a< / p > < p > hash. Specification by hash is not implemented, but may be in the future.< / p >
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > height< / td >
< td > < a href = "#uint64" > uint64< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< tr >
< td > hash< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.BlockRange" > BlockRange< / h3 >
< p > BlockRange specifies a series of blocks from start to end inclusive.< / p > < p > Both BlockIDs must be heights; specification by hash is not yet supported.< / p >
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > start< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.BlockID" > BlockID< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< tr >
< td > end< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.BlockID" > BlockID< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.ChainSpec" > ChainSpec< / h3 >
< p > Chainspec is a placeholder to allow specification of a particular chain fork.< / p >
2020-03-11 13:56:23 -07:00
< h3 id = "cash.z.wallet.sdk.rpc.Duration" > Duration< / h3 >
< p > Duration is currently used only for testing, so that the Ping rpc< / p > < p > can simulate a delay, to create many simultaneous connections. Units< / p > < p > are microseconds.< / p >
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > intervalUs< / td >
< td > < a href = "#int64" > int64< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< / tbody >
< / table >
2020-03-02 16:07:51 -08:00
< h3 id = "cash.z.wallet.sdk.rpc.Empty" > Empty< / h3 >
< p > Empty is for gRPCs that take no arguments, currently only GetLightdInfo.< / p >
< h3 id = "cash.z.wallet.sdk.rpc.LightdInfo" > LightdInfo< / h3 >
2020-03-11 13:56:23 -07:00
< p > LightdInfo returns various information about this lightwalletd instance< / p > < p > and the state of the blockchain.< / p >
2020-03-02 16:07:51 -08:00
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > version< / td >
< td > < a href = "#string" > string< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< tr >
< td > vendor< / td >
< td > < a href = "#string" > string< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< tr >
< td > taddrSupport< / td >
< td > < a href = "#bool" > bool< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > true < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > chainName< / td >
< td > < a href = "#string" > string< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > either " main" or " test" < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > saplingActivationHeight< / td >
< td > < a href = "#uint64" > uint64< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > depends on mainnet or testnet < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > consensusBranchId< / td >
< td > < a href = "#string" > string< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > protocol identifier, see consensus/upgrades.cpp < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > blockHeight< / td >
< td > < a href = "#uint64" > uint64< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > latest block on the best chain < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
2020-03-11 13:56:23 -07:00
< h3 id = "cash.z.wallet.sdk.rpc.PingResponse" > PingResponse< / h3 >
2020-03-31 12:47:52 -07:00
< p > PingResponse is used to indicate concurrency, how many Ping rpcs< / p > < p > are executing upon entry and upon exit (after the delay).< / p > < p > This rpc is used for testing only.< / p >
2020-03-11 13:56:23 -07:00
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > entry< / td >
< td > < a href = "#int64" > int64< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< tr >
< td > exit< / td >
< td > < a href = "#int64" > int64< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< / tbody >
< / table >
2020-03-02 16:07:51 -08:00
< h3 id = "cash.z.wallet.sdk.rpc.RawTransaction" > RawTransaction< / h3 >
2020-03-31 12:47:52 -07:00
< p > RawTransaction contains the complete transaction data. It also optionally includes < / p > < p > the block height in which the transaction was included.< / p >
2020-03-02 16:07:51 -08:00
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > data< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > exact data returned by zcash ' getrawtransaction' < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > height< / td >
< td > < a href = "#uint64" > uint64< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > height that the transaction was mined (or -1) < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.SendResponse" > SendResponse< / h3 >
< p > A SendResponse encodes an error code and a string. It is currently used< / p > < p > only by SendTransaction(). If error code is zero, the operation was< / p > < p > successful; if non-zero, it and the message specify the failure.< / p >
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > errorCode< / td >
< td > < a href = "#int32" > int32< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< tr >
< td > errorMessage< / td >
< td > < a href = "#string" > string< / a > < / td >
< td > < / td >
< td > < p > < / p > < / td >
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.TransparentAddressBlockFilter" > TransparentAddressBlockFilter< / h3 >
< p > TransparentAddressBlockFilter restricts the results to the given address< / p > < p > or block range.< / p >
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > address< / td >
< td > < a href = "#string" > string< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > t-address < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > range< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.BlockRange" > BlockRange< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > start, end heights < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.TxFilter" > TxFilter< / h3 >
< p > A TxFilter contains the information needed to identify a particular< / p > < p > transaction: either a block and an index, or a direct transaction hash.< / p > < p > Currently, only specification by hash is supported.< / p >
< table class = "field-table" >
< thead >
< tr > < td > Field< / td > < td > Type< / td > < td > Label< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > block< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.BlockID" > BlockID< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > block identifier, height or hash < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > index< / td >
< td > < a href = "#uint64" > uint64< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > index within the block < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > hash< / td >
< td > < a href = "#bytes" > bytes< / a > < / td >
< td > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > transaction ID (hash, txid) < / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< / tbody >
< / table >
< h3 id = "cash.z.wallet.sdk.rpc.CompactTxStreamer" > CompactTxStreamer< / h3 >
< p > < / p >
< table class = "enum-table" >
< thead >
< tr > < td > Method Name< / td > < td > Request Type< / td > < td > Response Type< / td > < td > Description< / td > < / tr >
< / thead >
< tbody >
< tr >
< td > GetLatestBlock< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.ChainSpec" > ChainSpec< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.BlockID" > BlockID< / a > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > Return the height of the tip of the best chain< / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > GetBlock< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.BlockID" > BlockID< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.CompactBlock" > CompactBlock< / a > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > Return the compact block corresponding to the given block identifier< / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > GetBlockRange< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.BlockRange" > BlockRange< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.CompactBlock" > CompactBlock< / a > stream< / td >
2020-03-31 12:47:52 -07:00
< td > < p > Return a list of consecutive compact blocks< / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > GetTransaction< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.TxFilter" > TxFilter< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.RawTransaction" > RawTransaction< / a > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > Return the requested full (not compact) transaction (as from zcashd)< / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > SendTransaction< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.RawTransaction" > RawTransaction< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.SendResponse" > SendResponse< / a > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > Submit the given transaction to the zcash network< / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > GetAddressTxids< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.TransparentAddressBlockFilter" > TransparentAddressBlockFilter< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.RawTransaction" > RawTransaction< / a > stream< / td >
2020-03-31 12:47:52 -07:00
< td > < p > Return the txids corresponding to the given t-address within the given block range< / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
< tr >
< td > GetLightdInfo< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.Empty" > Empty< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.LightdInfo" > LightdInfo< / a > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > Return information about this lightwalletd instance and the blockchain< / p > < / td >
2020-03-02 16:07:51 -08:00
< / tr >
2020-03-11 13:56:23 -07:00
< tr >
< td > Ping< / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.Duration" > Duration< / a > < / td >
< td > < a href = "#cash.z.wallet.sdk.rpc.PingResponse" > PingResponse< / a > < / td >
2020-03-31 12:47:52 -07:00
< td > < p > Testing-only< / p > < / td >
2020-03-11 13:56:23 -07:00
< / tr >
2020-03-02 16:07:51 -08:00
< / tbody >
< / table >
< h2 id = "scalar-value-types" > Scalar Value Types< / h2 >
< table class = "scalar-value-types-table" >
< thead >
< tr > < td > .proto Type< / td > < td > Notes< / td > < td > C++ Type< / td > < td > Java Type< / td > < td > Python Type< / td > < / tr >
< / thead >
< tbody >
< tr id = "double" >
< td > double< / td >
< td > < / td >
< td > double< / td >
< td > double< / td >
< td > float< / td >
< / tr >
< tr id = "float" >
< td > float< / td >
< td > < / td >
< td > float< / td >
< td > float< / td >
< td > float< / td >
< / tr >
< tr id = "int32" >
< td > int32< / td >
< td > Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.< / td >
< td > int32< / td >
< td > int< / td >
< td > int< / td >
< / tr >
< tr id = "int64" >
< td > int64< / td >
< td > Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.< / td >
< td > int64< / td >
< td > long< / td >
< td > int/long< / td >
< / tr >
< tr id = "uint32" >
< td > uint32< / td >
< td > Uses variable-length encoding.< / td >
< td > uint32< / td >
< td > int< / td >
< td > int/long< / td >
< / tr >
< tr id = "uint64" >
< td > uint64< / td >
< td > Uses variable-length encoding.< / td >
< td > uint64< / td >
< td > long< / td >
< td > int/long< / td >
< / tr >
< tr id = "sint32" >
< td > sint32< / td >
< td > Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.< / td >
< td > int32< / td >
< td > int< / td >
< td > int< / td >
< / tr >
< tr id = "sint64" >
< td > sint64< / td >
< td > Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.< / td >
< td > int64< / td >
< td > long< / td >
< td > int/long< / td >
< / tr >
< tr id = "fixed32" >
< td > fixed32< / td >
< td > Always four bytes. More efficient than uint32 if values are often greater than 2^28.< / td >
< td > uint32< / td >
< td > int< / td >
< td > int< / td >
< / tr >
< tr id = "fixed64" >
< td > fixed64< / td >
< td > Always eight bytes. More efficient than uint64 if values are often greater than 2^56.< / td >
< td > uint64< / td >
< td > long< / td >
< td > int/long< / td >
< / tr >
< tr id = "sfixed32" >
< td > sfixed32< / td >
< td > Always four bytes.< / td >
< td > int32< / td >
< td > int< / td >
< td > int< / td >
< / tr >
< tr id = "sfixed64" >
< td > sfixed64< / td >
< td > Always eight bytes.< / td >
< td > int64< / td >
< td > long< / td >
< td > int/long< / td >
< / tr >
< tr id = "bool" >
< td > bool< / td >
< td > < / td >
< td > bool< / td >
< td > boolean< / td >
< td > boolean< / td >
< / tr >
< tr id = "string" >
< td > string< / td >
< td > A string must always contain UTF-8 encoded or 7-bit ASCII text.< / td >
< td > string< / td >
< td > String< / td >
< td > str/unicode< / td >
< / tr >
< tr id = "bytes" >
< td > bytes< / td >
< td > May contain any arbitrary sequence of bytes.< / td >
< td > string< / td >
< td > ByteString< / td >
< td > str< / td >
< / tr >
< / tbody >
< / table >
< / body >
< / html >