OSDN Git Service

update GetAssetDefinition
[bytom/vapor.git] / database / wallet_store.go
index 92a46d0..cbc9434 100644 (file)
@@ -73,8 +73,9 @@ var (
 
 // errors
 var (
-       ErrFindAccount       = errors.New("Failed to find account")
-       errAccntTxIDNotFound = errors.New("account TXID not found")
+       // ErrFindAccount        = errors.New("Failed to find account")
+       errAccntTxIDNotFound  = errors.New("account TXID not found")
+       errGetAssetDefinition = errors.New("Failed to find asset definition")
 )
 
 func accountIndexKey(xpubs []chainkd.XPub) []byte {
@@ -190,8 +191,23 @@ func (store *WalletStore) CommitBatch() {
 }
 
 // GetAssetDefinition get asset definition by assetiD
-func (store *WalletStore) GetAssetDefinition(assetID *bc.AssetID) []byte {
-       return store.walletDB.Get(asset.ExtAssetKey(assetID))
+func (store *WalletStore) GetAssetDefinition(assetID *bc.AssetID) (*asset.Asset, error) {
+       definitionByte := store.walletDB.Get(asset.ExtAssetKey(assetID))
+       if definitionByte == nil {
+               return nil, errGetAssetDefinition
+       }
+       definitionMap := make(map[string]interface{})
+       if err := json.Unmarshal(definitionByte, &definitionMap); err != nil {
+               return nil, err
+       }
+       alias := assetID.String()
+       externalAsset := &asset.Asset{
+               AssetID:           *assetID,
+               Alias:             &alias,
+               DefinitionMap:     definitionMap,
+               RawDefinitionByte: definitionByte,
+       }
+       return externalAsset, nil
 }
 
 // SetAssetDefinition set assetID and definition