X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=application%2Fmov%2Fmatch%2Fmatch.go;fp=application%2Fmov%2Fmatch%2Fmatch.go;h=4c0234f960dfb2413a45dbbb5a9bf7ae35de72a1;hb=679558482c8cc09c8d572b9ff3071242a344e36e;hp=9b1f81e1f3a025ae235a394d14ca4807bcb9d76a;hpb=bd597f3e442d8581f5ce92d00019eea7c17221f2;p=bytom%2Fvapor.git diff --git a/application/mov/match/match.go b/application/mov/match/match.go index 9b1f81e1..4c0234f9 100644 --- a/application/mov/match/match.go +++ b/application/mov/match/match.go @@ -271,11 +271,21 @@ func validateTradePairs(tradePairs []*common.TradePair) error { return errors.New("size of trade pairs at least 2") } + assetMap := make(map[string]bool) for _, tradePair := range tradePairs { + assetMap[tradePair.FromAssetID.String()] = true if *tradePair.FromAssetID == *tradePair.ToAssetID { return errors.New("from asset id can't equal to asset id") } } + + for _, tradePair := range tradePairs { + key := tradePair.ToAssetID.String() + if _, ok := assetMap[key]; !ok { + return errors.New("invalid trade pairs") + } + delete(assetMap, key) + } return nil }