Class: Fabric::ChaincodeEventsRequest

Inherits:
Object
  • Object
show all
Includes:
Accessors::Contract
Defined in:
lib/fabric/entities/chaincode_events_requests.rb

Overview

Encapsulates a Chaincode Events Request protobuf message

Instance Attribute Summary collapse

Attributes included from Accessors::Contract

#chaincode_name, #contract_name, #network

Attributes included from Accessors::Gateway

#client, #signer

Attributes included from Accessors::Network

#gateway, #network_name

Instance Method Summary collapse

Constructor Details

#initialize(contract, start_block: nil) ⇒ ChaincodeEventsRequest

Creates a new ChaincodeEventsRequest

Parameters:

  • contract (Fabric::Contract)

    an instance of a contract

  • start_block (Integer) (defaults to: nil)

    Block number at which to start reading chaincode events.



21
22
23
24
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 21

def initialize(contract, start_block: nil)
  @contract = contract
  @start_block = start_block
end

Instance Attribute Details

#contractObject (readonly)

Returns the value of attribute contract.



8
9
10
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 8

def contract
  @contract
end

#start_blockObject (readonly)

Returns the value of attribute start_block.



8
9
10
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 8

def start_block
  @start_block
end

Instance Method Details

#chaincode_events_requestGateway::ChaincodeEventsRequest

Returns the chaincode events request

Returns:

  • (Gateway::ChaincodeEventsRequest)

    chaincode events request - controls what events are returned from a chaincode events request



41
42
43
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 41

def chaincode_events_request
  @chaincode_events_request ||= new_chaincode_events_request
end

#get_events(options = {}) {|chaincode_event| ... } ⇒ Enumerator|GRPC::ActiveCall::Operation|nil

Get chaincode events emitted by transaction functions of a specific chaincode.

Parameters:

  • options (Hash) (defaults to: {})

    gRPC call options (merged with default_call_options from initializer)

Yields:

  • (chaincode_event)

    loops through the chaincode events

Yield Parameters:

  • chaincode_event (Gateway::ChaincodeEventsResponse)

    the chaincode event

Returns:

  • (Enumerator|GRPC::ActiveCall::Operation|nil)

    Dependent on parameters passed; please see Fabric::Client#get_chaincode_events

See Also:



117
118
119
120
121
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 117

def get_events(options = {}, &block)
  sign

  client.chaincode_events(signed_request, options, &block)
end

#request_bytesString

Get the serialized chaincode events request protobuffer message.

Returns:

  • (String)

    protobuffer serialized chaincode events request



50
51
52
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 50

def request_bytes
  signed_request.request
end

#request_digestString

Get the digest of the chaincode events request. This is used to generate a digital signature.

Returns:

  • (String)

    chaincode events request digest



59
60
61
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 59

def request_digest
  Fabric.crypto_suite.digest(request_bytes)
end

#signvoid

This method returns an undefined value.

Sign the chaincode events request; Noop if request already signed.



88
89
90
91
92
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 88

def sign
  return if signed?

  self.signature = signer.sign(request_bytes)
end

#signatureString

Returns the signed_request signature

Returns:

  • (String)

    Raw byte string signature



79
80
81
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 79

def signature
  signed_request.signature
end

#signature=(signature) ⇒ void

This method returns an undefined value.

Sets the signed request signature.

Parameters:

  • signature (String)


70
71
72
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 70

def signature=(signature)
  signed_request.signature = signature
end

#signed?Boolean

Checks if the signed chaincode events has been signed.

Returns:

  • (Boolean)

    true if the signed chaincode events has been signed; otherwise false.



99
100
101
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 99

def signed?
  !signed_request.signature.empty?
end

#signed_requestGateway::SignedChaincodeEventsRequest

Returns the signed request

Returns:

  • (Gateway::SignedChaincodeEventsRequest)

    generated signed request



31
32
33
# File 'lib/fabric/entities/chaincode_events_requests.rb', line 31

def signed_request
  @signed_request ||= ::Gateway::SignedChaincodeEventsRequest.new(request: chaincode_events_request.to_proto)
end