Class: Bitcoin::Builder::TxOutBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/bitcoin/builder.rb

Overview

Create a Bitcoin::Protocol::TxOut used by TxBuilder#output.

t.output 12345, address
t.output 12345, p2sh_address, :script_hash

t.output {|o| o.value 12345; o.to address }

t.output do |o|
  o.value 12345
  o.script {|s| s.recipient address }
end

t.output {|o| o.to "deadbeef", OP_RETURN }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTxOutBuilder

Returns a new instance of TxOutBuilder.



445
446
447
# File 'lib/bitcoin/builder.rb', line 445

def initialize
  @txout = P::TxOut.new(0)
end

Instance Attribute Details

#txoutObject (readonly)

Returns the value of attribute txout.



443
444
445
# File 'lib/bitcoin/builder.rb', line 443

def txout
  @txout
end

Instance Method Details

#script {|c| ... } ⇒ Object

Add a script to the output (see ScriptBuilder).

Yields:

  • (c)


460
461
462
463
464
# File 'lib/bitcoin/builder.rb', line 460

def script &block
  c = ScriptBuilder.new
  yield c
  @txout.pk_script, @txout.redeem_script = c.script, c.redeem_script
end

#to(recipient, type = :address) ⇒ Object

Set recipient address and script type (defaults to :address).



455
456
457
# File 'lib/bitcoin/builder.rb', line 455

def to recipient, type = :address
  @txout.pk_script, @txout.redeem_script = *Bitcoin::Script.send("to_#{type}_script", *recipient)
end

#value(value) ⇒ Object

Set output value (in base units / “satoshis”)



450
451
452
# File 'lib/bitcoin/builder.rb', line 450

def value value
  @txout.value = value
end