From 257c16e07cb8c000aa5506d3cd679e9508df4501 Mon Sep 17 00:00:00 2001
From: Benjamin Bollen <ben@erisindustries.com>
Date: Wed, 8 Jun 2016 13:30:24 +0200
Subject: [PATCH] implement interface calls for definitions.Pipe in
 ErisMintPipe

---
 manager/eris-mint/pipe.go | 42 ++++++++++++++++++++++++++++++++++++++-
 manager/manager.go        |  2 +-
 2 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/manager/eris-mint/pipe.go b/manager/eris-mint/pipe.go
index 08e3000b..45d5c40b 100644
--- a/manager/eris-mint/pipe.go
+++ b/manager/eris-mint/pipe.go
@@ -27,6 +27,7 @@ import (
   log "github.com/eris-ltd/eris-logger"
 
   config      "github.com/eris-ltd/eris-db/config"
+  definitions "github.com/eris-ltd/eris-db/definitions"
   state       "github.com/eris-ltd/eris-db/manager/eris-mint/state"
   state_types "github.com/eris-ltd/eris-db/manager/eris-mint/state/types"
 )
@@ -35,6 +36,14 @@ type ErisMintPipe struct {
   erisMintState *state.State
   eventSwitch   *tendermint_events.EventSwitch
   erisMint      *ErisMint
+  // Pipe implementations
+  accounts      definitions.Accounts
+  blockchain    definitions.Blockchain
+  consensus     definitions.Consensus
+  events        definitions.EventEmitter
+  namereg       definitions.NameReg
+  net           definitions.Net
+  transactor    definitions.Transactor
 }
 
 func NewErisMintPipe(moduleConfig *config.ModuleConfig,
@@ -52,12 +61,15 @@ func NewErisMintPipe(moduleConfig *config.ModuleConfig,
   erisMint := NewErisMint(startedState, eventSwitch)
 
   // NOTE: [ben] Set Host opens an RPC pipe to Tendermint;  this is a remnant
-  // of the old Eris-DB / Tendermint and should be
+  // of the old Eris-DB / Tendermint and should be considered as an in-process
+  // call when possible
   tendermintHost := moduleConfig.Config.GetString("tendermint_host")
   log.Debug("Starting ErisMint RPC client to Tendermint host on %s",
     tendermintHost)
   erisMint.SetHostAddress(tendermintHost)
 
+
+
   return &ErisMintPipe {
     erisMintState: startedState,
     eventSwitch:   eventSwitch,
@@ -113,3 +125,31 @@ func startState(dataDir, backend, genesisFile, chainId string) (*state.State,
 
 //------------------------------------------------------------------------------
 // Implement definitions.Pipe for ErisMintPipe
+
+func (pipe *ErisMintPipe) Accounts() definitions.Accounts {
+  return pipe.accounts
+}
+
+func (pipe *ErisMintPipe) Blockchain() definitions.Blockchain {
+  return pipe.blockchain
+}
+
+func (pipe *ErisMintPipe) Consensus() definitions.Consensus {
+  return pipe.consensus
+}
+
+func (pipe *ErisMintPipe) Events() definitions.EventEmitter {
+  return pipe.events
+}
+
+func (pipe *ErisMintPipe) NameReg() definitions.NameReg {
+  return pipe.namereg
+}
+
+func (pipe *ErisMintPipe) Net() definitions.Net {
+  return pipe.net
+}
+
+func (pipe *ErisMintPipe) Transactor() definitions.Transactor {
+  return pipe.transactor
+}
diff --git a/manager/manager.go b/manager/manager.go
index fa79d827..6204685d 100644
--- a/manager/manager.go
+++ b/manager/manager.go
@@ -41,7 +41,7 @@ func NewApplicationPipe(moduleConfig *config.ModuleConfig,
       err != nil {
       return nil, err
     }
-    erismint.NewErisMintPipe(moduleConfig, genesisFile, evsw)
+    return erismint.NewErisMintPipe(moduleConfig, genesisFile, evsw)
     // TODO: ErisMintPipe does not yet implement definitions.Pipe
   }
   return nil, fmt.Errorf("PLACEHOLDER")
-- 
GitLab