OSDN Git Service

merge with dev
[bytom/bytom.git] / asset / asset.go
index 1696642..e8cdbcb 100644 (file)
@@ -272,8 +272,31 @@ func (reg *Registry) GetAliasByID(id string) string {
        return *asset.Alias
 }
 
+// GetAsset get asset by assetID
+func (reg *Registry) GetAsset(id string) (*Asset, error) {
+       asset := &Asset{}
+
+       if strings.Compare(id, DefaultNativeAsset.AssetID.String()) == 0 {
+               return DefaultNativeAsset, nil
+       }
+
+       if interAsset := reg.db.Get([]byte(assetPrefix + id)); interAsset != nil {
+               if err := json.Unmarshal(interAsset, asset); err != nil {
+                       return nil, err
+               }
+               return asset, nil
+       }
+
+       if extAsset := reg.db.Get([]byte(ExternalAssetPrefix + id)); extAsset != nil {
+               if err := json.Unmarshal(extAsset, asset); err != nil {
+                       return nil, err
+               }
+       }
+       return asset, nil
+}
+
 // ListAssets returns the accounts in the db
-func (reg *Registry) ListAssets(id string) ([]*Asset, error) {
+func (reg *Registry) ListAssets() ([]*Asset, error) {
        assets := []*Asset{DefaultNativeAsset}
        assetIter := reg.db.IteratorPrefix(assetPrefix)
        defer assetIter.Release()
@@ -285,6 +308,7 @@ func (reg *Registry) ListAssets(id string) ([]*Asset, error) {
                }
                assets = append(assets, asset)
        }
+
        return assets, nil
 }