blob: 7a1f3ad47f793ef2d6c6116b9a0539299e34e2e3 [file] [log] [blame]
<!-- HTML header for doxygen 1.9.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ResilientDB SDK: Transaction Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen_html_style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classresdb__validator_1_1transaction_1_1Transaction.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classresdb__validator_1_1transaction_1_1Transaction-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">Transaction Class Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Inheritance diagram for Transaction:</div>
<div class="dyncontent">
<div class="center">
<img src="classresdb__validator_1_1transaction_1_1Transaction.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a909a2bc6a3c96fc53d3ae93305e81486" id="r_a909a2bc6a3c96fc53d3ae93305e81486"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a909a2bc6a3c96fc53d3ae93305e81486">__eq__</a> (self, other)</td></tr>
<tr class="separator:a909a2bc6a3c96fc53d3ae93305e81486"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a171e6903c0464958dd8a214b15a038cb" id="r_a171e6903c0464958dd8a214b15a038cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a171e6903c0464958dd8a214b15a038cb">__hash__</a> (self)</td></tr>
<tr class="separator:a171e6903c0464958dd8a214b15a038cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7e64bf372bdc5e9c54250b61ef29826" id="r_ab7e64bf372bdc5e9c54250b61ef29826"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ab7e64bf372bdc5e9c54250b61ef29826">__init__</a> (self, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad34e7fb3c33543e9f3a1e48486fa7692">operation</a>, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a132fe4f7d81980f1e0f4316d4c6f2f35">asset</a>, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#afde3b66b6b41bd008469f366fa756e54">inputs</a>=None, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#af8d743b78404b120589eca8c77c1c2a9">outputs</a>=None, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9cfcb724bbf4bae5f97bc17cf58cf522">metadata</a>=None, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a4c7a521b8f1a0769c09bfa4a1fca7dab">version</a>=None, hash_id=None, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9f76de5ddde1f33fc1c76cf09defeda7">tx_dict</a>=None)</td></tr>
<tr class="separator:ab7e64bf372bdc5e9c54250b61ef29826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40b37c981a056437fd94276341c63fe8" id="r_a40b37c981a056437fd94276341c63fe8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a40b37c981a056437fd94276341c63fe8">__str__</a> (self)</td></tr>
<tr class="separator:a40b37c981a056437fd94276341c63fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac54fec6235c176d3c1322c5602fe0aaa" id="r_ac54fec6235c176d3c1322c5602fe0aaa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ac54fec6235c176d3c1322c5602fe0aaa">add_input</a> (self, input_)</td></tr>
<tr class="separator:ac54fec6235c176d3c1322c5602fe0aaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad083ed5c99644b6abb7266727b86db38" id="r_ad083ed5c99644b6abb7266727b86db38"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad083ed5c99644b6abb7266727b86db38">add_output</a> (self, output)</td></tr>
<tr class="separator:ad083ed5c99644b6abb7266727b86db38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbbf28fba72487663332a1602c7424d1" id="r_adbbf28fba72487663332a1602c7424d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#adbbf28fba72487663332a1602c7424d1">create</a> (cls, tx_signers, recipients, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9cfcb724bbf4bae5f97bc17cf58cf522">metadata</a>=None, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a132fe4f7d81980f1e0f4316d4c6f2f35">asset</a>=None)</td></tr>
<tr class="separator:adbbf28fba72487663332a1602c7424d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc3fd145c19b174107cbe5ce79fba6b5" id="r_adc3fd145c19b174107cbe5ce79fba6b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#adc3fd145c19b174107cbe5ce79fba6b5">from_db</a> (cls, resdb, tx_dict_list)</td></tr>
<tr class="separator:adc3fd145c19b174107cbe5ce79fba6b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ae2ee0315bf7ad47f07ca2bb6a55d1f" id="r_a2ae2ee0315bf7ad47f07ca2bb6a55d1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a2ae2ee0315bf7ad47f07ca2bb6a55d1f">from_dict</a> (cls, tx, skip_schema_validation=True)</td></tr>
<tr class="separator:a2ae2ee0315bf7ad47f07ca2bb6a55d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a374f7b081749cf427fdd91f024dfd8d2" id="r_a374f7b081749cf427fdd91f024dfd8d2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a374f7b081749cf427fdd91f024dfd8d2">get_asset_id</a> (cls, transactions)</td></tr>
<tr class="separator:a374f7b081749cf427fdd91f024dfd8d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba303485588abb149a4521cde1a38a06" id="r_aba303485588abb149a4521cde1a38a06"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#aba303485588abb149a4521cde1a38a06">id</a> (self)</td></tr>
<tr class="separator:aba303485588abb149a4521cde1a38a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3670b878ca322ec50cdfa87dc516c37b" id="r_a3670b878ca322ec50cdfa87dc516c37b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a3670b878ca322ec50cdfa87dc516c37b">inputs_valid</a> (self, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#af8d743b78404b120589eca8c77c1c2a9">outputs</a>=None)</td></tr>
<tr class="separator:a3670b878ca322ec50cdfa87dc516c37b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6c5425e15f6fa5a565ec73b411e4867" id="r_ae6c5425e15f6fa5a565ec73b411e4867"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ae6c5425e15f6fa5a565ec73b411e4867">resolve_class</a> (<a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad34e7fb3c33543e9f3a1e48486fa7692">operation</a>)</td></tr>
<tr class="separator:ae6c5425e15f6fa5a565ec73b411e4867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d6865217ba82d666cfbab6efc544b7f" id="r_a1d6865217ba82d666cfbab6efc544b7f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a1d6865217ba82d666cfbab6efc544b7f">serialized</a> (self)</td></tr>
<tr class="separator:a1d6865217ba82d666cfbab6efc544b7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba89e7c2abc95957e26ed4741d2ef5af" id="r_aba89e7c2abc95957e26ed4741d2ef5af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#aba89e7c2abc95957e26ed4741d2ef5af">sign</a> (self, private_keys)</td></tr>
<tr class="separator:aba89e7c2abc95957e26ed4741d2ef5af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b45d3ca0bfa7a3851aae46c2dee8b69" id="r_a7b45d3ca0bfa7a3851aae46c2dee8b69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a7b45d3ca0bfa7a3851aae46c2dee8b69">spent_outputs</a> (self)</td></tr>
<tr class="separator:a7b45d3ca0bfa7a3851aae46c2dee8b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34ea8af38721a6873df4a2baf3e8cb93" id="r_a34ea8af38721a6873df4a2baf3e8cb93"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a34ea8af38721a6873df4a2baf3e8cb93">to_dict</a> (self)</td></tr>
<tr class="separator:a34ea8af38721a6873df4a2baf3e8cb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dea5142bef07d9cc2a77df4057b603c" id="r_a7dea5142bef07d9cc2a77df4057b603c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a7dea5142bef07d9cc2a77df4057b603c">to_hash</a> (self)</td></tr>
<tr class="separator:a7dea5142bef07d9cc2a77df4057b603c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ecae6982eff73380a1e9d9da8d8a669" id="r_a5ecae6982eff73380a1e9d9da8d8a669"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a5ecae6982eff73380a1e9d9da8d8a669">to_inputs</a> (self, indices=None)</td></tr>
<tr class="separator:a5ecae6982eff73380a1e9d9da8d8a669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea9f07d7bdc5f32cb2efeb65b75a1067" id="r_aea9f07d7bdc5f32cb2efeb65b75a1067"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#aea9f07d7bdc5f32cb2efeb65b75a1067">transfer</a> (cls, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#afde3b66b6b41bd008469f366fa756e54">inputs</a>, recipients, asset_id, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9cfcb724bbf4bae5f97bc17cf58cf522">metadata</a>=None)</td></tr>
<tr class="separator:aea9f07d7bdc5f32cb2efeb65b75a1067"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c18ab06152fd838e16b16e1c363c323" id="r_a2c18ab06152fd838e16b16e1c363c323"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a2c18ab06152fd838e16b16e1c363c323">unspent_outputs</a> (self)</td></tr>
<tr class="separator:a2c18ab06152fd838e16b16e1c363c323"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780cd4cb12e45dcffd5d8e4330ccef34" id="r_a780cd4cb12e45dcffd5d8e4330ccef34"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a780cd4cb12e45dcffd5d8e4330ccef34">validate_create</a> (cls, tx_signers, recipients, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a132fe4f7d81980f1e0f4316d4c6f2f35">asset</a>, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9cfcb724bbf4bae5f97bc17cf58cf522">metadata</a>)</td></tr>
<tr class="separator:a780cd4cb12e45dcffd5d8e4330ccef34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5774ab186d9abafb72aaa5a17e501c6e" id="r_a5774ab186d9abafb72aaa5a17e501c6e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a5774ab186d9abafb72aaa5a17e501c6e">validate_schema</a> (cls, tx)</td></tr>
<tr class="separator:a5774ab186d9abafb72aaa5a17e501c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad70e24fff1cb895464b7ddb3dbccdf9a" id="r_ad70e24fff1cb895464b7ddb3dbccdf9a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad70e24fff1cb895464b7ddb3dbccdf9a">validate_transfer</a> (cls, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#afde3b66b6b41bd008469f366fa756e54">inputs</a>, recipients, asset_id, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9cfcb724bbf4bae5f97bc17cf58cf522">metadata</a>)</td></tr>
<tr class="separator:ad70e24fff1cb895464b7ddb3dbccdf9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643c275c4cf66a8368f92bbc8d13b2cb" id="r_a643c275c4cf66a8368f92bbc8d13b2cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a643c275c4cf66a8368f92bbc8d13b2cb">validate_transfer_inputs</a> (self, resdb, current_transactions=[])</td></tr>
<tr class="separator:a643c275c4cf66a8368f92bbc8d13b2cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:af67cd34f82736ec2e9c70d0977867621" id="r_af67cd34f82736ec2e9c70d0977867621"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#af67cd34f82736ec2e9c70d0977867621">register_type</a> (tx_type, tx_class)</td></tr>
<tr class="separator:af67cd34f82736ec2e9c70d0977867621"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80502e77ddb50199123957457810df72" id="r_a80502e77ddb50199123957457810df72"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a80502e77ddb50199123957457810df72">validate_id</a> (tx_body)</td></tr>
<tr class="separator:a80502e77ddb50199123957457810df72"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a132fe4f7d81980f1e0f4316d4c6f2f35" id="r_a132fe4f7d81980f1e0f4316d4c6f2f35"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a132fe4f7d81980f1e0f4316d4c6f2f35">asset</a></td></tr>
<tr class="separator:a132fe4f7d81980f1e0f4316d4c6f2f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a953f73df78d66c15d03328d5d077a171" id="r_a953f73df78d66c15d03328d5d077a171"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a953f73df78d66c15d03328d5d077a171">CREATE</a></td></tr>
<tr class="separator:a953f73df78d66c15d03328d5d077a171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf2488b95c97e0378c9bf49de3b50f28" id="r_acf2488b95c97e0378c9bf49de3b50f28"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#acf2488b95c97e0378c9bf49de3b50f28">id</a></td></tr>
<tr class="separator:acf2488b95c97e0378c9bf49de3b50f28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afde3b66b6b41bd008469f366fa756e54" id="r_afde3b66b6b41bd008469f366fa756e54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#afde3b66b6b41bd008469f366fa756e54">inputs</a></td></tr>
<tr class="separator:afde3b66b6b41bd008469f366fa756e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cfcb724bbf4bae5f97bc17cf58cf522" id="r_a9cfcb724bbf4bae5f97bc17cf58cf522"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9cfcb724bbf4bae5f97bc17cf58cf522">metadata</a></td></tr>
<tr class="separator:a9cfcb724bbf4bae5f97bc17cf58cf522"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad34e7fb3c33543e9f3a1e48486fa7692" id="r_ad34e7fb3c33543e9f3a1e48486fa7692"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad34e7fb3c33543e9f3a1e48486fa7692">operation</a></td></tr>
<tr class="separator:ad34e7fb3c33543e9f3a1e48486fa7692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8d743b78404b120589eca8c77c1c2a9" id="r_af8d743b78404b120589eca8c77c1c2a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#af8d743b78404b120589eca8c77c1c2a9">outputs</a></td></tr>
<tr class="separator:af8d743b78404b120589eca8c77c1c2a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8e2f1d90a61371a889bfefc9139f9bd" id="r_ad8e2f1d90a61371a889bfefc9139f9bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad8e2f1d90a61371a889bfefc9139f9bd">TRANSFER</a></td></tr>
<tr class="separator:ad8e2f1d90a61371a889bfefc9139f9bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f76de5ddde1f33fc1c76cf09defeda7" id="r_a9f76de5ddde1f33fc1c76cf09defeda7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9f76de5ddde1f33fc1c76cf09defeda7">tx_dict</a></td></tr>
<tr class="separator:a9f76de5ddde1f33fc1c76cf09defeda7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c7a521b8f1a0769c09bfa4a1fca7dab" id="r_a4c7a521b8f1a0769c09bfa4a1fca7dab"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a4c7a521b8f1a0769c09bfa4a1fca7dab">version</a></td></tr>
<tr class="separator:a4c7a521b8f1a0769c09bfa4a1fca7dab"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a67d1335c613eb222dda6cca85a8ba7cb" id="r_a67d1335c613eb222dda6cca85a8ba7cb"><td class="memItemLeft" align="right" valign="top">tuple&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a67d1335c613eb222dda6cca85a8ba7cb">ALLOWED_OPERATIONS</a> = (<a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a63245d876a51e2f65c8fae73c399d481">CREATE</a>, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a073a8d88e47cb9260c5f5fef822f1cf8">TRANSFER</a>)</td></tr>
<tr class="separator:a67d1335c613eb222dda6cca85a8ba7cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63245d876a51e2f65c8fae73c399d481" id="r_a63245d876a51e2f65c8fae73c399d481"><td class="memItemLeft" align="right" valign="top">str&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a63245d876a51e2f65c8fae73c399d481">CREATE</a> = 'CREATE'</td></tr>
<tr class="separator:a63245d876a51e2f65c8fae73c399d481"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a073a8d88e47cb9260c5f5fef822f1cf8" id="r_a073a8d88e47cb9260c5f5fef822f1cf8"><td class="memItemLeft" align="right" valign="top">str&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a073a8d88e47cb9260c5f5fef822f1cf8">TRANSFER</a> = 'TRANSFER'</td></tr>
<tr class="separator:a073a8d88e47cb9260c5f5fef822f1cf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5b33a327e391fdaff1c6a05e4c1dd3b" id="r_ab5b33a327e391fdaff1c6a05e4c1dd3b"><td class="memItemLeft" align="right" valign="top">dict&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ab5b33a327e391fdaff1c6a05e4c1dd3b">type_registry</a> = {}</td></tr>
<tr class="separator:ab5b33a327e391fdaff1c6a05e4c1dd3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5eb009c6ad9e10533deb1e5b1b270692" id="r_a5eb009c6ad9e10533deb1e5b1b270692"><td class="memItemLeft" align="right" valign="top">str&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a5eb009c6ad9e10533deb1e5b1b270692">VERSION</a> = '2.0'</td></tr>
<tr class="separator:a5eb009c6ad9e10533deb1e5b1b270692"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ad53228f9e14aafbccc1da8b994616299" id="r_ad53228f9e14aafbccc1da8b994616299"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad53228f9e14aafbccc1da8b994616299">_hash</a> (self)</td></tr>
<tr class="separator:ad53228f9e14aafbccc1da8b994616299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0e85a0c05335fb12069bd65e734340c" id="r_aa0e85a0c05335fb12069bd65e734340c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#aa0e85a0c05335fb12069bd65e734340c">_input_valid</a> (self, input_, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad34e7fb3c33543e9f3a1e48486fa7692">operation</a>, message, output_condition_uri=None)</td></tr>
<tr class="separator:aa0e85a0c05335fb12069bd65e734340c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643df462bed1047f5bb5a768ee0d5b77" id="r_a643df462bed1047f5bb5a768ee0d5b77"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a643df462bed1047f5bb5a768ee0d5b77">_inputs_valid</a> (self, output_condition_uris)</td></tr>
<tr class="separator:a643df462bed1047f5bb5a768ee0d5b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05561743b1af6f397e2bbf0fd91280bb" id="r_a05561743b1af6f397e2bbf0fd91280bb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a05561743b1af6f397e2bbf0fd91280bb">_sign_input</a> (cls, input_, message, key_pairs)</td></tr>
<tr class="separator:a05561743b1af6f397e2bbf0fd91280bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7ad46a0f2ce60022cf0fe9540c76fc5" id="r_ad7ad46a0f2ce60022cf0fe9540c76fc5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ad7ad46a0f2ce60022cf0fe9540c76fc5">_sign_simple_signature_fulfillment</a> (cls, input_, message, key_pairs)</td></tr>
<tr class="separator:ad7ad46a0f2ce60022cf0fe9540c76fc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac75d89367fd77081757b11ee258290e5" id="r_ac75d89367fd77081757b11ee258290e5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#ac75d89367fd77081757b11ee258290e5">_sign_threshold_signature_fulfillment</a> (cls, input_, message, key_pairs)</td></tr>
<tr class="separator:ac75d89367fd77081757b11ee258290e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-static-methods" name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr class="memitem:a67bcaf4f3a0aa5d64c1572423b870aac" id="r_a67bcaf4f3a0aa5d64c1572423b870aac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a67bcaf4f3a0aa5d64c1572423b870aac">_remove_signatures</a> (<a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a9f76de5ddde1f33fc1c76cf09defeda7">tx_dict</a>)</td></tr>
<tr class="separator:a67bcaf4f3a0aa5d64c1572423b870aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97d7feafe2fd69bf19c3317b5c770852" id="r_a97d7feafe2fd69bf19c3317b5c770852"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a97d7feafe2fd69bf19c3317b5c770852">_to_hash</a> (value)</td></tr>
<tr class="separator:a97d7feafe2fd69bf19c3317b5c770852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e4815d4b7c569724cf03b37c25ff6af" id="r_a1e4815d4b7c569724cf03b37c25ff6af"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a1e4815d4b7c569724cf03b37c25ff6af">_to_str</a> (value)</td></tr>
<tr class="separator:a1e4815d4b7c569724cf03b37c25ff6af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a31c762d0b9450bc5a5d722984d098a7b" id="r_a31c762d0b9450bc5a5d722984d098a7b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a31c762d0b9450bc5a5d722984d098a7b">_asset_id</a></td></tr>
<tr class="separator:a31c762d0b9450bc5a5d722984d098a7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1313b5b76f38d461c99c9a42b437f74" id="r_aa1313b5b76f38d461c99c9a42b437f74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#aa1313b5b76f38d461c99c9a42b437f74">_id</a></td></tr>
<tr class="separator:aa1313b5b76f38d461c99c9a42b437f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><pre class="fragment">A Transaction is used to create and transfer assets.
Note:
For adding Inputs and Outputs, this class provides methods
to do so.
Attributes:
operation (str): Defines the operation of the Transaction.
inputs (:obj:`list` of :class:`~resdb_validator.
transaction.Input`, optional): Define the assets to
spend.
outputs (:obj:`list` of :class:`~resdb_validator.
transaction.Output`, optional): Define the assets to lock.
asset (dict): Asset payload for this Transaction. ``CREATE``
Transactions require a dict with a ``data``
property while ``TRANSFER`` Transactions require a dict with a
``id`` property.
metadata (dict):
Metadata to be stored along with the Transaction.
version (string): Defines the version number of a Transaction.
</pre> </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab7e64bf372bdc5e9c54250b61ef29826" name="ab7e64bf372bdc5e9c54250b61ef29826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7e64bf372bdc5e9c54250b61ef29826">&#9670;&#160;</a></span>__init__()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__init__ </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>operation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>asset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>inputs</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>outputs</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>metadata</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>version</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>hash_id</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_dict</em> = <code>None</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">The constructor allows to create a customizable Transaction.
Note:
When no `version` is provided, one is being
generated by this method.
Args:
operation (str): Defines the operation of the Transaction.
asset (dict): Asset payload for this Transaction.
inputs (:obj:`list` of :class:`~resdb_validator.
transaction.Input`, optional): Define the assets to
outputs (:obj:`list` of :class:`~resdb_validator.
transaction.Output`, optional): Define the assets to
lock.
metadata (dict): Metadata to be stored along with the
Transaction.
version (string): Defines the version number of a Transaction.
hash_id (string): Hash id of the transaction.
</pre>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a909a2bc6a3c96fc53d3ae93305e81486" name="a909a2bc6a3c96fc53d3ae93305e81486"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a909a2bc6a3c96fc53d3ae93305e81486">&#9670;&#160;</a></span>__eq__()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__eq__ </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>other</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a171e6903c0464958dd8a214b15a038cb" name="a171e6903c0464958dd8a214b15a038cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a171e6903c0464958dd8a214b15a038cb">&#9670;&#160;</a></span>__hash__()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__hash__ </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a40b37c981a056437fd94276341c63fe8" name="a40b37c981a056437fd94276341c63fe8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40b37c981a056437fd94276341c63fe8">&#9670;&#160;</a></span>__str__()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">__str__ </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad53228f9e14aafbccc1da8b994616299" name="ad53228f9e14aafbccc1da8b994616299"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad53228f9e14aafbccc1da8b994616299">&#9670;&#160;</a></span>_hash()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_hash </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa0e85a0c05335fb12069bd65e734340c" name="aa0e85a0c05335fb12069bd65e734340c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0e85a0c05335fb12069bd65e734340c">&#9670;&#160;</a></span>_input_valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_input_valid </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>input_</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>operation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>output_condition_uri</em> = <code>None</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Validates a single Input against a single Output.
Note:
In case of a `CREATE` Transaction, this method
does not validate against `output_condition_uri`.
Args:
input_ (:class:`~resdb_validator.transaction.
Input`) The Input to be signed.
operation (str): The type of Transaction.
message (str): The fulfillment message.
output_condition_uri (str, optional): An Output to check the
Input against.
Returns:
bool: If the Input is valid.
</pre>
</div>
</div>
<a id="a643df462bed1047f5bb5a768ee0d5b77" name="a643df462bed1047f5bb5a768ee0d5b77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a643df462bed1047f5bb5a768ee0d5b77">&#9670;&#160;</a></span>_inputs_valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_inputs_valid </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>output_condition_uris</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Validates an Input against a given set of Outputs.
Note:
The number of `output_condition_uris` must be equal to the
number of Inputs a Transaction has.
Args:
output_condition_uris (:obj:`list` of :obj:`str`): A list of
Outputs to check the Inputs against.
Returns:
bool: If all Outputs are valid.
</pre>
</div>
</div>
<a id="a67bcaf4f3a0aa5d64c1572423b870aac" name="a67bcaf4f3a0aa5d64c1572423b870aac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67bcaf4f3a0aa5d64c1572423b870aac">&#9670;&#160;</a></span>_remove_signatures()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_remove_signatures </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_dict</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Takes a Transaction dictionary and removes all signatures.
Args:
tx_dict (dict): The Transaction to remove all signatures from.
Returns:
dict</pre>
</div>
</div>
<a id="a05561743b1af6f397e2bbf0fd91280bb" name="a05561743b1af6f397e2bbf0fd91280bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05561743b1af6f397e2bbf0fd91280bb">&#9670;&#160;</a></span>_sign_input()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_sign_input </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>input_</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>key_pairs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Signs a single Input.
Note:
This method works only for the following Cryptoconditions
currently:
- Ed25519Fulfillment
- ThresholdSha256.
Args:
input_ (:class:`~resdb_validator.transaction.
Input`) The Input to be signed.
message (str): The message to be signed
key_pairs (dict): The keys to sign the Transaction with.
</pre>
</div>
</div>
<a id="ad7ad46a0f2ce60022cf0fe9540c76fc5" name="ad7ad46a0f2ce60022cf0fe9540c76fc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7ad46a0f2ce60022cf0fe9540c76fc5">&#9670;&#160;</a></span>_sign_simple_signature_fulfillment()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_sign_simple_signature_fulfillment </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>input_</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>key_pairs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Signs a Ed25519Fulfillment.
Args:
input_ (:class:`~resdb_validator.transaction.
Input`) The input to be signed.
message (str): The message to be signed
key_pairs (dict): The keys to sign the Transaction with.
</pre>
</div>
</div>
<a id="ac75d89367fd77081757b11ee258290e5" name="ac75d89367fd77081757b11ee258290e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac75d89367fd77081757b11ee258290e5">&#9670;&#160;</a></span>_sign_threshold_signature_fulfillment()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_sign_threshold_signature_fulfillment </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>input_</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>key_pairs</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Signs a ThresholdSha256.
Args:
input_ (:class:`~resdb_validator.transaction.
Input`) The Input to be signed.
message (str): The message to be signed
key_pairs (dict): The keys to sign the Transaction with.
</pre>
</div>
</div>
<a id="a97d7feafe2fd69bf19c3317b5c770852" name="a97d7feafe2fd69bf19c3317b5c770852"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97d7feafe2fd69bf19c3317b5c770852">&#9670;&#160;</a></span>_to_hash()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_to_hash </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1e4815d4b7c569724cf03b37c25ff6af" name="a1e4815d4b7c569724cf03b37c25ff6af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e4815d4b7c569724cf03b37c25ff6af">&#9670;&#160;</a></span>_to_str()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_to_str </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>value</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac54fec6235c176d3c1322c5602fe0aaa" name="ac54fec6235c176d3c1322c5602fe0aaa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac54fec6235c176d3c1322c5602fe0aaa">&#9670;&#160;</a></span>add_input()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">add_input </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>input_</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Adds an input to a Transaction's list of inputs.
Args:
input_ (:class:`~resdb_validator.transaction.
Input`): An Input to be added to the Transaction.
</pre>
</div>
</div>
<a id="ad083ed5c99644b6abb7266727b86db38" name="ad083ed5c99644b6abb7266727b86db38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad083ed5c99644b6abb7266727b86db38">&#9670;&#160;</a></span>add_output()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">add_output </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>output</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Adds an output to a Transaction's list of outputs.
Args:
output (:class:`~resdb_validator.transaction.
Output`): An Output to be added to the
Transaction.
</pre>
</div>
</div>
<a id="adbbf28fba72487663332a1602c7424d1" name="adbbf28fba72487663332a1602c7424d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbbf28fba72487663332a1602c7424d1">&#9670;&#160;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">create </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_signers</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>recipients</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>metadata</em> = <code>None</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>asset</em> = <code>None</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">A simple way to generate a `CREATE` transaction.
Note:
This method currently supports the following Cryptoconditions
use cases:
- Ed25519
- ThresholdSha256
Additionally, it provides support for the following ResDB
use cases:
- Multiple inputs and outputs.
Args:
tx_signers (:obj:`list` of :obj:`str`): A list of keys that
represent the signers of the CREATE Transaction.
recipients (:obj:`list` of :obj:`tuple`): A list of
([keys],amount) that represent the recipients of this
Transaction.
metadata (dict): The metadata to be stored along with the
Transaction.
asset (dict): The metadata associated with the asset that will
be created in this Transaction.
Returns:
:class:`~resdb_validator.transaction.Transaction`
</pre>
</div>
</div>
<a id="adc3fd145c19b174107cbe5ce79fba6b5" name="adc3fd145c19b174107cbe5ce79fba6b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc3fd145c19b174107cbe5ce79fba6b5">&#9670;&#160;</a></span>from_db()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">from_db </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>resdb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_dict_list</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Helper method that reconstructs a transaction dict that was returned
from the database. It checks what asset_id to retrieve, retrieves the
asset from the asset table and reconstructs the transaction.
Args:
resdb (:class:`~resdb_validator.tendermint.ResDB`): An instance
of ResDB used to perform database queries.
tx_dict_list (:list:`dict` or :obj:`dict`): The transaction dict or
list of transaction dict as returned from the database.
Returns:
:class:`~Transaction`</pre>
</div>
</div>
<a id="a2ae2ee0315bf7ad47f07ca2bb6a55d1f" name="a2ae2ee0315bf7ad47f07ca2bb6a55d1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ae2ee0315bf7ad47f07ca2bb6a55d1f">&#9670;&#160;</a></span>from_dict()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">from_dict </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>skip_schema_validation</em> = <code>True</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Transforms a Python dictionary to a Transaction object.
Args:
tx_body (dict): The Transaction to be transformed.
Returns:
:class:`~resdb_validator.transaction.Transaction`
</pre>
</div>
</div>
<a id="a374f7b081749cf427fdd91f024dfd8d2" name="a374f7b081749cf427fdd91f024dfd8d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a374f7b081749cf427fdd91f024dfd8d2">&#9670;&#160;</a></span>get_asset_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">get_asset_id </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>transactions</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Get the asset id from a list of :class:`~.Transactions`.
This is useful when we want to check if the multiple inputs of a
transaction are related to the same asset id.
Args:
transactions (:obj:`list` of :class:`~resdb_validator.
transaction.Transaction`): A list of Transactions.
Usually input Transactions that should have a matching
asset ID.
Returns:
str: ID of the asset.
Raises:
:exc:`AssetIdMismatch`: If the inputs are related to different
assets.
</pre>
</div>
</div>
<a id="aba303485588abb149a4521cde1a38a06" name="aba303485588abb149a4521cde1a38a06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba303485588abb149a4521cde1a38a06">&#9670;&#160;</a></span>id()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">id </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3670b878ca322ec50cdfa87dc516c37b" name="a3670b878ca322ec50cdfa87dc516c37b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3670b878ca322ec50cdfa87dc516c37b">&#9670;&#160;</a></span>inputs_valid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">inputs_valid </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>outputs</em> = <code>None</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Validates the Inputs in the Transaction against given
Outputs.
Note:
Given a `CREATE` Transaction is passed,
dummy values for Outputs are submitted for validation that
evaluate parts of the validation-checks to `True`.
Args:
outputs (:obj:`list` of :class:`~resdb_validator.
transaction.Output`): A list of Outputs to check the
Inputs against.
Returns:
bool: If all Inputs are valid.
</pre>
</div>
</div>
<a id="af67cd34f82736ec2e9c70d0977867621" name="af67cd34f82736ec2e9c70d0977867621"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af67cd34f82736ec2e9c70d0977867621">&#9670;&#160;</a></span>register_type()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">register_type </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_class</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae6c5425e15f6fa5a565ec73b411e4867" name="ae6c5425e15f6fa5a565ec73b411e4867"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6c5425e15f6fa5a565ec73b411e4867">&#9670;&#160;</a></span>resolve_class()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">resolve_class </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>operation</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">For the given `tx` based on the `operation` key return its implementation class</pre>
</div>
</div>
<a id="a1d6865217ba82d666cfbab6efc544b7f" name="a1d6865217ba82d666cfbab6efc544b7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d6865217ba82d666cfbab6efc544b7f">&#9670;&#160;</a></span>serialized()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">serialized </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aba89e7c2abc95957e26ed4741d2ef5af" name="aba89e7c2abc95957e26ed4741d2ef5af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba89e7c2abc95957e26ed4741d2ef5af">&#9670;&#160;</a></span>sign()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">sign </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>private_keys</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Fulfills a previous Transaction's Output by signing Inputs.
Note:
This method works only for the following Cryptoconditions
currently:
- Ed25519Fulfillment
- ThresholdSha256
Furthermore, note that all keys required to fully sign the
Transaction have to be passed to this method. A subset of all
will cause this method to fail.
Args:
private_keys (:obj:`list` of :obj:`str`): A complete list of
all private keys needed to sign all Fulfillments of this
Transaction.
Returns:
:class:`~resdb_validator.transaction.Transaction`
</pre>
</div>
</div>
<a id="a7b45d3ca0bfa7a3851aae46c2dee8b69" name="a7b45d3ca0bfa7a3851aae46c2dee8b69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b45d3ca0bfa7a3851aae46c2dee8b69">&#9670;&#160;</a></span>spent_outputs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">spent_outputs </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Tuple of :obj:`dict`: Inputs of this transaction. Each input
is represented as a dictionary containing a transaction id and
output index.
</pre>
</div>
</div>
<a id="a34ea8af38721a6873df4a2baf3e8cb93" name="a34ea8af38721a6873df4a2baf3e8cb93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34ea8af38721a6873df4a2baf3e8cb93">&#9670;&#160;</a></span>to_dict()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">to_dict </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Transforms the object to a Python dictionary.
Returns:
dict: The Transaction as an alternative serialization format.
</pre>
</div>
</div>
<a id="a7dea5142bef07d9cc2a77df4057b603c" name="a7dea5142bef07d9cc2a77df4057b603c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dea5142bef07d9cc2a77df4057b603c">&#9670;&#160;</a></span>to_hash()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">to_hash </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5ecae6982eff73380a1e9d9da8d8a669" name="a5ecae6982eff73380a1e9d9da8d8a669"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ecae6982eff73380a1e9d9da8d8a669">&#9670;&#160;</a></span>to_inputs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">to_inputs </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>indices</em> = <code>None</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Converts a Transaction's outputs to spendable inputs.
Note:
Takes the Transaction's outputs and derives inputs
from that can then be passed into `Transaction.transfer` as
`inputs`.
A list of integers can be passed to `indices` that
defines which outputs should be returned as inputs.
If no `indices` are passed (empty list or None) all
outputs of the Transaction are returned.
Args:
indices (:obj:`list` of int): Defines which
outputs should be returned as inputs.
Returns:
:obj:`list` of :class:`~resdb_validator.transaction.
Input`
</pre>
</div>
</div>
<a id="aea9f07d7bdc5f32cb2efeb65b75a1067" name="aea9f07d7bdc5f32cb2efeb65b75a1067"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea9f07d7bdc5f32cb2efeb65b75a1067">&#9670;&#160;</a></span>transfer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">transfer </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>inputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>recipients</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>asset_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>metadata</em> = <code>None</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">A simple way to generate a `TRANSFER` transaction.
Note:
Different cases for threshold conditions:
Combining multiple `inputs` with an arbitrary number of
`recipients` can yield interesting cases for the creation of
threshold conditions we'd like to support. The following
notation is proposed:
1. The index of a `recipient` corresponds to the index of
an input:
e.g. `transfer([input1], [a])`, means `input1` would now be
owned by user `a`.
2. `recipients` can (almost) get arbitrary deeply nested,
creating various complex threshold conditions:
e.g. `transfer([inp1, inp2], [[a, [b, c]], d])`, means
`a`'s signature would have a 50% weight on `inp1`
compared to `b` and `c` that share 25% of the leftover
weight respectively. `inp2` is owned completely by `d`.
Args:
inputs (:obj:`list` of :class:`~resdb_validator.transaction.
Input`): Converted `Output`s, intended to
be used as inputs in the transfer to generate.
recipients (:obj:`list` of :obj:`tuple`): A list of
([keys],amount) that represent the recipients of this
Transaction.
asset_id (str): The asset ID of the asset to be transferred in
this Transaction.
metadata (dict): Python dictionary to be stored along with the
Transaction.
Returns:
:class:`~resdb_validator.transaction.Transaction`
</pre>
</div>
</div>
<a id="a2c18ab06152fd838e16b16e1c363c323" name="a2c18ab06152fd838e16b16e1c363c323"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c18ab06152fd838e16b16e1c363c323">&#9670;&#160;</a></span>unspent_outputs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unspent_outputs </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">UnspentOutput: The outputs of this transaction, in a data
structure containing relevant information for storing them in
a UTXO set, and performing validation.
</pre>
</div>
</div>
<a id="a780cd4cb12e45dcffd5d8e4330ccef34" name="a780cd4cb12e45dcffd5d8e4330ccef34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a780cd4cb12e45dcffd5d8e4330ccef34">&#9670;&#160;</a></span>validate_create()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">validate_create </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_signers</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>recipients</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>asset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>metadata</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a80502e77ddb50199123957457810df72" name="a80502e77ddb50199123957457810df72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80502e77ddb50199123957457810df72">&#9670;&#160;</a></span>validate_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">validate_id </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx_body</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<pre class="fragment">Validate the transaction ID of a transaction
Args:
tx_body (dict): The Transaction to be transformed.
</pre>
</div>
</div>
<a id="a5774ab186d9abafb72aaa5a17e501c6e" name="a5774ab186d9abafb72aaa5a17e501c6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5774ab186d9abafb72aaa5a17e501c6e">&#9670;&#160;</a></span>validate_schema()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">validate_schema </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>tx</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad70e24fff1cb895464b7ddb3dbccdf9a" name="ad70e24fff1cb895464b7ddb3dbccdf9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad70e24fff1cb895464b7ddb3dbccdf9a">&#9670;&#160;</a></span>validate_transfer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">validate_transfer </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>cls</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>inputs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>recipients</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>asset_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>metadata</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a643c275c4cf66a8368f92bbc8d13b2cb" name="a643c275c4cf66a8368f92bbc8d13b2cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a643c275c4cf66a8368f92bbc8d13b2cb">&#9670;&#160;</a></span>validate_transfer_inputs()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">validate_transfer_inputs </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>self</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>resdb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>current_transactions</em> = <code>[]</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a31c762d0b9450bc5a5d722984d098a7b" name="a31c762d0b9450bc5a5d722984d098a7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31c762d0b9450bc5a5d722984d098a7b">&#9670;&#160;</a></span>_asset_id</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_asset_id</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aa1313b5b76f38d461c99c9a42b437f74" name="aa1313b5b76f38d461c99c9a42b437f74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1313b5b76f38d461c99c9a42b437f74">&#9670;&#160;</a></span>_id</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">_id</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a67d1335c613eb222dda6cca85a8ba7cb" name="a67d1335c613eb222dda6cca85a8ba7cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67d1335c613eb222dda6cca85a8ba7cb">&#9670;&#160;</a></span>ALLOWED_OPERATIONS</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">tuple ALLOWED_OPERATIONS = (<a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a63245d876a51e2f65c8fae73c399d481">CREATE</a>, <a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html#a073a8d88e47cb9260c5f5fef822f1cf8">TRANSFER</a>)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a132fe4f7d81980f1e0f4316d4c6f2f35" name="a132fe4f7d81980f1e0f4316d4c6f2f35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a132fe4f7d81980f1e0f4316d4c6f2f35">&#9670;&#160;</a></span>asset</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">asset</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a63245d876a51e2f65c8fae73c399d481" name="a63245d876a51e2f65c8fae73c399d481"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63245d876a51e2f65c8fae73c399d481">&#9670;&#160;</a></span>CREATE <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">str CREATE = 'CREATE'</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a953f73df78d66c15d03328d5d077a171" name="a953f73df78d66c15d03328d5d077a171"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a953f73df78d66c15d03328d5d077a171">&#9670;&#160;</a></span>CREATE <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">CREATE</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="acf2488b95c97e0378c9bf49de3b50f28" name="acf2488b95c97e0378c9bf49de3b50f28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf2488b95c97e0378c9bf49de3b50f28">&#9670;&#160;</a></span>id</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">id</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afde3b66b6b41bd008469f366fa756e54" name="afde3b66b6b41bd008469f366fa756e54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afde3b66b6b41bd008469f366fa756e54">&#9670;&#160;</a></span>inputs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">inputs</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a9cfcb724bbf4bae5f97bc17cf58cf522" name="a9cfcb724bbf4bae5f97bc17cf58cf522"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cfcb724bbf4bae5f97bc17cf58cf522">&#9670;&#160;</a></span>metadata</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">metadata</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad34e7fb3c33543e9f3a1e48486fa7692" name="ad34e7fb3c33543e9f3a1e48486fa7692"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad34e7fb3c33543e9f3a1e48486fa7692">&#9670;&#160;</a></span>operation</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">operation</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af8d743b78404b120589eca8c77c1c2a9" name="af8d743b78404b120589eca8c77c1c2a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8d743b78404b120589eca8c77c1c2a9">&#9670;&#160;</a></span>outputs</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">outputs</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a073a8d88e47cb9260c5f5fef822f1cf8" name="a073a8d88e47cb9260c5f5fef822f1cf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a073a8d88e47cb9260c5f5fef822f1cf8">&#9670;&#160;</a></span>TRANSFER <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">str TRANSFER = 'TRANSFER'</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad8e2f1d90a61371a889bfefc9139f9bd" name="ad8e2f1d90a61371a889bfefc9139f9bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8e2f1d90a61371a889bfefc9139f9bd">&#9670;&#160;</a></span>TRANSFER <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TRANSFER</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a9f76de5ddde1f33fc1c76cf09defeda7" name="a9f76de5ddde1f33fc1c76cf09defeda7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f76de5ddde1f33fc1c76cf09defeda7">&#9670;&#160;</a></span>tx_dict</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">tx_dict</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab5b33a327e391fdaff1c6a05e4c1dd3b" name="ab5b33a327e391fdaff1c6a05e4c1dd3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5b33a327e391fdaff1c6a05e4c1dd3b">&#9670;&#160;</a></span>type_registry</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">dict type_registry = {}</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a5eb009c6ad9e10533deb1e5b1b270692" name="a5eb009c6ad9e10533deb1e5b1b270692"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5eb009c6ad9e10533deb1e5b1b270692">&#9670;&#160;</a></span>VERSION</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">str VERSION = '2.0'</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4c7a521b8f1a0769c09bfa4a1fca7dab" name="a4c7a521b8f1a0769c09bfa4a1fca7dab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c7a521b8f1a0769c09bfa4a1fca7dab">&#9670;&#160;</a></span>version</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">version</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>/github/workspace/service/sdk_validator/resdb_validator/<a class="el" href="service_2sdk__validator_2resdb__validator_2transaction_8py.html">transaction.py</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespaceresdb__validator.html">resdb_validator</a></li><li class="navelem"><a class="el" href="namespaceresdb__validator_1_1transaction.html">transaction</a></li><li class="navelem"><a class="el" href="classresdb__validator_1_1transaction_1_1Transaction.html">Transaction</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>
</html>