From: HAOYUatHZ Date: Thu, 23 May 2019 01:58:42 +0000 (+0800) Subject: fix https://github.com/Bytom/vapor/pull/77#discussion_r286744128 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=22af6f49e7def0157bfafc935b49912fa94a8000;p=bytom%2Fvapor.git fix https://github.com/Bytom/vapor/pull/77#discussion_r286744128 --- diff --git a/asset/builder.go b/asset/builder.go index 21aa3c86..4d1c6f2c 100644 --- a/asset/builder.go +++ b/asset/builder.go @@ -26,14 +26,14 @@ func (r *Registry) DecodeCrossInAction(data []byte) (txbuilder.Action, error) { type crossInAction struct { reg *Registry bc.AssetAmount - SourceID string `json:"source_id"` + SourceID bc.Hash `json:"source_id"` SourcePos uint64 `json:"source_pos"` AssetDefinition map[string]interface{} `json:"asset_definition"` } func (a *crossInAction) Build(ctx context.Context, builder *txbuilder.TemplateBuilder) error { var missing []string - if a.SourceID == "" { + if a.SourceID.IsZero() { missing = append(missing, "source_id") } if a.AssetId.IsZero() { @@ -75,14 +75,9 @@ func (a *crossInAction) Build(ctx context.Context, builder *txbuilder.TemplateBu a.reg.SaveExtAsset(asset) } - var sourceID bc.Hash - if err := sourceID.UnmarshalText([]byte(a.SourceID)); err != nil { - return errors.New("invalid sourceID format") - } - fed := federation.GetFederation() // arguments will be set when materializeWitnesses - txin := types.NewCrossChainInput(nil, sourceID, *a.AssetId, a.Amount, a.SourcePos, fed.ControlProgram, asset.RawDefinitionByte) + txin := types.NewCrossChainInput(nil, a.SourceID, *a.AssetId, a.Amount, a.SourcePos, fed.ControlProgram, asset.RawDefinitionByte) log.Info("cross-chain input action built") builder.RestrictMinTime(time.Now()) tplIn := &txbuilder.SigningInstruction{}