Commit 6c6d603e authored by vicotor's avatar vicotor

update tx status string.

parent 42827c44
......@@ -84,6 +84,19 @@ func (s *ChainSync) GetOutConfig(token common.Address, toChainId int64) (outConf
return outConfig, nil
}
func (s *ChainSync) GetRequiredConfirmations() (int64, error) {
callOpt := &bind.CallOpts{
BlockNumber: nil,
From: common.HexToAddress(s.chain.BridgeContract),
Context: context.TODO(),
}
num, err := s.bridgeCa.ValidRequired(callOpt)
if err != nil {
return 0, err
}
return num.Int64(), nil
}
func NewChainSync(_chain *config.ChainConfig, _d *dao.Dao) (sync *ChainSync) {
bridgeCa, err := bridge.NewBridgeContract(common.HexToAddress(_chain.BridgeContract), _d.ChainClient(_chain.ChainId))
if err != nil {
......
package constant
import "fmt"
const JwtSecret = "uEj7AgDNCREwsvnTaCEtzDXt0I5eFDl8"
const (
......@@ -32,6 +34,22 @@ func (ts TransferStatus) String() string {
}
}
func (ts TransferStatus) FriendlyString(confirmed int, required int) string {
switch ts {
case TransferChainNoProcess:
return "Awaiting Processing"
case TransferChainWaitConfirm:
return fmt.Sprintf("Awaiting Confirmation (%d/%d)", confirmed, required)
case TransferChainExecuted:
return "Executed"
case TransferChainRejected:
return "Rejected"
default:
return "Unknown"
}
}
const (
ValidatorStatusNoPrecess = 0
ValidatorStatusConfirmation = 1
......
......@@ -26,6 +26,7 @@ type ChainInterface interface {
ParseSwapConfigChanged(log *types.Log) (*bridge.BridgeContractSwapConfigChanged, error)
GetReceiveToken(token common.Address, toChainId int64) (string, error)
GetOutConfig(token common.Address, toChainId int64) (outConfig bridge.BridgeOutConfig, err error)
GetRequiredConfirmations() (int64, error)
}
var (
......
......@@ -132,3 +132,11 @@ func (d *Dao) GetChainConfig(chainId int64) (ChainInfo, error) {
}
return chainInfo, nil
}
func (d *Dao) GetRequireConfirmations(chainId int64) (int64, error) {
syncer, ok := d.GetSyncer(chainId)
if !ok {
return 3, fmt.Errorf("chain %d syncer not found", chainId)
}
return syncer.GetRequiredConfirmations()
}
......@@ -221,7 +221,7 @@ func (d *Dao) GetTxStatus(tx string) (result apiModel.TxStatusResult, err error)
defer cancel()
result = apiModel.TxStatusResult{
Status: constant.TransferChainNoProcess.String(),
Status: constant.TransferChainWaitConfirm.FriendlyString(0, 0),
}
cursor, err := collection.Find(ctx, bson.M{"from_chain_tx_hash": tx})
......@@ -240,7 +240,8 @@ func (d *Dao) GetTxStatus(tx string) (result apiModel.TxStatusResult, err error)
return result, nil
}
event := events[0]
result.Status = constant.TransferStatus(event.ToChainStatus).String()
required, _ := d.GetRequireConfirmations(event.FromChain)
result.Status = constant.TransferStatus(event.ToChainStatus).FriendlyString(len(event.ConfirmedValidators), int(required))
return result, nil
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment