Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
cd8c1025
Commit
cd8c1025
authored
Dec 21, 2021
by
hezhengjun
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'withdraw_opt_1217' of github.com:zhengjunhe/plugin into withdraw_opt_1217
parents
3a2f95b6
0dfc5b84
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
132 additions
and
42 deletions
+132
-42
createERC20.go
plugin/dapp/cross2eth/boss4x/chain33/offline/createERC20.go
+34
-0
offline.go
plugin/dapp/cross2eth/boss4x/chain33/offline/offline.go
+1
-0
Chain33BridgeBank.abi
plugin/dapp/cross2eth/cmd/build/abi/Chain33BridgeBank.abi
+0
-0
docker-compose-cross2eth.yml
plugin/dapp/cross2eth/cmd/build/docker-compose-cross2eth.yml
+5
-0
mainPubilcRelayerTest.sh
.../dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
+7
-20
ethereum.go
plugin/dapp/cross2eth/ebrelayer/relayer/ethereum/ethereum.go
+79
-17
contracts_test.go
...s2eth/ebrelayer/relayer/ethereum/ethtxs/contracts_test.go
+5
-5
types.go
...dapp/cross2eth/ebrelayer/relayer/ethereum/ethtxs/types.go
+1
-0
No files found.
plugin/dapp/cross2eth/boss4x/chain33/offline/createERC20.go
View file @
cd8c1025
...
@@ -210,3 +210,37 @@ func CreateNewBridgeToken(cmd *cobra.Command, _ []string) {
...
@@ -210,3 +210,37 @@ func CreateNewBridgeToken(cmd *cobra.Command, _ []string) {
}
}
callContractAndSignWrite
(
cmd
,
packData
,
contract
,
"create_bridge_token"
)
callContractAndSignWrite
(
cmd
,
packData
,
contract
,
"create_bridge_token"
)
}
}
func
SetWithdrawProxyCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"set_withdraw_proxy"
,
Short
:
"set withdraw proxy on chain33, and it's should be done by operator"
,
Run
:
SetWithdrawProxy
,
}
addSetWithdrawProxyFlags
(
cmd
)
return
cmd
}
func
addSetWithdrawProxyFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"address"
,
"a"
,
""
,
"withdraw address"
)
_
=
cmd
.
MarkFlagRequired
(
"address"
)
cmd
.
Flags
()
.
StringP
(
"contract"
,
"c"
,
""
,
"bridgebank contract address"
)
_
=
cmd
.
MarkFlagRequired
(
"contract"
)
cmd
.
Flags
()
.
StringP
(
"key"
,
"k"
,
""
,
"the deployer private key"
)
_
=
cmd
.
MarkFlagRequired
(
"key"
)
cmd
.
Flags
()
.
StringP
(
"note"
,
"n"
,
""
,
"transaction note info (optional)"
)
cmd
.
Flags
()
.
Float64P
(
"fee"
,
"f"
,
0
,
"contract gas fee (optional)"
)
}
func
SetWithdrawProxy
(
cmd
*
cobra
.
Command
,
_
[]
string
)
{
contract
,
_
:=
cmd
.
Flags
()
.
GetString
(
"contract"
)
withdrawAddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"address"
)
parameter
:=
fmt
.
Sprintf
(
"setWithdrawProxy(%s)"
,
withdrawAddr
)
_
,
packData
,
err
:=
evmAbi
.
Pack
(
parameter
,
generated
.
BridgeBankABI
,
false
)
if
nil
!=
err
{
fmt
.
Println
(
"configOfflineSaveAccount"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
return
}
callContractAndSignWrite
(
cmd
,
packData
,
contract
,
"create_bridge_token"
)
}
plugin/dapp/cross2eth/boss4x/chain33/offline/offline.go
View file @
cd8c1025
...
@@ -35,6 +35,7 @@ func Boss4xOfflineCmd() *cobra.Command {
...
@@ -35,6 +35,7 @@ func Boss4xOfflineCmd() *cobra.Command {
ConfigLockedTokenOfflineSaveCmd
(),
ConfigLockedTokenOfflineSaveCmd
(),
CreateMultisignTransferCmd
(),
CreateMultisignTransferCmd
(),
MultisignTransferCmd
(),
MultisignTransferCmd
(),
SetWithdrawProxyCmd
(),
)
)
return
cmd
return
cmd
}
}
...
...
plugin/dapp/cross2eth/cmd/build/abi/Chain33BridgeBank.abi
View file @
cd8c1025
This diff is collapsed.
Click to expand it.
plugin/dapp/cross2eth/cmd/build/docker-compose-cross2eth.yml
View file @
cd8c1025
...
@@ -5,6 +5,11 @@ services:
...
@@ -5,6 +5,11 @@ services:
entrypoint
:
[
"
node"
,
"
/app/ganache-core.docker.cli.js"
,
"
-a"
,
"
20"
,
"
-b"
,
"
2"
,
"
--debug"
,
"
-m"
,
"
coast
bar
giraffe
art
venue
decide
symbol
law
visual
crater
vital
fold"
,
"
-e"
,
"
1000"
]
entrypoint
:
[
"
node"
,
"
/app/ganache-core.docker.cli.js"
,
"
-a"
,
"
20"
,
"
-b"
,
"
2"
,
"
--debug"
,
"
-m"
,
"
coast
bar
giraffe
art
venue
decide
symbol
law
visual
crater
vital
fold"
,
"
-e"
,
"
1000"
]
image
:
trufflesuite/ganache-cli:latest
image
:
trufflesuite/ganache-cli:latest
ebrelayerProxy
:
build
:
context
:
.
dockerfile
:
Dockerfile-cross2eth
ebrelayera
:
ebrelayera
:
build
:
build
:
context
:
.
context
:
.
...
...
plugin/dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
View file @
cd8c1025
...
@@ -256,69 +256,56 @@ function TestChain33ToEthAssets() {
...
@@ -256,69 +256,56 @@ function TestChain33ToEthAssets() {
function
TestETH2Chain33Assets
()
{
function
TestETH2Chain33Assets
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
=========== eth to chain33 在以太坊上锁定 ETH 资产,然后在 chain33 上 burn ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
=========== eth to chain33 在以太坊上锁定 ETH 资产,然后在 chain33 上 burn ===========
${
NOC
}
"
# 查询 ETH 这端 bridgeBank 地址原来是 0
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# ETH 这端 lock 11个
result
=
$(${
CLIA
}
ethereum lock
-m
0.002
-k
"
${
ethTestAddrKey1
}
"
-r
"
${
chain33ReceiverAddr
}
"
)
result
=
$(${
CLIA
}
ethereum lock
-m
11
-k
"
${
ethTestAddrKey1
}
"
-r
"
${
chain33ReceiverAddr
}
"
)
cli_ret
"
${
result
}
"
"lock"
cli_ret
"
${
result
}
"
"lock"
# eth 等待 2 个区块
# eth 等待 2 个区块
sleep
4
sleep
4
# 查询 ETH 这端 bridgeBank 地址 11
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"
11
"
cli_ret
"
${
result
}
"
"balance"
".balance"
"
0.002
"
sleep
${
maturityDegree
}
sleep
${
maturityDegree
}
# chain33 chain33EthBridgeTokenAddr(ETH合约中)查询 lock 金额
# chain33 chain33EthBridgeTokenAddr(ETH合约中)查询 lock 金额
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
# 结果是 11 * le8
# is_equal "${result}" "2000000000000000"
is_equal
"
${
result
}
"
"1100000000"
# 原来的数额
# 原来的数额
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethTestAddr2
}
"
)
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethTestAddr2
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1000"
echo
'#5.burn ETH from Chain33 ETH(Chain33)-----> Ethereum'
echo
'#5.burn ETH from Chain33 ETH(Chain33)-----> Ethereum'
result
=
$(${
CLIA
}
chain33 burn
-m
5
-k
"
${
chain33ReceiverAddrKey
}
"
-r
"
${
ethTestAddr2
}
"
-t
"
${
chain33EthBridgeTokenAddr
}
"
)
result
=
$(${
CLIA
}
chain33 burn
-m
0.0003
-k
"
${
chain33ReceiverAddrKey
}
"
-r
"
${
ethTestAddr2
}
"
-t
"
${
chain33EthBridgeTokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
cli_ret
"
${
result
}
"
"burn"
sleep
${
maturityDegree
}
sleep
${
maturityDegree
}
echo
"check the balance on chain33"
echo
"check the balance on chain33"
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
# 结果是 11-5 * le8
# is_equal "${result}" "1700000000000000"
is_equal
"
${
result
}
"
"600000000"
# 查询 ETH 这端 bridgeBank 地址 0
# 查询 ETH 这端 bridgeBank 地址 0
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"6"
cli_ret
"
${
result
}
"
"balance"
".balance"
"0.0017"
# 比之前多 5
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethTestAddr2
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1005"
echo
'#5.burn ETH from Chain33 ETH(Chain33)-----> Ethereum 6'
echo
'#5.burn ETH from Chain33 ETH(Chain33)-----> Ethereum 6'
result
=
$(${
CLIA
}
chain33 burn
-m
6
-k
"
${
chain33ReceiverAddrKey
}
"
-r
"
${
ethTestAddr2
}
"
-t
"
${
chain33EthBridgeTokenAddr
}
"
)
result
=
$(${
CLIA
}
chain33 burn
-m
0.0017
-k
"
${
chain33ReceiverAddrKey
}
"
-r
"
${
ethTestAddr2
}
"
-t
"
${
chain33EthBridgeTokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
cli_ret
"
${
result
}
"
"burn"
sleep
${
maturityDegree
}
sleep
${
maturityDegree
}
echo
"check the balance on chain33"
echo
"check the balance on chain33"
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
# 结果是 11-5 * le8
is_equal
"
${
result
}
"
"0"
is_equal
"
${
result
}
"
"0"
# 查询 ETH 这端 bridgeBank 地址 0
# 查询 ETH 这端 bridgeBank 地址 0
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethBridgeBank
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# 比之前多 5
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethTestAddr2
}
"
)
result
=
$(${
CLIA
}
ethereum balance
-o
"
${
ethTestAddr2
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1011"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
}
...
...
plugin/dapp/cross2eth/ebrelayer/relayer/ethereum/ethereum.go
View file @
cd8c1025
...
@@ -578,14 +578,7 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
...
@@ -578,14 +578,7 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
return
return
}
}
var
toAddr
common
.
Address
tokenAddr
:=
common
.
HexToAddress
(
withdrawFromChain33TokenInfo
.
Address
)
tokenAddr
:=
common
.
HexToAddress
(
withdrawFromChain33TokenInfo
.
Address
)
if
tokenAddr
.
String
()
!=
""
{
toAddr
=
tokenAddr
}
else
{
//如果tokenAddr为空,则把toAddr设置为用户指定的地址
toAddr
=
chain33Msg
.
EthereumReceiver
}
//从chain33进行withdraw回来的token需要根据精度进行相应的缩放
//从chain33进行withdraw回来的token需要根据精度进行相应的缩放
if
8
!=
withdrawFromChain33TokenInfo
.
Decimal
{
if
8
!=
withdrawFromChain33TokenInfo
.
Decimal
{
if
withdrawFromChain33TokenInfo
.
Decimal
>
8
{
if
withdrawFromChain33TokenInfo
.
Decimal
>
8
{
...
@@ -613,16 +606,38 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
...
@@ -613,16 +606,38 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
ctx
:=
context
.
Background
()
ctx
:=
context
.
Background
()
timeout
,
cancel
:=
context
.
WithTimeout
(
ctx
,
time
.
Second
*
2
)
timeout
,
cancel
:=
context
.
WithTimeout
(
ctx
,
time
.
Second
*
2
)
defer
cancel
()
defer
cancel
()
var
intput
data
[]
byte
var
intput
Data
[]
byte
// ERC20 or BEP20 token transfer pack data
var
err
error
var
err
error
if
tokenAddr
.
String
()
!=
""
{
//判断是否要Pack EVM数据
var
toAddr
common
.
Address
intputdata
,
err
=
ethRelayer
.
callEvmData
(
chain33Msg
.
EthereumReceiver
,
chain33Msg
.
Amount
)
var
balanceOfData
[]
byte
// ERC20 or BEP20 token balanceof pack data
relayerLog
.
Error
(
"handleLogWithdraw"
,
"CallEvmData err"
,
err
)
if
tokenAddr
.
String
()
!=
ethtxs
.
EthNullAddr
{
//判断是否要Pack EVM数据
toAddr
=
tokenAddr
intputData
,
err
=
ethRelayer
.
packTransferData
(
chain33Msg
.
EthereumReceiver
,
chain33Msg
.
Amount
)
if
err
!=
nil
{
relayerLog
.
Error
(
"handleLogWithdraw"
,
"CallEvmData err"
,
err
)
return
}
//用签名的账户地址作为pack参数,toAddr作为合约地址
balanceOfData
,
err
=
ethRelayer
.
packBalanceOfData
(
chain33Msg
.
EthereumReceiver
)
if
err
!=
nil
{
relayerLog
.
Error
(
"handleLogWithdraw"
,
"callEvmBalanceData err"
,
err
)
return
}
}
else
{
//如果tokenAddr为空,则把toAddr设置为用户指定的地址
toAddr
=
chain33Msg
.
EthereumReceiver
}
//校验余额是否充足
if
ok
,
err
:=
ethRelayer
.
checkBalanceEnough
(
toAddr
,
chain33Msg
.
Amount
,
balanceOfData
);
!
ok
{
relayerLog
.
Error
(
"handleLogWithdraw"
,
"Failed to checkBalanceEnough:"
,
err
.
Error
())
return
return
}
}
//param: from,to,evm-packdata,amount
//param: from,to,evm-packdata,amount
//交易构造
//交易构造
tx
,
err
:=
ethRelayer
.
newTx
(
ethRelayer
.
ethSender
,
toAddr
,
intput
d
ata
,
chain33Msg
.
Amount
)
tx
,
err
:=
ethRelayer
.
newTx
(
ethRelayer
.
ethSender
,
toAddr
,
intput
D
ata
,
chain33Msg
.
Amount
)
if
err
!=
nil
{
if
err
!=
nil
{
relayerLog
.
Error
(
"handleLogWithdraw"
,
"newTx err"
,
err
)
relayerLog
.
Error
(
"handleLogWithdraw"
,
"newTx err"
,
err
)
return
return
...
@@ -651,10 +666,45 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
...
@@ -651,10 +666,45 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
return
return
}
}
func
(
ethRelayer
*
Relayer4Ethereum
)
checkReceiverPermission
(
addr
common
.
Address
,
amount
*
big
.
Int
,
symbol
string
)
(
bool
,
error
)
{
func
(
ethRelayer
*
Relayer4Ethereum
)
checkBalanceEnough
(
addr
common
.
Address
,
amount
*
big
.
Int
,
inputdata
[]
byte
)
(
bool
,
error
)
{
//TODO 检测提币用户下累计提币额度是否达到上限
//检测地址余额
return
true
,
nil
var
balance
*
big
.
Int
//return errors.New("permission denied")
var
err
error
if
inputdata
==
nil
{
balance
,
err
=
ethRelayer
.
clientSpec
.
BalanceAt
(
context
.
Background
(),
addr
,
nil
)
if
err
!=
nil
{
//retry
balance
,
err
=
ethRelayer
.
clientSpec
.
BalanceAt
(
context
.
Background
(),
addr
,
nil
)
if
err
!=
nil
{
return
false
,
err
}
}
}
else
{
var
msg
ethereum
.
CallMsg
msg
.
To
=
&
addr
//合约地址
msg
.
Data
=
inputdata
result
,
err
:=
ethRelayer
.
clientSpec
.
CallContract
(
context
.
Background
(),
msg
,
nil
)
if
err
!=
nil
{
//retry
result
,
err
=
ethRelayer
.
clientSpec
.
CallContract
(
context
.
Background
(),
msg
,
nil
)
if
err
!=
nil
{
return
false
,
err
}
}
var
ok
bool
balance
,
ok
=
big
.
NewInt
(
1
)
.
SetString
(
common
.
Bytes2Hex
(
result
),
16
)
if
!
ok
{
return
false
,
errors
.
New
(
fmt
.
Sprintf
(
"token balance err:%v"
,
common
.
Bytes2Hex
(
result
)))
}
}
//与要发动的金额大小进行比较
if
balance
.
Cmp
(
amount
)
>
0
{
return
true
,
nil
}
return
false
,
errors
.
New
(
"Insufficient balance"
)
}
}
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
)
{
...
@@ -671,7 +721,7 @@ func (ethRelayer *Relayer4Ethereum) signTx(tx *types.Transaction, key *ecdsa.Pri
...
@@ -671,7 +721,7 @@ func (ethRelayer *Relayer4Ethereum) signTx(tx *types.Transaction, key *ecdsa.Pri
return
tx
,
nil
return
tx
,
nil
}
}
func
(
ethRelayer
*
Relayer4Ethereum
)
callEvm
Data
(
_to
common
.
Address
,
_value
*
big
.
Int
)
([]
byte
,
error
)
{
func
(
ethRelayer
*
Relayer4Ethereum
)
packTransfer
Data
(
_to
common
.
Address
,
_value
*
big
.
Int
)
([]
byte
,
error
)
{
parsed
,
err
:=
abi
.
JSON
(
strings
.
NewReader
(
generated
.
ERC20ABI
))
parsed
,
err
:=
abi
.
JSON
(
strings
.
NewReader
(
generated
.
ERC20ABI
))
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -682,6 +732,18 @@ func (ethRelayer *Relayer4Ethereum) callEvmData(_to common.Address, _value *big.
...
@@ -682,6 +732,18 @@ func (ethRelayer *Relayer4Ethereum) callEvmData(_to common.Address, _value *big.
}
}
return
abidata
,
nil
return
abidata
,
nil
}
}
func
(
ethRelayer
*
Relayer4Ethereum
)
packBalanceOfData
(
_to
common
.
Address
)
([]
byte
,
error
)
{
parsed
,
err
:=
abi
.
JSON
(
strings
.
NewReader
(
generated
.
ERC20ABI
))
if
err
!=
nil
{
return
nil
,
err
}
abidata
,
err
:=
parsed
.
Pack
(
"balanceOf"
,
_to
)
if
err
!=
nil
{
return
nil
,
err
}
return
abidata
,
nil
}
func
(
ethRelayer
*
Relayer4Ethereum
)
newTx
(
from
,
to
common
.
Address
,
input
[]
byte
,
value
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
func
(
ethRelayer
*
Relayer4Ethereum
)
newTx
(
from
,
to
common
.
Address
,
input
[]
byte
,
value
*
big
.
Int
)
(
*
types
.
Transaction
,
error
)
{
price
,
err
:=
ethRelayer
.
clientSpec
.
SuggestGasPrice
(
context
.
Background
())
price
,
err
:=
ethRelayer
.
clientSpec
.
SuggestGasPrice
(
context
.
Background
())
...
...
plugin/dapp/cross2eth/ebrelayer/relayer/ethereum/ethtxs/contracts_test.go
View file @
cd8c1025
...
@@ -29,7 +29,7 @@ import (
...
@@ -29,7 +29,7 @@ import (
var
(
var
(
chain33Addr
=
"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33Addr
=
"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
//ethAddr = "0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f"
//ethAddr = "0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f"
ethToken
Addr
=
"0x0000000000000000000000000000000000000000"
EthNull
Addr
=
"0x0000000000000000000000000000000000000000"
)
)
type
suiteContracts
struct
{
type
suiteContracts
struct
{
...
@@ -81,7 +81,7 @@ func (c *suiteContracts) Test_LogLockToEthBridgeClaim() {
...
@@ -81,7 +81,7 @@ func (c *suiteContracts) Test_LogLockToEthBridgeClaim() {
event
:=
&
events
.
LockEvent
{
event
:=
&
events
.
LockEvent
{
From
:
c
.
para
.
InitValidators
[
0
],
From
:
c
.
para
.
InitValidators
[
0
],
To
:
to
,
To
:
to
,
Token
:
common
.
HexToAddress
(
ethToken
Addr
),
Token
:
common
.
HexToAddress
(
EthNull
Addr
),
Symbol
:
"eth"
,
Symbol
:
"eth"
,
Value
:
big
.
NewInt
(
10000
*
10000
*
10000
),
Value
:
big
.
NewInt
(
10000
*
10000
*
10000
),
Nonce
:
big
.
NewInt
(
1
),
Nonce
:
big
.
NewInt
(
1
),
...
@@ -91,7 +91,7 @@ func (c *suiteContracts) Test_LogLockToEthBridgeClaim() {
...
@@ -91,7 +91,7 @@ func (c *suiteContracts) Test_LogLockToEthBridgeClaim() {
assert
.
NotEmpty
(
c
.
T
(),
witnessClaim
)
assert
.
NotEmpty
(
c
.
T
(),
witnessClaim
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumChainID
,
int64
(
1
))
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumChainID
,
int64
(
1
))
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
BridgeBrankAddr
,
c
.
x2EthDeployInfo
.
BridgeBank
.
Address
.
String
())
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
BridgeBrankAddr
,
c
.
x2EthDeployInfo
.
BridgeBank
.
Address
.
String
())
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
TokenAddr
,
ethToken
Addr
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
TokenAddr
,
EthNull
Addr
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
Symbol
,
event
.
Symbol
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
Symbol
,
event
.
Symbol
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumSender
,
event
.
From
.
String
())
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumSender
,
event
.
From
.
String
())
//assert.Equal(c.T(), witnessClaim.Chain33Receiver, string(event.To))
//assert.Equal(c.T(), witnessClaim.Chain33Receiver, string(event.To))
...
@@ -110,7 +110,7 @@ func (c *suiteContracts) Test_LogBurnToEthBridgeClaim() {
...
@@ -110,7 +110,7 @@ func (c *suiteContracts) Test_LogBurnToEthBridgeClaim() {
event
:=
&
events
.
BurnEvent
{
event
:=
&
events
.
BurnEvent
{
OwnerFrom
:
c
.
para
.
InitValidators
[
0
],
OwnerFrom
:
c
.
para
.
InitValidators
[
0
],
Chain33Receiver
:
to
,
Chain33Receiver
:
to
,
Token
:
common
.
HexToAddress
(
ethToken
Addr
),
Token
:
common
.
HexToAddress
(
EthNull
Addr
),
Symbol
:
"bty"
,
Symbol
:
"bty"
,
Amount
:
big
.
NewInt
(
100
),
Amount
:
big
.
NewInt
(
100
),
Nonce
:
big
.
NewInt
(
2
),
Nonce
:
big
.
NewInt
(
2
),
...
@@ -120,7 +120,7 @@ func (c *suiteContracts) Test_LogBurnToEthBridgeClaim() {
...
@@ -120,7 +120,7 @@ func (c *suiteContracts) Test_LogBurnToEthBridgeClaim() {
assert
.
NotEmpty
(
c
.
T
(),
witnessClaim
)
assert
.
NotEmpty
(
c
.
T
(),
witnessClaim
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumChainID
,
int64
(
1
))
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumChainID
,
int64
(
1
))
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
BridgeBrankAddr
,
c
.
x2EthDeployInfo
.
BridgeBank
.
Address
.
String
())
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
BridgeBrankAddr
,
c
.
x2EthDeployInfo
.
BridgeBank
.
Address
.
String
())
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
TokenAddr
,
ethToken
Addr
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
TokenAddr
,
EthNull
Addr
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
Symbol
,
event
.
Symbol
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
Symbol
,
event
.
Symbol
)
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumSender
,
event
.
OwnerFrom
.
String
())
assert
.
Equal
(
c
.
T
(),
witnessClaim
.
EthereumSender
,
event
.
OwnerFrom
.
String
())
//assert.Equal(c.T(), witnessClaim.Chain33Receiver, string(event.Chain33Receiver))
//assert.Equal(c.T(), witnessClaim.Chain33Receiver, string(event.Chain33Receiver))
...
...
plugin/dapp/cross2eth/ebrelayer/relayer/ethereum/ethtxs/types.go
View file @
cd8c1025
...
@@ -12,6 +12,7 @@ const (
...
@@ -12,6 +12,7 @@ const (
X2Eth
=
"x2ethereum"
X2Eth
=
"x2ethereum"
BurnAction
=
"Chain33ToEthBurn"
BurnAction
=
"Chain33ToEthBurn"
LockAction
=
"Chain33ToEthLock"
LockAction
=
"Chain33ToEthLock"
EthNullAddr
=
"0x0000000000000000000000000000000000000000"
)
)
// OracleClaim : contains data required to make an OracleClaim
// OracleClaim : contains data required to make an OracleClaim
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment