Commit b0ede901 authored by libangzhu's avatar libangzhu

update

parent 58c03f55
...@@ -14,6 +14,7 @@ import ( ...@@ -14,6 +14,7 @@ import (
"crypto/ecdsa" "crypto/ecdsa"
"errors" "errors"
"fmt" "fmt"
"github.com/Workiva/go-datastructures/threadsafe/err"
"math/big" "math/big"
"regexp" "regexp"
"strings" "strings"
...@@ -552,8 +553,8 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33 ...@@ -552,8 +553,8 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
//TODO:此处需要完成在以太坊发送以太或者ERC20数字资产的操作 //TODO:此处需要完成在以太坊发送以太或者ERC20数字资产的操作
//检查用户提币权限是否得到满足:比如是否超过累计提币额度 //检查用户提币权限是否得到满足:比如是否超过累计提币额度
if err := ethRelayer.checkReceiverPermission(toAddr, chain33Msg.Amount, chain33Msg.Symbol); err != nil { if ok, err := ethRelayer.checkReceiverPermission(toAddr, chain33Msg.Amount, chain33Msg.Symbol); !ok {
relayerLog.Error("handleLogWithdraw", "checkReceiverPermission", err.Error()) relayerLog.Error("handleLogWithdraw", "checkReceiverPermission,resion:", err.Error())
return return
} }
...@@ -562,7 +563,7 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33 ...@@ -562,7 +563,7 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
defer cancel() defer cancel()
var intputdata []byte var intputdata []byte
var err error var err error
if tokenAddr.String() != "" { if tokenAddr.String() != "" { //判断是否要Pack EVM数据
intputdata, err = ethRelayer.CallEvmData(chain33Msg.EthereumReceiver, chain33Msg.Amount) intputdata, err = ethRelayer.CallEvmData(chain33Msg.EthereumReceiver, chain33Msg.Amount)
relayerLog.Error("handleLogWithdraw", "CallEvmData err", err) relayerLog.Error("handleLogWithdraw", "CallEvmData err", err)
return return
...@@ -574,13 +575,13 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33 ...@@ -574,13 +575,13 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
relayerLog.Error("handleLogWithdraw", "newTx err", err) relayerLog.Error("handleLogWithdraw", "newTx err", err)
return return
} }
//交易签名 //交易签名
signedTx, err := ethRelayer.signTx(tx, ethRelayer.privateKey4Ethereum) signedTx, err := ethRelayer.signTx(tx, ethRelayer.privateKey4Ethereum)
if err != nil { if err != nil {
relayerLog.Error("handleLogWithdraw", "SignTx err", err) relayerLog.Error("handleLogWithdraw", "SignTx err", err)
return return
} }
//交易发送 //交易发送
err = ethRelayer.clientSpec.SendTransaction(timeout, signedTx) err = ethRelayer.clientSpec.SendTransaction(timeout, signedTx)
if err != nil { if err != nil {
...@@ -590,9 +591,10 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33 ...@@ -590,9 +591,10 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
relayerLog.Info("handleLogWithdraw", "SendTransaction Hash", signedTx.Hash()) relayerLog.Info("handleLogWithdraw", "SendTransaction Hash", signedTx.Hash())
} }
func (ethRelayer *Relayer4Ethereum) checkReceiverPermission(addr common.Address, amount *big.Int, symbol string) error { func (ethRelayer *Relayer4Ethereum) checkReceiverPermission(addr common.Address, amount *big.Int, symbol string) (bool,error) {
//TODO 检测提币用户下累计提币额度是否达到上限 //TODO 检测提币用户下累计提币额度是否达到上限
return errors.New("permission denied") return true,nil
//return errors.New("permission denied")
} }
func (ethRelayer *Relayer4Ethereum) signTx(tx *types.Transaction, key *ecdsa.PrivateKey) (*types.Transaction, error) { func (ethRelayer *Relayer4Ethereum) signTx(tx *types.Transaction, key *ecdsa.PrivateKey) (*types.Transaction, error) {
......
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