}
}
+func (a *AssetKeeper) GetByOrmID(id uint64) (*orm.Asset, error) {
+ asset := &orm.Asset{ID: id}
+ if err := a.db.Where(asset).First(asset).Error; err != nil {
+ return nil, errors.Wrap(err, "asset not found by orm id")
+ }
+
+ return asset, nil
+}
+
func (a *AssetKeeper) Get(assetID string) (*orm.Asset, error) {
if asset := a.assetCache.Get(assetID); asset != nil {
return asset, nil
}
for _, req := range ormTx.Reqs {
- // TODO:
// getAsset from assetKeeper instead of preload asset, in order to save db query overload
- asset := &orm.Asset{}
+ asset, err := w.assetKeeper.GetByOrmID(req.AssetID)
+ if err != nil {
+ return nil, "", errors.Wrap(err, "get asset by ormAsset ID")
+ }
+
assetID := &vaporBc.AssetID{}
if err := assetID.UnmarshalText([]byte(asset.AssetID)); err != nil {
return nil, "", errors.Wrap(err, "Unmarshal muxID")