Skip to content

Commit cc203b1

Browse files
committed
rpcserver+taprpc: distinguish group anchor from non-grouped asset
1 parent 19fcda2 commit cc203b1

File tree

5 files changed

+449
-299
lines changed

5 files changed

+449
-299
lines changed

itest/assertions.go

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,27 +1255,31 @@ func AssertUniverseAssetStats(t *testing.T, node *tapdHarness,
12551255
require.Len(t, assetStats.AssetStats, len(assets))
12561256

12571257
for _, assetStat := range assetStats.AssetStats {
1258-
found := fn.Any(
1259-
assets, func(a *taprpc.Asset) bool {
1260-
groupKeyEqual := true
1261-
if a.AssetGroup != nil {
1262-
groupKeyEqual = bytes.Equal(
1263-
assetStat.GroupKey,
1264-
a.AssetGroup.TweakedGroupKey,
1265-
)
1266-
}
1258+
var statAsset *unirpc.AssetStatsAsset
1259+
if assetStat.GroupAnchor != nil {
1260+
statAsset = assetStat.GroupAnchor
1261+
} else {
1262+
statAsset = assetStat.Asset
1263+
}
12671264

1268-
return groupKeyEqual && bytes.Equal(
1269-
assetStat.Asset.AssetId,
1270-
a.AssetGenesis.AssetId,
1265+
found := fn.Any(assets, func(a *taprpc.Asset) bool {
1266+
groupKeyEqual := true
1267+
if a.AssetGroup != nil {
1268+
groupKeyEqual = bytes.Equal(
1269+
assetStat.GroupKey,
1270+
a.AssetGroup.TweakedGroupKey,
12711271
)
1272-
},
1273-
)
1272+
}
1273+
1274+
return groupKeyEqual && bytes.Equal(
1275+
statAsset.AssetId, a.AssetGenesis.AssetId,
1276+
)
1277+
})
12741278
require.True(t, found)
12751279

1276-
require.NotZero(t, assetStat.Asset.GenesisHeight)
1277-
require.NotZero(t, assetStat.Asset.GenesisTimestamp)
1278-
require.NotEmpty(t, assetStat.Asset.GenesisPoint)
1280+
require.NotZero(t, statAsset.GenesisHeight)
1281+
require.NotZero(t, statAsset.GenesisTimestamp)
1282+
require.NotEmpty(t, statAsset.GenesisPoint)
12791283
}
12801284

12811285
eventStats, err := node.QueryEvents(ctxb, &unirpc.QueryEventsRequest{})

rpcserver.go

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3492,25 +3492,32 @@ func (r *rpcServer) UniverseStats(ctx context.Context,
34923492

34933493
// marshalAssetSyncSnapshot maps a universe asset sync stat snapshot to the RPC
34943494
// counterpart.
3495-
func marshalAssetSyncSnapshot(
3495+
func (r *rpcServer) marshalAssetSyncSnapshot(ctx context.Context,
34963496
a universe.AssetSyncSnapshot) *unirpc.AssetStatsSnapshot {
34973497

3498-
var groupKey []byte
3499-
if a.GroupKey != nil {
3500-
groupKey = a.GroupKey.SerializeCompressed()
3498+
resp := &unirpc.AssetStatsSnapshot{
3499+
TotalSyncs: int64(a.TotalSyncs),
3500+
TotalProofs: int64(a.TotalProofs),
3501+
GroupSupply: int64(a.GroupSupply),
3502+
}
3503+
rpcAsset := &unirpc.AssetStatsAsset{
3504+
AssetId: a.AssetID[:],
3505+
GenesisPoint: a.GenesisPoint.String(),
3506+
AssetName: a.AssetName,
3507+
AssetType: taprpc.AssetType(a.AssetType),
3508+
TotalSupply: int64(a.TotalSupply),
3509+
GenesisHeight: int32(a.GenesisHeight),
3510+
GenesisTimestamp: r.getBlockTimestamp(ctx, a.GenesisHeight),
35013511
}
35023512

3503-
return &unirpc.AssetStatsSnapshot{
3504-
AssetId: a.AssetID[:],
3505-
GroupKey: groupKey,
3506-
GenesisPoint: a.GenesisPoint.String(),
3507-
AssetName: a.AssetName,
3508-
AssetType: taprpc.AssetType(a.AssetType),
3509-
TotalSupply: int64(a.TotalSupply),
3510-
GenesisHeight: int32(a.GenesisHeight),
3511-
TotalSyncs: int64(a.TotalSyncs),
3512-
TotalProofs: int64(a.TotalProofs),
3513+
if a.GroupKey != nil {
3514+
resp.GroupKey = a.GroupKey.SerializeCompressed()
3515+
resp.GroupAnchor = rpcAsset
3516+
} else {
3517+
resp.Asset = rpcAsset
35133518
}
3519+
3520+
return resp
35143521
}
35153522

35163523
// QueryAssetStats returns a set of statistics for a given set of assets.
@@ -3554,10 +3561,7 @@ func (r *rpcServer) QueryAssetStats(ctx context.Context,
35543561
),
35553562
}
35563563
for idx, snapshot := range assetStats.SyncStats {
3557-
resp.AssetStats[idx] = marshalAssetSyncSnapshot(snapshot)
3558-
resp.AssetStats[idx].GenesisTimestamp = r.getBlockTimestamp(
3559-
ctx, snapshot.GenesisHeight,
3560-
)
3564+
resp.AssetStats[idx] = r.marshalAssetSyncSnapshot(ctx, snapshot)
35613565
}
35623566

35633567
return resp, nil

0 commit comments

Comments
 (0)