Pay2PubKeyTemplateDestination

class Pay2PubKeyTemplateDestination(val chainSelector: ChainSelector, var secret: Secret, idx: Long) : PayDestination

Represents a "standard" P2PKT payment destination

Constructors

Link copied to clipboard
constructor(chainSelector: ChainSelector, stream: BCHserialized)
constructor(chainSelector: ChainSelector, secret: Secret, idx: Long)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override val address: PayAddress

Get the %budoc/glossary/P2SH or %budoc/glossary/P2PKH address associated with this destination Note that only a subset of PayDestinations have addresses. A PayAddress will only exist if this destination constrains spending to require a signature (in the P2PKH case) or a script (P2SH case)

Link copied to clipboard
open val atomicSpending: Boolean = true

All derived classes that require the execution of a potentially interactive protocol to spend should set this to false and implement member fns

Link copied to clipboard
open override val bloomFilterData: ByteArray?

Return a set of bytes that can be put into a bloom filter to select any transaction that contains this destination

Link copied to clipboard
Link copied to clipboard
open override val derivedType: Int

What type of destination is this?

Link copied to clipboard
Link copied to clipboard
open var index: Long

If a Bip44 wallet, this is be the BIP44 index. Otherwise its the an incrementing integer every time a new destination is created

Link copied to clipboard

An indication to retire this address as soon as coins are received (typically used for change). RAM only

Link copied to clipboard
open override var pubkey: ByteArray?

Get the public key if a single signature is needed to spend this destination

Link copied to clipboard
Link copied to clipboard
open override var secret: Secret

Get the secret key if a single signature is needed to spend this destination

Functions

Link copied to clipboard
open override fun BCHdeserialize(stream: BCHserialized): BCHserialized
Link copied to clipboard
open override fun BCHserialize(format: SerializationType): BCHserialized
Link copied to clipboard
open fun beginProposal(tx: iTransaction, inputIdx: Int): SpendingProposal?

If atomicSpending is false, this is how you initiate whatever protocol is needed to sign this transaction. This should only be called if this is your own spending proposal (it is expected that the user has already agreed to this spend)

Link copied to clipboard
open override fun constraintArgsHash(): ByteArray
Link copied to clipboard
fun contentEquals(other: Any?): Boolean
Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun groupedLockingScript(groupId: GroupId, groupAmount: Long): SatoshiScript

Get the output script needed to send tokens to this group destination. This script will contain spend constraints in the non-P2SH case, or in the P2SH case this script only constrains spending to execution of the redeemScript and any additional constraints are located in the redeemScript

Link copied to clipboard
open override fun lockingScript(): SatoshiScript

Get the locking script needed to send coins to this destination. This script will contain spend constraints in the non-template case, or in the template/P2SH case this script contains the hash of the template/redeem script.

Link copied to clipboard
open fun output(satoshis: Long): iTxOutput

Get an output (constrained to this destination) suitable for placing in a transaction

Link copied to clipboard
fun pkh(): ByteArray?

Calculate the public key hash (PKH)

Link copied to clipboard
Link copied to clipboard
open fun satisfierScript(flatTx: ByteArray, inputIdx: Long, sigHashType: ByteArray, inputAmount: Long, spendingProposal: SpendingProposal? = null): SatoshiScript
Link copied to clipboard
Link copied to clipboard

serialize any derived class & the type indicator

Link copied to clipboard
open override fun templateScript(): SatoshiScript

Get the template script needed to spend this destination. This script is committed to in the locking script via hash, and must be provided in full in the unlocking script. For P2SH blockchains, this will return the redeemScript since templates are a generalization of P2SH.

Link copied to clipboard
open fun toByteArray(format: SerializationType = SerializationType.UNKNOWN): ByteArray
Link copied to clipboard

Get the output script needed to send native coins to this destination. This script will contain spend constraints in the non-P2SH case, or in the P2SH case this script only constrains spending to execution of the redeemScript and any additional constraints are located in the redeemScript

Link copied to clipboard
open override fun unlockingScript(flatTx: ByteArray, inputIdx: Long, sigHashType: ByteArray, inputAmount: Long, spendingProposal: SpendingProposal?): SatoshiScript

Create a spend (input) script that will satisfy the constraints specified by the lockingScript and the templateScript (if applicable). This script will contain the redeemScript in the P2SH case. Many scripts require signatures. This API provides the data needed for this class to craft signatures, and provides additional derived-class defined params.

open fun unlockingScript(vararg params: ByteArray): SatoshiScript

Create a spend (input) script that will satisfy the constraints specified by the lockingScript and the templateScript (if applicable). This script will contain the redeemScript in the P2SH case.

Link copied to clipboard
fun updateSecret(s: Secret, pubK: ByteArray? = null)