ZcashLightClientKit/docs/rtd/Protocols.html

684 lines
33 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<title>Protocols Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a name="//apple_ref/swift/Section/Protocols" class="dashAnchor"></a>
<a title="Protocols Reference"></a>
<header>
<div class="content-wrapper">
2020-04-06 10:06:13 -07:00
<p><a href="index.html">ZcashLightClientKit Docs</a> (71% documented)</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">ZcashLightClientKit Reference</a>
<img id="carat" src="img/carat.png" />
Protocols Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/CompactBlockProcessor.html">CompactBlockProcessor</a>
</li>
<li class="nav-group-task">
<a href="Classes/CompactBlockProcessor/Configuration.html"> Configuration</a>
</li>
<li class="nav-group-task">
<a href="Classes/CompactBlockProcessor/State.html"> State</a>
</li>
<li class="nav-group-task">
<a href="Classes/Initializer.html">Initializer</a>
</li>
<li class="nav-group-task">
<a href="Classes/LightWalletGRPCService.html">LightWalletGRPCService</a>
</li>
<li class="nav-group-task">
<a href="Classes/SDKSynchronizer.html">SDKSynchronizer</a>
</li>
<li class="nav-group-task">
<a href="Classes/SDKSynchronizer/NotificationKeys.html"> NotificationKeys</a>
</li>
<li class="nav-group-task">
<a href="Classes/ZcashSDK.html">ZcashSDK</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/CompactBlockProcessorError.html">CompactBlockProcessorError</a>
</li>
<li class="nav-group-task">
<a href="Enums/InitializerError.html">InitializerError</a>
</li>
<li class="nav-group-task">
<a href="Enums/LightWalletServiceError.html">LightWalletServiceError</a>
</li>
<li class="nav-group-task">
<a href="Enums/ResourceProviderError.html">ResourceProviderError</a>
</li>
<li class="nav-group-task">
<a href="Enums/RustWeldingError.html">RustWeldingError</a>
</li>
<li class="nav-group-task">
<a href="Enums/Status.html">Status</a>
</li>
<li class="nav-group-task">
<a href="Enums/SynchronizerError.html">SynchronizerError</a>
</li>
<li class="nav-group-task">
<a href="Enums/TransactionEncoderError.html">TransactionEncoderError</a>
</li>
<li class="nav-group-task">
<a href="Enums/TransactionKind.html">TransactionKind</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Extensions.html">Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/Array.html">Array</a>
</li>
<li class="nav-group-task">
<a href="Extensions/BlockHeight.html">BlockHeight</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Collection.html">Collection</a>
</li>
<li class="nav-group-task">
<a href="Extensions/CompactBlockRange.html">CompactBlockRange</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Data.html">Data</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Data/HexEncodingOptions.html"> HexEncodingOptions</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Notification.html">Notification</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Notification/Name.html"> Name</a>
</li>
<li class="nav-group-task">
<a href="Extensions/String.html">String</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/AbstractTransaction.html">AbstractTransaction</a>
</li>
<li class="nav-group-task">
<a href="Protocols/CompactBlockDownloading.html">CompactBlockDownloading</a>
</li>
<li class="nav-group-task">
<a href="Protocols/ConfirmedTransactionEntity.html">ConfirmedTransactionEntity</a>
</li>
<li class="nav-group-task">
<a href="Protocols/LightWalletService.html">LightWalletService</a>
</li>
<li class="nav-group-task">
<a href="Protocols/LightWalletServiceResponse.html">LightWalletServiceResponse</a>
</li>
<li class="nav-group-task">
<a href="Protocols/Logger.html">Logger</a>
</li>
<li class="nav-group-task">
<a href="Protocols/MinedTransactionEntity.html">MinedTransactionEntity</a>
</li>
<li class="nav-group-task">
<a href="Protocols/PaginatedTransactionRepository.html">PaginatedTransactionRepository</a>
</li>
<li class="nav-group-task">
<a href="Protocols/PendingTransactionEntity.html">PendingTransactionEntity</a>
</li>
<li class="nav-group-task">
<a href="Protocols/RawIdentifiable.html">RawIdentifiable</a>
</li>
<li class="nav-group-task">
<a href="Protocols/ResourceProvider.html">ResourceProvider</a>
</li>
<li class="nav-group-task">
<a href="Protocols/SeedProvider.html">SeedProvider</a>
</li>
<li class="nav-group-task">
<a href="Protocols/SignedTransactionEntity.html">SignedTransactionEntity</a>
</li>
<li class="nav-group-task">
<a href="Protocols/Synchronizer.html">Synchronizer</a>
</li>
<li class="nav-group-task">
<a href="Protocols/TransactionEntity.html">TransactionEntity</a>
</li>
<li class="nav-group-task">
<a href="Protocols/ZcashRustBackendWelding.html">ZcashRustBackendWelding</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Structs.html">Structures</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Structs/CompactBlockProcessorNotificationKey.html">CompactBlockProcessorNotificationKey</a>
</li>
<li class="nav-group-task">
<a href="Structs/DefaultResourceProvider.html">DefaultResourceProvider</a>
</li>
<li class="nav-group-task">
<a href="Structs/LightWalletEndpoint.html">LightWalletEndpoint</a>
</li>
<li class="nav-group-task">
<a href="Structs/WalletBirthday.html">WalletBirthday</a>
</li>
<li class="nav-group-task">
<a href="Structs/ZcashCompactBlock.html">ZcashCompactBlock</a>
</li>
<li class="nav-group-task">
<a href="Structs.html#/s:19ZcashLightClientKit0A27RustBackendWeldingConstantsV">ZcashRustBackendWeldingConstants</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Typealiases.html">Type Aliases</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Typealiases.html#/s:19ZcashLightClientKit11BlockHeighta">BlockHeight</a>
</li>
<li class="nav-group-task">
<a href="Typealiases.html#/s:19ZcashLightClientKit17CompactBlockRangea">CompactBlockRange</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Protocols</h1>
<p>The following protocols are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit23CompactBlockDownloadingP"></a>
<a name="//apple_ref/swift/Protocol/CompactBlockDownloading" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit23CompactBlockDownloadingP">CompactBlockDownloading</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Represents what a compact block downloaded should provide to its clients</p>
<a href="Protocols/CompactBlockDownloading.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">CompactBlockDownloading</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit24PendingTransactionEntityP"></a>
<a name="//apple_ref/swift/Protocol/PendingTransactionEntity" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit24PendingTransactionEntityP">PendingTransactionEntity</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Represents a sent transaction that has not been confirmed yet on the blockchain</p>
<a href="Protocols/PendingTransactionEntity.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">PendingTransactionEntity</span> <span class="p">:</span> <span class="kt"><a href="Protocols/AbstractTransaction.html">AbstractTransaction</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/RawIdentifiable.html">RawIdentifiable</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/SignedTransactionEntity.html">SignedTransactionEntity</a></span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit26ConfirmedTransactionEntityP"></a>
<a name="//apple_ref/swift/Protocol/ConfirmedTransactionEntity" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit26ConfirmedTransactionEntityP">ConfirmedTransactionEntity</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Protocols/ConfirmedTransactionEntity.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ConfirmedTransactionEntity</span> <span class="p">:</span> <span class="kt"><a href="Protocols/MinedTransactionEntity.html">MinedTransactionEntity</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/SignedTransactionEntity.html">SignedTransactionEntity</a></span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit17TransactionEntityP"></a>
<a name="//apple_ref/swift/Protocol/TransactionEntity" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit17TransactionEntityP">TransactionEntity</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>convenience representation of all transaction types</p>
<a href="Protocols/TransactionEntity.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">TransactionEntity</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit19AbstractTransactionP"></a>
<a name="//apple_ref/swift/Protocol/AbstractTransaction" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit19AbstractTransactionP">AbstractTransaction</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Abstract representation of all transaction types</p>
<a href="Protocols/AbstractTransaction.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">AbstractTransaction</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit23SignedTransactionEntityP"></a>
<a name="//apple_ref/swift/Protocol/SignedTransactionEntity" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit23SignedTransactionEntityP">SignedTransactionEntity</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Capabilites of a signed transaction</p>
<a href="Protocols/SignedTransactionEntity.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SignedTransactionEntity</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit15RawIdentifiableP"></a>
<a name="//apple_ref/swift/Protocol/RawIdentifiable" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit15RawIdentifiableP">RawIdentifiable</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>capabilities of an entity that can be uniquely identified by a raw transaction id</p>
<a href="Protocols/RawIdentifiable.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">RawIdentifiable</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit22MinedTransactionEntityP"></a>
<a name="//apple_ref/swift/Protocol/MinedTransactionEntity" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit22MinedTransactionEntityP">MinedTransactionEntity</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Attributes that a Mined transaction must have</p>
<a href="Protocols/MinedTransactionEntity.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">MinedTransactionEntity</span> <span class="p">:</span> <span class="kt"><a href="Protocols/AbstractTransaction.html">AbstractTransaction</a></span><span class="p">,</span> <span class="kt"><a href="Protocols/RawIdentifiable.html">RawIdentifiable</a></span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit16ResourceProviderP"></a>
<a name="//apple_ref/swift/Protocol/ResourceProvider" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit16ResourceProviderP">ResourceProvider</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Protocols/ResourceProvider.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ResourceProvider</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit12SeedProviderP"></a>
<a name="//apple_ref/swift/Protocol/SeedProvider" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit12SeedProviderP">SeedProvider</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Describes an interface for an entity that provides seed bytes</p>
<a href="Protocols/SeedProvider.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">SeedProvider</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit30PaginatedTransactionRepositoryP"></a>
<a name="//apple_ref/swift/Protocol/PaginatedTransactionRepository" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit30PaginatedTransactionRepositoryP">PaginatedTransactionRepository</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Protocols/PaginatedTransactionRepository.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">PaginatedTransactionRepository</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit0A18RustBackendWeldingP"></a>
<a name="//apple_ref/swift/Protocol/ZcashRustBackendWelding" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit0A18RustBackendWeldingP">ZcashRustBackendWelding</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Protocols/ZcashRustBackendWelding.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ZcashRustBackendWelding</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit0B21WalletServiceResponseP"></a>
<a name="//apple_ref/swift/Protocol/LightWalletServiceResponse" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit0B21WalletServiceResponseP">LightWalletServiceResponse</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Protocols/LightWalletServiceResponse.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">LightWalletServiceResponse</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit0B13WalletServiceP"></a>
<a name="//apple_ref/swift/Protocol/LightWalletService" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit0B13WalletServiceP">LightWalletService</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Undocumented</p>
<a href="Protocols/LightWalletService.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">LightWalletService</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit12SynchronizerP"></a>
<a name="//apple_ref/swift/Protocol/Synchronizer" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit12SynchronizerP">Synchronizer</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Primary interface for interacting with the SDK. Defines the contract that specific
implementations like SdkSynchronizer fulfill.</p>
<a href="Protocols/Synchronizer.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">Synchronizer</span></code></pre>
</div>
</div>
</section>
</div>
</li>
<li class="item">
<div>
<code>
<a name="/s:19ZcashLightClientKit6LoggerP"></a>
<a name="//apple_ref/swift/Protocol/Logger" class="dashAnchor"></a>
<a class="token" href="#/s:19ZcashLightClientKit6LoggerP">Logger</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>Represents what&rsquo;s expected from a logging entity</p>
<a href="Protocols/Logger.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">Logger</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
2020-04-06 10:06:13 -07:00
<p>&copy; 2020 <a class="link" href="https://github.com/zcash/ZcashLightClientKit" target="_blank" rel="external">Francisco Gindre and Jack Grigg</a>. All rights reserved. (Last updated: 2020-04-06)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.13.1</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>