@@ -12,7 +12,6 @@ import (
1212 "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"
1313 fabric2 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric"
1414 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/services/endorser"
15- "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/comm/session"
1615 "github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
1716 token2 "github.com/hyperledger-labs/fabric-token-sdk/token"
1817 "github.com/hyperledger-labs/fabric-token-sdk/token/core/common"
@@ -54,13 +53,27 @@ type Translator interface {
5453
5554type TranslatorProviderFunc = func (txID string , namespace string , rws * fabric2.RWSet ) (Translator , error )
5655
56+ type EndorserService interface {
57+ ReceiveTx (ctx view.Context ) (* endorser.Transaction , error )
58+ Endorse (tx * endorser.Transaction , identities ... view.Identity ) (any , error )
59+ }
60+
5761type RequestApprovalResponderView struct {
58- keyTranslator translator.KeyTranslator
59- getTranslator TranslatorProviderFunc
62+ endorserService EndorserService
63+ keyTranslator translator.KeyTranslator
64+ getTranslator TranslatorProviderFunc
6065}
6166
62- func NewRequestApprovalResponderView (keyTranslator translator.KeyTranslator , getTranslator TranslatorProviderFunc ) * RequestApprovalResponderView {
63- return & RequestApprovalResponderView {keyTranslator : keyTranslator , getTranslator : getTranslator }
67+ func NewRequestApprovalResponderView (
68+ keyTranslator translator.KeyTranslator ,
69+ getTranslator TranslatorProviderFunc ,
70+ endorserService EndorserService ,
71+ ) * RequestApprovalResponderView {
72+ return & RequestApprovalResponderView {
73+ keyTranslator : keyTranslator ,
74+ getTranslator : getTranslator ,
75+ endorserService : endorserService ,
76+ }
6477}
6578
6679func (r * RequestApprovalResponderView ) Call (context view.Context ) (interface {}, error ) {
@@ -87,14 +100,14 @@ func (r *RequestApprovalResponderView) Call(context view.Context) (interface{},
87100 return r .endorse (context , request )
88101}
89102
90- func (r * RequestApprovalResponderView ) receive (context view.Context ) (* Request , error ) {
91- logger .DebugfContext (context .Context (), "Waiting for transaction on context [%s]" , context .ID ())
92- _ , tx , err := endorser . NewTransactionFromBytes ( context , session . ReadFirstMessageOrPanic ( context ) )
103+ func (r * RequestApprovalResponderView ) receive (ctx view.Context ) (* Request , error ) {
104+ logger .DebugfContext (ctx .Context (), "Waiting for transaction on context [%s]" , ctx .ID ())
105+ tx , err := r . endorserService . ReceiveTx ( ctx )
93106 if err != nil {
94107 return nil , errors .WithMessagef (err , "failed to received transaction for approval" )
95108 }
96- logger .DebugfContext (context .Context (), "Received transaction [%s] for endorsement on context [%s]" , tx .ID (), context .ID ())
97- defer logger .DebugfContext (context .Context (), "Return endorsement result for TX [%s]" , tx .ID ())
109+ logger .DebugfContext (ctx .Context (), "Received transaction [%s] for endorsement on context [%s]" , tx .ID (), ctx .ID ())
110+ defer logger .DebugfContext (ctx .Context (), "Return endorsement result for TX [%s]" , tx .ID ())
98111
99112 // validate transient
100113
@@ -111,14 +124,14 @@ func (r *RequestApprovalResponderView) receive(context view.Context) (*Request,
111124 if len (tmsID .Network ) == 0 || len (tmsID .Channel ) == 0 || len (tmsID .Namespace ) == 0 {
112125 return nil , errors .Wrapf (errors .Join (err , ErrInvalidTransient ), "invalid tms id [%s]" , tmsID )
113126 }
114- tms , err := token2 .GetManagementService (context , token2 .WithTMSID (tmsID ))
127+ tms , err := token2 .GetManagementService (ctx , token2 .WithTMSID (tmsID ))
115128 if err != nil {
116129 return nil , errors .Wrapf (errors .Join (err , ErrInvalidTransient ), "cannot find TMS for [%s]" , tmsID )
117130 }
118131 if ! tms .ID ().Equal (tmsID ) {
119132 return nil , errors .Wrapf (errors .Join (err , ErrInvalidTransient ), "tms ids do not match" )
120133 }
121- logger .DebugfContext (context .Context (), "evaluate token request on TMS [%s]" , tmsID )
134+ logger .DebugfContext (ctx .Context (), "evaluate token request on TMS [%s]" , tmsID )
122135
123136 // token request
124137 requestRaw := tx .GetTransient (TransientTokenRequestKey )
0 commit comments