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
ad27ec1b
Commit
ad27ec1b
authored
Jun 10, 2020
by
QM
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete redundant test.sh
parent
cfdb82fc
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
3 additions
and
1402 deletions
+3
-1402
publicTest.sh
plugin/dapp/x2ethereum/cmd/build/publicTest.sh
+0
-0
test-rpc.sh
plugin/dapp/x2ethereum/cmd/test/test-rpc.sh
+3
-3
allRelayerTest.sh
plugin/dapp/x2ethereum/testsh/allRelayerTest.sh
+0
-536
bridgeBankTest.sh
plugin/dapp/x2ethereum/testsh/bridgeBankTest.sh
+0
-347
ebrelayerTest.sh
plugin/dapp/x2ethereum/testsh/ebrelayerTest.sh
+0
-146
x2ethereumTest.sh
plugin/dapp/x2ethereum/testsh/x2ethereumTest.sh
+0
-370
No files found.
plugin/dapp/x2ethereum/
testsh
/publicTest.sh
→
plugin/dapp/x2ethereum/
cmd/build
/publicTest.sh
View file @
ad27ec1b
File moved
plugin/dapp/x2ethereum/cmd/test/test-rpc.sh
100644 → 100755
View file @
ad27ec1b
...
...
@@ -34,7 +34,7 @@
# chain33_ImportPrivkey "${chain33ValidatorKey3}" "${chain33Validator3}" "tokenAddr" "${MAIN_HTTP}"
# chain33_ImportPrivkey "${chain33ValidatorKey4}" "${chain33Validator4}" "tokenAddr" "${MAIN_HTTP}"
#
# tx=$(curl -ksd '{"method":"Chain33.CreateTransaction","params":[{"execer":"x2ethereum","actionName":"
Play","payload":{"gameId":"pokerbull-abc", "value":"1000000000", "round":1
}}]}' ${MAIN_HTTP} | jq -r ".result")
# chain33_SignAndSendTxWait "$tx" "0x
0316d5e33e7bce2455413156cb95209f8c641af352ee5d648c647f24383e4d94
" ${MAIN_HTTP} "$FUNCNAME"
# tx=$(curl -ksd '{"method":"Chain33.CreateTransaction","params":[{"execer":"x2ethereum","actionName":"
SetConsensusThreshold","payload":{"consensusThreshold":"80",
}}]}' ${MAIN_HTTP} | jq -r ".result")
# chain33_SignAndSendTxWait "$tx" "0x
4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01
" ${MAIN_HTTP} "$FUNCNAME"
#}
#
plugin/dapp/x2ethereum/testsh/allRelayerTest.sh
deleted
100755 → 0
View file @
cfdb82fc
#!/usr/bin/env bash
# shellcheck disable=SC2128
# shellcheck source=/dev/null
set
-x
# eth 和 chain33 两端都启动
# 启动4个 relayer 每个权重一样
source
"./publicTest.sh"
CLIA
=
"../build/ebcli_A"
CLIB
=
"../build/ebcli_B"
CLIC
=
"../build/ebcli_C"
CLID
=
"../build/ebcli_D"
docker_chain33_ip
=
$(
docker inspect
-f
'{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
build_chain33_1
)
Chain33Cli
=
"
$GOPATH
/src/github.com/33cn/plugin/build/chain33-cli --rpc_laddr http://
${
docker_chain33_ip
}
:8801"
chain33SenderAddr
=
"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
# validatorsAddr=["0x92c8b16afd6d423652559c6e266cbe1c29bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"]
ethValidatorAddrKeyA
=
"3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
ethValidatorAddrKeyB
=
"a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400"
ethValidatorAddrKeyC
=
"bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e"
ethValidatorAddrKeyD
=
"c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b"
# 新增地址 chain33 需要导入地址 转入 10 bty当收费费
chain33Validator1
=
"1GTxrmuWiXavhcvsaH5w9whgVxUrWsUMdV"
chain33Validator2
=
"155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6"
chain33Validator3
=
"13zBdQwuyDh7cKN79oT2odkxYuDbgQiXFv"
chain33Validator4
=
"113ZzVamKfAtGt9dq45fX1mNsEoDiN95HG"
chain33ValidatorKey1
=
"0xd627968e445f2a41c92173225791bae1ba42126ae96c32f28f97ff8f226e5c68"
chain33ValidatorKey2
=
"0x9d539bc5fd084eb7fe86ad631dba9aa086dba38418725c38d9751459f567da66"
chain33ValidatorKey3
=
"0x0a6671f101e30a2cc2d79d77436b62cdf2664ed33eb631a9c9e3f3dd348a23be"
chain33ValidatorKey4
=
"0x3818b257b05ee75b6e43ee0e3cfc2d8502342cf67caed533e3756966690b62a5"
ethReceiverAddr1
=
"0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1
=
"355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2
=
"0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2
=
"9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
maturityDegree
=
10
function
InitAndDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
result
=
$(${
CLIA
}
relayer set_pwd
-p
123456hzj
)
cli_ret
"
${
result
}
"
"set_pwd"
result
=
$(${
CLIA
}
relayer unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
result
=
$(${
CLIA
}
relayer ethereum deploy
)
cli_ret
"
${
result
}
"
"deploy"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
EthImportKey
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# 重启 ebrelayer 并解锁
for
name
in
A B C D
;
do
start_ebrelayer
"../build/
$name
/ebrelayer"
"../build/
$name
/ebrelayer.log"
# 导入测试地址私钥
CLI
=
"../build/ebcli_
$name
"
result
=
$(${
CLI
}
relayer set_pwd
-p
123456hzj
)
#cli_ret "${result}" "set_pwd"
result
=
$(${
CLI
}
relayer unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
done
result
=
$(${
CLIA
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33ValidatorKey1
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
result
=
$(${
CLIB
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33ValidatorKey2
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
result
=
$(${
CLIC
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33ValidatorKey3
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
result
=
$(${
CLID
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33ValidatorKey4
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
result
=
$(${
CLIA
}
relayer chain33 import_privatekey
-k
"
${
ethValidatorAddrKeyA
}
"
)
cli_ret
"
${
result
}
"
"A relayer chain33 import_privatekey"
result
=
$(${
CLIB
}
relayer chain33 import_privatekey
-k
"
${
ethValidatorAddrKeyB
}
"
)
cli_ret
"
${
result
}
"
"B relayer chain33 import_privatekey"
result
=
$(${
CLIC
}
relayer chain33 import_privatekey
-k
"
${
ethValidatorAddrKeyC
}
"
)
cli_ret
"
${
result
}
"
"C relayer chain33 import_privatekey"
result
=
$(${
CLID
}
relayer chain33 import_privatekey
-k
"
${
ethValidatorAddrKeyD
}
"
)
cli_ret
"
${
result
}
"
"D relayer chain33 import_privatekey"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
StartRelayerAndDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
for
name
in
A B C D
;
do
local
ebrelayer
=
"../build/
$name
/ebrelayer"
kill_ebrelayer
"
${
ebrelayer
}
"
done
kill_ebrelayer
"../build/ebrelayer"
sleep
1
rm
-rf
'../build/A'
'../build/B'
'../build/C'
'../build/D'
'../build/datadir'
'../build/ebrelayer.log'
'../build/logs'
mkdir
'../build/A'
'../build/B'
'../build/C'
'../build/D'
cp
'../ebrelayer/relayer.toml'
'../build/A/relayer.toml'
cp
'../build/ebrelayer'
'../build/A/ebrelayer'
start_trufflesuite
start_ebrelayer
"../build/A/ebrelayer"
"../build/A/ebrelayer.log"
# 部署合约
InitAndDeploy
# 获取 BridgeRegistry 地址
result
=
$(${
CLIA
}
relayer ethereum bridgeRegistry
)
BridgeRegistry
=
$(
cli_ret
"
${
result
}
"
"bridgeRegistry"
".addr"
)
# BridgeRegistry="0x5331F912027057fBE8139D91B225246e8159232f"
kill_ebrelayer
"../build/A/ebrelayer"
# 修改 relayer.toml 配置文件
updata_relayer_toml
"
${
BridgeRegistry
}
"
${
maturityDegree
}
"../build/A/relayer.toml"
updata_all_relayer_toml
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# chian33 添加验证着及权重
function
InitChain33Vilators
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# 导入 chain33Validators 私钥生成地址
result
=
$(${
Chain33Cli
}
account import_key
-k
${
chain33ValidatorKey1
}
-l
validator1
)
check_addr
"
${
result
}
"
${
chain33Validator1
}
result
=
$(${
Chain33Cli
}
account import_key
-k
${
chain33ValidatorKey2
}
-l
validator2
)
check_addr
"
${
result
}
"
${
chain33Validator2
}
result
=
$(${
Chain33Cli
}
account import_key
-k
${
chain33ValidatorKey3
}
-l
validator3
)
check_addr
"
${
result
}
"
${
chain33Validator3
}
result
=
$(${
Chain33Cli
}
account import_key
-k
${
chain33ValidatorKey4
}
-l
validator4
)
check_addr
"
${
result
}
"
${
chain33Validator4
}
# SetConsensusThreshold
hash
=
$(${
Chain33Cli
}
send x2ethereum setconsensus
-p
80
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
# add a validator
hash
=
$(${
Chain33Cli
}
send x2ethereum add
-a
${
chain33Validator1
}
-p
25
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
hash
=
$(${
Chain33Cli
}
send x2ethereum add
-a
${
chain33Validator2
}
-p
25
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
hash
=
$(${
Chain33Cli
}
send x2ethereum add
-a
${
chain33Validator3
}
-p
25
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
hash
=
$(${
Chain33Cli
}
send x2ethereum add
-a
${
chain33Validator4
}
-p
25
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
# query Validators
totalPower
=
$(${
Chain33Cli
}
send x2ethereum query totalpower
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv | jq .totalPower |
sed
's/\"//g'
)
check_number 100
"
${
totalPower
}
"
# cions 转帐到 x2ethereum 合约地址
hash
=
$(${
Chain33Cli
}
send coins send_exec
-e
x2ethereum
-a
200
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"200.0000"
# chain33Validator 要有手续费
hash
=
$(${
Chain33Cli
}
send coins transfer
-a
10
-t
"
${
chain33Validator1
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33Validator1
}
"
-e
coins
)
balance_ret
"
${
result
}
"
"10.0000"
hash
=
$(${
Chain33Cli
}
send coins transfer
-a
10
-t
"
${
chain33Validator2
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33Validator2
}
"
-e
coins
)
balance_ret
"
${
result
}
"
"10.0000"
hash
=
$(${
Chain33Cli
}
send coins transfer
-a
10
-t
"
${
chain33Validator3
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33Validator3
}
"
-e
coins
)
balance_ret
"
${
result
}
"
"10.0000"
hash
=
$(${
Chain33Cli
}
send coins transfer
-a
10
-t
"
${
chain33Validator4
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33Validator4
}
"
-e
coins
)
balance_ret
"
${
result
}
"
"10.0000"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
TestChain33ToEthAssets
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# token4chain33 在 以太坊 上先有 bty
result
=
$(${
CLIA
}
relayer ethereum token4chain33
-s
coins.bty
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4chain33"
".addr"
)
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# chain33 lock bty
hash
=
$(${
Chain33Cli
}
send x2ethereum lock
-a
5
-t
coins.bty
-r
${
ethReceiverAddr1
}
-q
"
${
tokenAddr
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"195.0000"
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"5"
# eth burn
result
=
$(${
CLIA
}
relayer ethereum burn
-m
5
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33SenderAddr
}
"
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"5.0000"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# eth to chain33
# 在以太坊上锁定资产,然后在 chain33 上铸币,针对 eth 资产
function
TestETH2Chain33Assets
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLIA
}
relayer unlock
-p
123456hzj
result
=
$(${
CLIA
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# eth lock 10
result
=
$(${
CLIA
}
relayer ethereum lock
-m
10
-k
"
${
ethReceiverAddrKey1
}
"
-r
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"10"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"10"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
10
-t
eth
-r
${
ethReceiverAddr2
}
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
eth_block_wait 2
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"
$(
echo
"
${
balance
}
+10"
| bc
)
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
TestETH2Chain33Erc20
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLIA
}
relayer unlock
-p
123456hzj
# token4erc20 在 chain33 上先有 token,同时 mint
tokenSymbol
=
"testc"
result
=
$(${
CLIA
}
relayer ethereum token4erc20
-s
"
${
tokenSymbol
}
"
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4erc20"
".addr"
)
# 先铸币 1000
result
=
$(${
CLIA
}
relayer ethereum mint
-m
1000
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"mint"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1000"
result
=
$(${
CLIA
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# lock 100
result
=
$(${
CLIA
}
relayer ethereum lock
-m
100
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33Validator1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"900"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33Validator1
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"100"
# chain33 burn 100
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
100
-t
"
${
tokenSymbol
}
"
-r
${
ethReceiverAddr2
}
-q
"
${
tokenAddr
}
"
-k
"
${
chain33Validator1
}
"
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33Validator1
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
eth_block_wait 2
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
TestChain33ToEthAssetsKill
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
if
[
"
${
tokenAddrBty
}
"
==
""
]
;
then
# token4chain33 在 以太坊 上先有 bty
result
=
$(${
CLIA
}
relayer ethereum token4chain33
-s
bty
)
tokenAddrBty
=
$(
cli_ret
"
${
result
}
"
"token4chain33"
".addr"
)
fi
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddrBty
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
kill_ebrelayerC
kill_ebrelayerD
# chain33 lock bty
hash
=
$(${
Chain33Cli
}
send x2ethereum lock
-a
5
-t
bty
-r
${
ethReceiverAddr2
}
-q
"
${
tokenAddrBty
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddrBty
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
start_ebrelayerC
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddrBty
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"5"
# eth burn
result
=
$(${
CLIA
}
relayer ethereum burn
-m
5
-k
"
${
ethReceiverAddrKey2
}
"
-r
"
${
chain33Validator1
}
"
-t
"
${
tokenAddrBty
}
"
)
cli_ret
"
${
result
}
"
"burn"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddrBty
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33Validator1
}
"
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"0"
start_ebrelayerD
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33Validator1
}
"
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"5"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# eth to chain33
# 在以太坊上锁定资产,然后在 chain33 上铸币,针对 eth 资产
function
TestETH2Chain33AssetsKill
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLIA
}
relayer unlock
-p
123456hzj
result
=
$(${
CLIA
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
kill_ebrelayerC
kill_ebrelayerD
# eth lock 0.1
result
=
$(${
CLIA
}
relayer ethereum lock
-m
0.1
-k
"
${
ethReceiverAddrKey1
}
"
-r
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0.1"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
start_ebrelayerC
start_ebrelayerD
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0.1"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
kill_ebrelayerC
kill_ebrelayerD
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
0.1
-t
eth
-r
${
ethReceiverAddr2
}
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
eth_block_wait 2
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0.1"
start_ebrelayerC
start_ebrelayerD
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"
$(
echo
"
${
balance
}
+0.1"
| bc
)
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
TestETH2Chain33Erc20Kill
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLIA
}
relayer unlock
-p
123456hzj
# token4erc20 在 chain33 上先有 token,同时 mint
tokenSymbol
=
"testcc"
result
=
$(${
CLIA
}
relayer ethereum token4erc20
-s
"
${
tokenSymbol
}
"
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4erc20"
".addr"
)
# 先铸币 1000
result
=
$(${
CLIA
}
relayer ethereum mint
-m
1000
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"mint"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1000"
result
=
$(${
CLIA
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
kill_ebrelayerC
kill_ebrelayerD
# lock 100
result
=
$(${
CLIA
}
relayer ethereum lock
-m
100
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33Validator1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"900"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33Validator1
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
start_ebrelayerC
start_ebrelayerD
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33Validator1
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"100"
kill_ebrelayerC
kill_ebrelayerD
# chain33 burn 100
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
100
-t
"
${
tokenSymbol
}
"
-r
${
ethReceiverAddr2
}
-q
"
${
tokenAddr
}
"
-k
"
${
chain33Validator1
}
"
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33Validator1
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
eth_block_wait 2
start_ebrelayerC
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
main
()
{
echo
-e
"
${
GRE
}
===========allTest
$FUNCNAME
begin ===========
${
NOC
}
"
if
[[
${
1
}
!=
""
]]
;
then
maturityDegree
=
${
1
}
echo
-e
"
${
GRE
}
maturityDegree is
${
maturityDegree
}
${
NOC
}
"
fi
StartRelayerAndDeploy
InitChain33Vilators
EthImportKey
TestChain33ToEthAssets
TestETH2Chain33Assets
TestETH2Chain33Erc20
# kill relayer and start relayer
# TestChain33ToEthAssetsKill
# TestETH2Chain33AssetsKill
# TestETH2Chain33Erc20Kill
echo
-e
"
${
GRE
}
===========allTest
$FUNCNAME
end ===========
${
NOC
}
"
}
main
"
${
1
}
"
plugin/dapp/x2ethereum/testsh/bridgeBankTest.sh
deleted
100755 → 0
View file @
cfdb82fc
#!/usr/bin/env bash
# shellcheck disable=SC2128
# shellcheck source=/dev/null
set
-x
# 只启动 eth 这一端的测试
# 只启动一个 relayer 第一个地址权重设置超过2/3
source
"./publicTest.sh"
CLI
=
"../build/ebcli_A"
chain33SenderAddr
=
"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33SenderAddrKey
=
"CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
ethReceiverAddr1
=
"0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1
=
"355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2
=
"0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2
=
"9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
ethReceiverAddr3
=
"0x1919203bA8b325278d28Fb8fFeac49F2CD881A4e"
prophecyTx0
=
"0x112260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
prophecyTx1
=
"0x222260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
prophecyTx2
=
"0x332260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
prophecyTx3
=
"0x442260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
prophecyTx4
=
"0x552260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
prophecyTx5
=
"0x662260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
prophecyTx6
=
"0x772260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
InitAndDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
result
=
$(${
CLI
}
relayer set_pwd
-p
123456hzj
)
cli_ret
"
${
result
}
"
"set_pwd"
result
=
$(${
CLI
}
relayer unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
result
=
$(${
CLI
}
relayer ethereum deploy
)
cli_ret
"
${
result
}
"
"deploy"
result
=
$(${
CLI
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33SenderAddrKey
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# eth to chain33
# 在以太坊上锁定资产,然后在 chain33 上铸币,针对 erc20 资产
# 以太坊 brun 资产,balance 对比是否正确
TestETH2Chain33Erc20
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLI
}
relayer unlock
-p
123456hzj
# token4erc20 在 chain33 上先有 token,同时 mint
tokenSymbol
=
"testc"
result
=
$(${
CLI
}
relayer ethereum token4erc20
-s
"
${
tokenSymbol
}
"
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4erc20"
".addr"
)
# 先铸币 1000
result
=
$(${
CLI
}
relayer ethereum mint
-m
1000
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"mint"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1000"
result
=
$(${
CLI
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# ETH 2 chain33 lock 前先审批一下
result
=
$(${
CLI
}
relayer ethereum approve
-m
100
-k
"
${
ethReceiverAddrKey1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"approve"
# ETH 2 chain33 lock 100
# -r chain33 receiver addr
result
=
$(${
CLI
}
relayer ethereum lock
-m
100
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"900"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
# ETH 2 chain33 withdraw 40
# -c 1 burn 40
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx0
}
"
-m
40
-a
"
${
chain33SenderAddr
}
"
-c
1
-r
"
${
ethReceiverAddr2
}
"
-s
"
${
tokenSymbol
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"prophecy -m 40"
walitProphecyFinish
"
${
ethReceiverAddr2
}
"
"
${
tokenAddr
}
"
40
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"40"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"60"
# burn 60
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx1
}
"
-m
60
-a
"
${
chain33SenderAddr
}
"
-c
1
-r
"
${
ethReceiverAddr2
}
"
-s
"
${
tokenSymbol
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"prophecy -m 60"
walitProphecyFinish
"
${
ethReceiverAddr2
}
"
"
${
tokenAddr
}
"
100
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
TestETH2Chain33Erc20_err
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLI
}
relayer unlock
-p
123456hzj
# token4erc20 在 chain33 上先有 token,同时 mint
tokenSymbol
=
"errc"
result
=
$(${
CLI
}
relayer ethereum token4erc20
-s
"
${
tokenSymbol
}
"
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4erc20"
".addr"
)
# 先铸币 1000
result
=
$(${
CLI
}
relayer ethereum mint
-m
1000
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"mint"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1000"
result
=
$(${
CLI
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# ETH 2 chain33 lock 前先审批一下
result
=
$(${
CLI
}
relayer ethereum approve
-m
100
-k
"
${
ethReceiverAddrKey1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"approve"
# lock 200 err
result
=
$(${
CLI
}
relayer ethereum lock
-m
200
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret_err
"
${
result
}
"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# lock 1100 err
result
=
$(${
CLI
}
relayer ethereum approve
-m
1100
-k
"
${
ethReceiverAddrKey1
}
"
-t
"
${
tokenAddr
}
"
)
#cli_ret "${result}" "approve"
result
=
$(${
CLI
}
relayer ethereum lock
-m
1100
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret_err
"
${
result
}
"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
result
=
$(${
CLI
}
relayer ethereum approve
-m
300
-k
"
${
ethReceiverAddrKey1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"approve"
# ETH 2 chain33 lock 100
# -r chain33 receiver addr
result
=
$(${
CLI
}
relayer ethereum lock
-m
300
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"700"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"300"
# -c 1 burn 500
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx2
}
"
-m
500
-a
"
${
chain33SenderAddr
}
"
-c
1
-r
"
${
ethReceiverAddr2
}
"
-s
"
${
tokenSymbol
}
"
-t
"
${
tokenAddr
}
"
)
#cli_ret "${result}" "prophecy -m 40"
sleep
15
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenSymbol
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"300"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# eth to chain33
# 在以太坊上锁定资产,然后在 chain33 上铸币,针对 eth 资产
TestETH2Chain33Assets
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLI
}
relayer unlock
-p
123456hzj
result
=
$(${
CLI
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# chain33 lock eth
# lock 100
result
=
$(${
CLI
}
relayer ethereum lock
-m
100
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
# ETH 2 chain33 withdraw 40
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance3
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx3
}
"
-m
40
-a
"
${
chain33SenderAddr
}
"
-c
1
-r
"
${
ethReceiverAddr2
}
"
-s
eth
)
cli_ret
"
${
result
}
"
"prophecy -m 40"
walitProphecyFinish
"
${
ethReceiverAddr2
}
"
$((
balance3
+
40
))
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance4
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
echo
"
${
balance3
}
${
balance4
}
"
if
[[
${
balance4
}
!=
$((
balance3
+
40
))
]]
;
then
echo
"wrong balance"
exit
1
fi
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"60"
# ETH 2 chain33 withdraw 110 error
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance3
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx4
}
"
-m
110
-a
"
${
chain33SenderAddr
}
"
-c
1
-r
"
${
ethReceiverAddr2
}
"
-s
eth
)
#cli_ret "${result}" "prophecy -m 110"
sleep
15
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance4
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
echo
"
${
balance3
}
${
balance4
}
"
if
[[
${
balance4
}
!=
"
${
balance4
}
"
]]
;
then
echo
"wrong balance"
exit
1
fi
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"60"
# ETH 2 chain33 withdraw 60
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance3
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx5
}
"
-m
60
-a
"
${
chain33SenderAddr
}
"
-c
1
-r
"
${
ethReceiverAddr2
}
"
-s
eth
)
cli_ret
"
${
result
}
"
"prophecy -m 60"
wait_prophecy_finish
"
${
CLI
}
"
"
${
ethReceiverAddr2
}
"
$((
balance3
+
60
))
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance4
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
echo
"
${
balance3
}
${
balance4
}
"
if
[[
${
balance4
}
!=
$((
balance3
+
60
))
]]
;
then
echo
"wrong balance"
exit
1
fi
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# chain33 to eth
# 在 chain33 上锁定资产,然后在以太坊上铸币
# chain33 brun 资产,balance 对比是否正确
TestChain33ToEthAssets
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
result
=
$(${
CLI
}
relayer unlock
-p
123456hzj
)
# token4chain33 在 以太坊 上先有 bty
result
=
$(${
CLI
}
relayer ethereum token4chain33
-s
coins.bty
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4chain33"
".addr"
)
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# -c 2 chain33 lock 100
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx6
}
"
-m
100
-a
"
${
chain33SenderAddr
}
"
-c
2
-r
"
${
ethReceiverAddr1
}
"
-s
bty
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"prophecy -m 100"
walitProphecyFinish
"
${
ethReceiverAddr1
}
"
"
${
tokenAddr
}
"
"100"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
# transfer 10
result
=
$(${
CLI
}
relayer ethereum transfer
-m
10
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"transfer"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"90"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"10"
result
=
$(${
CLI
}
relayer ethereum transfer
-m
10
-k
"
${
ethReceiverAddrKey2
}
"
-r
"
${
ethReceiverAddr3
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"transfer"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr3
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"10"
result
=
$(${
CLI
}
relayer ethereum transfer
-m
10
-k
"
${
ethReceiverAddrKey2
}
"
-r
"
${
ethReceiverAddr3
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret_err
"
${
result
}
"
result
=
$(${
CLI
}
relayer ethereum transfer
-m
200
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret_err
"
${
result
}
"
# brun 90
result
=
$(${
CLI
}
relayer ethereum burn
-m
90
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# brun 10 err
result
=
$(${
CLI
}
relayer ethereum burn
-m
10
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret_err
"
${
result
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
main
()
{
# 修改配置文件权重
kill_ebrelayer
"./../build/ebrelayer"
rm
-rf
"./../build/datadir"
sed
-i
's/initPowers=\[25, 25, 25, 25\]/initPowers=\[925, 25, 25, 25\]/g'
"./../build/relayer.toml"
start_ebrelayer
"./../build/ebrelayer"
"./../build/ebrelayer.log"
InitAndDeploy
TestETH2Chain33Erc20
TestETH2Chain33Erc20_err
TestETH2Chain33Assets
TestChain33ToEthAssets
kill_ebrelayer
"./../build/ebrelayer"
}
main
plugin/dapp/x2ethereum/testsh/ebrelayerTest.sh
deleted
100755 → 0
View file @
cfdb82fc
#!/usr/bin/env bash
# shellcheck disable=SC2128
# shellcheck source=/dev/null
set
-x
# 只启动 eth 这一端的测试
# 启动4个 relayer 每个权重一样
source
"./publicTest.sh"
CLIA
=
"../build/ebcli_A"
tokenAddr
=
""
chain33SenderAddr
=
"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33SenderAddrKey
=
"CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
ethReceiverAddr1
=
"0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1
=
"355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2
=
"0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
prophecyTx0
=
"0x772260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
# 初始化部署合约
InitAndDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# 创建文件夹及拷贝
rm
-rf
'../build/A'
'../build/B'
'../build/C'
'../build/D'
mkdir
'../build/A'
'../build/B'
'../build/C'
'../build/D'
cp
'../build/relayer.toml'
'../build/A/relayer.toml'
cp
'../build/ebrelayer'
'../build/A/ebrelayer'
start_ebrelayer
"./../build/A/ebrelayer"
"./../build/A/ebrelayer.log"
result
=
$(${
CLIA
}
relayer set_pwd
-p
123456hzj
)
cli_ret
"
${
result
}
"
"set_pwd"
result
=
$(${
CLIA
}
relayer unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
result
=
$(${
CLIA
}
relayer ethereum deploy
)
cli_ret
"
${
result
}
"
"deploy"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# 初始化 B C D 文件夹下的文容
function
InitConfigFile
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# 获取 BridgeRegistry 地址
result
=
$(${
CLIA
}
relayer ethereum bridgeRegistry
)
BridgeRegistry
=
$(
cli_ret
"
${
result
}
"
"bridgeRegistry"
".addr"
)
port
=
9901
for
name
in
B C D
;
do
file
=
"../build/
$name
/relayer.toml"
cp
'../build/relayer.toml'
"
${
file
}
"
cp
'../build/ebrelayer'
"../build/
$name
/ebrelayer"
# 删除配置文件中不需要的字段
for
deleteName
in
"BridgeRegistry"
"deployerPrivateKey"
"operatorAddr"
"validatorsAddr"
"initPowers"
"deployerPrivateKey"
"deploy"
;
do
delete_line
"
${
file
}
"
"
${
deleteName
}
"
done
# 在第 5 行后面 新增合约地址
sed
-i
'5 a BridgeRegistry="'
"
${
BridgeRegistry
}
"
'"'
"
${
file
}
"
# 替换端口
port
=
$((
port
+
1
))
sed
-i
's/localhost:9901/localhost:'
${
port
}
'/g'
"
${
file
}
"
done
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# 启动 B C D 的 ebrelayer 服务,导入私钥
function
ImportCBDKey
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
for
name
in
B C D
;
do
start_ebrelayer
"./../build/
$name
/ebrelayer"
"./../build/
$name
/ebrelayer.log"
# 导入测试地址私钥
CLI
=
"../build/ebcli_
$name
"
result
=
$(${
CLI
}
relayer set_pwd
-p
123456hzj
)
cli_ret
"
${
result
}
"
"set_pwd"
result
=
$(${
CLI
}
relayer unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
result
=
$(${
CLI
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33SenderAddrKey
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
done
result
=
$(${
CLIA
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33SenderAddrKey
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# chain33 到 eth,chian33 lock 100,必须 A B C D 中有三个都lock,才能成功
TestChain33ToEth
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# token4chain33 在 以太坊 上先有 bty
result
=
$(${
CLIA
}
relayer ethereum token4chain33
-s
coins.bty
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4chain33"
".addr"
)
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
for
name
in
A B C D
;
do
CLI
=
"../build/ebcli_
$name
"
# -c 2 chain33 lock 100
result
=
$(${
CLI
}
relayer ethereum prophecy
-i
"
${
prophecyTx0
}
"
-m
100
-a
"
${
chain33SenderAddr
}
"
-c
2
-r
"
${
ethReceiverAddr1
}
"
-s
coins.bty
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"prophecy -m 1"
if
[[
${
name
}
==
"A"
||
${
name
}
==
"B"
]]
;
then
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
elif
[[
${
name
}
==
"C"
||
${
name
}
==
"D"
]]
;
then
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
fi
done
# transfer 10
result
=
$(${
CLIA
}
relayer ethereum transfer
-m
10
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"transfer"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"90"
result
=
$(${
CLIA
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"10"
# burn 90
result
=
$(${
CLIA
}
relayer ethereum burn
-m
90
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
main
()
{
kill_all_ebrelayer
InitAndDeploy
InitConfigFile
ImportCBDKey
TestChain33ToEth
kill_all_ebrelayer
}
main
plugin/dapp/x2ethereum/testsh/x2ethereumTest.sh
deleted
100755 → 0
View file @
cfdb82fc
#!/usr/bin/env bash
# shellcheck disable=SC2128
# shellcheck source=/dev/null
set
-x
# eth 和 chain33 两端都启动
# 只启动一个 relayer 第一个地址权重设置超过2/3
source
"./publicTest.sh"
CLI
=
"../build/ebcli_A"
docker_chain33_ip
=
$(
docker inspect
-f
'{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
build_chain33_1
)
Chain33Cli
=
"
$GOPATH
/src/github.com/33cn/plugin/build/chain33-cli --rpc_laddr http://
${
docker_chain33_ip
}
:8801"
tokenAddr
=
""
BridgeRegistry
=
""
chain33SenderAddr
=
"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33SenderAddrKey
=
"CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
ethValidatorAddrKey
=
"3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
ethReceiverAddr1
=
"0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1
=
"355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2
=
"0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2
=
"9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
chain33Validator1
=
"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33Validator2
=
"12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv"
#0x4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01
chain33Validator3
=
"1BqP2vHkYNjSgdnTqm7pGbnphLhtEhuJFi"
maturityDegree
=
10
function
InitAndDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
result
=
$(${
CLI
}
relayer set_pwd
-p
123456hzj
)
cli_ret
"
${
result
}
"
"set_pwd"
result
=
$(${
CLI
}
relayer unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
result
=
$(${
CLI
}
relayer ethereum deploy
)
cli_ret
"
${
result
}
"
"deploy"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
EthImportKey
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
result
=
$(${
CLI
}
relayer set_pwd
-p
123456hzj
)
result
=
$(${
CLI
}
relayer unlock
-p
123456hzj
)
result
=
$(${
CLI
}
relayer ethereum import_chain33privatekey
-k
"
${
chain33SenderAddrKey
}
"
)
cli_ret
"
${
result
}
"
"import_chain33privatekey"
result
=
$(${
CLI
}
relayer chain33 import_privatekey
-k
"
${
ethValidatorAddrKey
}
"
)
cli_ret
"
${
result
}
"
"import_ethprivatekey"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
StartRelayerAndDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
kill_ebrelayer
"../build/ebrelayer"
kill_ebrelayer
"../build/A/ebrelayer"
cp
"../ebrelayer/relayer.toml"
"../build/relayer.toml"
sed
-i
's/initPowers=\[25, 25, 25, 25\]/initPowers=\[925, 25, 25, 25\]/g'
"../build/relayer.toml"
rm
-rf
"../build/datadir"
"../build/ebrelayer.log"
"../build/logs"
# 启动 eth
start_trufflesuite
start_ebrelayer
"../build/ebrelayer"
"../build/ebrelayer.log"
InitAndDeploy
# 获取 BridgeRegistry 地址
result
=
$(${
CLI
}
relayer ethereum bridgeRegistry
)
BridgeRegistry
=
$(
cli_ret
"
${
result
}
"
"bridgeRegistry"
".addr"
)
# BridgeRegistry="0x5331F912027057fBE8139D91B225246e8159232f"
kill_ebrelayer
"../build/ebrelayer"
# 修改 relayer.toml 配置文件
updata_relayer_toml
"
${
BridgeRegistry
}
"
${
maturityDegree
}
"../build/relayer.toml"
# 重启 ebrelayer 并解锁
start_ebrelayer
"../build/ebrelayer"
"../build/ebrelayer.log"
${
CLI
}
relayer set_pwd
-p
123456hzj
${
CLI
}
relayer unlock
-p
123456hzj
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
ExitRelayer
()
{
# kill ebrelayer
kill_ebrelayer
"../build/ebrelayer"
# 删除 eth
docker stop ganachetest
docker
rm
ganachetest
}
# chian33 添加验证着及权重
function
InitChain33Vilators
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# SetConsensusThreshold
hash
=
$(${
Chain33Cli
}
send x2ethereum setconsensus
-p
80
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
# add a validator
hash
=
$(${
Chain33Cli
}
send x2ethereum add
-a
${
chain33Validator1
}
-p
87
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
# add a validator again
hash
=
$(${
Chain33Cli
}
send x2ethereum add
-a
${
chain33Validator2
}
-p
6
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
# add a validator
hash
=
$(${
Chain33Cli
}
send x2ethereum add
-a
${
chain33Validator3
}
-p
7
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
# query Validators
totalPower
=
$(${
Chain33Cli
}
send x2ethereum query validators
-v
${
chain33Validator1
}
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv | jq .totalPower |
sed
's/\"//g'
)
check_number 87
"
${
totalPower
}
"
totalPower
=
$(${
Chain33Cli
}
send x2ethereum query totalpower
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv | jq .totalPower |
sed
's/\"//g'
)
check_number 100
"
${
totalPower
}
"
# cions 转帐到 x2ethereum 合约地址
hash
=
$(${
Chain33Cli
}
send coins send_exec
-e
x2ethereum
-a
200
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"200.0000"
# chain33SenderAddr 要有手续费
hash
=
$(${
Chain33Cli
}
send coins transfer
-a
100
-t
"
${
chain33SenderAddr
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33SenderAddr
}
"
-e
coins
)
# balance_ret "${result}" "100.0000"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
TestChain33ToEthAssets
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# token4chain33 在 以太坊 上先有 bty
result
=
$(${
CLI
}
relayer ethereum token4chain33
-s
coins.bty
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4chain33"
".addr"
)
# tokenAddr="0x9C3D40A44a2F61Ef8D46fa8C7A731C08FB16cCEF"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"coins.bty"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# chain33 lock bty
hash
=
$(${
Chain33Cli
}
send x2ethereum lock
-a
5
-t
coins.bty
-r
${
ethReceiverAddr1
}
-q
"
${
tokenAddr
}
"
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
account balance
-a
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"195.0000"
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"5"
# eth transfer
{
result
=
$(${
CLI
}
relayer ethereum transfer
-m
1.5
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"transfer"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"3.5"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1.5"
}
# eth burn
result
=
$(${
CLI
}
relayer ethereum burn
-m
0.4
-k
"
${
ethReceiverAddrKey2
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1.1"
result
=
$(${
CLI
}
relayer ethereum burn
-m
0.4
-k
"
${
ethReceiverAddrKey2
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0.7"
result
=
$(${
CLI
}
relayer ethereum burn
-m
0.7
-k
"
${
ethReceiverAddrKey2
}
"
-r
"
${
chain33Validator3
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"burn"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33SenderAddr
}
"
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"0.8000"
result
=
$(${
Chain33Cli
}
account balance
-a
"
${
chain33Validator3
}
"
-e
x2ethereum
)
balance_ret
"
${
result
}
"
"0.7000"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# shellcheck disable=SC2046
# eth to chain33
# 在以太坊上锁定资产,然后在 chain33 上铸币,针对 eth 资产
function
TestETH2Chain33Assets
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLI
}
relayer unlock
-p
123456hzj
result
=
$(${
CLI
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# eth lock 10
result
=
$(${
CLI
}
relayer ethereum lock
-m
10
-k
"
${
ethReceiverAddrKey1
}
"
-r
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"10"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"10"
# chain33 burn 4.9999 eth
{
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
)
balance
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
4.9999
-t
eth
-r
${
ethReceiverAddr1
}
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"5.0001"
eth_block_wait 2
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"5.0001"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
$(
echo
"
${
balance
}
+4.9999"
| bc
)
}
# chain33 burn 5.0001 eth
{
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
balance
=
$(
cli_ret
"
${
result
}
"
"balance"
".balance"
)
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
5.0001
-t
eth
-r
${
ethReceiverAddr2
}
-k
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
-t
eth | jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
eth_block_wait 2
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
$(
echo
"
${
balance
}
+5.0001"
| bc
)
}
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
TestETH2Chain33Erc20
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
${
CLI
}
relayer unlock
-p
123456hzj
# token4erc20 在 chain33 上先有 token,同时 mint
tokenSymbol
=
"testc"
result
=
$(${
CLI
}
relayer ethereum token4erc20
-s
"
${
tokenSymbol
}
"
)
tokenAddr
=
$(
cli_ret
"
${
result
}
"
"token4erc20"
".addr"
)
# 先铸币 1000
result
=
$(${
CLI
}
relayer ethereum mint
-m
1000
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"mint"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"1000"
result
=
$(${
CLI
}
relayer ethereum bridgeBankAddr
)
bridgeBankAddr
=
$(
cli_ret
"
${
result
}
"
"bridgeBankAddr"
".addr"
)
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
# lock 100
result
=
$(${
CLI
}
relayer ethereum lock
-m
100
-k
"
${
ethReceiverAddrKey1
}
"
-r
"
${
chain33SenderAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"lock"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr1
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"900"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
# eth 等待 10 个区块
eth_block_wait
$((
maturityDegree
+
2
))
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33SenderAddr
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"100"
# chain33 burn 40
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
40
-t
"
${
tokenSymbol
}
"
-r
${
ethReceiverAddr2
}
-q
"
${
tokenAddr
}
"
-k
"
${
chain33SenderAddr
}
"
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33SenderAddr
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"60"
eth_block_wait 2
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"40"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"60"
# burn 60
hash
=
$(${
Chain33Cli
}
send x2ethereum burn
-a
60
-t
"
${
tokenSymbol
}
"
-r
${
ethReceiverAddr2
}
-q
"
${
tokenAddr
}
"
-k
"
${
chain33SenderAddr
}
"
)
block_wait
"
${
Chain33Cli
}
"
$((
maturityDegree
+
2
))
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
x2ethereum balance
-s
"
${
chain33SenderAddr
}
"
-t
"
${
tokenSymbol
}
"
-a
"
${
tokenAddr
}
"
| jq
".res"
| jq
".[]"
)
balance_ret
"
${
result
}
"
"0"
eth_block_wait 2
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
ethReceiverAddr2
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"100"
result
=
$(${
CLI
}
relayer ethereum balance
-o
"
${
bridgeBankAddr
}
"
-t
"
${
tokenAddr
}
"
)
cli_ret
"
${
result
}
"
"balance"
".balance"
"0"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
main
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
if
[[
${
1
}
!=
""
]]
;
then
maturityDegree
=
${
1
}
echo
-e
"
${
GRE
}
maturityDegree is
${
maturityDegree
}
${
NOC
}
"
fi
StartRelayerAndDeploy
EthImportKey
InitChain33Vilators
TestChain33ToEthAssets
TestETH2Chain33Assets
TestETH2Chain33Erc20
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
# $1 等待区块 默认10
main 1
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