Skip to content

Commit

Permalink
Merge pull request #119 from iotaledger/feat/blockmetadata-stream
Browse files Browse the repository at this point in the history
Replace block metadata topics with ListenToBlockMetadata
  • Loading branch information
muXxer committed Apr 24, 2024
2 parents aa12c9f + 4248ffa commit bb5e132
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 242 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ require (
github.com/iotaledger/hive.go/log v0.0.0-20240419094509-31dbb7270ad9
github.com/iotaledger/hive.go/runtime v0.0.0-20240419094509-31dbb7270ad9
github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9
github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240419095729-912f1c2df45d
github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63
github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61
github.com/labstack/echo/v4 v4.11.4
go.uber.org/dig v1.17.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,8 @@ github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb72
github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9/go.mod h1:TXhgZZ0wD1ylof5msP+21xypd2utw0F8tEX3kCDR84s=
github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9 h1:NJE7qTEiG/fAQzn5aF0MucA2yQx3CitVBZVP0sh4WpQ=
github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:O4p7UmsfoeLqtAUwrKbq0lXMxjY/MLQSpZSavvvvGig=
github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240419095729-912f1c2df45d h1:aTLIfyVtJHLMKgYEUY0tPNBv+B522JZbttH1DslX2ck=
github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240419095729-912f1c2df45d/go.mod h1:YYko1kTtJgfETXQqWHgJkHQv6gGYGDxjnwDC6FbXxic=
github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63 h1:vt8LvpthPv2iVgIDzHN0N3Gee5+KEmqm/3eeF5G6hyA=
github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63/go.mod h1:YYko1kTtJgfETXQqWHgJkHQv6gGYGDxjnwDC6FbXxic=
github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61 h1:vC1YXh2b8WleeAJvqf76PtBDvOXNIaI2Xdn0eLi2YFU=
github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61/go.mod h1:ui1VcUuBHzN4eO0VR89UKqkiYR443VsznFMJgY2YRUQ=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
Expand Down
41 changes: 7 additions & 34 deletions pkg/nodebridge/blocks.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func (n *nodeBridge) ActiveRootBlocks(ctx context.Context) (map[iotago.BlockID]i
return nil, err
}

return response.Unwrap()
return response.Unwrap(), nil
}

// SubmitBlock submits the given block.
Expand Down Expand Up @@ -50,7 +50,7 @@ func (n *nodeBridge) BlockMetadata(ctx context.Context, blockID iotago.BlockID)
return nil, err
}

return inxBlockMetadata.Unwrap()
return inxBlockMetadata.Unwrap(), nil
}

// ListenToBlocks listens to blocks.
Expand All @@ -70,44 +70,17 @@ func (n *nodeBridge) ListenToBlocks(ctx context.Context, consumer func(block *io
return nil
}

// ListenToAcceptedBlocks listens to accepted blocks.
func (n *nodeBridge) ListenToAcceptedBlocks(ctx context.Context, consumer func(*api.BlockMetadataResponse) error) error {
stream, err := n.client.ListenToAcceptedBlocks(ctx, &inx.NoParams{})
// ListenToBlockMetadata listens to block metadata changes (pending, accepted, confirmed, dropped).
func (n *nodeBridge) ListenToBlockMetadata(ctx context.Context, consumer func(*api.BlockMetadataResponse) error) error {
stream, err := n.client.ListenToBlockMetadata(ctx, &inx.NoParams{})
if err != nil {
return err
}

if err := ListenToStream(ctx, stream.Recv, func(inxBlockMetadata *inx.BlockMetadata) error {
blockMetadata, err := inxBlockMetadata.Unwrap()
if err != nil {
return err
}

return consumer(blockMetadata)
}); err != nil {
n.LogErrorf("ListenToAcceptedBlocks failed: %s", err.Error())
return err
}

return nil
}

// ListenToConfirmedBlocks listens to confirmed blocks.
func (n *nodeBridge) ListenToConfirmedBlocks(ctx context.Context, consumer func(*api.BlockMetadataResponse) error) error {
stream, err := n.client.ListenToConfirmedBlocks(ctx, &inx.NoParams{})
if err != nil {
return err
}

if err := ListenToStream(ctx, stream.Recv, func(inxBlockMetadata *inx.BlockMetadata) error {
blockMetadata, err := inxBlockMetadata.Unwrap()
if err != nil {
return err
}

return consumer(blockMetadata)
return consumer(inxBlockMetadata.Unwrap())
}); err != nil {
n.LogErrorf("ListenToConfirmedBlocks failed: %s", err.Error())
n.LogErrorf("ListenToBlockMetadata failed: %s", err.Error())
return err
}

Expand Down
6 changes: 2 additions & 4 deletions pkg/nodebridge/node_bridge.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,8 @@ type NodeBridge interface {
BlockMetadata(ctx context.Context, blockID iotago.BlockID) (*api.BlockMetadataResponse, error)
// ListenToBlocks listens to blocks.
ListenToBlocks(ctx context.Context, consumer func(block *iotago.Block, rawData []byte) error) error
// ListenToAcceptedBlocks listens to accepted blocks.
ListenToAcceptedBlocks(ctx context.Context, consumer func(blockMetadata *api.BlockMetadataResponse) error) error
// ListenToConfirmedBlocks listens to confirmed blocks.
ListenToConfirmedBlocks(ctx context.Context, consumer func(blockMetadata *api.BlockMetadataResponse) error) error
// ListenToBlockMetadata listens to block metadata changes (pending, accepted, confirmed, dropped).
ListenToBlockMetadata(ctx context.Context, consumer func(blockMetadata *api.BlockMetadataResponse) error) error

// TransactionMetadata returns the transaction metadata for the given transaction ID.
TransactionMetadata(ctx context.Context, transactionID iotago.TransactionID) (*api.TransactionMetadataResponse, error)
Expand Down
201 changes: 0 additions & 201 deletions pkg/nodebridge/tangle_listener.go

This file was deleted.

0 comments on commit bb5e132

Please sign in to comment.