Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
osoftdeveloper committed Nov 18, 2019
2 parents 61f80d5 + f4d2c3b commit a2e55ec
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 2 deletions.
25 changes: 25 additions & 0 deletions task/fee.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package task

import (
"database/sql"
"github.com/browser/client"
"github.com/browser/db"
. "github.com/browser/log"
"github.com/browser/types"
Expand All @@ -13,6 +14,22 @@ type FeeTask struct {
*Base
TokenIncome *big.Int
ContractIncome *big.Int
nodeTokens map[string]string
}

func (f *FeeTask) getTokenName(dbTx *sql.Tx, name string) (string, error) {
if tokenName, ok := f.nodeTokens[name]; ok {
return tokenName, nil
} else {
asset, err := client.GetAssetInfoByName(name)
if err != nil {
ZapLog.Error("GetAssetInfoByName error", zap.Error(err), zap.String("name", name))
return "", err
}
dbToken := db.QueryTokenById(dbTx, asset.AssetId)
f.nodeTokens[name] = dbToken.AssetName
return dbToken.AssetName, nil
}
}

func (f *FeeTask) analysisFeeAction(data *types.BlockAndResult, dbTx *sql.Tx) error {
Expand All @@ -37,6 +54,13 @@ func (f *FeeTask) analysisFeeAction(data *types.BlockAndResult, dbTx *sql.Tx) er
Amount: fee,
Reason: aR.Reason,
}
if aR.Reason == 0 {
assetName, err := f.getTokenName(dbTx, aR.Account.String())
if err != nil {
return err
}
mFee.To = assetName
}
err := db.InsertFee(mFee, dbTx)
if err != nil {
ZapLog.Error("InsertFee error: ", zap.Error(err))
Expand Down Expand Up @@ -95,6 +119,7 @@ func (f *FeeTask) rollback(data *types.BlockAndResult, dbTx *sql.Tx) error {
}

func (f *FeeTask) Start(data chan *TaskChanData, rollbackData chan *TaskChanData, result chan bool, startHeight uint64) {
f.nodeTokens = make(map[string]string)
f.startHeight = startHeight
chain, err := db.Mysql.GetChainStatus()
if err != nil {
Expand Down
10 changes: 8 additions & 2 deletions task/token.go
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ func saveToken(tx *sql.Tx, action *types.RPCAction, blockTime uint64, height uin
dbToken := &db.Token{}
dbToken.AssetName = tokenName
dbToken.AssetSymbol = obj.Symbol
dbToken.Decimals = obj.Decimals
dbToken.Decimals = tokenInfo.Decimals
dbToken.AssetId = tokenInfo.AssetId
dbToken.ContractName = tokenInfo.Contract.String()
dbToken.Description = obj.Description
Expand Down Expand Up @@ -232,7 +232,13 @@ func rollbackToken(tx *sql.Tx, action *types.RPCAction, blockTime uint64, height
iActionAsset, _ := parsePayload(action)
if action.Type == types.IssueAsset {
obj := iActionAsset.(types.IssueAssetObject)
db.DeleteTokenByName(tx, obj.AssetName)
tokenName := obj.AssetName
if idx := strings.Index(obj.AssetName, ":"); idx <= 0 {
if len(action.From.String()) > 0 {
tokenName = action.From.String() + ":" + obj.AssetName
}
}
db.DeleteTokenByName(tx, tokenName)
} else if action.Type == types.IncreaseAsset {
obj := iActionAsset.(types.IncAssetObject)
dbToken := db.QueryTokenBackupById(tx, obj.AssetId, height)
Expand Down
7 changes: 7 additions & 0 deletions task/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package task

import (
"bytes"
"github.com/browser/client"
. "github.com/browser/log"
"github.com/browser/rlp"
"github.com/browser/types"
Expand Down Expand Up @@ -135,6 +136,12 @@ func parsePayload(action *types.RPCAction) (interface{}, error) {
Contract: issueAssetPayload.Contract,
Description: issueAssetPayload.Description,
}
asset, err := client.GetAssetInfoByName(issueAssetPayload.AssetName)
if err != nil {
ZapLog.Error("GetAssetInfoByName error", zap.Error(err), zap.String("name", issueAssetPayload.AssetName))
return nil, err
}
tmpPayload.Decimals = asset.Decimals
parsedPayload = tmpPayload
//}
}
Expand Down

0 comments on commit a2e55ec

Please sign in to comment.