bitcoin-s/api/signrpc/SignDescriptor.html

77 lines
84 KiB
HTML
Raw Normal View History

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title></title><meta content="" name="description"/><meta content="" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../lib/jquery.min.js"></script><script type="text/javascript" src="../lib/index.js"></script><script type="text/javascript" src="../index.js"></script><script type="text/javascript" src="../lib/scheduler.js"></script><script type="text/javascript" src="../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../';</script></head><body><div id="search"><span id="doc-title"><span id="doc-version"></span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_" class="anchorToMember"></a><a id="root:_root_" class="anchorToMember"></a> <span class="permalink"><a href="../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.signrpc" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="signrpc" class="anchorToMember"></a><a id="signrpc:signrpc" class="anchorToMember"></a> <span class="permalink"><a href="../signrpc/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="index.html" title=""><span class="name">signrpc</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="current-entities indented1"><a href="InputScript$.html" title="" class="object"></a> <a href="InputScript.html" title="" class="class"></a><a href="InputScript.html" title="">InputScript</a></li><li class="current-entities indented1"><a href="InputScriptResp$.html" title="" class="object"></a> <a href="InputScriptResp.html" title="" class="class"></a><a href="InputScriptResp.html" title="">InputScriptResp</a></li><li class="current-entities indented1"><a href="KeyDescriptor$.html" title="" class="object"></a> <a href="KeyDescriptor.html" title="" class="class"></a><a href="KeyDescriptor.html" title="">KeyDescriptor</a></li><li class="current-entities indented1"><a href="KeyLocator$.html" title="" class="object"></a> <a href="KeyLocator.html" title="" class="class"></a><a href="KeyLocator.html" title="">KeyLocator</a></li><li class="current-entities indented1"><a href="MuSig2CleanupRequest$.html" title="" class="object"></a> <a href="MuSig2CleanupRequest.html" title="" class="class"></a><a href="MuSig2CleanupRequest.html" title="">MuSig2CleanupRequest</a></li><li class="current-entities indented1"><a href="MuSig2CleanupResponse$.html" title="" class="object"></a> <a href="MuSig2CleanupResponse.html" title="" class="class"></a><a href="MuSig2CleanupResponse.html" title="">MuSig2CleanupResponse</a></li><li class="current-entities indented1"><a href="MuSig2CombineKeysRequest$.html" title="" class="object"></a> <a href="MuSig2CombineKeysRequest.html" title="" class="class"></a><a href="MuSig2CombineKeysRequest.html" title="">MuSig2CombineKeysRequest</a></li><li class="current-entities indented1"><a href="MuSig2CombineKeysResponse$.html" title="" class="object"></a> <a href="MuSig2CombineKeysResponse.html" title="" class="class"></a><a href="MuSig2CombineKeysResponse.html" title="">MuSig2CombineKeysResponse</a></li><li class="current-entiti
A descriptor that precisely describes *which* key to use for signing. This
may provide the raw public key directly, or require the Signer to re-derive
the key according to the populated derivation path.
Note that if the key descriptor was obtained through walletrpc.DeriveKey,
then the key locator MUST always be provided, since the derived keys are not
persisted unlike with DeriveNextKey.</p></dd><dt class="param">singleTweak</dt><dd class="cmt"><p>
A scalar value that will be added to the private key corresponding to the
above public key to obtain the private key to be used to sign this input.
This value is typically derived via the following computation:
derivedKey = privkey + sha256(perCommitmentPoint || pubKey) mod N</p></dd><dt class="param">doubleTweak</dt><dd class="cmt"><p>
A private key that will be used in combination with its corresponding
private key to derive the private key that is to be used to sign the target
input. Within the Lightning protocol, this value is typically the
commitment secret from a previously revoked commitment transaction. This
value is in combination with two hash values, and the original private key
to derive the private key to be used when signing.
k = (privKey*sha256(pubKey || tweakPub) +
tweakPriv*sha256(tweakPub || pubKey)) mod N</p></dd><dt class="param">tapTweak</dt><dd class="cmt"><p>
The 32 byte input to the taproot tweak derivation that is used to derive
the output key from an internal key: outputKey = internalKey +
tagged_hash("tapTweak", internalKey || tapTweak).
When doing a BIP 86 spend, this field can be an empty byte slice.
When doing a normal key path spend, with the output key committing to an
actual script root, then this field should be: the tapscript root hash.</p></dd><dt class="param">witnessScript</dt><dd class="cmt"><p>
The full script required to properly redeem the output. This field will
only be populated if a p2tr, p2wsh or a p2sh output is being signed. If a
taproot script path spend is being attempted, then this should be the raw
leaf script.</p></dd><dt class="param">output</dt><dd class="cmt"><p>
A description of the output being spent. The value and script MUST be
provided.</p></dd><dt class="param">sighash</dt><dd class="cmt"><p>
The target sighash type that should be used when generating the final
sighash, and signature.</p></dd><dt class="param">inputIndex</dt><dd class="cmt"><p>
The target input within the transaction that should be signed.</p></dd><dt class="param">signMethod</dt><dd class="cmt"><p>
The sign method specifies how the input should be signed. Depending on the
method, either the tap_tweak, witness_script or both need to be specified.
Defaults to SegWit v0 signing to be backward compatible with older RPC
clients.</p></dd></dl><dl class="attributes block"><dt>Annotations</dt><dd><span class="name">@SerialVersionUID</span><span class="args">()</span> </dd></dl><div class="toggleContainer"><div class="toggle block"><span>Linear Supertypes</span><div class="superTypes hiddenContent"><a href="https://javadoc.io/page/com.thesamet.scalapb/lenses_2.13/0.11.11/scalapb/lenses/Updatable.html#scalapb.lenses.Updatable" name="scalapb.lenses.Updatable" id="scalapb.lenses.Updatable" class="extype">Updatable</a>[<a href="" name="signrpc.SignDescriptor" id="signrpc.SignDescriptor" class="extype">SignDescriptor</a>], <a href="https://javadoc.io/page/com.thesamet.scalapb/scalapb-runtime_2.13/0.11.11/scalapb/GeneratedMessage.html#scalapb.GeneratedMessage" name="scalapb.GeneratedMessage" id="scalapb.GeneratedMessage" class="extype">GeneratedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java/io/Serializable.html#java.io.Serializable" name="java.io.Serializable" id="java.io.Serializable" class="extype">Serializable</a>, <a href="https://www.scala-lang.org/api/2.13.12/scala/Product.html#scala.Product" name="scala.Product" id="scala.Product" class="extype">Product</a>, <a href="https://www.scala-lang.org/api/2.13.12/scala/Equals.html#scala.Equals" name="scala.Equals" id="scala.Equals" class="extype">Equals</a>, <a href="../scala/index.html#AnyRef=Object" name="scala.AnyRef" id="scala.AnyRef" class="extmbr">AnyRef</a>, <a href="https://www.scala-lang.org/api/2.13.12/scala/Any.html#scala.Any" name="scala.Any" id="scala.Any" class="extype">Any</a></div></div></div></div><div id="mbrsel"><div class="toggle"></div><div id="memberfilter"><i class="material-icons arrow"></i><span class="input"><input placeholder="Filter all members" id="mbrsel-input" type="text" accesskey="/"/></span><i class="clear material-icons"></i></div><div id="filterby"><div id="order"><span class="filtertype">Ordering</span><ol><li class="alpha in"><span>Alphabetic</span></li><li class="inherit out"><span>By Inheritance</span></li></ol></div><div class="ancestors"><span class="filtertype">Inherited<br/></span><ol id="linearization"><li class="in" name="signrpc.SignDescriptor"><span>SignDescriptor</span></li><li class="in" name="scalapb.lenses.Updatable"><span>Updatable</span></li><li class="in" name="scalapb.GeneratedMessage"><span>GeneratedMessage</span></li><li class="in" name="java.io.Serializable"><span>Serializable</span></li><li class="in" name="scala.Product"><span>Product</span></li><li class="in" name="scala.Equals"><span>Equals</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li></ol></div><div class="ancestors"><span class="filtertype"></span><ol><li class="hideall out"><span>Hide All</span></li><li class="showall in"><span>Show All</span></li></ol></div><div id="visbl"><span class="filtertype">Visibility</span><ol><li class="public in"><span>Public</span></li><li class="protected out"><span>Protected</span></li></ol></div></div></div><div id="template"><div id="allMembers"><div id="constructors" class="members"><h3>Instance Constructors</h3><ol><li class="indented0 " name="signrpc.SignDescriptor#&lt;init&gt;" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="&lt;init&gt;(keyDesc:Option[signrpc.KeyDescriptor],singleTweak:com.google.protobuf.ByteString,doubleTweak:com.google.protobuf.ByteString,tapTweak:com.google.protobuf.ByteString,witnessScript:com.google.protobuf.ByteString,output:Option[signrpc.TxOut],sighash:org.bitcoins.core.number.UInt32,inputIndex:Int,signMethod:signrpc.SignMethod,unknownFields:scalapb.UnknownFieldSet):signrpc.SignDescriptor" class="anchorToMember"></a><a id="&lt;init&gt;:SignDescriptor" class="anchorToMember"></a> <span class="permalink"><a href="../signrpc/SignDescriptor.html#&lt;init&gt;(keyDesc:Option[signrpc.KeyDescriptor],singleTweak:com.google.protobuf.ByteString,doubleTweak:com.google.protobuf.ByteString,tapTweak:com.google.protobuf.ByteString,witnessScript:com.google.protobuf.ByteString,output:Option[signrp
A descriptor that precisely describes *which* key to use for signing. This
may provide the raw public key directly, or require the Signer to re-derive
the key according to the populated derivation path.
Note that if the key descriptor was obtained through walletrpc.DeriveKey,
then the key locator MUST always be provided, since the derived keys are not
persisted unlike with DeriveNextKey.</p></dd><dt class="param">singleTweak</dt><dd class="cmt"><p>
A scalar value that will be added to the private key corresponding to the
above public key to obtain the private key to be used to sign this input.
This value is typically derived via the following computation:
derivedKey = privkey + sha256(perCommitmentPoint || pubKey) mod N</p></dd><dt class="param">doubleTweak</dt><dd class="cmt"><p>
A private key that will be used in combination with its corresponding
private key to derive the private key that is to be used to sign the target
input. Within the Lightning protocol, this value is typically the
commitment secret from a previously revoked commitment transaction. This
value is in combination with two hash values, and the original private key
to derive the private key to be used when signing.
k = (privKey*sha256(pubKey || tweakPub) +
tweakPriv*sha256(tweakPub || pubKey)) mod N</p></dd><dt class="param">tapTweak</dt><dd class="cmt"><p>
The 32 byte input to the taproot tweak derivation that is used to derive
the output key from an internal key: outputKey = internalKey +
tagged_hash("tapTweak", internalKey || tapTweak).
When doing a BIP 86 spend, this field can be an empty byte slice.
When doing a normal key path spend, with the output key committing to an
actual script root, then this field should be: the tapscript root hash.</p></dd><dt class="param">witnessScript</dt><dd class="cmt"><p>
The full script required to properly redeem the output. This field will
only be populated if a p2tr, p2wsh or a p2sh output is being signed. If a
taproot script path spend is being attempted, then this should be the raw
leaf script.</p></dd><dt class="param">output</dt><dd class="cmt"><p>
A description of the output being spent. The value and script MUST be
provided.</p></dd><dt class="param">sighash</dt><dd class="cmt"><p>
The target sighash type that should be used when generating the final
sighash, and signature.</p></dd><dt class="param">inputIndex</dt><dd class="cmt"><p>
The target input within the transaction that should be signed.</p></dd><dt class="param">signMethod</dt><dd class="cmt"><p>
The sign method specifies how the input should be signed. Depending on the
method, either the tap_tweak, witness_script or both need to be specified.
Defaults to SegWit v0 signing to be backward compatible with older RPC
clients.</p></dd></dl></div></li></ol></div><div class="values members"><h3>Value Members</h3><ol><li class="indented0 " name="scala.AnyRef#!=" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="!=(x$1:Any):Boolean" class="anchorToMember"></a><a id="!=(Any):Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../signrpc/SignDescriptor.html#!=(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $bang$eq">!=</span><span class="params">(<span name="arg0">arg0: <a href="https://www.scala-lang.org/api/2.13.12/scala/Any.html#scala.Any" name="scala.Any" id="scala.Any" class="extype">Any</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.12/scala/Boolean.html#scala.Boolean" name="scala.Boolean" id="scala.Boolean" class="extype">Boolean</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef###" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="##:Int" class="anchorToMember"></a> <span class="permalink"><a href="../signrpc/SignDescriptor.html###:Int" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $hash$hash">##</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.12/scala/Int.html#scala.Int" name="scala.Int" id="scala.Int" class="extype">Int</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#==" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="==(x$1:Any):Boolean" class="anchorToMember"></a><a id="==(Any):Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../signrpc/SignDescriptor.html#==(x$1:Any):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name" title="gt4s: $eq$eq">==</span><span class="params">(<span name="arg0">arg0: <a href="https://www.scala-lang.org/api/2.13.12/scala/Any.html#scala.Any" name="scala.Any" id="scala.Any" class="extype">Any</a></span>)</span><span class="result">: <a href="https://www.scala-lang.org/api/2.13.12/scala/Boolean.html#scala.Boolean" name="scala.Boolean" id="scala.Boolean" class="extype">Boolean</a></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.Any#asInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="asInstanceOf[T0]:T0" class="anchorToMember"></a> <span class="permalink"><a href="../signrpc/SignDescriptor.html#asInstanceOf[T0]:T0" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span name="scala.Any.asInstanceOf.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><li class="indented0 " name="signrpc.SignDescriptor#clearKeyDesc" group="Ungrouped" fullComment="no" data-isabs="false" visbl="pub"><a id="clearKeyDesc:signrpc.SignDescriptor" class="anchorToMember"></a><a id="clearKeyDesc:SignDescriptor" class="anchorToMember"></a> <span class="permalink"><a href="../signrpc/SignDescriptor.html#clearKeyDesc:signrpc.SignDescriptor" title="Permalink"><i class="material-icons"></i></a><