OSDN Git Service

wip: add asset definition comparison
authorHAOYUatHZ <haoyu@protonmail.com>
Tue, 21 May 2019 07:50:58 +0000 (15:50 +0800)
committerHAOYUatHZ <haoyu@protonmail.com>
Tue, 21 May 2019 07:50:58 +0000 (15:50 +0800)
account/builder.go

index f59cfbd..3586b05 100644 (file)
@@ -79,7 +79,16 @@ func (a *crossInAction) Build(ctx context.Context, b *txbuilder.TemplateBuilder)
                return errors.New("asset definition is not in valid json format")
        }
        // TODO: check duplicate
-       a.accounts.assetReg.GetAsset(a.AssetId.String())
+       if preAsset, _ := a.accounts.assetReg.GetAsset(a.AssetId.String()); preAsset != nil {
+               preRawDefinition, _ := asset.SerializeAssetDef(a.AssetDefinition)
+               if err != nil {
+                       return asset.ErrSerializing
+               }
+
+               if !testutil.DeepEqual(preRawDefinition, rawDefinition) {
+                       return errors.New("asset definition mismatch with previous definition")
+               }
+       }
 
        // txin := types.NewIssuanceInput(nonce[:], a.Amount, asset.IssuanceProgram, nil, asset.RawDefinitionByte)
        // tplIn := &txbuilder.SigningInstruction{}