Skip to content

Commit b368948

Browse files
authored
Proper Error Handling and Normalization (#1238)
Signed-off-by: Angelo De Caro <adc@zurich.ibm.com>
1 parent ec7924a commit b368948

File tree

41 files changed

+809
-234
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+809
-234
lines changed

integration/token/common/views/finality.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ func (r *TxFinalityView) Call(context view.Context) (interface{}, error) {
4040
errs := make(chan error, 2)
4141

4242
// Listen for finality from vault
43-
tms := token.GetManagementService(context, token.WithTMSID(tmsID))
44-
assert.NotNil(tms)
43+
tms, err := token.GetManagementService(context, token.WithTMSID(tmsID))
44+
assert.NoError(err)
4545
nw := network.GetInstance(context, tms.Network(), tms.Channel())
4646
assert.NotNil(nw)
4747
assert.NoError(nw.AddFinalityListener(tms.Namespace(), r.TxID, newFinalityListener(r.Timeout, errs)))

integration/token/dvp/views/balance.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"fmt"
1212
"strconv"
1313

14+
"github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/assert"
1415
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
1516
"github.com/hyperledger-labs/fabric-token-sdk/token"
1617
token2 "github.com/hyperledger-labs/fabric-token-sdk/token/token"
@@ -32,7 +33,8 @@ type BalanceView struct {
3233
}
3334

3435
func (b *BalanceView) Call(context view.Context) (interface{}, error) {
35-
tms := token.GetManagementService(context, token.WithTMSID(b.TMSID))
36+
tms, err := token.GetManagementService(context, token.WithTMSID(b.TMSID))
37+
assert.NoError(err)
3638
wallet := tms.WalletManager().OwnerWallet(context.Context(), b.Wallet)
3739
if wallet == nil {
3840
return nil, fmt.Errorf("wallet %s not found", b.Wallet)

integration/token/fungible/views/auditor.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,8 @@ type CurrentHoldingView struct {
218218
}
219219

220220
func (r *CurrentHoldingView) Call(context view.Context) (interface{}, error) {
221-
tms := token.GetManagementService(context, token.WithTMSID(r.TMSID))
221+
tms, err := token.GetManagementService(context, token.WithTMSID(r.TMSID))
222+
assert.NoError(err)
222223
assert.NotNil(tms, "tms not found [%s]", r.TMSID)
223224

224225
w := tms.WalletManager().AuditorWallet(context.Context(), "")

integration/token/fungible/views/balance.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ type BalanceView struct {
3737
}
3838

3939
func (b *BalanceView) Call(context view.Context) (interface{}, error) {
40-
tms := token.GetManagementService(context, ServiceOpts(b.TMSID)...)
40+
tms, err := token.GetManagementService(context, ServiceOpts(b.TMSID)...)
41+
assert.NoError(err, "failed getting management service")
4142
assert.NotNil(tms, "TMSID is nil")
4243
wallet := tms.WalletManager().OwnerWallet(context.Context(), b.Wallet)
4344
if wallet == nil {
@@ -99,7 +100,8 @@ type CoOwnedBalanceView struct {
99100
}
100101

101102
func (b *CoOwnedBalanceView) Call(context view.Context) (interface{}, error) {
102-
tms := token.GetManagementService(context, ServiceOpts(b.TMSID)...)
103+
tms, err := token.GetManagementService(context, ServiceOpts(b.TMSID)...)
104+
assert.NoError(err, "failed getting management service")
103105
wallet := tms.WalletManager().OwnerWallet(context.Context(), b.Wallet)
104106
if wallet == nil {
105107
return nil, fmt.Errorf("wallet %s not found", b.Wallet)

integration/token/fungible/views/checks.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ func (m *CheckTTXDBView) Call(context view.Context) (interface{}, error) {
5050
}
5151

5252
// check
53-
tms := token.GetManagementService(context, token.WithTMSID(m.TMSID))
53+
tms, err := token.GetManagementService(context, token.WithTMSID(m.TMSID))
54+
assert.NoError(err, "failed getting management service")
5455
assert.NotNil(tms, "failed to get default tms")
5556
if m.Auditor {
5657
auditorWallet := tms.WalletManager().AuditorWallet(context.Context(), m.AuditorWalletID)
@@ -82,7 +83,8 @@ type PruneInvalidUnspentTokensView struct {
8283
}
8384

8485
func (p *PruneInvalidUnspentTokensView) Call(context view.Context) (interface{}, error) {
85-
tms := token.GetManagementService(context, token.WithTMSID(p.TMSID))
86+
tms, err := token.GetManagementService(context, token.WithTMSID(p.TMSID))
87+
assert.NoError(err, "failed getting management service")
8688
assert.NotNil(tms, "cannot find tms [%s]", p.TMSID)
8789
tokens, err := tokens.GetService(context, tms.ID())
8890
assert.NoError(err, "failed to get tokens for [%s]", p.TMSID)
@@ -109,7 +111,8 @@ type ListVaultUnspentTokensView struct {
109111
}
110112

111113
func (l *ListVaultUnspentTokensView) Call(context view.Context) (interface{}, error) {
112-
net := token.GetManagementService(context, token.WithTMSID(l.TMSID))
114+
net, err := token.GetManagementService(context, token.WithTMSID(l.TMSID))
115+
assert.NoError(err, "failed getting management service")
113116
assert.NotNil(net, "cannot find tms [%s]", l.TMSID)
114117
return net.Vault().NewQueryEngine().ListUnspentTokens(context.Context())
115118
}
@@ -134,7 +137,8 @@ type CheckIfExistsInVaultView struct {
134137
}
135138

136139
func (c *CheckIfExistsInVaultView) Call(context view.Context) (interface{}, error) {
137-
tms := token.GetManagementService(context, token.WithTMSID(c.TMSID))
140+
tms, err := token.GetManagementService(context, token.WithTMSID(c.TMSID))
141+
assert.NoError(err, "failed getting management service")
138142
assert.NotNil(tms, "cannot find tms [%s]", c.TMSID)
139143
qe := tms.Vault().NewQueryEngine()
140144
var IDs []*token2.ID

integration/token/fungible/views/history.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"time"
1212

1313
"github.com/hyperledger-labs/fabric-smart-client/pkg/utils/errors"
14+
"github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/assert"
1415
"github.com/hyperledger-labs/fabric-smart-client/platform/common/utils/collections/iterators"
1516
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/driver/sql/query/pagination"
1617
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
@@ -112,7 +113,9 @@ type ListAcceptedTransactionsView struct {
112113

113114
func (p *ListAcceptedTransactionsView) Call(context view.Context) (interface{}, error) {
114115
// Get query executor
115-
owner := ttx.NewOwner(context, token.GetManagementService(context, ServiceOpts(p.TMSID)...))
116+
tms, err := token.GetManagementService(context, ServiceOpts(p.TMSID)...)
117+
assert.NoError(err, "failed getting management service")
118+
owner := ttx.NewOwner(context, tms)
116119
it, err := owner.Transactions(context.Context(), ttxdb.QueryTransactionsParams{
117120
SenderWallet: p.SenderWallet,
118121
RecipientWallet: p.RecipientWallet,
@@ -150,7 +153,9 @@ type TransactionInfoView struct {
150153
}
151154

152155
func (t *TransactionInfoView) Call(context view.Context) (interface{}, error) {
153-
owner := ttx.NewOwner(context, token.GetManagementService(context, ServiceOpts(t.TMSID)...))
156+
tms, err := token.GetManagementService(context, ServiceOpts(t.TMSID)...)
157+
assert.NoError(err, "failed getting management service")
158+
owner := ttx.NewOwner(context, tms)
154159
info, err := owner.TransactionInfo(context.Context(), t.TransactionID)
155160
if err != nil {
156161
return nil, errors.Wrapf(err, "failed getting transaction info")

integration/token/fungible/views/info.go

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ type GetEnrollmentIDView struct {
3939
}
4040

4141
func (r *GetEnrollmentIDView) Call(context view.Context) (interface{}, error) {
42-
tms := token.GetManagementService(context, ServiceOpts(r.TMSID)...)
42+
tms, err := token.GetManagementService(context, ServiceOpts(r.TMSID)...)
43+
assert.NoError(err, "failed getting management service")
4344
assert.NotNil(tms, "tms not found [%s]", r.TMSID)
4445
w := tms.WalletManager().OwnerWallet(context.Context(), r.Wallet)
4546
assert.NotNil(w, "wallet not found [%s]", r.Wallet)
@@ -65,9 +66,9 @@ type CheckPublicParamsMatchView struct {
6566
}
6667

6768
func (p *CheckPublicParamsMatchView) Call(context view.Context) (interface{}, error) {
68-
tms := token.GetManagementService(context, ServiceOpts(p.TMSID)...)
69+
tms, err := token.GetManagementService(context, ServiceOpts(p.TMSID)...)
70+
assert.NoError(err, "failed to lookup TMS [%s]", p.TMSID)
6971
assert.NotNil(tms, "failed to get TMS")
70-
7172
assert.NotNil(tms.PublicParametersManager().PublicParameters(), "failed to validate local public parameters")
7273

7374
fetchedPPRaw, err := network.GetInstance(context, tms.Network(), tms.Channel()).FetchPublicParameters(tms.Namespace())
@@ -114,7 +115,8 @@ type WhoDeletedTokenView struct {
114115
}
115116

116117
func (w *WhoDeletedTokenView) Call(context view.Context) (interface{}, error) {
117-
tms := token.GetManagementService(context, token.WithTMSID(w.TMSID))
118+
tms, err := token.GetManagementService(context, token.WithTMSID(w.TMSID))
119+
assert.NoError(err, "failed to lookup TMS [%s]", w.TMSID)
118120
assert.NotNil(tms, "failed to get TMS [%s]", w.TMSID)
119121
who, deleted, err := tms.Vault().NewQueryEngine().WhoDeletedTokens(context.Context(), w.TokenIDs...)
120122
assert.NoError(err, "failed to lookup who deleted tokens")
@@ -143,7 +145,8 @@ type GetPublicParamsView struct {
143145
}
144146

145147
func (p *GetPublicParamsView) Call(context view.Context) (interface{}, error) {
146-
tms := token.GetManagementService(context, token.WithTMSID(p.TMSID))
148+
tms, err := token.GetManagementService(context, token.WithTMSID(p.TMSID))
149+
assert.NoError(err, "failed to lookup TMS [%s]", p.TMSID)
147150
assert.NotNil(tms, "failed to get TMS")
148151
return GetTMSPublicParams(tms), nil
149152
}
@@ -172,7 +175,8 @@ type UpdatePublicParamsView struct {
172175
}
173176

174177
func (p *UpdatePublicParamsView) Call(context view.Context) (interface{}, error) {
175-
tms := token.GetManagementService(context, ServiceOpts(&p.TMSID)...)
178+
tms, err := token.GetManagementService(context, ServiceOpts(&p.TMSID)...)
179+
assert.NoError(err, "failed to lookup TMS [%s]", p.TMSID)
176180
assert.NotNil(tms, "failed to get TMS")
177181
assert.NotNil(tms.PublicParametersManager().PublicParameters(), "failed to validate local public parameters")
178182
fetchedPPRaw, err := network.GetInstance(context, tms.Network(), tms.Channel()).FetchPublicParameters(tms.Namespace())
@@ -201,7 +205,8 @@ type DoesWalletExistView struct {
201205
}
202206

203207
func (p *DoesWalletExistView) Call(context view.Context) (interface{}, error) {
204-
tms := token.GetManagementService(context, token.WithTMSID(p.TMSID))
208+
tms, err := token.GetManagementService(context, token.WithTMSID(p.TMSID))
209+
assert.NoError(err, "failed to lookup TMS [%s]", p.TMSID)
205210
assert.NotNil(tms, "failed to get TMS")
206211
switch p.WalletType {
207212
case OwnerWallet:
@@ -239,7 +244,10 @@ type TxStatusView struct {
239244
}
240245

241246
func (p *TxStatusView) Call(context view.Context) (interface{}, error) {
242-
owner := ttx.NewOwner(context, token.GetManagementService(context, token.WithTMSID(p.TMSID)))
247+
tms, err := token.GetManagementService(context, token.WithTMSID(p.TMSID))
248+
assert.NoError(err, "failed to lookup TMS [%s]", p.TMSID)
249+
assert.NotNil(tms, "failed to get TMS [%s]", p.TMSID)
250+
owner := ttx.NewOwner(context, tms)
243251
vc, message, err := owner.GetStatus(context.Context(), p.TxID)
244252
assert.NoError(err, "failed to retrieve status of [%s]", p.TxID)
245253
return &TxStatusResponse{

integration/token/fungible/views/issue.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ func (p *IssueCashView) Call(context view.Context) (interface{}, error) {
5555
assert.NoError(err, "failed getting recipient identity")
5656

5757
// match recipient EID
58-
eID, err := token.GetManagementService(context, ServiceOpts(p.TMSID)...).WalletManager().GetEnrollmentID(context.Context(), recipient)
58+
tms, err := token.GetManagementService(context, ServiceOpts(p.TMSID)...)
59+
assert.NoError(err)
60+
eID, err := tms.WalletManager().GetEnrollmentID(context.Context(), recipient)
5961
assert.NoError(err, "failed to get enrollment id for recipient [%s]", recipient)
6062
assert.True(strings.HasPrefix(eID, p.RecipientEID), "recipient EID [%s] does not match the expected one [%s]", eID, p.RecipientEID)
6163

@@ -67,7 +69,7 @@ func (p *IssueCashView) Call(context view.Context) (interface{}, error) {
6769
assert.NotNil(wallet, "issuer wallet [%s] not found", p.IssuerWallet)
6870
if p.TokenType == "USD" {
6971
// Retrieve the list of issued tokens using a specific wallet for a given token type.
70-
precision := token.GetManagementService(context, ServiceOpts(p.TMSID)...).PublicParametersManager().PublicParameters().Precision()
72+
precision := tms.PublicParametersManager().PublicParameters().Precision()
7173

7274
history, err := wallet.ListIssuedTokens(context.Context(), ttx.WithType(p.TokenType))
7375
assert.NoError(err, "failed getting history for token type [%s]", p.TokenType)

integration/token/fungible/views/list.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ func (i *ListUnspentTokensViewFactory) NewView(in []byte) (view.View, error) {
5252
type ListOwnerWalletIDsView struct{}
5353

5454
func (p *ListOwnerWalletIDsView) Call(context view.Context) (interface{}, error) {
55-
return token.GetManagementService(context).WalletManager().OwnerWalletIDs(context.Context())
55+
tms, err := token.GetManagementService(context)
56+
assert.NoError(err)
57+
return tms.WalletManager().OwnerWalletIDs(context.Context())
5658
}
5759

5860
type ListOwnerWalletIDsViewFactory struct{}

integration/token/fungible/views/owner.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ type SetTransactionOwnerStatusView struct {
2727
}
2828

2929
func (r *SetTransactionOwnerStatusView) Call(context view.Context) (interface{}, error) {
30-
owner := ttx.NewOwner(context, token.GetManagementService(context))
30+
tms, err := token.GetManagementService(context)
31+
assert.NoError(err, "failed getting management service")
32+
owner := ttx.NewOwner(context, tms)
3133
assert.NoError(owner.SetStatus(context.Context(), r.TxID, r.Status, r.Message), "failed to set status of [%s] to [%d]", r.TxID, r.Status)
3234

3335
return nil, nil

0 commit comments

Comments
 (0)