Commit 4b05a8c7 authored by 张振华's avatar 张振华

update

parents 5b17e84a 53a3f129
...@@ -90,13 +90,13 @@ ineffassign: ...@@ -90,13 +90,13 @@ ineffassign:
@golangci-lint run --no-config --issues-exit-code=1 --deadline=2m --disable-all --enable=ineffassign -n ${PKG_LIST_INEFFASSIGN} @golangci-lint run --no-config --issues-exit-code=1 --deadline=2m --disable-all --enable=ineffassign -n ${PKG_LIST_INEFFASSIGN}
race: ## Run data race detector race: ## Run data race detector
@go test -race -short $(PKG_LIST) @go test -parallel=8 -race -short $(PKG_LIST)
test: ## Run unittests test: ## Run unittests
@go test -race $(PKG_LIST) @go test -parallel=8 -race $(PKG_LIST)
testq: ## Run unittests testq: ## Run unittests
@go test $(PKG_LIST) @go test -parallel=8 $(PKG_LIST)
fmt: fmt_proto fmt_shell ## go fmt fmt: fmt_proto fmt_shell ## go fmt
@go fmt ./... @go fmt ./...
......
...@@ -37,9 +37,9 @@ chain33_BlockWait() { ...@@ -37,9 +37,9 @@ chain33_BlockWait() {
break break
fi fi
count=$((count + 1)) count=$((count + 1))
sleep 1 sleep 0.1
done done
echo "wait new block $count s, cur height=$expect,old=$cur_height" echo "wait new block $count/10 s, cur height=$expect,old=$cur_height"
} }
chain33_QueryTx() { chain33_QueryTx() {
......
...@@ -10,9 +10,7 @@ function dapp_test_rpc() { ...@@ -10,9 +10,7 @@ function dapp_test_rpc() {
if [ -d dapptest ]; then if [ -d dapptest ]; then
cp $DAPP_TEST_COMMON dapptest/ cp $DAPP_TEST_COMMON dapptest/
cd dapptest || return cd dapptest || return
dir=$(find . -maxdepth 1 -type d ! -name dapptest ! -name ticket ! -name . | sed 's/^\.\///' | sort)
dir=$(find . -maxdepth 1 -type d ! -name dapptest ! -name evm ! -name game ! -name guess ! -name hashlock ! -name ticket ! -name lottery ! -name pokerbull ! -name retrieve ! -name token ! -name trade ! -name . | sed 's/^\.\///' | sort)
echo "dapps list: $dir" echo "dapps list: $dir"
for app in $dir; do for app in $dir; do
echo "=========== # $app rpc test =============" echo "=========== # $app rpc test ============="
...@@ -20,8 +18,8 @@ function dapp_test_rpc() { ...@@ -20,8 +18,8 @@ function dapp_test_rpc() {
echo "=========== # $app rpc end =============" echo "=========== # $app rpc end ============="
done done
##ticket用例最后执行
./ticket/"${RPC_TESTFILE}" "$ip"
fi fi
echo "============ # dapp rpc test end =============" echo "============ # dapp rpc test end ============="
} }
#dapp_test_rpc $1
...@@ -80,6 +80,7 @@ function base_init() { ...@@ -80,6 +80,7 @@ function base_init() {
sed -i $sedfix 's/^powLimitBits=.*/powLimitBits="0x1f2fffff"/g' chain33.toml sed -i $sedfix 's/^powLimitBits=.*/powLimitBits="0x1f2fffff"/g' chain33.toml
sed -i $sedfix 's/^targetTimePerBlock=.*/targetTimePerBlock=1/g' chain33.toml sed -i $sedfix 's/^targetTimePerBlock=.*/targetTimePerBlock=1/g' chain33.toml
sed -i $sedfix 's/^targetTimespan=.*/targetTimespan=10000000/g' chain33.toml
# p2p # p2p
sed -i $sedfix 's/^seeds=.*/seeds=["chain33:13802","chain32:13802","chain31:13802"]/g' chain33.toml sed -i $sedfix 's/^seeds=.*/seeds=["chain33:13802","chain32:13802","chain31:13802"]/g' chain33.toml
...@@ -131,13 +132,13 @@ function start() { ...@@ -131,13 +132,13 @@ function start() {
${CLI} net info ${CLI} net info
${CLI} net peer_info ${CLI} net peer_info
local count=100 local count=1000
while [ $count -gt 0 ]; do while [ $count -gt 0 ]; do
peersCount=$(${CLI} net peer_info | jq '.[] | length') peersCount=$(${CLI} net peer_info | jq '.[] | length')
if [ "${peersCount}" -ge 2 ]; then if [ "${peersCount}" -ge 2 ]; then
break break
fi fi
sleep 5 sleep 1
((count--)) ((count--))
echo "peers error: peersCount=${peersCount}" echo "peers error: peersCount=${peersCount}"
done done
...@@ -212,10 +213,10 @@ function miner() { ...@@ -212,10 +213,10 @@ function miner() {
sleep 1 sleep 1
echo "=========== # close auto mining =============" echo "=========== # close auto mining ============="
result=$(${1} wallet auto_mine -f 0 | jq ".isok") #result=$(${1} wallet auto_mine -f 0 | jq ".isok")
if [ "${result}" = "false" ]; then #if [ "${result}" = "false" ]; then
exit 1 # exit 1
fi #fi
} }
function block_wait() { function block_wait() {
...@@ -232,9 +233,9 @@ function block_wait() { ...@@ -232,9 +233,9 @@ function block_wait() {
break break
fi fi
count=$((count + 1)) count=$((count + 1))
sleep 1 sleep 0.1
done done
echo "wait new block $count s, cur height=$expect,old=$cur_height" echo "wait new block $count/10 s, cur height=$expect,old=$cur_height"
} }
function block_wait2height() { function block_wait2height() {
...@@ -257,9 +258,9 @@ function block_wait2height() { ...@@ -257,9 +258,9 @@ function block_wait2height() {
break break
fi fi
count=$((count + 1)) count=$((count + 1))
sleep 1 sleep 0.1
done done
echo "wait new block $count s, cur_height=$new_height,expect=$expect" echo "wait new block $count/10 s, cur_height=$new_height,expect=$expect"
} }
function check_docker_status() { function check_docker_status() {
......
...@@ -12,7 +12,7 @@ mkdir -p "$COVERAGE_DIR" ...@@ -12,7 +12,7 @@ mkdir -p "$COVERAGE_DIR"
# Create a coverage file for each package # Create a coverage file for each package
for package in ${PKG_LIST}; do for package in ${PKG_LIST}; do
go test -covermode=count -coverprofile "${COVERAGE_DIR}/${package##*/}.cov" "$package" go test -parallel=8 -covermode=count -coverprofile "${COVERAGE_DIR}/${package##*/}.cov" "$package"
done done
# Merge the coverage profile files # Merge the coverage profile files
......
...@@ -108,7 +108,7 @@ futureBlockTime = 16 ...@@ -108,7 +108,7 @@ futureBlockTime = 16
ticketFrozenTime = 5 #5s only for test ticketFrozenTime = 5 #5s only for test
ticketWithdrawTime = 10 #10s only for test ticketWithdrawTime = 10 #10s only for test
ticketMinerWaitTime = 2 #2s only for test ticketMinerWaitTime = 2 #2s only for test
targetTimespan = 2304 targetTimespan=2304
targetTimePerBlock=16 targetTimePerBlock=16
[mver.consensus.ticket.ForkChainParamV1] [mver.consensus.ticket.ForkChainParamV1]
...@@ -116,14 +116,14 @@ futureBlockTime = 15 ...@@ -116,14 +116,14 @@ futureBlockTime = 15
ticketFrozenTime = 43200 ticketFrozenTime = 43200
ticketWithdrawTime = 172800 ticketWithdrawTime = 172800
ticketMinerWaitTime = 7200 ticketMinerWaitTime = 7200
targetTimespan = 2160 targetTimespan=2160
targetTimePerBlock = 15 targetTimePerBlock=15
[mver.consensus.ticket.ForkChainParamV2] [mver.consensus.ticket.ForkChainParamV2]
coinReward = 5 coinReward = 5
coinDevFund = 3 coinDevFund = 3
targetTimespan = 720 targetTimespan=720
targetTimePerBlock = 5 targetTimePerBlock=5
ticketPrice = 3000 ticketPrice = 3000
......
...@@ -3,7 +3,7 @@ module github.com/33cn/plugin ...@@ -3,7 +3,7 @@ module github.com/33cn/plugin
go 1.12 go 1.12
require ( require (
github.com/33cn/chain33 v0.0.0-20190916043245-c5f98f6a92f5 github.com/33cn/chain33 v0.0.0-20190925060849-e4f820a6390e
github.com/BurntSushi/toml v0.3.1 github.com/BurntSushi/toml v0.3.1
github.com/NebulousLabs/Sia v1.3.7 github.com/NebulousLabs/Sia v1.3.7
github.com/btcsuite/btcd v0.0.0-20181013004428-67e573d211ac github.com/btcsuite/btcd v0.0.0-20181013004428-67e573d211ac
......
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/33cn/chain33 v0.0.0-20190916043245-c5f98f6a92f5 h1:Nr0twQPrU5o8JE7jjXlaUNS8qQpREQxLi9IAYSAGAIc= github.com/33cn/chain33 v0.0.0-20190925060849-e4f820a6390e h1:Wb1JboAH5FMilArO9dyrmwgKPTn3V6Qz34ZSRn+K11s=
github.com/33cn/chain33 v0.0.0-20190916043245-c5f98f6a92f5/go.mod h1:4I8n+Zyf3t0UKM5jjpqJY627Tub62oXkLsdzIv4r6rQ= github.com/33cn/chain33 v0.0.0-20190925060849-e4f820a6390e/go.mod h1:4I8n+Zyf3t0UKM5jjpqJY627Tub62oXkLsdzIv4r6rQ=
github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7 h1:PqzgE6kAMi81xWQA2QIVxjWkFHptGgC547vchpUbtFo= github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7 h1:PqzgE6kAMi81xWQA2QIVxjWkFHptGgC547vchpUbtFo=
github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8=
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
......
...@@ -200,13 +200,6 @@ func DposPerf() { ...@@ -200,13 +200,6 @@ func DposPerf() {
fmt.Println("Verify CB failed.") fmt.Println("Verify CB failed.")
} }
//fmt.Println("=======start GetCBInfoByCircle!=======")
//first time, not hit
//dposClient.csState.GetCBInfoByCircle(task.Cycle)
//time.Sleep(1 * time.Second)
//second time, hit cache
//dposClient.csState.GetCBInfoByCircle(task.Cycle)
fmt.Println("=======start VoteVerify!=======") fmt.Println("=======start VoteVerify!=======")
vote := generateVote(dposClient.csState) vote := generateVote(dposClient.csState)
if nil == vote { if nil == vote {
...@@ -430,7 +423,6 @@ func createConn2() error { ...@@ -430,7 +423,6 @@ func createConn2() error {
return err return err
} }
c = types.NewChain33Client(conn) c = types.NewChain33Client(conn)
//r = rand.New(rand.NewSource(types.Now().UnixNano()))
return nil return nil
} }
...@@ -509,7 +501,6 @@ func NormPut() { ...@@ -509,7 +501,6 @@ func NormPut() {
// SendCBTx method // SendCBTx method
func verifyCB(cs *ConsensusState, info *dty.DposCBInfo) bool { func verifyCB(cs *ConsensusState, info *dty.DposCBInfo) bool {
//info.Pubkey = strings.ToUpper(hex.EncodeToString(cs.privValidator.GetPubKey().Bytes()))
canonical := dty.CanonicalOnceCBInfo{ canonical := dty.CanonicalOnceCBInfo{
Cycle: info.Cycle, Cycle: info.Cycle,
StopHeight: info.StopHeight, StopHeight: info.StopHeight,
......
This diff is collapsed.
...@@ -3,17 +3,14 @@ ...@@ -3,17 +3,14 @@
set -e set -e
set -o pipefail set -o pipefail
# shellcheck source=/dev/null
source ../dapp-test-common.sh
MAIN_HTTP="" MAIN_HTTP=""
GAME_ID="" GAME_ID=""
PASSWD="ABCD" PASSWD="ABCD"
HASH_VALUE=$(echo -n "ABCD1" | sha256sum | awk '{print $1}') HASH_VALUE=$(echo -n "ABCD1" | sha256sum | awk '{print $1}')
ACCOUNT_A="1PUiGcbsccfxW3zuvHXZBJfznziph5miAo"
PRIVA_A="56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138"
ACCOUNT_B="1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX"
PRIVA_B="2116459C0EC8ED01AA0EEAE35CAC5C96F94473F7816F114873291217303F6989"
EXECTOR="" EXECTOR=""
# shellcheck source=/dev/null # shellcheck source=/dev/null
...@@ -142,9 +139,44 @@ function init() { ...@@ -142,9 +139,44 @@ function init() {
fi fi
echo "gameAddr=${game_addr}" echo "gameAddr=${game_addr}"
chain33_SendToAddress "${ACCOUNT_B}" "$game_addr" 5000000000 "${MAIN_HTTP}" local main_ip=${MAIN_HTTP//8901/8801}
#main chain import pri key
#16Z3haNPQd9wrnFDw19rtpbgnN2xynNT9f
chain33_ImportPrivkey "0xfa21dc33a6144c546537580d28d894355d1e9af7292be175808b0f5737c30849" "16Z3haNPQd9wrnFDw19rtpbgnN2xynNT9f" "game1" "${main_ip}"
#16GXRfd9xj3XYMDti4y4ht7uzwoh55gZEc
chain33_ImportPrivkey "0x213286d352b01fd740b6eaeb78a4fd316d743dd51d2f12c6789977430a41e0c7" "16GXRfd9xj3XYMDti4y4ht7uzwoh55gZEc" "game2" "$main_ip"
local ACCOUNT_A="16Z3haNPQd9wrnFDw19rtpbgnN2xynNT9f"
local ACCOUNT_B="16GXRfd9xj3XYMDti4y4ht7uzwoh55gZEc"
if [ "$ispara" == false ]; then
chain33_applyCoins "$ACCOUNT_A" 12000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$main_ip"
chain33_applyCoins "$ACCOUNT_B" 12000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_B}" "$main_ip"
else
# tx fee
chain33_applyCoins "$ACCOUNT_A" 1000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$main_ip"
chain33_applyCoins "$ACCOUNT_B" 1000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_B}" "$main_ip"
local para_ip="${MAIN_HTTP}"
#para chain import pri key
chain33_ImportPrivkey "0xfa21dc33a6144c546537580d28d894355d1e9af7292be175808b0f5737c30849" "16Z3haNPQd9wrnFDw19rtpbgnN2xynNT9f" "game1" "$para_ip"
chain33_ImportPrivkey "0x213286d352b01fd740b6eaeb78a4fd316d743dd51d2f12c6789977430a41e0c7" "16GXRfd9xj3XYMDti4y4ht7uzwoh55gZEc" "game2" "$para_ip"
chain33_applyCoins "$ACCOUNT_A" 12000000000 "${para_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$para_ip"
chain33_applyCoins "$ACCOUNT_B" 12000000000 "${para_ip}"
chain33_QueryBalance "${ACCOUNT_B}" "$para_ip"
fi
chain33_SendToAddress "${ACCOUNT_B}" "$game_addr" 5000000000 "${MAIN_HTTP}"
chain33_QueryExecBalance "${ACCOUNT_B}" "game" "$MAIN_HTTP"
chain33_SendToAddress "${ACCOUNT_A}" "$game_addr" 5000000000 "${MAIN_HTTP}" chain33_SendToAddress "${ACCOUNT_A}" "$game_addr" 5000000000 "${MAIN_HTTP}"
chain33_QueryExecBalance "${ACCOUNT_A}" "game" "$MAIN_HTTP"
chain33_BlockWait 1 "$MAIN_HTTP" chain33_BlockWait 1 "$MAIN_HTTP"
} }
...@@ -197,4 +229,4 @@ function main() { ...@@ -197,4 +229,4 @@ function main() {
fi fi
} }
main "$1" chain33_debug_function main "$1"
...@@ -11,8 +11,8 @@ source ../dapp-test-common.sh ...@@ -11,8 +11,8 @@ source ../dapp-test-common.sh
MAIN_HTTP="" MAIN_HTTP=""
CASE_ERR="" CASE_ERR=""
guess_admin_addr=12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv guess_admin_addr=12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv
guess_user1_addr=1PUiGcbsccfxW3zuvHXZBJfznziph5miAo guess_user1_addr=1NrfEBfdFJUUqgbw5ZbHXhdew6NNQumYhM
guess_user2_addr=1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX guess_user2_addr=17tRkBrccmFiVcLPXgEceRxDzJ2WaDZumN
guess_addr="" guess_addr=""
guess_exec="" guess_exec=""
...@@ -134,14 +134,46 @@ init() { ...@@ -134,14 +134,46 @@ init() {
guess_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"guess"}]}' ${MAIN_HTTP} | jq -r ".result") guess_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"guess"}]}' ${MAIN_HTTP} | jq -r ".result")
guess_exec="guess" guess_exec="guess"
fi fi
echo "guess_addr=$guess_addr" echo "guess_addr=$guess_addr"
local from="1PUiGcbsccfxW3zuvHXZBJfznziph5miAo" local main_ip=${MAIN_HTTP//8901/8801}
chain33_SendToAddress "$from" "$guess_addr" 10000000000 ${MAIN_HTTP} #main chain import pri key
#1NrfEBfdFJUUqgbw5ZbHXhdew6NNQumYhM
chain33_ImportPrivkey "0xc889d2958843fc96d4bd3f578173137d37230e580d65e9074545c61e7e9c1932" "1NrfEBfdFJUUqgbw5ZbHXhdew6NNQumYhM" "guess1" "${main_ip}"
#17tRkBrccmFiVcLPXgEceRxDzJ2WaDZumN
chain33_ImportPrivkey "0xf10c79470dc74c229c4ee73b05d14c58322b771a6c749d27824f6a59bb6c2d73" "17tRkBrccmFiVcLPXgEceRxDzJ2WaDZumN" "guess2" "$main_ip"
local guess1="1NrfEBfdFJUUqgbw5ZbHXhdew6NNQumYhM"
local guess2="17tRkBrccmFiVcLPXgEceRxDzJ2WaDZumN"
if [ "$ispara" == false ]; then
chain33_applyCoins "$guess1" 12000000000 "${main_ip}"
chain33_QueryBalance "${guess1}" "$main_ip"
chain33_applyCoins "$guess2" 12000000000 "${main_ip}"
chain33_QueryBalance "${guess2}" "$main_ip"
else
# tx fee
chain33_applyCoins "$guess1" 1000000000 "${main_ip}"
chain33_QueryBalance "${guess1}" "$main_ip"
chain33_applyCoins "$guess2" 1000000000 "${main_ip}"
chain33_QueryBalance "${guess2}" "$main_ip"
local para_ip="${MAIN_HTTP}"
#para chain import pri key
chain33_ImportPrivkey "0xc889d2958843fc96d4bd3f578173137d37230e580d65e9074545c61e7e9c1932" "1NrfEBfdFJUUqgbw5ZbHXhdew6NNQumYhM" "guess1" "$para_ip"
chain33_ImportPrivkey "0xf10c79470dc74c229c4ee73b05d14c58322b771a6c749d27824f6a59bb6c2d73" "17tRkBrccmFiVcLPXgEceRxDzJ2WaDZumN" "guess2" "$para_ip"
chain33_applyCoins "$guess1" 12000000000 "${para_ip}"
chain33_QueryBalance "${guess1}" "$para_ip"
chain33_applyCoins "$guess2" 12000000000 "${para_ip}"
chain33_QueryBalance "${guess2}" "$para_ip"
fi
from="1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX" chain33_SendToAddress "$guess1" "$guess_addr" 10000000000 ${MAIN_HTTP}
chain33_SendToAddress "$from" "$guess_addr" 10000000000 ${MAIN_HTTP} chain33_QueryExecBalance "${guess1}" "guess" "$MAIN_HTTP"
chain33_SendToAddress "$guess2" "$guess_addr" 10000000000 ${MAIN_HTTP}
chain33_QueryExecBalance "${guess2}" "guess" "$MAIN_HTTP"
chain33_BlockWait 1 "${MAIN_HTTP}" chain33_BlockWait 1 "${MAIN_HTTP}"
} }
...@@ -149,8 +181,8 @@ init() { ...@@ -149,8 +181,8 @@ init() {
function run_test() { function run_test() {
#导入地址私钥 #导入地址私钥
chain33_ImportPrivkey "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" "1PUiGcbsccfxW3zuvHXZBJfznziph5miAo" "user1" "$MAIN_HTTP" chain33_ImportPrivkey "0xc889d2958843fc96d4bd3f578173137d37230e580d65e9074545c61e7e9c1932" "1NrfEBfdFJUUqgbw5ZbHXhdew6NNQumYhM" "user1" "$MAIN_HTTP"
chain33_ImportPrivkey "2116459C0EC8ED01AA0EEAE35CAC5C96F94473F7816F114873291217303F6989" "1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX" "user2" "$MAIN_HTTP" chain33_ImportPrivkey "0xf10c79470dc74c229c4ee73b05d14c58322b771a6c749d27824f6a59bb6c2d73" "17tRkBrccmFiVcLPXgEceRxDzJ2WaDZumN" "user2" "$MAIN_HTTP"
chain33_ImportPrivkey "4257D8692EF7FE13C68B65D6A52F03933DB2FA5CE8FAF210B5B8B80C721CED01" "12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" "admin" "$MAIN_HTTP" chain33_ImportPrivkey "4257D8692EF7FE13C68B65D6A52F03933DB2FA5CE8FAF210B5B8B80C721CED01" "12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" "admin" "$MAIN_HTTP"
chain33_QueryBalance "${guess_admin_addr}" "$MAIN_HTTP" chain33_QueryBalance "${guess_admin_addr}" "$MAIN_HTTP"
...@@ -167,13 +199,13 @@ function run_test() { ...@@ -167,13 +199,13 @@ function run_test() {
guess_QueryGameByID "$eventId" 11 guess_QueryGameByID "$eventId" 11
#用户1下注 #用户1下注
guess_game_bet "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" "A" guess_game_bet "0xc889d2958843fc96d4bd3f578173137d37230e580d65e9074545c61e7e9c1932" "A"
#查询游戏状态 #查询游戏状态
guess_QueryGameByID "$eventId" 12 guess_QueryGameByID "$eventId" 12
#用户2下注 #用户2下注
guess_game_bet "2116459C0EC8ED01AA0EEAE35CAC5C96F94473F7816F114873291217303F6989" "B" guess_game_bet "0xf10c79470dc74c229c4ee73b05d14c58322b771a6c749d27824f6a59bb6c2d73" "B"
#查询游戏状态 #查询游戏状态
guess_QueryGameByID "$eventId" 12 guess_QueryGameByID "$eventId" 12
...@@ -233,13 +265,13 @@ function run_test() { ...@@ -233,13 +265,13 @@ function run_test() {
guess_QueryGameByID "$eventId" 11 guess_QueryGameByID "$eventId" 11
#用户1下注 #用户1下注
guess_game_bet "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" "A" guess_game_bet "0xc889d2958843fc96d4bd3f578173137d37230e580d65e9074545c61e7e9c1932" "A"
#查询游戏状态 #查询游戏状态
guess_QueryGameByID "$eventId" 12 guess_QueryGameByID "$eventId" 12
#用户2下注 #用户2下注
guess_game_bet "2116459C0EC8ED01AA0EEAE35CAC5C96F94473F7816F114873291217303F6989" "B" guess_game_bet "0xf10c79470dc74c229c4ee73b05d14c58322b771a6c749d27824f6a59bb6c2d73" "B"
#查询游戏状态 #查询游戏状态
guess_QueryGameByID "$eventId" 12 guess_QueryGameByID "$eventId" 12
...@@ -258,13 +290,13 @@ function run_test() { ...@@ -258,13 +290,13 @@ function run_test() {
guess_QueryGameByID "$eventId" 11 guess_QueryGameByID "$eventId" 11
#用户1下注 #用户1下注
guess_game_bet "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" "A" guess_game_bet "0xc889d2958843fc96d4bd3f578173137d37230e580d65e9074545c61e7e9c1932" "A"
#查询游戏状态 #查询游戏状态
guess_QueryGameByID "$eventId" 12 guess_QueryGameByID "$eventId" 12
#用户2下注 #用户2下注
guess_game_bet "2116459C0EC8ED01AA0EEAE35CAC5C96F94473F7816F114873291217303F6989" "B" guess_game_bet "0xf10c79470dc74c229c4ee73b05d14c58322b771a6c749d27824f6a59bb6c2d73" "B"
#查询游戏状态 #查询游戏状态
guess_QueryGameByID "$eventId" 12 guess_QueryGameByID "$eventId" 12
...@@ -304,4 +336,4 @@ function main() { ...@@ -304,4 +336,4 @@ function main() {
echo "=========== # guess rpc test end=============" echo "=========== # guess rpc test end============="
} }
main "$1" chain33_debug_function main "$1"
...@@ -5,8 +5,8 @@ set -o pipefail ...@@ -5,8 +5,8 @@ set -o pipefail
MAIN_HTTP="" MAIN_HTTP=""
addr_A=1PUiGcbsccfxW3zuvHXZBJfznziph5miAo addr_A=19vpbRuz2XtKopQS2ruiVuVZeRdLd5n4t3
addr_B=1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX addr_B=1FcofeCgU1KYbB8dSa7cV2wjAF2RpMuUQD
# shellcheck source=/dev/null # shellcheck source=/dev/null
source ../dapp-test-common.sh source ../dapp-test-common.sh
...@@ -24,7 +24,7 @@ hashlock_lock() { ...@@ -24,7 +24,7 @@ hashlock_lock() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
chain33_SignRawTx "$tx" "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" ${MAIN_HTTP} chain33_SignRawTx "$tx" "0x1089b7f980fc467f029b7ae301249b36e3b582c911b1af1a24616c83b3563dcb" ${MAIN_HTTP}
#echo "txHash ${txhash}" #echo "txHash ${txhash}"
echo "========== # hashlock lock tx end ==========" echo "========== # hashlock lock tx end =========="
...@@ -44,7 +44,7 @@ hashlock_send() { ...@@ -44,7 +44,7 @@ hashlock_send() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
chain33_SignRawTx "$tx" "2116459C0EC8ED01AA0EEAE35CAC5C96F94473F7816F114873291217303F6989" ${MAIN_HTTP} chain33_SignRawTx "$tx" "0xb76a398c3901dfe5c7335525da88fda4df24c11ad11af4332f00c0953cc2910f" ${MAIN_HTTP}
#echo "txHash ${txhash}" #echo "txHash ${txhash}"
echo "========== # hashlock send tx end ==========" echo "========== # hashlock send tx end =========="
...@@ -63,7 +63,7 @@ hashlock_unlock() { ...@@ -63,7 +63,7 @@ hashlock_unlock() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
chain33_SignRawTx "$tx" "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" ${MAIN_HTTP} chain33_SignRawTx "$tx" "0x1089b7f980fc467f029b7ae301249b36e3b582c911b1af1a24616c83b3563dcb" ${MAIN_HTTP}
#echo "txHash ${txhash}" #echo "txHash ${txhash}"
echo "========== # hashlock unlock tx end ==========" echo "========== # hashlock unlock tx end =========="
...@@ -79,11 +79,45 @@ init() { ...@@ -79,11 +79,45 @@ init() {
hashlock_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"hashlock"}]}' ${MAIN_HTTP} | jq -r ".result") hashlock_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"hashlock"}]}' ${MAIN_HTTP} | jq -r ".result")
fi fi
local from="1PUiGcbsccfxW3zuvHXZBJfznziph5miAo" local main_ip=${MAIN_HTTP//8901/8801}
chain33_SendToAddress "$from" "$hashlock_addr" 10000000000 ${MAIN_HTTP} #main chain import pri key
#19vpbRuz2XtKopQS2ruiVuVZeRdLd5n4t3
chain33_ImportPrivkey "0x1089b7f980fc467f029b7ae301249b36e3b582c911b1af1a24616c83b3563dcb" "19vpbRuz2XtKopQS2ruiVuVZeRdLd5n4t3" "hashlock1" "${main_ip}"
#1FcofeCgU1KYbB8dSa7cV2wjAF2RpMuUQD
chain33_ImportPrivkey "0xb76a398c3901dfe5c7335525da88fda4df24c11ad11af4332f00c0953cc2910f" "1FcofeCgU1KYbB8dSa7cV2wjAF2RpMuUQD" "hashlock2" "$main_ip"
local hashlock1="19vpbRuz2XtKopQS2ruiVuVZeRdLd5n4t3"
local hashlock2="1FcofeCgU1KYbB8dSa7cV2wjAF2RpMuUQD"
if [ "$ispara" == false ]; then
chain33_applyCoins "$hashlock1" 12000000000 "${main_ip}"
chain33_QueryBalance "${hashlock1}" "$main_ip"
chain33_applyCoins "$hashlock2" 12000000000 "${main_ip}"
chain33_QueryBalance "${hashlock2}" "$main_ip"
else
# tx fee
chain33_applyCoins "$hashlock1" 1000000000 "${main_ip}"
chain33_QueryBalance "${hashlock1}" "$main_ip"
chain33_applyCoins "$hashlock2" 1000000000 "${main_ip}"
chain33_QueryBalance "${hashlock2}" "$main_ip"
local para_ip="${MAIN_HTTP}"
#para chain import pri key
chain33_ImportPrivkey "0x1089b7f980fc467f029b7ae301249b36e3b582c911b1af1a24616c83b3563dcb" "19vpbRuz2XtKopQS2ruiVuVZeRdLd5n4t3" "hashlock1" "$para_ip"
chain33_ImportPrivkey "0xb76a398c3901dfe5c7335525da88fda4df24c11ad11af4332f00c0953cc2910f" "1FcofeCgU1KYbB8dSa7cV2wjAF2RpMuUQD" "hashlock2" "$para_ip"
chain33_applyCoins "$hashlock1" 12000000000 "${para_ip}"
chain33_QueryBalance "${hashlock1}" "$para_ip"
chain33_applyCoins "$hashlock2" 12000000000 "${para_ip}"
chain33_QueryBalance "${hashlock2}" "$para_ip"
fi
chain33_SendToAddress "$hashlock1" "$hashlock_addr" 10000000000 ${MAIN_HTTP}
chain33_QueryExecBalance "${hashlock1}" "hashlock" "$MAIN_HTTP"
chain33_SendToAddress "$hashlock2" "$hashlock_addr" 10000000000 ${MAIN_HTTP}
chain33_QueryExecBalance "${hashlock2}" "hashlock" "$MAIN_HTTP"
from="1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX"
chain33_SendToAddress "$from" "$hashlock_addr" 10000000000 ${MAIN_HTTP}
chain33_BlockWait 1 "${MAIN_HTTP}" chain33_BlockWait 1 "${MAIN_HTTP}"
} }
...@@ -99,7 +133,7 @@ function run_test() { ...@@ -99,7 +133,7 @@ function run_test() {
hashlock_lock "aef" hashlock_lock "aef"
chain33_QueryBalance "$addr_A" "${MAIN_HTTP}" chain33_QueryBalance "$addr_A" "${MAIN_HTTP}"
sleep 75 sleep 5
hashlock_unlock "aef" hashlock_unlock "aef"
chain33_BlockWait 1 ${MAIN_HTTP} chain33_BlockWait 1 ${MAIN_HTTP}
chain33_QueryBalance "$addr_A" "${MAIN_HTTP}" chain33_QueryBalance "$addr_A" "${MAIN_HTTP}"
...@@ -121,4 +155,4 @@ function main() { ...@@ -121,4 +155,4 @@ function main() {
fi fi
} }
main "$1" chain33_debug_function main "$1"
This diff is collapsed.
This diff is collapsed.
...@@ -19,7 +19,7 @@ pokerbull_PlayRawTx() { ...@@ -19,7 +19,7 @@ pokerbull_PlayRawTx() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
chain33_SignRawTx "$tx" "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" ${MAIN_HTTP} chain33_SignRawTx "$tx" "0x0316d5e33e7bce2455413156cb95209f8c641af352ee5d648c647f24383e4d94" ${MAIN_HTTP}
echo "========== # pokerbull play tx end ==========" echo "========== # pokerbull play tx end =========="
chain33_BlockWait 1 ${MAIN_HTTP} chain33_BlockWait 1 ${MAIN_HTTP}
...@@ -35,7 +35,7 @@ pokerbull_QuitRawTx() { ...@@ -35,7 +35,7 @@ pokerbull_QuitRawTx() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
chain33_SignRawTx "$tx" "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" ${MAIN_HTTP} chain33_SignRawTx "$tx" "0x0316d5e33e7bce2455413156cb95209f8c641af352ee5d648c647f24383e4d94" ${MAIN_HTTP}
echo "========== # pokerbull quit tx end ==========" echo "========== # pokerbull quit tx end =========="
chain33_BlockWait 1 "${MAIN_HTTP}" chain33_BlockWait 1 "${MAIN_HTTP}"
...@@ -51,7 +51,7 @@ pokerbull_ContinueRawTx() { ...@@ -51,7 +51,7 @@ pokerbull_ContinueRawTx() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
chain33_SignRawTx "$tx" "2116459C0EC8ED01AA0EEAE35CAC5C96F94473F7816F114873291217303F6989" ${MAIN_HTTP} chain33_SignRawTx "$tx" "0xa26038cbdd9e6fbfb85f2c3d032254755e75252b9edccbecc16d9ba117d96705" ${MAIN_HTTP}
echo "========== # pokerbull continue tx end ==========" echo "========== # pokerbull continue tx end =========="
chain33_BlockWait 1 "${MAIN_HTTP}" chain33_BlockWait 1 "${MAIN_HTTP}"
...@@ -67,7 +67,7 @@ pokerbull_StartRawTx() { ...@@ -67,7 +67,7 @@ pokerbull_StartRawTx() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
chain33_SignRawTx "$tx" "56942AD84CCF4788ED6DACBC005A1D0C4F91B63BCF0C99A02BE03C8DEAE71138" ${MAIN_HTTP} chain33_SignRawTx "$tx" "0x0316d5e33e7bce2455413156cb95209f8c641af352ee5d648c647f24383e4d94" ${MAIN_HTTP}
GAME_ID=$RAW_TX_HASH GAME_ID=$RAW_TX_HASH
echo "========== # pokerbull start tx end ==========" echo "========== # pokerbull start tx end =========="
...@@ -84,7 +84,7 @@ pokerbull_QueryResult() { ...@@ -84,7 +84,7 @@ pokerbull_QueryResult() {
[ "$ok" == true ] [ "$ok" == true ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
data=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"pokerbull","funcName":"QueryGameByAddr","payload":{"addr":"1PUiGcbsccfxW3zuvHXZBJfznziph5miAo"}}]}' ${MAIN_HTTP} | jq -r ".result") data=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"pokerbull","funcName":"QueryGameByAddr","payload":{"addr":"14VkqML8YTRK4o15Cf97CQhpbnRUa6sJY4"}}]}' ${MAIN_HTTP} | jq -r ".result")
[ "$data" != null ] [ "$data" != null ]
echo_rst "$FUNCNAME" "$?" echo_rst "$FUNCNAME" "$?"
...@@ -103,11 +103,45 @@ init() { ...@@ -103,11 +103,45 @@ init() {
pokerbull_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"pokerbull"}]}' ${MAIN_HTTP} | jq -r ".result") pokerbull_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"pokerbull"}]}' ${MAIN_HTTP} | jq -r ".result")
fi fi
local from="1PUiGcbsccfxW3zuvHXZBJfznziph5miAo" local main_ip=${MAIN_HTTP//8901/8801}
chain33_SendToAddress "$from" "$pokerbull_addr" 10000000000 ${MAIN_HTTP} #main chain import pri key
#14VkqML8YTRK4o15Cf97CQhpbnRUa6sJY4
chain33_ImportPrivkey "0x0316d5e33e7bce2455413156cb95209f8c641af352ee5d648c647f24383e4d94" "14VkqML8YTRK4o15Cf97CQhpbnRUa6sJY4" "pokerbull1" "${main_ip}"
#1MuVM87DLigWhJxLJKvghTa1po4ZdWtDv1
chain33_ImportPrivkey "0xa26038cbdd9e6fbfb85f2c3d032254755e75252b9edccbecc16d9ba117d96705" "1MuVM87DLigWhJxLJKvghTa1po4ZdWtDv1" "pokerbull2" "$main_ip"
local pokerbull1="14VkqML8YTRK4o15Cf97CQhpbnRUa6sJY4"
local pokerbull2="1MuVM87DLigWhJxLJKvghTa1po4ZdWtDv1"
if [ "$ispara" == false ]; then
chain33_applyCoins "$pokerbull1" 12000000000 "${main_ip}"
chain33_QueryBalance "${pokerbull1}" "$main_ip"
chain33_applyCoins "$pokerbull2" 12000000000 "${main_ip}"
chain33_QueryBalance "${pokerbull2}" "$main_ip"
else
# tx fee
chain33_applyCoins "$pokerbull1" 1000000000 "${main_ip}"
chain33_QueryBalance "${pokerbull1}" "$main_ip"
chain33_applyCoins "$pokerbull2" 1000000000 "${main_ip}"
chain33_QueryBalance "${pokerbull2}" "$main_ip"
local para_ip="${MAIN_HTTP}"
#para chain import pri key
chain33_ImportPrivkey "0x0316d5e33e7bce2455413156cb95209f8c641af352ee5d648c647f24383e4d94" "14VkqML8YTRK4o15Cf97CQhpbnRUa6sJY4" "pokerbull1" "$para_ip"
chain33_ImportPrivkey "0xa26038cbdd9e6fbfb85f2c3d032254755e75252b9edccbecc16d9ba117d96705" "1MuVM87DLigWhJxLJKvghTa1po4ZdWtDv1" "pokerbull2" "$para_ip"
chain33_applyCoins "$pokerbull1" 12000000000 "${para_ip}"
chain33_QueryBalance "${pokerbull1}" "$para_ip"
chain33_applyCoins "$pokerbull2" 12000000000 "${para_ip}"
chain33_QueryBalance "${pokerbull2}" "$para_ip"
fi
chain33_SendToAddress "$pokerbull1" "$pokerbull_addr" 10000000000 ${MAIN_HTTP}
chain33_QueryExecBalance "${pokerbull1}" "pokerbull" "$MAIN_HTTP"
chain33_SendToAddress "$pokerbull2" "$pokerbull_addr" 10000000000 ${MAIN_HTTP}
chain33_QueryExecBalance "${pokerbull2}" "pokerbull" "$MAIN_HTTP"
from="1EDnnePAZN48aC2hiTDzhkczfF39g1pZZX"
chain33_SendToAddress "$from" "$pokerbull_addr" 10000000000 ${MAIN_HTTP}
chain33_BlockWait 1 "${MAIN_HTTP}" chain33_BlockWait 1 "${MAIN_HTTP}"
} }
...@@ -140,4 +174,4 @@ function main() { ...@@ -140,4 +174,4 @@ function main() {
fi fi
} }
main "$1" chain33_debug_function main "$1"
This diff is collapsed.
...@@ -168,7 +168,7 @@ func performCmd(cmd *cobra.Command, args []string) { ...@@ -168,7 +168,7 @@ func performCmd(cmd *cobra.Command, args []string) {
return return
} }
for i := 0; i < len(execs); i++ { for i := 0; i < len(execs); i++ {
params.Assets = append(params.Assets, rpc.Asset{Exec: execs[i], Symbol: symbols[0]}) params.Assets = append(params.Assets, rpc.Asset{Exec: execs[i], Symbol: symbols[i]})
} }
ctx := jsonrpc.NewRPCCtx(rpcLaddr, "retrieve.CreateRawRetrievePerformTx", params, nil) ctx := jsonrpc.NewRPCCtx(rpcLaddr, "retrieve.CreateRawRetrievePerformTx", params, nil)
...@@ -206,7 +206,7 @@ func cancelCmd(cmd *cobra.Command, args []string) { ...@@ -206,7 +206,7 @@ func cancelCmd(cmd *cobra.Command, args []string) {
func RetrieveQueryCmd() *cobra.Command { func RetrieveQueryCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "query", Use: "query",
Short: "Backup the wallet", Short: "show retrieve info",
Run: queryRetrieveCmd, Run: queryRetrieveCmd,
} }
addQueryRetrieveCmdFlags(cmd) addQueryRetrieveCmdFlags(cmd)
...@@ -218,6 +218,9 @@ func addQueryRetrieveCmdFlags(cmd *cobra.Command) { ...@@ -218,6 +218,9 @@ func addQueryRetrieveCmdFlags(cmd *cobra.Command) {
cmd.MarkFlagRequired("backup") cmd.MarkFlagRequired("backup")
cmd.Flags().StringP("default", "t", "", "default address") cmd.Flags().StringP("default", "t", "", "default address")
cmd.MarkFlagRequired("default") cmd.MarkFlagRequired("default")
cmd.Flags().StringP("asset_exec", "e", "", "asset exec")
cmd.Flags().StringP("asset_symbol", "s", "", "asset symbol")
} }
func parseRerieveDetail(arg interface{}) (interface{}, error) { func parseRerieveDetail(arg interface{}) (interface{}, error) {
...@@ -246,10 +249,14 @@ func queryRetrieveCmd(cmd *cobra.Command, args []string) { ...@@ -246,10 +249,14 @@ func queryRetrieveCmd(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
backup, _ := cmd.Flags().GetString("backup") backup, _ := cmd.Flags().GetString("backup")
defaultAddr, _ := cmd.Flags().GetString("default") defaultAddr, _ := cmd.Flags().GetString("default")
exec, _ := cmd.Flags().GetString("asset_exec")
symbol, _ := cmd.Flags().GetString("asset_symbol")
req := &rt.ReqRetrieveInfo{ req := &rt.ReqRetrieveInfo{
BackupAddress: backup, BackupAddress: backup,
DefaultAddress: defaultAddr, DefaultAddress: defaultAddr,
AssetExec: exec,
AssetSymbol: symbol,
} }
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
......
...@@ -97,7 +97,7 @@ func (c *Retrieve) ExecDelLocal_Perform(perf *rt.PerformRetrieve, tx *types.Tran ...@@ -97,7 +97,7 @@ func (c *Retrieve) ExecDelLocal_Perform(perf *rt.PerformRetrieve, tx *types.Tran
if types.IsDappFork(c.GetHeight(), rt.RetrieveX, rt.ForkRetriveAssetX) { if types.IsDappFork(c.GetHeight(), rt.RetrieveX, rt.ForkRetriveAssetX) {
if len(perf.Assets) == 0 { if len(perf.Assets) == 0 {
perf.Assets = append(perf.Assets, &types.Asset{Exec: "coins", Symbol: types.GetCoinSymbol()}) perf.Assets = append(perf.Assets, &rt.AssetSymbol{Exec: "coins", Symbol: types.GetCoinSymbol()})
} }
} }
for _, asset := range perf.Assets { for _, asset := range perf.Assets {
......
...@@ -104,7 +104,7 @@ func (c *Retrieve) ExecLocal_Perform(perf *rt.PerformRetrieve, tx *types.Transac ...@@ -104,7 +104,7 @@ func (c *Retrieve) ExecLocal_Perform(perf *rt.PerformRetrieve, tx *types.Transac
} }
if types.IsDappFork(c.GetHeight(), rt.RetrieveX, rt.ForkRetriveAssetX) { if types.IsDappFork(c.GetHeight(), rt.RetrieveX, rt.ForkRetriveAssetX) {
if len(perf.Assets) == 0 { if len(perf.Assets) == 0 {
perf.Assets = append(perf.Assets, &types.Asset{Exec: "coins", Symbol: types.GetCoinSymbol()}) perf.Assets = append(perf.Assets, &rt.AssetSymbol{Exec: "coins", Symbol: types.GetCoinSymbol()})
} }
} }
for _, asset := range perf.Assets { for _, asset := range perf.Assets {
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
package executor package executor
import ( import (
"fmt"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
rt "github.com/33cn/plugin/plugin/dapp/retrieve/types" rt "github.com/33cn/plugin/plugin/dapp/retrieve/types"
) )
...@@ -29,11 +27,9 @@ func (r *Retrieve) Query_GetRetrieveInfo(in *rt.ReqRetrieveInfo) (types.Message, ...@@ -29,11 +27,9 @@ func (r *Retrieve) Query_GetRetrieveInfo(in *rt.ReqRetrieveInfo) (types.Message,
if info.Status == retrievePerform && in.GetAssetExec() != "" { if info.Status == retrievePerform && in.GetAssetExec() != "" {
// retrievePerform状态下,不存在有两种情况 // retrievePerform状态下,不存在有两种情况
// 1 还没找回, 2 fork 之前是没有coins 找回记录的 // 1 还没找回, 2 fork 之前是没有coins 找回记录的
count := r.GetLocalDB().PrefixCount(calcRetrieveAssetPrefix(in.BackupAddress, in.DefaultAddress))
// 2 fork 之前是 没有coins 找回记录的, 相当于都找回了 // 2 fork 之前是 没有coins 找回记录的, 相当于都找回了
if count == 0 { // localdb not support PrefixCount
return info, nil // 所以在填写具体资产的情况下, 认为是要找对应的资产
}
asset, _ := getRetrieveAsset(r.GetLocalDB(), in.BackupAddress, in.DefaultAddress, in.AssetExec, in.AssetSymbol) asset, _ := getRetrieveAsset(r.GetLocalDB(), in.BackupAddress, in.DefaultAddress, in.AssetExec, in.AssetSymbol)
if asset != nil { if asset != nil {
...@@ -48,8 +44,3 @@ func (r *Retrieve) Query_GetRetrieveInfo(in *rt.ReqRetrieveInfo) (types.Message, ...@@ -48,8 +44,3 @@ func (r *Retrieve) Query_GetRetrieveInfo(in *rt.ReqRetrieveInfo) (types.Message,
} }
return info, nil return info, nil
} }
func calcRetrieveAssetPrefix(backupAddr, defaultAddr string) []byte {
key := fmt.Sprintf("LODB-retrieve-backup-asset:%s:%s:", backupAddr, defaultAddr)
return []byte(key)
}
...@@ -211,7 +211,7 @@ func (action *Action) RetrievePerformAssets(perfRet *rt.PerformRetrieve, default ...@@ -211,7 +211,7 @@ func (action *Action) RetrievePerformAssets(perfRet *rt.PerformRetrieve, default
// 兼容原来的找回, 在不指定的情况下,找回主币 // 兼容原来的找回, 在不指定的情况下,找回主币
if len(perfRet.Assets) == 0 { if len(perfRet.Assets) == 0 {
perfRet.Assets = append(perfRet.Assets, &types.Asset{Exec: "coins", Symbol: types.GetCoinSymbol()}) perfRet.Assets = append(perfRet.Assets, &rt.AssetSymbol{Exec: "coins", Symbol: types.GetCoinSymbol()})
//return nil, nil //return nil, nil
} }
...@@ -224,7 +224,7 @@ func (action *Action) RetrievePerformAssets(perfRet *rt.PerformRetrieve, default ...@@ -224,7 +224,7 @@ func (action *Action) RetrievePerformAssets(perfRet *rt.PerformRetrieve, default
acc := accdb.LoadExecAccount(defaultAddress, action.execaddr) acc := accdb.LoadExecAccount(defaultAddress, action.execaddr)
rlog.Debug("RetrievePerform", "acc.Balance", acc.Balance) rlog.Debug("RetrievePerform", "acc.Balance", acc.Balance)
if acc.Balance > 0 { if acc.Balance > 0 {
receipt, err = action.coinsAccount.ExecTransfer(defaultAddress, perfRet.BackupAddress, action.execaddr, acc.Balance) receipt, err = accdb.ExecTransfer(defaultAddress, perfRet.BackupAddress, action.execaddr, acc.Balance)
if err != nil { if err != nil {
rlog.Debug("RetrievePerform", "ExecTransfer", err) rlog.Debug("RetrievePerform", "ExecTransfer", err)
return nil, err return nil, err
......
...@@ -40,10 +40,16 @@ message PrepareRetrieve { ...@@ -40,10 +40,16 @@ message PrepareRetrieve {
string defaultAddress = 2; string defaultAddress = 2;
} }
message AssetSymbol {
string exec = 1;
string symbol = 2;
}
message PerformRetrieve { message PerformRetrieve {
string backupAddress = 1; string backupAddress = 1;
string defaultAddress = 2; string defaultAddress = 2;
repeated Asset assets = 3; repeated AssetSymbol assets = 3;
} }
message CancelRetrieve { message CancelRetrieve {
......
...@@ -49,6 +49,11 @@ func (c *Jrpc) CreateRawRetrievePerformTx(in *RetrievePerformTx, result *interfa ...@@ -49,6 +49,11 @@ func (c *Jrpc) CreateRawRetrievePerformTx(in *RetrievePerformTx, result *interfa
head := &types.PerformRetrieve{ head := &types.PerformRetrieve{
BackupAddress: in.BackupAddr, BackupAddress: in.BackupAddr,
DefaultAddress: in.DefaultAddr, DefaultAddress: in.DefaultAddr,
Assets: []*types.AssetSymbol{},
}
for i := 0; i < len(in.Assets); i++ {
head.Assets = append(head.Assets, &types.AssetSymbol{Exec: in.Assets[i].Exec, Symbol: in.Assets[i].Symbol})
} }
reply, err := c.cli.Perform(context.Background(), head) reply, err := c.cli.Perform(context.Background(), head)
if err != nil { if err != nil {
......
...@@ -8,11 +8,14 @@ import ( ...@@ -8,11 +8,14 @@ import (
"strings" "strings"
"testing" "testing"
"github.com/33cn/chain33/common"
commonlog "github.com/33cn/chain33/common/log" commonlog "github.com/33cn/chain33/common/log"
"github.com/33cn/chain33/rpc/jsonclient" "github.com/33cn/chain33/rpc/jsonclient"
rpctypes "github.com/33cn/chain33/rpc/types" rpctypes "github.com/33cn/chain33/rpc/types"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
"github.com/33cn/chain33/util/testnode" "github.com/33cn/chain33/util/testnode"
"github.com/33cn/plugin/plugin/dapp/retrieve/rpc" "github.com/33cn/plugin/plugin/dapp/retrieve/rpc"
pty "github.com/33cn/plugin/plugin/dapp/retrieve/types" pty "github.com/33cn/plugin/plugin/dapp/retrieve/types"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
...@@ -67,8 +70,28 @@ func testPrepareCmd(t *testing.T, jrpc *jsonclient.JSONClient) error { ...@@ -67,8 +70,28 @@ func testPrepareCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
} }
func testPerformCmd(t *testing.T, jrpc *jsonclient.JSONClient) error { func testPerformCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
params := rpc.RetrievePerformTx{} params := rpc.RetrievePerformTx{
return jrpc.Call("retrieve.CreateRawRetrievePerformTx", params, nil) BackupAddr: "b",
DefaultAddr: "d",
Assets: []rpc.Asset{{"e", "s"}},
}
var txS string
t.Log("tx info", "x", params.Assets)
err := jrpc.Call("retrieve.CreateRawRetrievePerformTx", &params, &txS)
var tx types.Transaction
bytes, err := common.FromHex(txS)
if err != nil {
return err
}
err = types.Decode(bytes, &tx)
if err != nil {
return err
}
var p2 pty.RetrieveAction
err = types.Decode(tx.Payload, &p2)
t.Log("asset", p2.GetPerform().GetAssets())
return err
} }
func testCancelCmd(t *testing.T, jrpc *jsonclient.JSONClient) error { func testCancelCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
......
...@@ -43,10 +43,12 @@ func (c *channelClient) Perform(ctx context.Context, v *rt.PerformRetrieve) (*ty ...@@ -43,10 +43,12 @@ func (c *channelClient) Perform(ctx context.Context, v *rt.PerformRetrieve) (*ty
Ty: rt.RetrieveActionPerform, Ty: rt.RetrieveActionPerform,
Value: &rt.RetrieveAction_Perform{Perform: v}, Value: &rt.RetrieveAction_Perform{Perform: v},
} }
tx, err := types.CreateFormatTx(types.ExecName(rt.RetrieveX), types.Encode(perform)) payload := types.Encode(perform)
tx, err := types.CreateFormatTx(types.ExecName(rt.RetrieveX), payload)
if err != nil { if err != nil {
return nil, err return nil, err
} }
data := types.Encode(tx) data := types.Encode(tx)
return &types.UnsignTx{Data: data}, nil return &types.UnsignTx{Data: data}, nil
} }
......
This diff is collapsed.
...@@ -17,7 +17,6 @@ ticket_CreateBindMiner() { ...@@ -17,7 +17,6 @@ ticket_CreateBindMiner() {
returnAddr=$2 returnAddr=$2
returnPriv=$3 returnPriv=$3
amount=$4 amount=$4
set -x
resp=$(curl -ksd '{"method":"ticket.CreateBindMiner","params":[{"bindAddr":"'"$minerAddr"'", "originAddr":"'"$returnAddr"'", "amount":'"$amount"', "checkBalance":true}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"ticket.CreateBindMiner","params":[{"bindAddr":"'"$minerAddr"'", "originAddr":"'"$returnAddr"'", "amount":'"$amount"', "checkBalance":true}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(echo "${resp}" | jq -r ".error") ok=$(echo "${resp}" | jq -r ".error")
[[ $ok == null ]] [[ $ok == null ]]
...@@ -26,25 +25,20 @@ ticket_CreateBindMiner() { ...@@ -26,25 +25,20 @@ ticket_CreateBindMiner() {
#发送交易 #发送交易
rawTx=$(echo "${resp}" | jq -r ".result.txHex") rawTx=$(echo "${resp}" | jq -r ".result.txHex")
chain33_SignRawTx "${rawTx}" "${returnPriv}" ${MAIN_HTTP} chain33_SignRawTx "${rawTx}" "${returnPriv}" ${MAIN_HTTP}
set +x
} }
ticket_SetAutoMining() { ticket_SetAutoMining() {
flag=$1 flag=$1
set -x
resp=$(curl -ksd '{"method":"ticket.SetAutoMining","params":[{"flag":'"$flag"'}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"ticket.SetAutoMining","params":[{"flag":'"$flag"'}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(jq '(.error|not) and (.result.isOK == true)' <<<"$resp") ok=$(jq '(.error|not) and (.result.isOK == true)' <<<"$resp")
set +x
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
} }
ticket_GetTicketCount() { ticket_GetTicketCount() {
set -x
resp=$(curl -ksd '{"method":"ticket.GetTicketCount","params":[{}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"ticket.GetTicketCount","params":[{}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(jq '(.error|not) and (.result > 0)' <<<"$resp") ok=$(jq '(.error|not) and (.result > 0)' <<<"$resp")
set +x
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
...@@ -52,10 +46,8 @@ ticket_GetTicketCount() { ...@@ -52,10 +46,8 @@ ticket_GetTicketCount() {
ticket_CloseTickets() { ticket_CloseTickets() {
addr=$1 addr=$1
set -x
resp=$(curl -ksd '{"method":"ticket.CloseTickets","params":[{"minerAddress":"'"$addr"'"}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"ticket.CloseTickets","params":[{"minerAddress":"'"$addr"'"}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(jq '(.error|not) and (.result.hashes | length > 0)' <<<"$resp") ok=$(jq '(.error|not)' <<<"$resp")
set +x
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
...@@ -65,13 +57,10 @@ ticket_TicketInfos() { ...@@ -65,13 +57,10 @@ ticket_TicketInfos() {
tid=$1 tid=$1
minerAddr=$2 minerAddr=$2
returnAddr=$3 returnAddr=$3
status=$4
execer="ticket" execer="ticket"
funcName="TicketInfos" funcName="TicketInfos"
set -x
resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"ticketIds":["'"$tid"'"]}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"ticketIds":["'"$tid"'"]}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(jq '(.error|not) and (.result.tickets | length > 0) and (.result.tickets[0].minerAddress == "'"$minerAddr"'") and (.result.tickets[0].returnAddress == "'"$returnAddr"'") and (.result.tickets[0].status == '"$status"')' <<<"$resp") ok=$(jq '(.error|not) and (.result.tickets | length > 0) and (.result.tickets[0].minerAddress == "'"$minerAddr"'") and (.result.tickets[0].returnAddress == "'"$returnAddr"'")' <<<"$resp")
set +x
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
...@@ -84,19 +73,15 @@ ticket_TicketList() { ...@@ -84,19 +73,15 @@ ticket_TicketList() {
execer="ticket" execer="ticket"
funcName="TicketList" funcName="TicketList"
resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"addr":"'"$minerAddr"'", "status":'"$status"'}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"addr":"'"$minerAddr"'", "status":'"$status"'}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
set -x
ok=$(jq '(.error|not) and (.result.tickets | length > 0) and (.result.tickets[0].minerAddress == "'"$minerAddr"'") and (.result.tickets[0].returnAddress == "'"$returnAddr"'") and (.result.tickets[0].status == '"$status"')' <<<"$resp") ok=$(jq '(.error|not) and (.result.tickets | length > 0) and (.result.tickets[0].minerAddress == "'"$minerAddr"'") and (.result.tickets[0].returnAddress == "'"$returnAddr"'") and (.result.tickets[0].status == '"$status"')' <<<"$resp")
set +x
ticket0=$(echo "${resp}" | jq -r ".result.tickets[0]")
echo -e "######\\n ticket[0] is $ticket0) \\n######"
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
if [[ $status == 1 ]]; then ticket0=$(echo "${resp}" | jq -r ".result.tickets[0]")
ticketId=$(echo "${resp}" | jq -r ".result.tickets[0].ticketId") echo -e "######\\n ticket[0] is $ticket0) \\n######"
echo -e "######\\n ticketId is $ticketId \\n######" ticketId=$(echo "${resp}" | jq -r ".result.tickets[0].ticketId")
fi echo -e "######\\n ticketId is $ticketId \\n######"
} }
ticket_MinerAddress() { ticket_MinerAddress() {
...@@ -104,10 +89,8 @@ ticket_MinerAddress() { ...@@ -104,10 +89,8 @@ ticket_MinerAddress() {
minerAddr=$2 minerAddr=$2
execer="ticket" execer="ticket"
funcName="MinerAddress" funcName="MinerAddress"
set -x
resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"data":"'"$returnAddr"'"}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"data":"'"$returnAddr"'"}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(jq '(.error|not) and (.result.data == "'"$minerAddr"'")' <<<"$resp") ok=$(jq '(.error|not) and (.result.data == "'"$minerAddr"'")' <<<"$resp")
set +x
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
...@@ -118,10 +101,8 @@ ticket_MinerSourceList() { ...@@ -118,10 +101,8 @@ ticket_MinerSourceList() {
returnAddr=$2 returnAddr=$2
execer="ticket" execer="ticket"
funcName="MinerSourceList" funcName="MinerSourceList"
set -x
resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"data":"'"$minerAddr"'"}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"data":"'"$minerAddr"'"}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(jq '(.error|not) and (.result.datas | length > 0) and (.result.datas[0] == "'"$returnAddr"'")' <<<"$resp") ok=$(jq '(.error|not) and (.result.datas | length > 0) and (.result.datas[0] == "'"$returnAddr"'")' <<<"$resp")
set +x
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
...@@ -132,10 +113,8 @@ ticket_RandNumHash() { ...@@ -132,10 +113,8 @@ ticket_RandNumHash() {
blockNum=$2 blockNum=$2
execer="ticket" execer="ticket"
funcName="RandNumHash" funcName="RandNumHash"
set -x
resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"hash":"'"$hash"'", "blockNum":'"$blockNum"'}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP}) resp=$(curl -ksd '{"method":"Chain33.Query","params":[{"execer":"'"$execer"'","funcName":"'"$funcName"'","payload":{"hash":"'"$hash"'", "blockNum":'"$blockNum"'}}]}' -H 'content-type:text/plain;' ${MAIN_HTTP})
ok=$(jq '(.error|not) and (.result.hash != "")' <<<"$resp") ok=$(jq '(.error|not) and (.result.hash != "")' <<<"$resp")
set +x
[[ $ok == true ]] [[ $ok == true ]]
rst=$? rst=$?
echo_rst "$FUNCNAME" "$rst" echo_rst "$FUNCNAME" "$rst"
...@@ -151,21 +130,19 @@ function run_testcases() { ...@@ -151,21 +130,19 @@ function run_testcases() {
returnAddr2="1NNaYHkscJaLJ2wUrFNeh6cQXBS4TrFYeB" returnAddr2="1NNaYHkscJaLJ2wUrFNeh6cQXBS4TrFYeB"
returnPriv2="0x794443611e7369a57b078881445b93b754cbc9b9b8f526535ab9c6d21d29203d" returnPriv2="0x794443611e7369a57b078881445b93b754cbc9b9b8f526535ab9c6d21d29203d"
set -x
chain33_SendToAddress "${minerAddr1}" "${minerAddr2}" 100000000 "${MAIN_HTTP}" chain33_SendToAddress "${minerAddr1}" "${minerAddr2}" 100000000 "${MAIN_HTTP}"
chain33_SendToAddress "${minerAddr1}" "${returnAddr2}" $((price + 5 * 100000000)) "${MAIN_HTTP}" chain33_SendToAddress "${minerAddr1}" "${returnAddr2}" $((price + 5 * 100000000)) "${MAIN_HTTP}"
set +x
ticket_SetAutoMining 0 ticket_SetAutoMining 0
ticket_GetTicketCount ticket_GetTicketCount
ticket_TicketList "${minerAddr1}" "${returnAddr1}" 1 ticket_TicketList "${minerAddr1}" "${returnAddr1}" 1
ticket_TicketInfos "${ticketId}" "${minerAddr1}" "${returnAddr1}" 1 ticket_TicketInfos "${ticketId}" "${minerAddr1}" "${returnAddr1}"
#购票 #购票
ticket_CreateBindMiner "${minerAddr2}" "${returnAddr2}" "${returnPriv2}" ${price} ticket_CreateBindMiner "${minerAddr2}" "${returnAddr2}" "${returnPriv2}" ${price}
ticket_MinerAddress "${returnAddr2}" "${minerAddr2}" ticket_MinerAddress "${returnAddr2}" "${minerAddr2}"
ticket_MinerSourceList "${minerAddr2}" "${returnAddr2}" ticket_MinerSourceList "${minerAddr2}" "${returnAddr2}"
#关闭 #关闭
ticket_CloseTickets "${minerAddr2}" ticket_CloseTickets "${minerAddr1}"
chain33_LastBlockhash "${MAIN_HTTP}" chain33_LastBlockhash "${MAIN_HTTP}"
ticket_RandNumHash "${LAST_BLOCK_HASH}" 5 ticket_RandNumHash "${LAST_BLOCK_HASH}" 5
...@@ -193,4 +170,4 @@ function main() { ...@@ -193,4 +170,4 @@ function main() {
echo "=========== # ticket rpc test end=============" echo "=========== # ticket rpc test end============="
} }
main "$1" chain33_debug_function main "$1"
#!/usr/bin/env bash #!/usr/bin/env bash
# shellcheck disable=SC2128 # shellcheck disable=SC2128
# shellcheck source=/dev/null
source ../dapp-test-common.sh
MAIN_HTTP="" MAIN_HTTP=""
CASE_ERR="" CASE_ERR=""
tokenAddr="1Q8hGLfoGe63efeWa8fJ4Pnukhkngt6poK" tokenAddr="1Q8hGLfoGe63efeWa8fJ4Pnukhkngt6poK"
recvAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" recvAddr="1CLrYLNhHfCfMUV7mtdqhbMSF6vGmtTvzq"
superManager="0xc34b5d9d44ac7b754806f761d3d4d2c4fe5214f6b074c19f069c4f5c2a29c8cc" superManager="0xc34b5d9d44ac7b754806f761d3d4d2c4fe5214f6b074c19f069c4f5c2a29c8cc"
tokenSymbol="ABCDE" tokenSymbol="ABCDE"
token_addr="" token_addr=""
execName="token" execName="token"
txHash=""
#color #color
RED='\033[1;31m' RED='\033[1;31m'
...@@ -25,77 +29,6 @@ function echo_rst() { ...@@ -25,77 +29,6 @@ function echo_rst() {
fi fi
} }
function chain33_ImportPrivkey() {
local pri=$2
local acc=$3
local req='"method":"Chain33.ImportPrivkey", "params":[{"privkey":"'"$pri"'", "label":"tokenAddr"}]'
echo "#request: $req"
resp=$(curl -ksd "{$req}" "$1")
echo "#response: $resp"
ok=$(jq '(.error|not) and (.result.label=="tokenAddr") and (.result.acc.addr == "'"$acc"'")' <<<"$resp")
[ "$ok" == true ]
echo_rst "$FUNCNAME" "$?"
}
function Chain33_SendToAddress() {
local from="$1"
local to="$2"
local amount=$3
local req='"method":"Chain33.SendToAddress", "params":[{"from":"'"$from"'","to":"'"$to"'", "amount":'"$amount"', "note":"test\n"}]'
# echo "#request: $req"
resp=$(curl -ksd "{$req}" "${MAIN_HTTP}")
# echo "#response: $resp"
ok=$(jq '(.error|not) and (.result.hash|length==66)' <<<"$resp")
[ "$ok" == true ]
echo_rst "$FUNCNAME" "$?"
hash=$(jq '(.result.hash)' <<<"$resp")
echo "hash=$hash"
# query_tx "$hash"
}
function chain33_unlock() {
ok=$(curl -k -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.UnLock","params":[{"passwd":"1314fuzamei","timeout":0}]}' -H 'content-type:text/plain;' ${MAIN_HTTP} | jq -r ".result.isOK")
[ "$ok" == true ]
rst=$?
echo_rst "$FUNCNAME" "$rst"
}
function block_wait() {
local req='"method":"Chain33.GetLastHeader","params":[]'
cur_height=$(curl -ksd "{$req}" ${MAIN_HTTP} | jq ".result.height")
expect=$((cur_height + ${1}))
local count=0
while true; do
new_height=$(curl -ksd "{$req}" ${MAIN_HTTP} | jq ".result.height")
if [ "${new_height}" -ge "${expect}" ]; then
break
fi
count=$((count + 1))
sleep 1
done
echo "wait new block $count s, cur height=$expect,old=$cur_height"
}
function signRawTx() {
unsignedTx=$1
addr=$2
signedTx=$(curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.SignRawTx","params":[{"addr":"'"${addr}"'","txHex":"'"${unsignedTx}"'","expire":"120s"}]}' -H 'content-type:text/plain;' ${MAIN_HTTP} | jq -r ".result")
if [ "$signedTx" == "null" ]; then
return 1
else
return 0
fi
}
function sendSignedTx() {
txHash=$(curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.SendTransaction","params":[{"token":"","data":"'"${signedTx}"'"}]}' -H 'content-type:text/plain;' ${MAIN_HTTP} | jq -r ".result")
if [ "$txHash" == "null" ]; then
return 1
else
return 0
fi
}
# 查询交易的执行结果 # 查询交易的执行结果
# 根据传入的规则,校验查询的结果 (参数1: 校验规则 参数2: 预期匹配结果) # 根据传入的规则,校验查询的结果 (参数1: 校验规则 参数2: 预期匹配结果)
function queryTransaction() { function queryTransaction() {
...@@ -113,22 +46,45 @@ function queryTransaction() { ...@@ -113,22 +46,45 @@ function queryTransaction() {
function init() { function init() {
ispara=$(echo '"'"${MAIN_HTTP}"'"' | jq '.|contains("8901")') ispara=$(echo '"'"${MAIN_HTTP}"'"' | jq '.|contains("8901")')
echo "ipara=$ispara" echo "ipara=$ispara"
chain33_ImportPrivkey "${MAIN_HTTP}" "${superManager}" "${tokenAddr}" chain33_ImportPrivkey "${superManager}" "${tokenAddr}" "tokenAddr" "${MAIN_HTTP}"
local main_ip=${MAIN_HTTP//8901/8801}
#main chain import pri key
#1CLrYLNhHfCfMUV7mtdqhbMSF6vGmtTvzq
chain33_ImportPrivkey "0x882c963ce2afbedc2353cb417492aa9e889becd878a10f2529fc9e6c3b756128" "1CLrYLNhHfCfMUV7mtdqhbMSF6vGmtTvzq" "token1" "${main_ip}"
local ACCOUNT_A="1CLrYLNhHfCfMUV7mtdqhbMSF6vGmtTvzq"
if [ "$ispara" == false ]; then
chain33_applyCoins "$ACCOUNT_A" 12000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$main_ip"
else
# tx fee
chain33_applyCoins "$ACCOUNT_A" 1000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$main_ip"
local para_ip="${MAIN_HTTP}"
#para chain import pri key
chain33_ImportPrivkey "0x882c963ce2afbedc2353cb417492aa9e889becd878a10f2529fc9e6c3b756128" "1CLrYLNhHfCfMUV7mtdqhbMSF6vGmtTvzq" "token1" "$para_ip"
chain33_applyCoins "$ACCOUNT_A" 12000000000 "${para_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$para_ip"
fi
if [ "$ispara" == true ]; then if [ "$ispara" == true ]; then
execName="user.p.para.token" execName="user.p.para.token"
token_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"user.p.para.token"}]}' ${MAIN_HTTP} | jq -r ".result") token_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"user.p.para.token"}]}' ${MAIN_HTTP} | jq -r ".result")
Chain33_SendToAddress "$recvAddr" "$tokenAddr" 100000000000 chain33_SendToAddress "$recvAddr" "$tokenAddr" 10000000000 "${MAIN_HTTP}"
block_wait 2 chain33_BlockWait 2 "${MAIN_HTTP}"
Chain33_SendToAddress "$tokenAddr" "$token_addr" 1000000000 chain33_SendToAddress "$tokenAddr" "$token_addr" 1000000000 "${MAIN_HTTP}"
block_wait 2 chain33_BlockWait 2 "${MAIN_HTTP}"
else else
token_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"token"}]}' ${MAIN_HTTP} | jq -r ".result") token_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"token"}]}' ${MAIN_HTTP} | jq -r ".result")
from="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" from="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv"
Chain33_SendToAddress "$from" "$tokenAddr" 10000000000 chain33_SendToAddress "$from" "$tokenAddr" 10000000000 "${MAIN_HTTP}"
block_wait 2 chain33_BlockWait 2 "${MAIN_HTTP}"
Chain33_SendToAddress "$tokenAddr" "$token_addr" 1000000000 chain33_SendToAddress "$tokenAddr" "$token_addr" 1000000000 "${MAIN_HTTP}"
block_wait 2 chain33_BlockWait 2 "${MAIN_HTTP}"
fi fi
echo "token=$token_addr" echo "token=$token_addr"
updateConfig updateConfig
...@@ -141,13 +97,8 @@ function updateConfig() { ...@@ -141,13 +97,8 @@ function updateConfig() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "update config signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "update config sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "update config queryExecRes" "$?" echo_rst "update config queryExecRes" "$?"
...@@ -159,13 +110,8 @@ function token_preCreate() { ...@@ -159,13 +110,8 @@ function token_preCreate() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "token preCreate signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "token preCreate sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "token preCreate queryExecRes" "$?" echo_rst "token preCreate queryExecRes" "$?"
...@@ -186,13 +132,8 @@ function token_finish() { ...@@ -186,13 +132,8 @@ function token_finish() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "token finish signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "token finish sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "token finish queryExecRes" "$?" echo_rst "token finish queryExecRes" "$?"
...@@ -252,13 +193,8 @@ function token_burn() { ...@@ -252,13 +193,8 @@ function token_burn() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "token burn signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "token burn sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "token burn queryExecRes" "$?" echo_rst "token burn queryExecRes" "$?"
...@@ -271,13 +207,8 @@ function token_mint() { ...@@ -271,13 +207,8 @@ function token_mint() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "token mint signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "token mint sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "token mint queryExecRes" "$?" echo_rst "token mint queryExecRes" "$?"
...@@ -289,13 +220,8 @@ function token_transfer() { ...@@ -289,13 +220,8 @@ function token_transfer() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "token transfer signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "token transfer sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "token transfer queryExecRes" "$?" echo_rst "token transfer queryExecRes" "$?"
...@@ -308,13 +234,8 @@ function token_sendExec() { ...@@ -308,13 +234,8 @@ function token_sendExec() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "token sendExec signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "token sendExec sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "token sendExec queryExecRes" "$?" echo_rst "token sendExec queryExecRes" "$?"
...@@ -327,13 +248,8 @@ function token_withdraw() { ...@@ -327,13 +248,8 @@ function token_withdraw() {
return return
fi fi
signRawTx "${unsignedTx}" "${tokenAddr}" chain33_SignRawTx "${unsignedTx}" "${superManager}" "${MAIN_HTTP}"
echo_rst "token withdraw signRawTx" "$?" txHash=$RAW_TX_HASH
sendSignedTx
echo_rst "token withdraw sendSignedTx" "$?"
block_wait 2
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "token withdraw queryExecRes" "$?" echo_rst "token withdraw queryExecRes" "$?"
...@@ -375,4 +291,4 @@ function main() { ...@@ -375,4 +291,4 @@ function main() {
fi fi
} }
main "$1" chain33_debug_function main "$1"
...@@ -8,7 +8,7 @@ MAIN_HTTP="" ...@@ -8,7 +8,7 @@ MAIN_HTTP=""
CASE_ERR="" CASE_ERR=""
trade_addr="" trade_addr=""
tradeAddr="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" tradeAddr="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv"
tradeBuyerAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" tradeBuyerAddr="1CvLe1qNaC7tCf5xmfAqJ9UJkMhtmhUKNg"
tokenSymbol="TOKEN" tokenSymbol="TOKEN"
#color #color
...@@ -132,7 +132,7 @@ function trade_createBuyTx() { ...@@ -132,7 +132,7 @@ function trade_createBuyTx() {
return return
fi fi
chain33_SignRawTx "${unsignedTx}" "0xCC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944" "${MAIN_HTTP}" chain33_SignRawTx "${unsignedTx}" "0xaeef1ad76d43a2056d0dcb57d5bf1ba96471550614ab9e7f611ef9c5ca403f42" "${MAIN_HTTP}"
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "trade createBuyTx queryExecRes" "$?" echo_rst "trade createBuyTx queryExecRes" "$?"
...@@ -200,7 +200,7 @@ function trade_buyLimit() { ...@@ -200,7 +200,7 @@ function trade_buyLimit() {
return return
fi fi
chain33_SignRawTx "${unsignedTx}" "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944" "${MAIN_HTTP}" chain33_SignRawTx "${unsignedTx}" "0xaeef1ad76d43a2056d0dcb57d5bf1ba96471550614ab9e7f611ef9c5ca403f42" "${MAIN_HTTP}"
queryTransaction ".error | not" "true" queryTransaction ".error | not" "true"
echo_rst "trade buyLimit queryExecRes" "$?" echo_rst "trade buyLimit queryExecRes" "$?"
...@@ -278,7 +278,29 @@ function init() { ...@@ -278,7 +278,29 @@ function init() {
token_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"'"${tokenExecName}"'"}]}' ${MAIN_HTTP} | jq -r ".result") token_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"'"${tokenExecName}"'"}]}' ${MAIN_HTTP} | jq -r ".result")
fi fi
chain33_SendToAddress "$tradeAddr" "$tradeBuyerAddr" 10000000000 "${MAIN_HTTP}" local main_ip=${MAIN_HTTP//8901/8801}
#main chain import pri key
#1CvLe1qNaC7tCf5xmfAqJ9UJkMhtmhUKNg
chain33_ImportPrivkey "0xaeef1ad76d43a2056d0dcb57d5bf1ba96471550614ab9e7f611ef9c5ca403f42" "1CvLe1qNaC7tCf5xmfAqJ9UJkMhtmhUKNg" "trade1" "${main_ip}"
local ACCOUNT_A="1CvLe1qNaC7tCf5xmfAqJ9UJkMhtmhUKNg"
if [ "$ispara" == false ]; then
chain33_applyCoins "$ACCOUNT_A" 12000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$main_ip"
else
# tx fee
chain33_applyCoins "$ACCOUNT_A" 1000000000 "${main_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$main_ip"
local para_ip="${MAIN_HTTP}"
#para chain import pri key
chain33_ImportPrivkey "0xaeef1ad76d43a2056d0dcb57d5bf1ba96471550614ab9e7f611ef9c5ca403f42" "1CvLe1qNaC7tCf5xmfAqJ9UJkMhtmhUKNg" "trade1" "$para_ip"
chain33_applyCoins "$ACCOUNT_A" 12000000000 "${para_ip}"
chain33_QueryBalance "${ACCOUNT_A}" "$para_ip"
fi
chain33_SendToAddress "$tradeAddr" "$trade_addr" 10000000000 "${MAIN_HTTP}" chain33_SendToAddress "$tradeAddr" "$trade_addr" 10000000000 "${MAIN_HTTP}"
chain33_SendToAddress "$tradeAddr" "$token_addr" 10000000000 "${MAIN_HTTP}" chain33_SendToAddress "$tradeAddr" "$token_addr" 10000000000 "${MAIN_HTTP}"
chain33_BlockWait 2 "${MAIN_HTTP}" chain33_BlockWait 2 "${MAIN_HTTP}"
...@@ -293,7 +315,7 @@ function init() { ...@@ -293,7 +315,7 @@ function init() {
token_balance token_balance
token_transfer "${tradeBuyerAddr}" token_transfer "${tradeBuyerAddr}"
token_sendExec "0x4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01" token_sendExec "0x4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01"
token_sendExec "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944 " token_sendExec "0xaeef1ad76d43a2056d0dcb57d5bf1ba96471550614ab9e7f611ef9c5ca403f42 "
} }
function run_test() { function run_test() {
...@@ -332,4 +354,4 @@ function main() { ...@@ -332,4 +354,4 @@ function main() {
fi fi
} }
main "$1" chain33_debug_function main "$1"
...@@ -174,7 +174,7 @@ func TestRealNodeMempool(t *testing.T) { ...@@ -174,7 +174,7 @@ func TestRealNodeMempool(t *testing.T) {
mock33.WaitHeight(0) mock33.WaitHeight(0)
mock33.SendHot() mock33.SendHot()
mock33.WaitHeight(1) mock33.WaitHeight(1)
n := 20 n := 10
done := make(chan struct{}, n) done := make(chan struct{}, n)
keys := make([]crypto.PrivKey, n) keys := make([]crypto.PrivKey, n)
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
...@@ -186,7 +186,7 @@ func TestRealNodeMempool(t *testing.T) { ...@@ -186,7 +186,7 @@ func TestRealNodeMempool(t *testing.T) {
mock33.Wait() mock33.Wait()
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
go func(priv crypto.PrivKey) { go func(priv crypto.PrivKey) {
for i := 0; i < 100; i++ { for i := 0; i < 30; i++ {
tx := util.CreateCoinsTx(priv, mock33.GetGenesisAddress(), types.Coin/1000) tx := util.CreateCoinsTx(priv, mock33.GetGenesisAddress(), types.Coin/1000)
reply, err := mock33.GetAPI().SendTx(tx) reply, err := mock33.GetAPI().SendTx(tx)
if err != nil { if err != nil {
......
...@@ -163,7 +163,7 @@ func TestRealNodeMempool(t *testing.T) { ...@@ -163,7 +163,7 @@ func TestRealNodeMempool(t *testing.T) {
mock33.WaitHeight(0) mock33.WaitHeight(0)
mock33.SendHot() mock33.SendHot()
mock33.WaitHeight(1) mock33.WaitHeight(1)
n := 20 n := 10
done := make(chan struct{}, n) done := make(chan struct{}, n)
keys := make([]crypto.PrivKey, n) keys := make([]crypto.PrivKey, n)
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
...@@ -175,7 +175,7 @@ func TestRealNodeMempool(t *testing.T) { ...@@ -175,7 +175,7 @@ func TestRealNodeMempool(t *testing.T) {
mock33.Wait() mock33.Wait()
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
go func(priv crypto.PrivKey) { go func(priv crypto.PrivKey) {
for i := 0; i < 100; i++ { for i := 0; i < 30; i++ {
tx := util.CreateCoinsTx(priv, mock33.GetGenesisAddress(), types.Coin/1000) tx := util.CreateCoinsTx(priv, mock33.GetGenesisAddress(), types.Coin/1000)
reply, err := mock33.GetAPI().SendTx(tx) reply, err := mock33.GetAPI().SendTx(tx)
if err != nil { if err != nil {
......
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