Commit d7eccbcb authored by vicotor's avatar vicotor

add coin support

parent 8a3b5e37
......@@ -4,6 +4,8 @@ import "fmt"
const JwtSecret = "uEj7AgDNCREwsvnTaCEtzDXt0I5eFDl8"
const CoinAddress = "0x0000000000000000000000000000000000000001"
const (
InvalidParam = "invalid param"
UnsupportedPlatform = "unsupported platform"
......
......@@ -2,6 +2,7 @@ package tokenrepo
import (
"code.wuban.net.cn/movabridge/bridge-backend/chainlist"
"code.wuban.net.cn/movabridge/bridge-backend/constant"
"code.wuban.net.cn/movabridge/bridge-backend/contract/token"
"context"
"errors"
......@@ -50,6 +51,16 @@ func (tr *TokenRepo) RetriveTokenInfo(chainId int64, address string) (TokenInfo,
if info, ok := tr.GetTokenInfo(address); ok {
return info, nil
}
if strings.Compare(strings.ToLower(address), strings.ToLower(constant.CoinAddress)) == 0 {
info := TokenInfo{
Name: "MOVA",
Symbol: "MOVA",
Decimals: 18,
Address: address,
}
tr.SetTokenInfo(address, info)
return info, nil
}
chain, ok := tr.chainRepo.Get(chainId)
if !ok {
return TokenInfo{}, errors.New("chain not found")
......@@ -94,6 +105,23 @@ func (tr *TokenRepo) RetriveTokenInfoAndBalance(client *ethclient.Client, addres
info := TokenInfo{}
balance := big.NewInt(0)
if strings.Compare(strings.ToLower(address), strings.ToLower(constant.CoinAddress)) == 0 {
info = TokenInfo{
Name: "MOVA",
Symbol: "MOVA",
Decimals: 18,
Address: address,
}
tr.SetTokenInfo(address, info)
userBalance, err := client.BalanceAt(context.Background(), common.HexToAddress(user), nil)
if err != nil {
return info, balance, err
} else {
balance = userBalance
}
return info, balance, nil
}
contract, err := token.NewTokenCaller(common.HexToAddress(address), client)
if err != nil {
return info, balance, fmt.Errorf("fail to connect contract err: %v", err)
......
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