Skip to content

Commit fb3db91

Browse files
committed
supplycommit: use provided asset ID in metadata lookup if set
If an asset ID is supplied, use it when fetching asset metadata in FetchLatestAssetMetadata.
1 parent ad3e985 commit fb3db91

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

universe/supplycommit/env.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,24 @@ func FetchLatestAssetMetadata(ctx context.Context, lookup AssetLookup,
268268

269269
var zero proof.MetaReveal
270270

271+
// If the asset specifier has an asset ID, then we'll use that to
272+
// fetch the asset metadata.
273+
if assetSpec.HasId() {
274+
assetID, err := assetSpec.UnwrapIdOrErr()
275+
if err != nil {
276+
return zero, err
277+
}
278+
279+
metaReveal, err := lookup.FetchAssetMetaForAsset(ctx, assetID)
280+
if err != nil {
281+
return zero, fmt.Errorf("faild to fetch asset meta: %w",
282+
err)
283+
}
284+
285+
return *metaReveal, nil
286+
}
287+
288+
// Otherwise, we'll need to fetch the asset group using the group key.
271289
groupKey, err := assetSpec.UnwrapGroupKeyOrErr()
272290
if err != nil {
273291
return zero, err

universe/supplycommit/state_machine_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,11 +1339,16 @@ func TestSupplyCommitFinalizeStateTransitions(t *testing.T) {
13391339
},
13401340
assetSpec: assetIDSpec,
13411341
})
1342+
1343+
h.expectAssetLookup()
1344+
h.expectSupplySyncer()
1345+
h.expectApplyStateTransition()
1346+
13421347
h.start()
13431348
defer h.stopAndAssert()
13441349

1345-
expectedErr := errors.New("unable to fetch latest asset " +
1346-
"metadata: unable to unwrap asset group public key")
1350+
expectedErr := errors.New("group key must be specified for " +
1351+
"supply tree: unable to unwrap asset group public key")
13471352
h.expectFailure(expectedErr)
13481353

13491354
finalizeEvent := &FinalizeEvent{}

0 commit comments

Comments
 (0)