Skip to content

Commit bdfdb8d

Browse files
authored
deprecate balance queries (#421)
Signed-off-by: Hagar Meir <hagar.meir@ibm.com>
1 parent 99302ea commit bdfdb8d

File tree

13 files changed

+118
-175
lines changed

13 files changed

+118
-175
lines changed

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ require (
9696
github.com/hashicorp/golang-lru v0.5.4 // indirect
9797
github.com/hashicorp/hcl v1.0.0 // indirect
9898
github.com/huin/goupnp v1.0.0 // indirect
99+
github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go v1.2.3-alpha.1 // indirect
100+
github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk v1.2.3-alpha.1.0.20210812140206-37f430515b8c // indirect
99101
github.com/hyperledger/fabric-amcl v0.0.0-20210603140002-2670f91851c8 // indirect
100102
github.com/hyperledger/fabric-config v0.1.0 // indirect
101103
github.com/hyperledger/fabric-lib-go v1.0.0 // indirect

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -808,6 +808,10 @@ github.com/hyperledger-labs/orion-sdk-go v0.2.5 h1:HFGRTuMZgzo9EtyJeFAhVSlbrj6x3
808808
github.com/hyperledger-labs/orion-sdk-go v0.2.5/go.mod h1:At8hiFATfkDXQ4AFLVbaTiC9GDhVDo8aN/supb1KBb4=
809809
github.com/hyperledger-labs/orion-server v0.2.5 h1:aFudmB9SAnsT5v8jhazkuszEu0pdJNFqaYZF2GpvAuI=
810810
github.com/hyperledger-labs/orion-server v0.2.5/go.mod h1:8kXVAU1wvFYGbFL1qmXwMi2i8gKV2smOdp1F1kq0HMk=
811+
github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go v1.2.3-alpha.1 h1:vBvo0PNm82ht7wpBjlYY4ZHxV3YprCfdVd3T4JG9vBw=
812+
github.com/hyperledger-labs/weaver-dlt-interoperability/common/protos-go v1.2.3-alpha.1/go.mod h1:POCGO/RK9YDfgdhuyqjoD9tRNtWfK7Rh5AYYmsb1Chc=
813+
github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk v1.2.3-alpha.1.0.20210812140206-37f430515b8c h1:pKr8VnHlduEgdInwLWykYAw+lpUizjQJaJ8I5fVoRUo=
814+
github.com/hyperledger-labs/weaver-dlt-interoperability/sdks/fabric/go-sdk v1.2.3-alpha.1.0.20210812140206-37f430515b8c/go.mod h1:si2XAWZclHXC359OyYMpNHfonf2P7P2nzABdCA8mPqs=
811815
github.com/hyperledger/fabric v1.4.0-rc1.0.20201118191903-ec81f3e74fa1/go.mod h1:ppiyrJ+sUSk/rAX9cTd8xwAwSQ7chEbOQMAqtQ3pLG4=
812816
github.com/hyperledger/fabric v1.4.0-rc1.0.20220808214918-83596078d0c3 h1:jyvu6MbYQFamEnJs9+sptdgtuJcuTlE1plZEMSun3OQ=
813817
github.com/hyperledger/fabric v1.4.0-rc1.0.20220808214918-83596078d0c3/go.mod h1:owdt10WC1/pKP9Qgayq7Abj/P4I7yPXlJ3fNTCUk4eI=

integration/token/dvp/tests.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
views2 "github.com/hyperledger-labs/fabric-token-sdk/integration/token/dvp/views"
1616
"github.com/hyperledger-labs/fabric-token-sdk/integration/token/dvp/views/cash"
1717
"github.com/hyperledger-labs/fabric-token-sdk/integration/token/dvp/views/house"
18-
"github.com/hyperledger-labs/fabric-token-sdk/token/services/query"
1918
token2 "github.com/hyperledger-labs/fabric-token-sdk/token/token"
2019
. "github.com/onsi/gomega"
2120
)
@@ -77,11 +76,15 @@ func sellHouse(network *integration.Infrastructure, houseID string) {
7776
}
7877

7978
func checkBalance(network *integration.Infrastructure, id string, wallet string, typ string, expected uint64) {
80-
b, err := query.NewClient(network.Client(id)).WalletBalance(wallet, typ)
79+
res, err := network.Client(id).CallView("balance", common.JSONMarshall(&views2.BalanceQuery{
80+
Wallet: wallet,
81+
Type: typ,
82+
}))
8183
Expect(err).NotTo(HaveOccurred())
82-
Expect(len(b)).To(BeEquivalentTo(1))
83-
Expect(b[0].Type).To(BeEquivalentTo(typ))
84-
q, err := token2.ToQuantity(b[0].Quantity, 64)
84+
b := &views2.Balance{}
85+
common.JSONUnmarshal(res.([]byte), b)
86+
Expect(b.Type).To(BeEquivalentTo(typ))
87+
q, err := token2.ToQuantity(b.Quantity, 64)
8588
Expect(err).NotTo(HaveOccurred())
8689
expectedQ := token2.NewQuantityFromUInt64(expected)
8790
Expect(expectedQ.Cmp(q)).To(BeEquivalentTo(0), "[%s]!=[%s]", expected, q)

integration/token/dvp/topology.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ func Topology(tokenSDKDriver string) []api.Topology {
7373
seller.RegisterResponder(&house.AcceptHouseView{}, &house.IssueHouseView{})
7474
seller.RegisterViewFactory("sell", &views2.SellHouseViewFactory{})
7575
seller.RegisterViewFactory("queryHouse", &house.GetHouseViewFactory{})
76+
seller.RegisterViewFactory("balance", &views2.BalanceViewFactory{})
7677

7778
buyer := fscTopology.AddNodeByName("buyer").AddOptions(
7879
fabric.WithOrganization("Org2"),
@@ -82,6 +83,7 @@ func Topology(tokenSDKDriver string) []api.Topology {
8283
buyer.RegisterResponder(&cash.AcceptCashView{}, &cash.IssueCashView{})
8384
buyer.RegisterResponder(&views2.BuyHouseView{}, &views2.SellHouseView{})
8485
buyer.RegisterViewFactory("queryHouse", &house.GetHouseViewFactory{})
86+
buyer.RegisterViewFactory("balance", &views2.BalanceViewFactory{})
8587

8688
tokenTopology := token.NewTopology()
8789
tokenTopology.SetDefaultSDK(fscTopology)
Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Copyright IBM Corp. All Rights Reserved.
44
SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
package query
7+
package views
88

99
import (
1010
"encoding/json"
@@ -64,59 +64,3 @@ func (g *BalanceViewFactory) NewView(in []byte) (view.View, error) {
6464
}
6565
return f, nil
6666
}
67-
68-
type AllMyBalances struct {
69-
Balances []Balance
70-
}
71-
72-
type AllBalanceQuery struct {
73-
TMSID token.TMSID
74-
Wallet string
75-
}
76-
77-
type AllMyBalanceView struct {
78-
*AllBalanceQuery
79-
}
80-
81-
func (b *AllMyBalanceView) Call(context view.Context) (interface{}, error) {
82-
tms := token.GetManagementService(context, token.WithTMSID(b.TMSID))
83-
wallet := tms.WalletManager().OwnerWallet(b.Wallet)
84-
if wallet == nil {
85-
return nil, fmt.Errorf("wallet %s not found", b.Wallet)
86-
}
87-
88-
balances := make(map[string]token2.Quantity)
89-
unspentTokens, err := wallet.ListUnspentTokens()
90-
if err != nil {
91-
return nil, err
92-
}
93-
precision := tms.PublicParametersManager().Precision()
94-
for _, tok := range unspentTokens.Tokens {
95-
fmt.Printf("\n am I here? \n")
96-
_, exists := balances[tok.Type]
97-
if !exists {
98-
balances[tok.Type] = token2.NewZeroQuantity(precision)
99-
}
100-
q, err := token2.ToQuantity(tok.Quantity, precision)
101-
if err != nil {
102-
return nil, err
103-
}
104-
balances[tok.Type] = balances[tok.Type].Add(q)
105-
}
106-
var mybalance []Balance
107-
for k := range balances {
108-
mybalance = append(mybalance, Balance{Type: k, Quantity: balances[k].Decimal()})
109-
}
110-
111-
return AllMyBalances{mybalance}, nil
112-
}
113-
114-
type AllMyBalanceViewFactory struct{}
115-
116-
func (g *AllMyBalanceViewFactory) NewView(in []byte) (view.View, error) {
117-
f := &AllMyBalanceView{AllBalanceQuery: &AllBalanceQuery{}}
118-
if err := json.Unmarshal(in, f.AllBalanceQuery); err != nil {
119-
return nil, err
120-
}
121-
return f, nil
122-
}

integration/token/fungible/dloghsm/topology.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
5555
issuer.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
5656
issuer.RegisterViewFactory("historyIssuedToken", &views.ListIssuedTokensViewFactory{})
5757
issuer.RegisterViewFactory("issuedTokenQuery", &views.ListIssuedTokensViewFactory{})
58+
issuer.RegisterViewFactory("balance", &views.BalanceViewFactory{})
5859
issuer.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
5960
issuer.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
6061
issuer.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
@@ -85,6 +86,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
8586
auditor.RegisterViewFactory("historyAuditing", &views.ListAuditedTransactionsViewFactory{})
8687
auditor.RegisterViewFactory("holding", &views.CurrentHoldingViewFactory{})
8788
auditor.RegisterViewFactory("spending", &views.CurrentSpendingViewFactory{})
89+
auditor.RegisterViewFactory("balance", &views.BalanceViewFactory{})
8890
auditor.RegisterViewFactory("CheckPublicParamsMatch", &views.CheckPublicParamsMatchViewFactory{})
8991
auditor.RegisterViewFactory("SetTransactionAuditStatus", &views.SetTransactionAuditStatusViewFactory{})
9092
auditor.RegisterViewFactory("CheckTTXDB", &views.CheckTTXDBViewFactory{})
@@ -105,6 +107,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
105107
alice.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
106108
alice.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
107109
alice.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
110+
alice.RegisterViewFactory("balance", &views.BalanceViewFactory{})
108111
alice.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
109112
alice.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
110113
alice.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
@@ -131,6 +134,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
131134
bob.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
132135
bob.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
133136
bob.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
137+
bob.RegisterViewFactory("balance", &views.BalanceViewFactory{})
134138
bob.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
135139
bob.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
136140
bob.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
@@ -157,6 +161,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
157161
charlie.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
158162
charlie.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
159163
charlie.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
164+
charlie.RegisterViewFactory("balance", &views.BalanceViewFactory{})
160165
charlie.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
161166
charlie.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
162167
charlie.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
@@ -180,6 +185,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
180185
manager.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
181186
manager.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
182187
manager.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
188+
manager.RegisterViewFactory("balance", &views.BalanceViewFactory{})
183189
manager.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
184190
manager.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
185191
manager.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})

integration/token/fungible/support.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"github.com/hyperledger-labs/fabric-smart-client/integration/nwo/fabric"
1919
"github.com/hyperledger-labs/fabric-smart-client/integration/nwo/orion"
2020
"github.com/hyperledger-labs/fabric-token-sdk/integration/token/fungible/views"
21-
"github.com/hyperledger-labs/fabric-token-sdk/token/services/query"
2221
"github.com/hyperledger-labs/fabric-token-sdk/token/services/ttx"
2322
"github.com/hyperledger-labs/fabric-token-sdk/token/services/ttxdb"
2423
"github.com/hyperledger-labs/fabric-token-sdk/token/services/ttxdb/driver"
@@ -124,12 +123,15 @@ func CheckBalanceAndHolding(network *integration.Infrastructure, id string, wall
124123
}
125124

126125
func CheckBalance(network *integration.Infrastructure, id string, wallet string, typ string, expected uint64) {
127-
// check balance
128-
b, err := query.NewClient(network.Client(id)).WalletBalance(wallet, typ)
126+
res, err := network.Client(id).CallView("balance", common.JSONMarshall(&views.BalanceQuery{
127+
Wallet: wallet,
128+
Type: typ,
129+
}))
129130
Expect(err).NotTo(HaveOccurred())
130-
Expect(len(b)).To(BeEquivalentTo(1))
131-
Expect(b[0].Type).To(BeEquivalentTo(typ))
132-
q, err := token2.ToQuantity(b[0].Quantity, 64)
131+
b := &views.Balance{}
132+
common.JSONUnmarshal(res.([]byte), b)
133+
Expect(b.Type).To(BeEquivalentTo(typ))
134+
q, err := token2.ToQuantity(b.Quantity, 64)
133135
Expect(err).NotTo(HaveOccurred())
134136
expectedQ := token2.NewQuantityFromUInt64(expected)
135137
Expect(expectedQ.Cmp(q)).To(BeEquivalentTo(0), "[%s]!=[%s]", expected, q)

integration/token/fungible/topology.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
5454
issuer.RegisterViewFactory("transfer", &views.TransferViewFactory{})
5555
issuer.RegisterViewFactory("transferWithSelector", &views.TransferWithSelectorViewFactory{})
5656
issuer.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
57+
issuer.RegisterViewFactory("balance", &views.BalanceViewFactory{})
5758
issuer.RegisterViewFactory("historyIssuedToken", &views.ListIssuedTokensViewFactory{})
5859
issuer.RegisterViewFactory("issuedTokenQuery", &views.ListIssuedTokensViewFactory{})
5960
issuer.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
@@ -86,6 +87,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
8687
auditor.RegisterViewFactory("historyAuditing", &views.ListAuditedTransactionsViewFactory{})
8788
auditor.RegisterViewFactory("holding", &views.CurrentHoldingViewFactory{})
8889
auditor.RegisterViewFactory("spending", &views.CurrentSpendingViewFactory{})
90+
auditor.RegisterViewFactory("balance", &views.BalanceViewFactory{})
8991
auditor.RegisterViewFactory("CheckPublicParamsMatch", &views.CheckPublicParamsMatchViewFactory{})
9092
auditor.RegisterViewFactory("SetTransactionAuditStatus", &views.SetTransactionAuditStatusViewFactory{})
9193
auditor.RegisterViewFactory("CheckTTXDB", &views.CheckTTXDBViewFactory{})
@@ -106,6 +108,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
106108
alice.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
107109
alice.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
108110
alice.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
111+
alice.RegisterViewFactory("balance", &views.BalanceViewFactory{})
109112
alice.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
110113
alice.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
111114
alice.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
@@ -132,6 +135,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
132135
bob.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
133136
bob.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
134137
bob.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
138+
bob.RegisterViewFactory("balance", &views.BalanceViewFactory{})
135139
bob.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
136140
bob.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
137141
bob.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
@@ -158,6 +162,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
158162
charlie.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
159163
charlie.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
160164
charlie.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
165+
charlie.RegisterViewFactory("balance", &views.BalanceViewFactory{})
161166
charlie.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
162167
charlie.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
163168
charlie.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
@@ -181,6 +186,7 @@ func Topology(backend string, tokenSDKDriver string, auditorAsIssuer bool) []api
181186
manager.RegisterViewFactory("swap", &views.SwapInitiatorViewFactory{})
182187
manager.RegisterViewFactory("redeem", &views.RedeemViewFactory{})
183188
manager.RegisterViewFactory("history", &views.ListUnspentTokensViewFactory{})
189+
manager.RegisterViewFactory("balance", &views.BalanceViewFactory{})
184190
manager.RegisterViewFactory("GetEnrollmentID", &views.GetEnrollmentIDViewFactory{})
185191
manager.RegisterViewFactory("acceptedTransactionHistory", &views.ListAcceptedTransactionsViewFactory{})
186192
manager.RegisterViewFactory("transactionInfo", &views.TransactionInfoViewFactory{})
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
Copyright IBM Corp. All Rights Reserved.
3+
4+
SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
package views
8+
9+
import (
10+
"encoding/json"
11+
"fmt"
12+
13+
"github.com/hyperledger-labs/fabric-smart-client/platform/view/view"
14+
"github.com/hyperledger-labs/fabric-token-sdk/token"
15+
token2 "github.com/hyperledger-labs/fabric-token-sdk/token/token"
16+
)
17+
18+
type BalanceQuery struct {
19+
TMSID token.TMSID
20+
Wallet string
21+
Type string
22+
}
23+
24+
type Balance struct {
25+
Type string
26+
Quantity string
27+
}
28+
29+
type BalanceView struct {
30+
*BalanceQuery
31+
}
32+
33+
func (b *BalanceView) Call(context view.Context) (interface{}, error) {
34+
tms := token.GetManagementService(context, token.WithTMSID(b.TMSID))
35+
wallet := tms.WalletManager().OwnerWallet(b.Wallet)
36+
if wallet == nil {
37+
return nil, fmt.Errorf("wallet %s not found", b.Wallet)
38+
}
39+
40+
unspentTokens, err := wallet.ListUnspentTokens(token.WithType(b.Type))
41+
if err != nil {
42+
return nil, err
43+
}
44+
45+
precision := tms.PublicParametersManager().Precision()
46+
sum := token2.NewZeroQuantity(precision)
47+
for _, tok := range unspentTokens.Tokens {
48+
q, err := token2.ToQuantity(tok.Quantity, precision)
49+
if err != nil {
50+
return nil, err
51+
}
52+
sum = sum.Add(q)
53+
}
54+
55+
return Balance{Quantity: sum.Decimal(), Type: b.Type}, nil
56+
}
57+
58+
type BalanceViewFactory struct{}
59+
60+
func (g *BalanceViewFactory) NewView(in []byte) (view.View, error) {
61+
f := &BalanceView{BalanceQuery: &BalanceQuery{}}
62+
if err := json.Unmarshal(in, f.BalanceQuery); err != nil {
63+
return nil, err
64+
}
65+
return f, nil
66+
}

integration/token/interop/support.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
views2 "github.com/hyperledger-labs/fabric-token-sdk/integration/token/interop/views"
2121
"github.com/hyperledger-labs/fabric-token-sdk/integration/token/interop/views/htlc"
2222
"github.com/hyperledger-labs/fabric-token-sdk/token"
23-
"github.com/hyperledger-labs/fabric-token-sdk/token/services/query"
2423
token2 "github.com/hyperledger-labs/fabric-token-sdk/token/token"
2524
. "github.com/onsi/gomega"
2625
)
@@ -85,11 +84,22 @@ func ListIssuerHistory(network *integration.Infrastructure, wallet string, typ s
8584
}
8685

8786
func CheckBalance(network *integration.Infrastructure, id string, wallet string, typ string, expected uint64, opts ...token.ServiceOption) {
88-
b, err := query.NewClient(network.Client(id)).WalletBalance(wallet, typ, opts...)
87+
options, err := token.CompileServiceOptions(opts...)
88+
Expect(err).NotTo(HaveOccurred())
89+
res, err := network.Client(id).CallView("balance", common.JSONMarshall(&views2.Balance{
90+
Wallet: wallet,
91+
Type: typ,
92+
TMSID: token.TMSID{
93+
Network: options.Network,
94+
Channel: options.Channel,
95+
Namespace: options.Namespace,
96+
},
97+
}))
8998
Expect(err).NotTo(HaveOccurred())
90-
Expect(len(b)).To(BeEquivalentTo(1))
91-
Expect(b[0].Type).To(BeEquivalentTo(typ))
92-
q, err := token2.ToQuantity(b[0].Quantity, 64)
99+
b := &views2.BalanceResult{}
100+
common.JSONUnmarshal(res.([]byte), b)
101+
Expect(b.Type).To(BeEquivalentTo(typ))
102+
q, err := token2.ToQuantity(b.Quantity, 64)
93103
Expect(err).NotTo(HaveOccurred())
94104
expectedQ := token2.NewQuantityFromUInt64(expected)
95105
Expect(expectedQ.Cmp(q)).To(BeEquivalentTo(0), "[%s]!=[%s]", expected, q)

0 commit comments

Comments
 (0)