Commit 419e010a authored by QM's avatar QM

add make docker-compose dapp=autonomy

parent c52d3858
......@@ -126,8 +126,8 @@ function base_init() {
sed -i $sedfix 's/^genesis="12qyocayNF7.*/genesis="1G5Cjy8LuQex2fuYv3gzb7B8MxAnxLEqt3"/g' chain33.toml
#autonomy
sed -i $sedfix 's/^useBalance=.*/useBalance=true/g' chain33.toml
sed -i $sedfix 's/^total="16htvcBNS.*/total="1Q9sQwothzM1gKSzkVZ8Dt1tqKX1uzSagx"/g' chain33.toml
# sed -i $sedfix 's/^useBalance=.*/useBalance=true/g' chain33.toml
# sed -i $sedfix 's/^total="16htvcBNS.*/total="1Q9sQwothzM1gKSzkVZ8Dt1tqKX1uzSagx"/g' chain33.toml
if [ "$DAPP" == "x2ethereum" ]; then
sed -i $sedfix 's/^enableReduceLocaldb=.*/enableReduceLocaldb=false/g' chain33.toml
......
......@@ -4,6 +4,10 @@ strpwd=$(pwd)
strcmd=${strpwd##*dapp/}
strapp=${strcmd%/cmd*}
OUT_DIR="${1}/$strapp"
mkdir -p "${OUT_DIR}"
cp ./build/* "${OUT_DIR}"
OUT_TESTDIR="${1}/dapptest/$strapp"
mkdir -p "${OUT_TESTDIR}"
cp ./test/* "${OUT_TESTDIR}"
This diff is collapsed.
#!/usr/bin/env bash
# shellcheck disable=SC2128
# shellcheck source=/dev/null
# shellcheck disable=SC2155
set -x
set -e
#color
RED='\033[1;31m'
GRE='\033[1;32m'
NOC='\033[0m'
# 出错退出前拷贝日志文件
function exit_cp_file() {
exit 1
}
# $1 dockerName
function get_docker_addr() {
local dockerAddr=$(docker inspect "${1}" | jq ".[].NetworkSettings.Networks" | grep "IPAddress" | awk '{ print $2}' | sed 's/\"//g' | sed 's/,//g')
echo "${dockerAddr}"
}
#function block_wait() {
# set +x
# set +x
# local block=$1
# for((i=1;i<=block;i++));do
# hash=$(${Chain33Cli} send coins transfer -a 0.001 -n test -t "${propAddr}" -k CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944)
# check_tx "${Chain33Cli}" "${hash}"
# echo "这是第 $i 次调用";
# done;
# set -x
# set -x
#}
# 杀死进程ebrelayer 进程 $1进程名称
function kill_ebrelayer() {
# shellcheck disable=SC2009
ps -ef | grep "${1}"
# shellcheck disable=SC2009
pid=$(ps -ef | grep "${1}" | grep -v 'grep' | awk '{print $2}' | xargs)
if [ "${pid}" == "" ]; then
echo "not find ${1} pid"
return
fi
kill -9 "${pid}"
sleep 1
# shellcheck disable=SC2009
pid=$(ps -ef | grep "${1}" | grep -v 'grep' | awk '{print $2}' | xargs)
if [ "${pid}" != "" ]; then
echo "kill ${1} failed"
kill -9 "${pid}"
fi
sleep 1
}
# 判断结果是否正确
function cli_ret() {
set +x
if [[ $# -lt 2 ]]; then
echo -e "${RED}wrong parameter${NOC}"
exit_cp_file
fi
ok=$(echo "${1}" | jq -r .isOK)
if [[ ${ok} != "true" ]]; then
echo -e "${RED}failed to ${2}${NOC}"
exit_cp_file
fi
local jqMsg=".msg"
if [[ $# -ge 3 ]]; then
jqMsg="${3}"
fi
msg=$(echo "${1}" | jq -r "${jqMsg}")
if [[ $# -eq 4 ]]; then
if [ "$(echo "$msg < $4" | bc)" -eq 1 ] || [ "$(echo "$msg > $4" | bc)" -eq 1 ]; then
echo -e "${RED}The balance is not correct${NOC}"
exit_cp_file
fi
fi
set -x
echo "${msg}"
}
# 判断 chain33 金额是否正确
function balance_ret() {
set +x
if [[ $# -lt 2 ]]; then
echo -e "${RED}wrong parameter${NOC}"
exit_cp_file
fi
local balance=$(echo "${1}" | jq -r ".balance")
if [ "$(echo "$balance < $2" | bc)" -eq 1 ] || [ "$(echo "$balance > $2" | bc)" -eq 1 ]; then
echo -e "${RED}The balance is not correct${NOC}"
exit_cp_file
fi
set -x
echo "${balance}"
}
# 查询关键字所在行然后删除 ${1}文件名称 ${2}关键字
function delete_line() {
line=$(cat -n "${1}" | grep "${2}" | awk '{print $1}' | xargs | awk '{print $1}')
if [ "${line}" ]; then
sed -i "${line}"'d' "${1}" # 删除行
fi
}
# 查询关键字所在行然后删除 ${1}文件名称 ${2}关键字
function delete_line_show() {
local line=$(cat -n "${1}" | grep "${2}" | awk '{print $1}' | xargs | awk '{print $1}')
if [ "${line}" ]; then
sed -i "${line}"'d' "${1}" # 删除行
line=$((line - 1))
fi
echo "${line}"
}
# chain33 区块等待 $1:cli 路径 $2:等待高度
function block_wait() {
set +x
local CLI=${1}
if [[ $# -lt 1 ]]; then
echo -e "${RED}wrong block_wait parameter${NOC}"
exit_cp_file
fi
local cur_height=$(${CLI} block last_header | jq ".height")
local expect=$((cur_height + ${2}))
local count=0
while true; do
new_height=$(${CLI} block last_header | jq ".height")
if [[ ${new_height} -ge ${expect} ]]; then
break
fi
count=$((count + 1))
sleep 1
done
count=$((count + 1))
set -x
echo -e "${GRE}chain33 wait new block $count s, cur height=$expect,old=$cur_height${NOC}"
}
# 检查交易是否执行成功 $1:cli 路径 $2:交易hash
function check_tx() {
set +x
local CLI=${1}
if [[ $# -lt 2 ]]; then
echo -e "${RED}wrong check_tx parameters${NOC}"
exit_cp_file
fi
if [[ ${2} == "" ]]; then
echo -e "${RED}wrong check_tx txHash is empty${NOC}"
exit_cp_file
fi
local count=0
while true; do
ty=$(${CLI} tx query -s "${2}" | jq .receipt.ty)
if [[ ${ty} != "" ]]; then
break
fi
count=$((count + 1))
sleep 1
if [[ ${count} -ge 100 ]]; then
echo "chain33 query tx for too long"
break
fi
done
set -x
ty=$(${CLI} tx query -s "${2}" | jq .receipt.ty)
if [[ ${ty} != 2 ]]; then
echo -e "${RED}check tx error, hash is ${2}${NOC}"
exit_cp_file
fi
}
function check_number() {
if [[ $# -lt 2 ]]; then
echo -e "${RED}wrong check number parameters${NOC}"
exit_cp_file
fi
if [ "$(echo "$1 < $2" | bc)" -eq 1 ] || [ "$(echo "$1 > $2" | bc)" -eq 1 ]; then
echo -e "${RED}error number, expect ${1}, get ${2}${NOC}"
exit_cp_file
fi
}
# 检查地址是否匹配 $1返回结果 $2匹配地址
function check_addr() {
if [[ $# -lt 2 ]]; then
echo -e "${RED}wrong check number parameters${NOC}"
exit_cp_file
fi
addr=$(echo "${1}" | jq -r ".acc.addr")
if [[ ${addr} != "${2}" ]]; then
echo -e "${RED}error addr, expect ${1}, get ${2}${NOC}"
exit_cp_file
fi
}
# 判断结果 $1 和 $2 是否相等
function is_equal() {
set +x
if [[ $# -lt 2 ]]; then
echo -e "${RED}wrong parameter${NOC}"
exit_cp_file
fi
if [[ $1 != "$2" ]]; then
echo -e "${RED}$1 != ${2}${NOC}"
exit_cp_file
fi
set -x
}
# 判断结果 $1 和 $2 是否不相等
function is_not_equal() {
set +x
if [[ $# -lt 2 ]]; then
echo -e "${RED}wrong parameter${NOC}"
exit_cp_file
fi
if [[ $1 == "$2" ]]; then
echo -e "${RED}$1 == ${2}${NOC}"
exit_cp_file
fi
set -x
}
# import_key and transfer $1 key, $2 label, $3 addr, $4 transfer amount
function import_addr() {
local key="$1"
local label="$2"
local addr="$3"
# shellcheck disable=SC2154
result=$(${Chain33Cli} account import_key -k "${key}" -l "${label}")
check_addr "${result}" "${addr}"
if [ "$#" -eq 4 ]; then
# shellcheck disable=SC2154
hash=$(${Chain33Cli} send coins transfer -a "$4" -n test -t "${addr}" -k "${minerAddr}")
check_tx "${Chain33Cli}" "${hash}"
fi
}
function InitChain33Account() {
# shellcheck disable=SC2154
import_addr "${propKey}" "prop" "${propAddr}" 1000
# shellcheck disable=SC2154
import_addr "${votePrKey2}" "vote2" "${voteAddr2}" 100
# shellcheck disable=SC2154
import_addr "${votePrKey3}" "vote3" "${voteAddr3}" 100
# import_addr "${votePrKey}" "vote" "${voteAddr}" 3200
# shellcheck disable=SC2154
import_addr "${changeKey}" "changeTest" "${changeAddr}" 10
autonomyAddr=$(${Chain33Cli} exec addr -e autonomy)
# ticketAddr=$(${Chain33Cli} exec addr -e ticket)
hash=$(${Chain33Cli} send coins transfer -a 900 -n test -t "${autonomyAddr}" -k "${propKey}")
check_tx "${Chain33Cli}" "${hash}"
# hash=$(${Chain33Cli} send coins transfer -a 3100 -n test -t "${ticketAddr}" -k "${votePrKey}")
# check_tx "${Chain33Cli}" "${hash}"
# shellcheck disable=SC2154
# hash=$(${Chain33Cli} send coins transfer -a 10 -n test -t "${voteAddr2}" -k "${minerAddr}")
# check_tx "${Chain33Cli}" "${hash}"
local count=0
# shellcheck disable=SC2154
# shellcheck disable=SC2068
for key in ${arrayKey[@]}
do
import_addr "${key}" "board${count}" "${arrayAddr[count]}" 100
count=$((count + 1))
done
}
# chian33 初始化准备
function InitChain33() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
# init
# ${Chain33Cli} seed save -p 1314fuzamei -s "tortoise main civil member grace happy century convince father cage beach hip maid merry rib"
# ${Chain33Cli} wallet unlock -p 1314fuzamei -t 0
# ${Chain33Cli} account import_key -k CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944 -l returnAddr
InitChain33Account
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
}
function StartChain33() {
# kill_ebrelayer chain33
# sleep 2
#
# # delete chain33 datadir
# rm ../../datadir ../../logs -rf
#
# nohup ../../chain33 -f ./ci/autonomy/test.toml >chain33log.log 2>&1 &
#
# sleep 1
InitChain33
}
\ No newline at end of file
#!/usr/bin/env bash
# shellcheck disable=SC2128
# shellcheck source=/dev/null
source "./autonomyTest.sh"
function autonomy() {
if [ "${2}" == "test" ]; then
echo "========================== autonomy test =========================="
set +e
set -x
mainTest
echo "========================== autonomy test end =========================="
fi
}
......@@ -8,13 +8,20 @@ HTTP=""
EXECTOR=""
EXECTOR_ADDR=""
TICKET_EXECTOR=""
TICKET_ADDR=""
propKey="0xfd0c4a8a1efcd221ee0f36b7d4f57d8ff843cb8bc193b39c7863332d355acafa"
propAddr="15VUiygdxMSZ3rykwe742yomp2cPJ9Tfve"
votePrKey="1c3e6cac2f887e1ab9180e2d5772dc4ba01accb8d4df434faba097003eb35482"
voteAddr="1Q9sQwothzM1gKSzkVZ8Dt1tqKX1uzSagx"
#votePrKey="1c3e6cac2f887e1ab9180e2d5772dc4ba01accb8d4df434faba097003eb35482"
#voteAddr="1Q9sQwothzM1gKSzkVZ8Dt1tqKX1uzSagx"
voteAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
votePrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944" #14KEKbYtKKQm4wMthSK9J4La4nAiidGozt
voteAddr2="1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF"
votePrKey2="B0BB75BC49A787A71F4834DA18614763B53A18291ECE6B5EDEC3AD19D150C3E7" #1EbDHAXpoiewjPLX9uqoz38HsKqMXayZrF
voteAddr3="1KcCVZLSQYRUwE5EXTsAoQs9LuJW6xwfQa"
votePrKey3="2AFF1981291355322C7A6308D46A9C9BA311AA21D94F36B43FC6A6021A1334CF"
proposalRuleID=""
proposalBoardID=""
......@@ -100,11 +107,7 @@ boards='
"'${boardsAddr[19]}'",
"'${boardsAddr[20]}'"
'
chain33_para_init() {
ip=$1
chain33_ImportPrivkey "${votePrKey}" "${voteAddr}" "autonomytest" "${ip}"
chain33_SendToAddress "12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" "$voteAddr" 630000000000 "${ip}"
}
chain33_applyCoinsNOLimit() {
echo "chain33_getMainChainCoins"
if [ "$#" -lt 3 ]; then
......@@ -117,6 +120,7 @@ chain33_applyCoinsNOLimit() {
local poolAddr="1PcGKYYoLn1PLLJJodc1UpgWGeFAQasAkx"
chain33_SendToAddress "${poolAddr}" "${targetAddr}" "$count" "${ip}"
chain33_QueryBalance "${targetAddr}" "${ip}"
}
handleBoards() {
......@@ -220,6 +224,7 @@ testProposalBoard() {
#vote
chain33_BlockWait 100 "$HTTP"
voteBoardTx "${proposalBoardID}" "${votePrKey}"
voteBoardTx "${proposalBoardID}" "${votePrKey2}"
#query
queryProposal "${proposalBoardID}" "GetProposalBoard"
listProposal 4 "ListProposalBoard"
......@@ -276,6 +281,8 @@ testProposalRule() {
#vote
chain33_BlockWait 100 "$HTTP"
voteRuleTx "${proposalRuleID}" ${votePrKey}
voteRuleTx "${proposalRuleID}" "${votePrKey2}"
voteRuleTx "${proposalRuleID}" "${votePrKey3}"
#query
queryProposal "${proposalRuleID}" "GetProposalRule"
listProposal 4 "ListProposalRule"
......@@ -457,45 +464,43 @@ init() {
if [ "$ispara" == true ]; then
EXECTOR_ADDR=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"user.p.para.autonomy"}]}' "${HTTP}" | jq -r ".result")
EXECTOR="user.p.para.autonomy"
TICKET_ADDR=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"user.p.para.ticket"}]}' "${HTTP}" | jq -r ".result")
TICKET_EXECTOR="user.p.para.ticket"
else
EXECTOR_ADDR=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"autonomy"}]}' "${HTTP}" | jq -r ".result")
EXECTOR="autonomy"
TICKET_ADDR=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"ticket"}]}' "${HTTP}" | jq -r ".result")
TICKET_EXECTOR="ticket"
fi
echo "EXECTOR_ADDR=$EXECTOR_ADDR"
local main_ip=${HTTP//8901/8801}
chain33_ImportPrivkey "${propKey}" "${propAddr}" "prop" "${main_ip}"
chain33_ImportPrivkey "${votePrKey2}" "${voteAddr2}" "voteAddr2" "${main_ip}"
chain33_ImportPrivkey "${votePrKey3}" "${voteAddr3}" "voteAddr3" "${main_ip}"
if [ "$ispara" == false ]; then
chain33_applyCoinsNOLimit "$propAddr" 100000000000 "${main_ip}"
chain33_QueryBalance "${propAddr}" "$main_ip"
chain33_applyCoinsNOLimit "${voteAddr}" 10000000000 "${main_ip}"
chain33_applyCoinsNOLimit "${voteAddr2}" 10000000000 "${main_ip}"
chain33_applyCoinsNOLimit "${voteAddr3}" 10000000000 "${main_ip}"
else
chain33_applyCoins "$propAddr" 1000000000 "${main_ip}"
chain33_QueryBalance "${propAddr}" "$main_ip"
chain33_applyCoinsNOLimit "$propAddr" 1000000000 "${main_ip}"
#主链投票账户转帐
handleBoards "$main_ip"
local para_ip="${HTTP}"
chain33_ImportPrivkey "${propKey}" "${propAddr}" "prop" "$para_ip"
chain33_ImportPrivkey "${votePrKey2}" "${voteAddr2}" "voteAddr2" "${para_ip}"
chain33_ImportPrivkey "${votePrKey3}" "${voteAddr3}" "voteAddr3" "${para_ip}"
#平行链中账户转帐
chain33_applyCoinsNOLimit "$propAddr" 100000000000 "$para_ip"
chain33_QueryBalance "$propAddr" "$para_ip"
chain33_para_init "$para_ip"
chain33_applyCoinsNOLimit "${voteAddr}" 10000000000 "${para_ip}"
chain33_applyCoinsNOLimit "${voteAddr2}" 10000000000 "${para_ip}"
chain33_applyCoinsNOLimit "${voteAddr3}" 10000000000 "${para_ip}"
fi
# 往合约中转
chain33_SendToAddress "$propAddr" "$EXECTOR_ADDR" 90000000000 "$HTTP"
chain33_QueryExecBalance "$propAddr" "$EXECTOR" "$HTTP"
# 往ticket合约中转帐
chain33_SendToAddress "$voteAddr" "$TICKET_ADDR" 300100000000 "$HTTP"
chain33_QueryExecBalance "$voteAddr" "$TICKET_EXECTOR" "$HTTP"
# 往投票账户中转帐
handleBoards "$HTTP"
}
......
......@@ -88,7 +88,7 @@ func addProposalBoardFlags(cmd *cobra.Command) {
cmd.Flags().Int32P("month", "m", 0, "month")
cmd.Flags().Int32P("day", "d", 0, "day")
cmd.Flags().BoolP("update", "u", false, "replace or update boards, default is replace(false); update(true)")
cmd.Flags().Int32P("update", "u", 1, "addr delete or replace boards, 1:add, 2:delete, 3:replace all, default is 1")
cmd.Flags().Int64P("startBlock", "s", 0, "start block height")
cmd.MarkFlagRequired("startBlock")
cmd.Flags().Int64P("endBlock", "e", 0, "end block height")
......@@ -106,7 +106,7 @@ func proposalBoard(cmd *cobra.Command, args []string) {
month, _ := cmd.Flags().GetInt32("month")
day, _ := cmd.Flags().GetInt32("day")
update, _ := cmd.Flags().GetBool("update")
update, _ := cmd.Flags().GetInt32("update")
startBlock, _ := cmd.Flags().GetInt64("startBlock")
endBlock, _ := cmd.Flags().GetInt64("endBlock")
boardstr, _ := cmd.Flags().GetString("boards")
......@@ -117,7 +117,7 @@ func proposalBoard(cmd *cobra.Command, args []string) {
Year: year,
Month: month,
Day: day,
Update: update,
BoardUpdate: auty.BoardUpdate(update),
Boards: boards,
StartBlockHeight: startBlock,
EndBlockHeight: endBlock,
......
......@@ -54,7 +54,7 @@ func addProposalProjectFlags(cmd *cobra.Command) {
cmd.Flags().Int64P("endBlock", "e", 0, "end block height")
cmd.MarkFlagRequired("endBlock")
cmd.Flags().Int32P("projectNeedBlockNum", "n", 0, "project complete need time(unit is block number)")
cmd.MarkFlagRequired("projectNeedBlockNum")
//cmd.MarkFlagRequired("projectNeedBlockNum")
}
func proposalProject(cmd *cobra.Command, args []string) {
......
......@@ -15,6 +15,7 @@ import (
type subConfig struct {
Total string `json:"total"`
UseBalance bool `json:"useBalance"`
Execer string `json:"execer"`
}
var (
......
......@@ -499,6 +499,7 @@ func (a *action) getTotalVotes(height int64) (int32, error) {
addr = subcfg.Total
}
voteAccount, err := a.getStartHeightVoteAccount(addr, "", height)
if err != nil {
return 0, err
}
......@@ -539,7 +540,11 @@ func (a *action) batchGetAddressVotes(addrs []string, height int64) (int32, erro
}
func (a *action) getAddressVotes(addr string, height int64) (int32, error) {
voteAccount, err := a.getStartHeightVoteAccount(addr, ticketName, height)
execer := ticketName
if subcfg.Execer != "" {
execer = subcfg.Execer
}
voteAccount, err := a.getStartHeightVoteAccount(addr, execer, height)
if err != nil {
return 0, err
}
......
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