Commit 080e43fa authored by mdj33's avatar mdj33 Committed by vipwzw

add relay rpc test

parent 2c9b73ba
...@@ -57,7 +57,7 @@ if [ -n "${DAPP}" ]; then ...@@ -57,7 +57,7 @@ if [ -n "${DAPP}" ]; then
fi fi
if [ -z "$DAPP" ]; then if [ -z "$DAPP" ] || [ "$DAPP" == "paracross" ]; then
# shellcheck source=/dev/null # shellcheck source=/dev/null
source system-test-rpc.sh source system-test-rpc.sh
# shellcheck source=/dev/null # shellcheck source=/dev/null
...@@ -328,16 +328,20 @@ function transfer() { ...@@ -328,16 +328,20 @@ function transfer() {
} }
function base_config() { function base_config() {
sync # sync
transfer "${CLI}" transfer "${CLI}"
# transfer "${CLI4}" # transfer "${CLI4}"
} }
function base_test() { function base_test() {
if [ "$DAPP" == "" ]; then if [ "$DAPP" == "" ]; then
system_test_rpc "${1}" system_test_rpc "http://${1}:8801"
dapp_test_rpc "${1}" dapp_test_rpc "http://${1}:8801"
fi fi
# if [ "$DAPP" == "paracross" ]; then
# system_test_rpc "http://${1}:8901"
# dapp_test_rpc "http://${1}:8901"
# fi
} }
function dapp_run() { function dapp_run() {
......
...@@ -30,8 +30,7 @@ chain33_unlock() { ...@@ -30,8 +30,7 @@ chain33_unlock() {
} }
function system_test_rpc() { function system_test_rpc() {
local ip=$1 MAIN_HTTP="$1"
MAIN_HTTP="http://$ip:8801"
echo "=========== # system rpc test =============" echo "=========== # system rpc test ============="
echo "ip=$MAIN_HTTP" echo "ip=$MAIN_HTTP"
...@@ -44,4 +43,4 @@ function system_test_rpc() { ...@@ -44,4 +43,4 @@ function system_test_rpc() {
fi fi
} }
#system_rpc_test #system_test_rpc $1
...@@ -41,16 +41,16 @@ function query_tx() { ...@@ -41,16 +41,16 @@ function query_tx() {
local times=100 local times=100
while true; do while true; do
ret=$(curl -ksd "{$req}" ${MAIN_HTTP} | jq -r ".result.tx.hash") ret=$(curl -ksd "{$req}" ${MAIN_HTTP} | jq -r ".result.tx.hash")
echo "query hash is ${1}, return ${ret} " echo "====query tx= ${1} "
if [ "${ret}" != "${1}" ]; then if [ "${ret}" != "${1}" ]; then
block_wait 1 block_wait 1
times=$((times - 1)) times=$((times - 1))
if [ $times -le 0 ]; then if [ $times -le 0 ]; then
echo "query tx=$1 failed" echo "====query tx=$1 failed"
exit 1 exit 1
fi fi
else else
echo "query tx=$1 success" echo "====query tx=$1 success"
break break
fi fi
done done
...@@ -61,7 +61,7 @@ Chain33_SendToAddress() { ...@@ -61,7 +61,7 @@ Chain33_SendToAddress() {
to="$2" to="$2"
amount=$3 amount=$3
req='"method":"Chain33.SendToAddress", "params":[{"from":"'"$from"'","to":"'"$to"'", "amount":'"$amount"', "note":"test\n"}]' req='"method":"Chain33.SendToAddress", "params":[{"from":"'"$from"'","to":"'"$to"'", "amount":'"$amount"', "note":"test\n"}]'
echo "#request: $req" # echo "#request: $req"
resp=$(curl -ksd "{$req}" "${MAIN_HTTP}") resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
echo "#response: $resp" echo "#response: $resp"
ok=$(jq '(.error|not) and (.result.hash|length==66)' <<<"$resp") ok=$(jq '(.error|not) and (.result.hash|length==66)' <<<"$resp")
...@@ -72,13 +72,22 @@ Chain33_SendToAddress() { ...@@ -72,13 +72,22 @@ Chain33_SendToAddress() {
signrawtx(){ signrawtx(){
txHex="$1" txHex="$1"
req='"method":"Chain33.SignRawTx","params":[{"privkey":"CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944","txHex":"'"$txHex"'","expire":"120s"}]' priKey="$2"
echo "#request SignRawTx: $req" req='"method":"Chain33.SignRawTx","params":[{"privkey":"'"$priKey"'","txHex":"'"$txHex"'","expire":"120s"}]'
curl -ksd "{$req}" ${MAIN_HTTP} # echo "#request SignRawTx: $req"
signedTx=$(curl -ksd "{$req}" ${MAIN_HTTP} |jq -r ".result") signedTx=$(curl -ksd "{$req}" ${MAIN_HTTP} |jq -r ".result")
# echo "signedTx=$signedTx"
if [ "$signedTx" != null ];then
sendTx "$signedTx"
else
echo "signedTx null error"
fi
}
sendTx(){
signedTx=$1
req='"method":"Chain33.SendTransaction","params":[{"token":"BTY","data":"'"$signedTx"'"}]' req='"method":"Chain33.SendTransaction","params":[{"token":"BTY","data":"'"$signedTx"'"}]'
echo "#request sendTx: $req" # echo "#request sendTx: $req"
# curl -ksd "{$req}" ${MAIN_HTTP} # curl -ksd "{$req}" ${MAIN_HTTP}
resp=$(curl -ksd "{$req}" ${MAIN_HTTP}) resp=$(curl -ksd "{$req}" ${MAIN_HTTP})
err=$(jq '(.error)' <<< "$resp") err=$(jq '(.error)' <<< "$resp")
...@@ -93,91 +102,141 @@ signrawtx(){ ...@@ -93,91 +102,141 @@ signrawtx(){
} }
relay_CreateRawRelayOrderTx() { relay_CreateRawRelayOrderTx() {
req='"method":"relay.CreateRawRelayOrderTx","params":[{"coin":"BTC","amount":299000000,"addr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT","btyAmount":20000000000,"coinWaits":6}]' req='"method":"relay.CreateRawRelayOrderTx","params":[{"operation":0,"coin":"BTC","amount":299000000,"addr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT","btyAmount":20000000000,"coinWaits":6}]'
echo "#request: $req" # echo "#request: $req"
# curl -ksd "{$req}" "${MAIN_HTTP}"
resp=$(curl -ksd "{$req}" "${MAIN_HTTP}") resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
echo "#resp: $resp" # echo "#resp: $resp"
ok=$(jq '(.error|not) and (.result != "")' <<<"$resp") ok=$(jq '(.error|not) and (.result != "")' <<<"$resp")
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
rawtx=$(jq -r ".result" <<<"$resp") rawtx=$(jq -r ".result" <<<"$resp")
echo "raw=$rawtx" signrawtx "$rawtx" "4257D8692EF7FE13C68B65D6A52F03933DB2FA5CE8FAF210B5B8B80C721CED01"
signrawtx "$rawtx"
} }
relay_CreateRawRelayAcceptTx() { relay_CreateRawRelayAcceptTx() {
local result="0a0572656c6179122d500112290a01311222384535736161585662396d573877635755555a6a73484a505a7331476d647a755359180220a08d0630da83b6d0e4aaffdf7b3a2131726852677a627a32363465794a753741633633776570736d395473457077584d" req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetSellRelayOrder","payload":{"addr":"12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv","status":"pending","coins":["BTC"],"pageNumber":0,"pageSize":0}}]'
r1=$(curl -ksd '{"jsonrpc":"2.0","id":0,"method":"relay.CreateRawRelayAcceptTx","params":[{"orderId":"1","coinAddr":"8E5saaXVb9mW8wcWUUZjsHJPZs1GmdzuSY","coinWaits":2}]}' ${MAIN_HTTP} | jq -r ".result") # echo "#request: $req"
[ "$r1" == "$result" ] id=$(curl -ksd "{$req}" ${MAIN_HTTP} |jq -r ".result.relayorders[0].id")
rst=$? if [ "$id" == null ];then
echo_rst "$FUNCNAME" "$rst" echo "id is null"
echo_rst "$FUNCNAME" "$?"
exit 1
fi
req='"method":"relay.CreateRawRelayAcceptTx","params":[{"orderId":"'"$id"'","coinAddr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT"}]'
# echo "#request: $req"
resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
# echo "#resp: $resp"
ok=$(jq '(.error|not) and (.result != "")' <<<"$resp")
[ "$ok" == true ]
echo_rst "$FUNCNAME" "$?"
rawtx=$(jq -r ".result" <<<"$resp")
signrawtx "$rawtx" "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
} }
relay_CreateRawRelayRevokeTx() { relay_CreateRawRelayRevokeTx() {
local result="0a0572656c617912d505500532d0050a0131128204303130303030303030316333336562666632613730396631336439663961373536396162313661333237383661663764376532646530393236356534316336316430373832393465636630313030303030303861343733303434303232303033326433306466356565366635376661343663646462356562386430643966653864653662333432643237393432616539306133323331653062613333336530323230336465656538303630666463373032333061376635623461643764376263336536323863626532313961383836623834323639656165623831653236623466653031343130346165333163333162663931323738643939623833373761333562626365356232376439666666313534353638333965393139343533666337623366373231663062613430336666393663396465656236383065356664333431633066633361376239306461343633316565333935363036333964623436326539636238353066666666666666666630323430343230663030303030303030303031393736613931346230646362663937656162663434303465333164393532343737636538323264616462653765313038386163633036306432313130303030303030303139373661393134366231323831656563323561623465316530373933666634653038616231616262333430396364393838616330303030303030301801228101653961363638343565303564356162633061643034656338306637373461376535383563366538646239373539363264303639613532323133376238306331642d636364616662373364386463643031373364356435633363396130373730643062333935336462383839646162393965663035623139303735313863623831352a403030303030303030303030336261323761613230306231636563616164343738643262303034333233343663336631663339383664613161666433336535303620c09a0c30a78dd7a0d9ab9390023a2131726852677a627a32363465794a753741633633776570736d395473457077584d" req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetSellRelayOrder","payload":{"addr":"12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv","status":"pending","coins":["BTC"],"pageNumber":0,"pageSize":0}}]'
r1=$(curl -ksd '{"jsonrpc":"2.0","id":0,"method":"relay.CreateRawRelayRevokeTx","params":[{"orderId":"1","rawTx":"0100000001c33ebff2a709f13d9f9a7569ab16a32786af7d7e2de09265e41c61d078294ecf010000008a4730440220032d30df5ee6f57fa46cddb5eb8d0d9fe8de6b342d27942ae90a3231e0ba333e02203deee8060fdc70230a7f5b4ad7d7bc3e628cbe219a886b84269eaeb81e26b4fe014104ae31c31bf91278d99b8377a35bbce5b27d9fff15456839e919453fc7b3f721f0ba403ff96c9deeb680e5fd341c0fc3a7b90da4631ee39560639db462e9cb850fffffffff0240420f00000000001976a914b0dcbf97eabf4404e31d952477ce822dadbe7e1088acc060d211000000001976a9146b1281eec25ab4e1e0793ff4e08ab1abb3409cd988ac00000000","txIndex":1,"merkBranch":"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d-ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815","blockHash":"000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506"}]}' ${MAIN_HTTP} | jq -r ".result") # echo "#request: $req"
[ "$r1" == "$result" ] id=$(curl -ksd "{$req}" ${MAIN_HTTP} |jq -r ".result.relayorders[0].id")
rst=$? if [ "$id" == null ];then
echo_rst "$FUNCNAME" "$rst" echo "id is null"
echo_rst "$FUNCNAME" "$?"
exit 1
fi
req='"method":"relay.CreateRawRelayRevokeTx","params":[{"orderId":"'"$id"'","target":0,"action":1}]'
# echo "#request: $req"
resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
# echo "#resp: $resp"
ok=$(jq '(.error|not) and (.result != "")' <<<"$resp")
[ "$ok" == true ]
echo_rst "$FUNCNAME" "$?"
rawtx=$(jq -r ".result" <<<"$resp")
signrawtx "$rawtx" "4257D8692EF7FE13C68B65D6A52F03933DB2FA5CE8FAF210B5B8B80C721CED01"
} }
relay_CreateRawRelayConfirmTx() { relay_CreateRawRelayConfirmTx() {
local result="0a0572656c617912d505500532d0050a0131128204303130303030303030316333336562666632613730396631336439663961373536396162313661333237383661663764376532646530393236356534316336316430373832393465636630313030303030303861343733303434303232303033326433306466356565366635376661343663646462356562386430643966653864653662333432643237393432616539306133323331653062613333336530323230336465656538303630666463373032333061376635623461643764376263336536323863626532313961383836623834323639656165623831653236623466653031343130346165333163333162663931323738643939623833373761333562626365356232376439666666313534353638333965393139343533666337623366373231663062613430336666393663396465656236383065356664333431633066633361376239306461343633316565333935363036333964623436326539636238353066666666666666666630323430343230663030303030303030303031393736613931346230646362663937656162663434303465333164393532343737636538323264616462653765313038386163633036306432313130303030303030303139373661393134366231323831656563323561623465316530373933666634653038616231616262333430396364393838616330303030303030301801228101653961363638343565303564356162633061643034656338306637373461376535383563366538646239373539363264303639613532323133376238306331642d636364616662373364386463643031373364356435633363396130373730643062333935336462383839646162393965663035623139303735313863623831352a403030303030303030303030336261323761613230306231636563616164343738643262303034333233343663336631663339383664613161666433336535303620c09a0c30a78dd7a0d9ab9390023a2131726852677a627a32363465794a753741633633776570736d395473457077584d" req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetRelayOrderByStatus","payload":{"addr":"","status":"locking","coins":["BTC"],"pageNumber":0,"pageSize":0}}]'
r1=$(curl -ksd '{"jsonrpc":"2.0","id":0,"method":"relay.CreateRawRelayConfirmTx","params":[{"orderId":"1","rawTx":"0100000001c33ebff2a709f13d9f9a7569ab16a32786af7d7e2de09265e41c61d078294ecf010000008a4730440220032d30df5ee6f57fa46cddb5eb8d0d9fe8de6b342d27942ae90a3231e0ba333e02203deee8060fdc70230a7f5b4ad7d7bc3e628cbe219a886b84269eaeb81e26b4fe014104ae31c31bf91278d99b8377a35bbce5b27d9fff15456839e919453fc7b3f721f0ba403ff96c9deeb680e5fd341c0fc3a7b90da4631ee39560639db462e9cb850fffffffff0240420f00000000001976a914b0dcbf97eabf4404e31d952477ce822dadbe7e1088acc060d211000000001976a9146b1281eec25ab4e1e0793ff4e08ab1abb3409cd988ac00000000","txIndex":1,"merkBranch":"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d-ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815","blockHash":"000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506"}]}' ${MAIN_HTTP} | jq -r ".result") # echo "#request: $req"
[ "$r1" == "$result" ] id=$(curl -ksd "{$req}" ${MAIN_HTTP} |jq -r ".result.relayorders[0].id")
rst=$? if [ "$id" == null ];then
echo_rst "$FUNCNAME" "$rst" echo "id is null"
echo_rst "$FUNCNAME" "$?"
exit 1
fi
req='"method":"relay.CreateRawRelayConfirmTx","params":[{"orderId":"'"$id"'","rawTx":"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"}]'
# echo "#request: $req"
resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
# echo "#resp: $resp"
ok=$(jq '(.error|not) and (.result != "")' <<<"$resp")
[ "$ok" == true ]
echo_rst "$FUNCNAME" "$?"
rawtx=$(jq -r ".result" <<<"$resp")
signrawtx "$rawtx" "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
} }
relay_CreateRawRelayVerifyBTCTx() {
local result="0a0572656c617912d505500532d0050a0131128204303130303030303030316333336562666632613730396631336439663961373536396162313661333237383661663764376532646530393236356534316336316430373832393465636630313030303030303861343733303434303232303033326433306466356565366635376661343663646462356562386430643966653864653662333432643237393432616539306133323331653062613333336530323230336465656538303630666463373032333061376635623461643764376263336536323863626532313961383836623834323639656165623831653236623466653031343130346165333163333162663931323738643939623833373761333562626365356232376439666666313534353638333965393139343533666337623366373231663062613430336666393663396465656236383065356664333431633066633361376239306461343633316565333935363036333964623436326539636238353066666666666666666630323430343230663030303030303030303031393736613931346230646362663937656162663434303465333164393532343737636538323264616462653765313038386163633036306432313130303030303030303139373661393134366231323831656563323561623465316530373933666634653038616231616262333430396364393838616330303030303030301801228101653961363638343565303564356162633061643034656338306637373461376535383563366538646239373539363264303639613532323133376238306331642d636364616662373364386463643031373364356435633363396130373730643062333935336462383839646162393965663035623139303735313863623831352a403030303030303030303030336261323761613230306231636563616164343738643262303034333233343663336631663339383664613161666433336535303620c09a0c30a78dd7a0d9ab9390023a2131726852677a627a32363465794a753741633633776570736d395473457077584d"
r1=$(curl -ksd '{"jsonrpc":"2.0","id":0,"method":"relay.CreateRawRelayVerifyBTCTx","params":[{"orderId":"1","rawTx":"0100000001c33ebff2a709f13d9f9a7569ab16a32786af7d7e2de09265e41c61d078294ecf010000008a4730440220032d30df5ee6f57fa46cddb5eb8d0d9fe8de6b342d27942ae90a3231e0ba333e02203deee8060fdc70230a7f5b4ad7d7bc3e628cbe219a886b84269eaeb81e26b4fe014104ae31c31bf91278d99b8377a35bbce5b27d9fff15456839e919453fc7b3f721f0ba403ff96c9deeb680e5fd341c0fc3a7b90da4631ee39560639db462e9cb850fffffffff0240420f00000000001976a914b0dcbf97eabf4404e31d952477ce822dadbe7e1088acc060d211000000001976a9146b1281eec25ab4e1e0793ff4e08ab1abb3409cd988ac00000000","txIndex":1,"merkBranch":"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d-ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815","blockHash":"000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506"}]}' ${MAIN_HTTP} | jq -r ".result")
[ "$r1" == "$result" ]
rst=$?
echo_rst "$FUNCNAME" "$rst"
}
relay_CreateRawRelaySaveBTCHeadTx() { relay_CreateRawRelaySaveBTCHeadTx() {
local result="0a0572656c617912d20150063acd010aca010a4033626330656537313263383463353839633639336230396161333638356632363663326332393561366430333139353265636338363361326131656566653435180e2a4030356139383636656461333735626339316134303461613130663366666163653331643334393437313665616436383666653732656263343637393362306261524031366164366435383861656361313262663365376664366232323633393932623434343263393639326634653133346261376366306437393137343633323861600120a08d0630d7e0d4a5ecea8abf5e3a2131726852677a627a32363465794a753741633633776570736d395473457077584d" req='"method":"relay.CreateRawRelaySaveBTCHeadTx","params":[{"hash":"5e7d9c599cd040ec2ba53f4dee28028710be8c135e779f65c56feadaae34c3f2","height":10,"version":536870912,"merkleRoot":"ab91cd4160e1379c337eee6b7a4bdbb7399d70268d86045aba150743c00c90b6","time":1530862108,"nonce":0,"bits":545259519,"previousHash":"604efe53975ab06cad8748fd703ad5bc960e8b752b2aae98f0f871a4a05abfc7","isReset":true}]'
r1=$(curl -ksd '{"jsonrpc":"2.0","id":0,"method":"relay.CreateRawRelaySaveBTCHeadTx","params":[{"hash":"3bc0ee712c84c589c693b09aa3685f266c2c295a6d031952ecc863a2a1eefe45","height":14,"merkleRoot":"05a9866eda375bc91a404aa10f3fface31d3494716ead686fe72ebc46793b0ba","previousHash":"16ad6d588aeca12bf3e7fd6b2263992b4442c9692f4e134ba7cf0d791746328a","isReset":true}]}' ${MAIN_HTTP} | jq -r ".result") # echo "#request: $req"
[ "$r1" == "$result" ] resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
rst=$? # echo "#resp: $resp"
echo_rst "$FUNCNAME" "$rst" ok=$(jq '(.error|not) and (.result != "")' <<<"$resp")
[ "$ok" == true ]
echo_rst "$FUNCNAME" "$?"
rawtx=$(jq -r ".result" <<<"$resp")
signrawtx "$rawtx" "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
} }
relay_CreateRawRelaySaveBTCHeadTx_11() {
req='"method":"relay.CreateRawRelaySaveBTCHeadTx","params":[{"hash":"7b7a4a9b49db5a1162be515d380cd186e98c2bf0bb90f1145485d7c43343fc7c","height":11,"version":536870912,"merkleRoot":"cfa9b66696aea63b7266ffaa1cb4b96c8dd6959eaabf2eb14173f4adaa551f6f","time":1530862108,"nonce":1,"bits":545259519,"previousHash":"5e7d9c599cd040ec2ba53f4dee28028710be8c135e779f65c56feadaae34c3f2","isReset":false}]'
# echo "#request: $req"
resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
# echo "#resp: $resp"
ok=$(jq '(.error|not) and (.result != "")' <<<"$resp")
[ "$ok" == true ]
echo_rst "$FUNCNAME" "$?"
rawtx=$(jq -r ".result" <<<"$resp")
signrawtx "$rawtx" "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
}
query_GetRelayOrderByStatus(){ query_GetRelayOrderByStatus(){
req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetRelayOrderByStatus","payload":{"addr":"","status":"pending","coins":["BTC"],"pageNumber":0,"pageSize":0}}]' status="$1"
echo "#request: $req" req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetRelayOrderByStatus","payload":{"addr":"","status":"'"$status"'","coins":["BTC"],"pageNumber":0,"pageSize":0}}]'
# echo "#request: $req"
resp=$(curl -ksd "{$req}" ${MAIN_HTTP}) resp=$(curl -ksd "{$req}" ${MAIN_HTTP})
# echo "#response: $resp" # echo "#response: $resp"
ok=$(jq '(.error|not) and (.result.txDetails|length == 2)' <<<"$resp") ok=$(jq '(.error|not) and (.result.relayorders[0].id != "")' <<<"$resp")
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
} }
query_GetSellRelayOrder(){ query_GetSellRelayOrder(){
req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetSellRelayOrder","payload":{"addr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT","status":"pending","coins":[""],"pageNumber":0,"pageSize":0}}]' req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetSellRelayOrder","payload":{"addr":"12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv","status":"pending","coins":["BTC"],"pageNumber":0,"pageSize":0}}]'
echo "#request: $req" # echo "#request: $req"
resp=$(curl -ksd "{$req}" ${MAIN_HTTP}) resp=$(curl -ksd "{$req}" ${MAIN_HTTP})
echo "#response: $resp" # echo "#response: $resp"
ok=$(jq '(.error|not) and (.result[0].address == "14KEKbYtKKQm4wMthSK9J4La4nAiidGozt") and (.result[0].coinoperation == "buy") ' <<<"$resp") ok=$(jq '(.error|not) and (.result.relayorders[0].status == "pending") and (.result.relayorders[0].coinOperation == 0) and (.result.relayorders[0].id != "") ' <<<"$resp")
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
} }
query_GetBuyRelayOrder(){ query_GetBuyRelayOrder(){
req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetBuyRelayOrder","payload":{"addr":"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt","status":"locking","coins":[""],"pageNumber":0,"pageSize":0}}]' req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetBuyRelayOrder","payload":{"addr":"14KEKbYtKKQm4wMthSK9J4La4nAiidGozt","status":"locking","coins":["BTC"],"pageNumber":0,"pageSize":0}}]'
echo "#request: $req" # echo "#request: $req"
resp=$(curl -ksd "{$req}" ${MAIN_HTTP}) resp=$(curl -ksd "{$req}" ${MAIN_HTTP})
echo "#response: $resp" # echo "#response: $resp"
ok=$(jq '(.error|not) and (.result.txDetails|length == 2)' <<<"$resp") ok=$(jq '(.error|not) and (.result.relayorders[0].status == "locking")' <<<"$resp")
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
...@@ -185,9 +244,9 @@ query_GetBuyRelayOrder(){ ...@@ -185,9 +244,9 @@ query_GetBuyRelayOrder(){
query_GetBTCHeaderList(){ query_GetBTCHeaderList(){
req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetBTCHeaderList","payload":{"reqHeight":"10","counts":10,"direction":0}}]' req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetBTCHeaderList","payload":{"reqHeight":"10","counts":10,"direction":0}}]'
echo "#request: $req" # echo "#request: $req"
resp=$(curl -ksd "{$req}" ${MAIN_HTTP}) resp=$(curl -ksd "{$req}" ${MAIN_HTTP})
# echo "#response: $resp" echo "#response: $resp"
ok=$(jq '(.error|not) and (.result.heights|length == 2)' <<<"$resp") ok=$(jq '(.error|not) and (.result.heights|length == 2)' <<<"$resp")
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
...@@ -196,52 +255,65 @@ query_GetBTCHeaderList(){ ...@@ -196,52 +255,65 @@ query_GetBTCHeaderList(){
query_GetBTCHeaderCurHeight(){ query_GetBTCHeaderCurHeight(){
req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetBTCHeaderCurHeight","payload":{"baseHeight":"0"}}]' req='"method":"Chain33.Query", "params":[{"execer":"relay","funcName":"GetBTCHeaderCurHeight","payload":{"baseHeight":"0"}}]'
echo "#request: $req" # echo "#request: $req"
resp=$(curl -ksd "{$req}" ${MAIN_HTTP}) resp=$(curl -ksd "{$req}" ${MAIN_HTTP})
# echo "#response: $resp" echo "#response: $resp"
ok=$(jq '(.error|not) and (.result.baseHeight == 10) and (.result.curHeight > 10)' <<<"$resp") ok=$(jq '(.error|not) and (.result.baseHeight == "10") and (.result.curHeight == "10")' <<<"$resp")
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
} }
function run_testcases() {
init(){
from="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" from="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv"
exec_relay_addr="1rhRgzbz264eyJu7Ac63wepsm9TsEpwXM" exec_relay_addr="1rhRgzbz264eyJu7Ac63wepsm9TsEpwXM"
# Chain33_SendToAddress "$from" "$exec_relay_addr" 100000000000 Chain33_SendToAddress "$from" "$exec_relay_addr" 100000000000
to="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" to="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
# Chain33_SendToAddress "$from" "$to" 50000000000 Chain33_SendToAddress "$from" "$to" 50000000000
block_wait 1 block_wait 1
from="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" from="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
# Chain33_SendToAddress "$from" "$exec_relay_addr" 20000000000 Chain33_SendToAddress "$from" "$exec_relay_addr" 20000000000
block_wait 1 block_wait 1
# relay_CreateRawRelaySaveBTCHeadTx }
function run_testcases() {
relay_CreateRawRelaySaveBTCHeadTx
query_GetBTCHeaderCurHeight
relay_CreateRawRelayOrderTx relay_CreateRawRelayOrderTx
# query_GetSellRelayOrder query_GetSellRelayOrder
# relay_CreateRawRelayAcceptTx query_GetRelayOrderByStatus "pending"
# query_GetBuyRelayOrder
# query_GetRelayOrderByStatus
# relay_CreateRawRelayConfirmTx
# relay_CreateRawRelayVerifyBTCTx
# relay_CreateRawRelayRevokeTx
# query_GetBTCHeaderCurHeight relay_CreateRawRelayAcceptTx
# query_GetBTCHeaderList query_GetBuyRelayOrder
query_GetRelayOrderByStatus "locking"
relay_CreateRawRelayConfirmTx
query_GetRelayOrderByStatus "confirming"
relay_CreateRawRelayOrderTx
relay_CreateRawRelayRevokeTx
query_GetRelayOrderByStatus "canceled"
relay_CreateRawRelaySaveBTCHeadTx_11
query_GetBTCHeaderList
} }
function rpc_test() { function rpc_test() {
MAIN_HTTP="$1" MAIN_HTTP="$1"
echo "=========== # relay rpc test ============="
echo "main_ip=$MAIN_HTTP" echo "main_ip=$MAIN_HTTP"
init
run_testcases run_testcases
if [ -n "$CASE_ERR" ]; then if [ -n "$CASE_ERR" ]; then
echo "paracross there some case error" echo "=======relay rpc test error ==========="
exit 1 exit 1
else
echo "====== relay rpc test pass ==========="
fi fi
} }
......
...@@ -36,7 +36,6 @@ func RelayCmd() *cobra.Command { ...@@ -36,7 +36,6 @@ func RelayCmd() *cobra.Command {
CreateRawRelayAcceptTxCmd(), CreateRawRelayAcceptTxCmd(),
CreateRawRevokeTxCmd(), CreateRawRevokeTxCmd(),
CreateRawRelayConfirmTxCmd(), CreateRawRelayConfirmTxCmd(),
CreateRawRelayVerifyBTCTxCmd(),
CreateRawRelayBtcHeaderCmd(), CreateRawRelayBtcHeaderCmd(),
) )
...@@ -566,52 +565,3 @@ func relaySaveBtcHead(cmd *cobra.Command, args []string) { ...@@ -566,52 +565,3 @@ func relaySaveBtcHead(cmd *cobra.Command, args []string) {
ctx.RunWithoutMarshal() ctx.RunWithoutMarshal()
} }
// CreateRawRelayVerifyBTCTxCmd verify btc tx from cli
func CreateRawRelayVerifyBTCTxCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "verify",
Short: "Create a verify coin transaction",
Run: relayVerifyBTC,
}
addVerifyBTCFlags(cmd)
return cmd
}
func addVerifyBTCFlags(cmd *cobra.Command) {
cmd.Flags().StringP("order_id", "o", "", "order id")
cmd.MarkFlagRequired("order_id")
cmd.Flags().StringP("raw_tx", "t", "", "coin raw tx")
cmd.MarkFlagRequired("raw_tx")
cmd.Flags().Uint32P("tx_index", "i", 0, "raw tx index")
cmd.MarkFlagRequired("tx_index")
cmd.Flags().StringP("merk_branch", "m", "", "tx merkle branch")
cmd.MarkFlagRequired("merk_branch")
cmd.Flags().StringP("block_hash", "b", "", "block hash of tx ")
cmd.MarkFlagRequired("block_hash")
}
func relayVerifyBTC(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
orderid, _ := cmd.Flags().GetString("order_id")
rawtx, _ := cmd.Flags().GetString("raw_tx")
txindex, _ := cmd.Flags().GetUint32("tx_index")
merkbranch, _ := cmd.Flags().GetString("merk_branch")
blockhash, _ := cmd.Flags().GetString("block_hash")
params := &ty.RelayVerifyCli{
OrderId: orderid,
RawTx: rawtx,
TxIndex: txindex,
MerkBranch: merkbranch,
BlockHash: blockhash,
}
var res string
ctx := jsonclient.NewRPCCtx(rpcLaddr, "relay.CreateRawRelayVerifyBTCTx", params, &res)
ctx.RunWithoutMarshal()
}
...@@ -34,10 +34,6 @@ func (r *relay) Exec_Verify(payload *rty.RelayVerify, tx *types.Transaction, ind ...@@ -34,10 +34,6 @@ func (r *relay) Exec_Verify(payload *rty.RelayVerify, tx *types.Transaction, ind
return action.verifyTx(payload) return action.verifyTx(payload)
} }
func (r *relay) Exec_VerifyCli(payload *rty.RelayVerifyCli, tx *types.Transaction, index int) (*types.Receipt, error) {
action := newRelayDB(r, tx)
return action.verifyCmdTx(payload)
}
func (r *relay) Exec_BtcHeaders(payload *rty.BtcHeaders, tx *types.Transaction, index int) (*types.Receipt, error) { func (r *relay) Exec_BtcHeaders(payload *rty.BtcHeaders, tx *types.Transaction, index int) (*types.Receipt, error) {
action := newRelayDB(r, tx) action := newRelayDB(r, tx)
......
...@@ -566,6 +566,7 @@ func (action *relayDB) verifyTx(verify *ty.RelayVerify) (*types.Receipt, error) ...@@ -566,6 +566,7 @@ func (action *relayDB) verifyTx(verify *ty.RelayVerify) (*types.Receipt, error)
} }
//之前用作cli verify, 检查不严格,现在弃用
func (action *relayDB) verifyCmdTx(verify *ty.RelayVerifyCli) (*types.Receipt, error) { func (action *relayDB) verifyCmdTx(verify *ty.RelayVerifyCli) (*types.Receipt, error) {
orderID := []byte(verify.OrderId) orderID := []byte(verify.OrderId)
order, err := action.getOrderByID(orderID) order, err := action.getOrderByID(orderID)
......
...@@ -41,13 +41,7 @@ func createRawRelayConfirmTx(parm *ty.RelayConfirmTx) ([]byte, error) { ...@@ -41,13 +41,7 @@ func createRawRelayConfirmTx(parm *ty.RelayConfirmTx) ([]byte, error) {
return types.CallCreateTx(types.ExecName(ty.RelayX), "ConfirmTx", parm) return types.CallCreateTx(types.ExecName(ty.RelayX), "ConfirmTx", parm)
} }
func createRawRelayVerifyBTCTx(parm *ty.RelayVerifyCli) ([]byte, error) {
if parm == nil {
return nil, types.ErrInvalidParam
}
v := *parm
return types.CallCreateTx(types.ExecName(ty.RelayX), "VerifyCli", &v)
}
func createRawRelaySaveBTCHeadTx(parm *ty.BtcHeader) ([]byte, error) { func createRawRelaySaveBTCHeadTx(parm *ty.BtcHeader) ([]byte, error) {
if parm == nil { if parm == nil {
...@@ -58,6 +52,10 @@ func createRawRelaySaveBTCHeadTx(parm *ty.BtcHeader) ([]byte, error) { ...@@ -58,6 +52,10 @@ func createRawRelaySaveBTCHeadTx(parm *ty.BtcHeader) ([]byte, error) {
PreviousHash: parm.PreviousHash, PreviousHash: parm.PreviousHash,
MerkleRoot: parm.MerkleRoot, MerkleRoot: parm.MerkleRoot,
Height: parm.Height, Height: parm.Height,
Version: parm.Version,
Time: parm.Time,
Nonce: parm.Nonce,
Bits: parm.Bits,
IsReset: parm.IsReset, IsReset: parm.IsReset,
} }
...@@ -109,16 +107,6 @@ func (c *Jrpc) CreateRawRelayConfirmTx(in *ty.RelayConfirmTx, result *interface{ ...@@ -109,16 +107,6 @@ func (c *Jrpc) CreateRawRelayConfirmTx(in *ty.RelayConfirmTx, result *interface{
return nil return nil
} }
//CreateRawRelayVerifyBTCTx jrpc create veirfy btc tx
func (c *Jrpc) CreateRawRelayVerifyBTCTx(in *ty.RelayVerifyCli, result *interface{}) error {
reply, err := createRawRelayVerifyBTCTx(in)
if err != nil {
return err
}
*result = hex.EncodeToString(reply)
return nil
}
//CreateRawRelaySaveBTCHeadTx jrpc save btc header //CreateRawRelaySaveBTCHeadTx jrpc save btc header
func (c *Jrpc) CreateRawRelaySaveBTCHeadTx(in *ty.BtcHeader, result *interface{}) error { func (c *Jrpc) CreateRawRelaySaveBTCHeadTx(in *ty.BtcHeader, result *interface{}) error {
reply, err := createRawRelaySaveBTCHeadTx(in) reply, err := createRawRelaySaveBTCHeadTx(in)
......
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