@@ -118,7 +118,9 @@ func testReIssuance(t *harnessTest) {
118118
119119 reissuedAssets [0 ].Asset .Amount = normalGroupMintHalf
120120 reissuedAssets [0 ].Asset .GroupKey = normalGroupKey
121+ reissuedAssets [0 ].Asset .GroupedAsset = true
121122 reissuedAssets [1 ].Asset .GroupKey = collectGroupKey
123+ reissuedAssets [1 ].Asset .GroupedAsset = true
122124
123125 normalReissueGen := MintAssetsConfirmBatch (
124126 t .t , miner , t .tapd ,
@@ -241,7 +243,7 @@ func testReIssuanceAmountOverflow(t *harnessTest) {
241243 assetIssueReqs := CopyRequests (issuableAssets )
242244 assetIssueReq := assetIssueReqs [0 ]
243245
244- assetIssueReq .EnableEmission = true
246+ assetIssueReq .Asset . NewGroupedAsset = true
245247 assetIssueReq .Asset .Amount = math .MaxUint64
246248
247249 assets := MintAssetsConfirmBatch (
@@ -262,7 +264,7 @@ func testReIssuanceAmountOverflow(t *harnessTest) {
262264 // Reissue an amount which is minimally sufficient to lead to an
263265 // overflow error.
264266 assetIssueReq .Asset .Amount = 1
265- assetIssueReq .EnableEmission = false
267+ assetIssueReq .Asset . GroupedAsset = true
266268 assetIssueReq .Asset .GroupKey = groupKey
267269
268270 ctxb := context .Background ()
@@ -292,16 +294,45 @@ func testMintWithGroupKeyErrors(t *harnessTest) {
292294 // Now, create a minting request to try and reissue into the group
293295 // created during minting.
294296 reissueRequest := CopyRequest (simpleAssets [0 ])
297+
298+ // An asset cannot be both a new grouped asset and grouped asset.
299+ reissueRequest .Asset .NewGroupedAsset = true
300+ reissueRequest .Asset .GroupedAsset = true
301+ _ , err := t .tapd .MintAsset (ctxb , reissueRequest )
302+ require .ErrorContains (t .t , err , "cannot set both new grouped asset" )
303+
304+ // A grouped asset must specify a specific group.
305+ reissueRequest .Asset .NewGroupedAsset = false
306+ reissueRequest .Asset .GroupedAsset = true
307+ _ , err = t .tapd .MintAsset (ctxb , reissueRequest )
308+ require .ErrorContains (t .t , err , "must specify a group key or" )
309+
310+ // An asset cannot specify a group without being a grouped asset.
311+ reissueRequest .Asset .NewGroupedAsset = false
312+ reissueRequest .Asset .GroupedAsset = false
295313 reissueRequest .Asset .GroupKey = collectGroupKey
314+ _ , err = t .tapd .MintAsset (ctxb , reissueRequest )
315+ require .ErrorContains (t .t , err , "must set grouped asset to mint" )
296316
297- // A request must not have the emission flag set if a group key is given.
298- reissueRequest .EnableEmission = true
317+ // A grouped asset cannot specify both a group key and group anchor.
318+ reissueRequest .Asset .NewGroupedAsset = false
319+ reissueRequest .Asset .GroupedAsset = true
320+ reissueRequest .Asset .GroupKey = collectGroupKey
321+ reissueRequest .Asset .GroupAnchor = collectGenInfo .Name
322+ _ , err = t .tapd .MintAsset (ctxb , reissueRequest )
323+ require .ErrorContains (t .t , err , "cannot specify both a group key" )
299324
300- _ , err := t .tapd .MintAsset (ctxb , reissueRequest )
301- require .ErrorContains (t .t , err , "must disable emission" )
325+ // An asset cannot be a new grouped asset and reference a specific
326+ // group.
327+ reissueRequest .Asset .NewGroupedAsset = true
328+ reissueRequest .Asset .GroupedAsset = false
329+ _ , err = t .tapd .MintAsset (ctxb , reissueRequest )
330+ require .ErrorContains (t .t , err , "must disable emission to specify" )
302331
303- // Restore the emission flag.
304- reissueRequest .EnableEmission = false
332+ // Restore the correct flags for a new grouped asset.
333+ reissueRequest .Asset .NewGroupedAsset = false
334+ reissueRequest .Asset .GroupedAsset = true
335+ reissueRequest .Asset .GroupAnchor = ""
305336
306337 // A given group key must be parseable, so a group key with an invalid
307338 // parity byte should be rejected.
0 commit comments