Commit 47d7017f authored by mdj33's avatar mdj33 Committed by vipwzw

adapt cross transfer rpc test

parent 71b0f499
...@@ -21,8 +21,12 @@ function paracross_QueryParaBalance() { ...@@ -21,8 +21,12 @@ function paracross_QueryParaBalance() {
ip_http=${UNIT_HTTP%:*} ip_http=${UNIT_HTTP%:*}
para_http="$ip_http:8901" para_http="$ip_http:8901"
local exec=$2 local exec=$2
local symbol="coins.bty"
if [ -n "$3" ]; then
symbol="$3"
fi
req='{"method":"Chain33.GetBalance", "params":[{"addresses" : ["'"$1"'"], "execer" : "'"${exec}"'","asset_exec":"paracross","asset_symbol":"coins.bty"}]}' req='{"method":"Chain33.GetBalance", "params":[{"addresses" : ["'"$1"'"], "execer" : "'"${exec}"'","asset_exec":"paracross","asset_symbol":"'"${symbol}"'"}]}'
resp=$(curl -ksd "$req" "${para_http}") resp=$(curl -ksd "$req" "${para_http}")
balance=$(jq -r '.result[0].balance' <<<"$resp") balance=$(jq -r '.result[0].balance' <<<"$resp")
echo "$balance" echo "$balance"
...@@ -46,6 +50,28 @@ function paracross_QueryMainBalance() { ...@@ -46,6 +50,28 @@ function paracross_QueryMainBalance() {
return $? return $?
} }
function paracross_QueryMainAssetBalance() {
local req
local resp
local balance
local ip_http
local main_http
ip_http=${UNIT_HTTP%:*}
main_http="$ip_http:8801"
local exec=$2
local symbol="bty"
if [ -n "$3" ]; then
symbol="$3"
fi
req='{"method":"Chain33.GetBalance", "params":[{"addresses" : ["'"$1"'"], "execer" : "'"${exec}"'","asset_exec":"paracross","asset_symbol":"'"${symbol}"'"}]}'
resp=$(curl -ksd "$req" "${main_http}")
balance=$(jq -r '.result[0].balance' <<<"$resp")
echo "$balance"
return $?
}
function paracross_Transfer_Withdraw_Inner() { function paracross_Transfer_Withdraw_Inner() {
# 计数器,资产转移操作和取钱操作都成功才算成功,也就是 counter == 2 # 计数器,资产转移操作和取钱操作都成功才算成功,也就是 counter == 2
local count=0 local count=0
...@@ -204,7 +230,7 @@ function paracross_ListNodeGroupStatus() { ...@@ -204,7 +230,7 @@ function paracross_ListNodeGroupStatus() {
} }
function paracross_ListNodeStatus() { function paracross_ListNodeStatus() {
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"ListNodeStatusInfo","payload":{"title":"user.p.para.","status":4}}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME" chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"ListNodeStatusInfo","payload":{"title":"user.p.para.","status":3}}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME"
} }
para_test_addr="1MAuE8QSbbech3bVKK2JPJJxYxNtT95oSU" para_test_addr="1MAuE8QSbbech3bVKK2JPJJxYxNtT95oSU"
...@@ -214,15 +240,18 @@ function paracross_txgroupex() { ...@@ -214,15 +240,18 @@ function paracross_txgroupex() {
local amount_transfer=$1 local amount_transfer=$1
local amount_trade=$2 local amount_trade=$2
local para_ip=$3 local para_ip=$3
local para_title=$4
local paracross_execer_name="user.p.para.paracross" local coins_exec="$5"
local trade_exec_name="user.p.para.trade" local bty_symbol="$6"
local paracross_execer_name="$para_title.paracross"
local trade_exec_name="$para_title.trade"
# 资产从主链转移到平行链 # 资产从主链转移到平行链
req='"method":"Chain33.CreateTransaction","params":[{"execer":"'"${paracross_execer_name}"'","actionName":"ParacrossAssetTransfer","payload":{"execName":"'"${paracross_execer_name}"'","to":"'"$para_test_addr"'","amount":'${amount_transfer}'}}]' req='"method":"Chain33.CreateTransaction","params":[{"execer":"'"${paracross_execer_name}"'","actionName":"CrossAssetTransfer","payload":{"assetExec":"'"${coins_exec}"'","assetSymbol":"'"${bty_symbol}"'","amount":'${amount_transfer}'}}]'
echo "$req" echo "$req"
resp=$(curl -ksd "{$req}" "${para_ip}") resp=$(curl -ksd "{$req}" "${para_ip}")
# echo "$resp" echo "$resp"
err=$(jq '(.error)' <<<"$resp") err=$(jq '(.error)' <<<"$resp")
if [ "$err" != null ]; then if [ "$err" != null ]; then
echo "$resp" echo "$resp"
...@@ -280,14 +309,16 @@ function paracross_testTxGroupFail() { ...@@ -280,14 +309,16 @@ function paracross_testTxGroupFail() {
local amount_transfer=100000000 local amount_transfer=100000000
local amount_left=500000000 local amount_left=500000000
#当前为5个
left_exec_val=$(paracross_QueryMainBalance "${para_test_addr}") left_exec_val=$(paracross_QueryMainBalance "${para_test_addr}")
if [ "${left_exec_val}" != $amount_left ]; then if [ "${left_exec_val}" != $amount_left ]; then
echo "paracross_testTxGroupFail left main paracross failed, get=$left_exec_val,expec=$amount_left" echo "paracross_testTxGroupFail left main paracross failed, get=$left_exec_val,expec=$amount_left"
exit 1 exit 1
fi fi
paracross_txgroupex "${amount_transfer}" "${amount_trade}" "${para_ip}" paracross_txgroupex "${amount_transfer}" "${amount_trade}" "${para_ip}" "user.p.para" "coins" "bty"
#跨链失败后仍应该有5个,之前transfer到trade的2个应该保持不变
local count=0 local count=0
local times=100 local times=100
local paracross_execer_name="user.p.para.paracross" local paracross_execer_name="user.p.para.paracross"
...@@ -317,6 +348,57 @@ function paracross_testTxGroupFail() { ...@@ -317,6 +348,57 @@ function paracross_testTxGroupFail() {
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
} }
#测试paraAssetWithdraw fail, 但是目前拿不到game 平行链ip构建平行链交易,可以在主链上构建不包含CreateNoBlanaceTxs的交易组来测试,不然需要在平行链上构建
function paracross_testParaAssetWithdrawFail() {
local para_ip=$1
ispara=$(echo '"'"${para_ip}"'"' | jq '.|contains("8901")')
echo "ipara=$ispara"
local paracross_addr=""
local main_ip=${para_ip//8901/8801}
local game_token_test_addr="1BM2xhBk95qoae8zKNDWwAVGgBERhb7DQu"
#execer
local trade_exec_addr="12bihjzbaYWjcpDiiy9SuAWeqNksQdiN13"
#测试跨链过去10个,交易组转账8000个失败的场景,主链应该还保持原来的
local amount_trade=800000000000
local amount_transfer=1000000000
local amount_left=10000000000
#当前为5个
left_exec_val=$(paracross_QueryMainAssetBalance "${game_token_test_addr}" "paracross") "user.p.game.coins.para"
if [ "${left_exec_val}" != $amount_left ]; then
echo "paracross_testTxGroupFail left main paracross failed, get=$left_exec_val,expec=$amount_left"
exit 1
fi
paracross_txgroupex "${amount_transfer}" "${amount_trade}" "${para_ip}" "user.p.game" "paracross" "user.p.game.coins.para"
#跨链失败后仍应该有5个,之前transfer到trade的2个应该保持不变
local count=0
local times=100
while true; do
left_exec_val=$(paracross_QueryMainAssetBalance "${game_token_test_addr}" "paracross" "user.p.game.coins.para")
if [ "${left_exec_val}" != $amount_left ]; then
echo "left=${left_exec_val}-expect=${amount_left}"
chain33_BlockWait 2 ${UNIT_HTTP}
times=$((times - 1))
if [ $times -le 0 ]; then
echo "para_cross_transfer_testfail failed"
exit 1
fi
echo "paracross_testTxGroupFail left main paracross failed, get=$left_exec_val,expec=$amount_left"
else
count=$((count + 1))
break
fi
done
[ "$count" -eq 1 ]
local rst=$?
echo_rst "$FUNCNAME" "$rst"
}
function paracross_testTxGroup() { function paracross_testTxGroup() {
local para_ip=$1 local para_ip=$1
...@@ -346,7 +428,7 @@ function paracross_testTxGroup() { ...@@ -346,7 +428,7 @@ function paracross_testTxGroup() {
chain33_SendToAddress "${para_test_addr}" "$paracross_addr" "$amount_deposit" "${main_ip}" chain33_SendToAddress "${para_test_addr}" "$paracross_addr" "$amount_deposit" "${main_ip}"
chain33_QueryExecBalance "${para_test_addr}" "paracross" "${main_ip}" chain33_QueryExecBalance "${para_test_addr}" "paracross" "${main_ip}"
paracross_txgroupex "${amount_transfer}" "${amount_trade}" "${para_ip}" paracross_txgroupex "${amount_transfer}" "${amount_trade}" "${para_ip}" "user.p.para" "coins" "bty"
local transfer_expect="200000000" local transfer_expect="200000000"
local exec_expect="100000000" local exec_expect="100000000"
...@@ -379,10 +461,10 @@ paracross_testSelfConsensStages() { ...@@ -379,10 +461,10 @@ paracross_testSelfConsensStages() {
echo "$resp" echo "$resp"
exit 1 exit 1
fi fi
chainheight=$(jq '(.result.chainHeight)' <<<"$resp") chainheight=$(jq -r '(.result.chainHeight)' <<<"$resp")
newHeight=$((chainheight + 2000)) newHeight=$((chainheight + 2000))
echo "apply stage startHeight=$newHeight" echo "apply stage startHeight=$newHeight"
req='"method":"Chain33.CreateTransaction","params":[{"execer" : "user.p.para.paracross","actionName" : "SelfStageConfig","payload" : {"title":"user.p.para.","op" : "1", "stage" : {"startHeight":'"$newHeight"',"enable":2} }}]' req='"method":"Chain33.CreateTransaction","params":[{"execer" : "user.p.para.paracross","actionName" : "SelfStageConfig","payload" : {"title":"user.p.para.","ty" : "1", "stage" : {"startHeight":'"$newHeight"',"enable":2} }}]'
resp=$(curl -ksd "{$req}" "${para_ip}") resp=$(curl -ksd "{$req}" "${para_ip}")
rawtx=$(jq -r ".result" <<<"$resp") rawtx=$(jq -r ".result" <<<"$resp")
chain33_SignAndSendTx "$rawtx" "$para_test_prikey" "${para_ip}" chain33_SignAndSendTx "$rawtx" "$para_test_prikey" "${para_ip}"
...@@ -402,7 +484,7 @@ paracross_testSelfConsensStages() { ...@@ -402,7 +484,7 @@ paracross_testSelfConsensStages() {
JR_PRI="0x19c069234f9d3e61135fefbeb7791b149cdf6af536f26bebb310d4cd22c3fee4" JR_PRI="0x19c069234f9d3e61135fefbeb7791b149cdf6af536f26bebb310d4cd22c3fee4"
NL_PRI="0x7a80a1f75d7360c6123c32a78ecf978c1ac55636f87892df38d8b85a9aeff115" NL_PRI="0x7a80a1f75d7360c6123c32a78ecf978c1ac55636f87892df38d8b85a9aeff115"
req='"method":"Chain33.CreateTransaction","params":[{"execer" : "user.p.para.paracross","actionName" : "SelfStageConfig","payload":{"title":"user.p.para.","op":"2","vote":{"id":"'"$id"'","value":1} }}]' req='"method":"Chain33.CreateTransaction","params":[{"execer" : "user.p.para.paracross","actionName" : "SelfStageConfig","payload":{"title":"user.p.para.","ty":"2","vote":{"id":"'"$id"'","value":1} }}]'
resp=$(curl -ksd "{$req}" "${para_ip}") resp=$(curl -ksd "{$req}" "${para_ip}")
rawtx=$(jq -r ".result" <<<"$resp") rawtx=$(jq -r ".result" <<<"$resp")
echo "send vote 1" echo "send vote 1"
...@@ -450,6 +532,7 @@ function run_testcases() { ...@@ -450,6 +532,7 @@ function run_testcases() {
paracross_Transfer_Withdraw paracross_Transfer_Withdraw
paracross_testTxGroup "$UNIT_HTTP" paracross_testTxGroup "$UNIT_HTTP"
paracross_testTxGroupFail "$UNIT_HTTP" paracross_testTxGroupFail "$UNIT_HTTP"
#paracross_testParaAssetWithdrawFail "$UNIT_HTTP"
paracross_testSelfConsensStages "$UNIT_HTTP" paracross_testSelfConsensStages "$UNIT_HTTP"
} }
......
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