@@ -8,7 +8,6 @@ package endorsement
88
99import (
1010 "context"
11- "time"
1211
1312 "github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"
1413 fabric2 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric"
@@ -18,83 +17,11 @@ import (
1817 "github.com/hyperledger-labs/fabric-token-sdk/token/core/common"
1918 driver2 "github.com/hyperledger-labs/fabric-token-sdk/token/driver"
2019 "github.com/hyperledger-labs/fabric-token-sdk/token/services/network/common/rws/translator"
21- "github.com/hyperledger-labs/fabric-token-sdk/token/services/network/driver"
2220 "github.com/hyperledger-labs/fabric-token-sdk/token/services/ttxdb"
2321 "github.com/hyperledger-labs/fabric-token-sdk/token/services/utils"
2422 "github.com/hyperledger-labs/fabric-token-sdk/token/token"
2523)
2624
27- type RequestApprovalView struct {
28- TMSID token2.TMSID
29- TxID driver.TxID
30- RequestRaw []byte
31- // RequestAnchor, if not nil it will instruct the approver to verify the token request using this anchor and not the transaction it.
32- // This is to be used only for testing.
33- RequestAnchor string
34- // Nonce, if not nil it will be appended to the messages to sign.
35- // This is to be used only for testing.
36- Nonce []byte
37- // Endorsers are the identities of the FSC node that play the role of endorser
38- Endorsers []view.Identity
39- }
40-
41- func (r * RequestApprovalView ) Call (context view.Context ) (interface {}, error ) {
42- logger .DebugfContext (context .Context (), "request approval..." )
43-
44- _ , tx , err := endorser .NewTransaction (
45- context ,
46- fabric2 .WithCreator (r .TxID .Creator ),
47- fabric2 .WithNonce (r .TxID .Nonce ),
48- )
49- if err != nil {
50- return nil , errors .WithMessagef (err , "failed to create endorser transaction" )
51- }
52-
53- tms , err := token2 .GetManagementService (context , token2 .WithTMSID (r .TMSID ))
54- if err != nil {
55- return nil , errors .WithMessagef (err , "no token management service for [%s]" , r .TMSID )
56- }
57- tx .SetProposal (tms .Namespace (), "" , InvokeFunction )
58- if err := tx .EndorseProposal (); err != nil {
59- return nil , errors .WithMessagef (err , "failed to endorse proposal" )
60- }
61- if err := tx .SetTransientState ("tmsID" , tms .ID ()); err != nil {
62- return nil , errors .WithMessagef (err , "failed to set TMS ID transient" )
63- }
64- if err := tx .SetTransient ("token_request" , r .RequestRaw ); err != nil {
65- return nil , errors .WithMessagef (err , "failed to set token request transient" )
66- }
67- if len (r .RequestAnchor ) != 0 {
68- if err := tx .SetTransient ("RequestAnchor" , []byte (r .RequestAnchor )); err != nil {
69- return nil , errors .WithMessagef (err , "failed to set token request transient" )
70- }
71- }
72- if len (r .Nonce ) != 0 {
73- if err := tx .SetTransient ("Nonce" , r .Nonce ); err != nil {
74- return nil , errors .WithMessagef (err , "failed to set token request transient" )
75- }
76- }
77-
78- logger .DebugfContext (context .Context (), "request endorsement on tx [%s] to [%v]..." , tx .ID (), r .Endorsers )
79- _ , err = context .RunView (endorser .NewParallelCollectEndorsementsOnProposalView (
80- tx ,
81- r .Endorsers ... ,
82- ).WithTimeout (2 * time .Minute ))
83- if err != nil {
84- return nil , errors .WithMessagef (err , "failed to collect endorsements" )
85- }
86- logger .DebugfContext (context .Context (), "request endorsement done" )
87-
88- // Return envelope
89- env , err := tx .Envelope ()
90- if err != nil {
91- return nil , errors .WithMessagef (err , "failed to retrieve envelope for endorsement" )
92- }
93- logger .DebugfContext (context .Context (), "envelope ready" )
94-
95- return env , nil
96- }
97-
9825type Translator interface {
9926 AddPublicParamsDependency () error
10027 CommitTokenRequest (raw []byte , storeHash bool ) ([]byte , error )
0 commit comments