Commit aedee79b authored by mdj33's avatar mdj33 Committed by vipwzw

add ci case

parent 030bb98e
......@@ -87,6 +87,8 @@ function base_init() {
# wallet
sed -i $sedfix 's/^minerdisable=.*/minerdisable=false/g' chain33.toml
sed -i $sedfix 's/^nodeGroupFrozenCoins=.*/nodeGroupFrozenCoins=20/g' chain33.toml
}
function start() {
......
......@@ -7,6 +7,8 @@ PARA_CLI4="docker exec ${NODE4} /root/chain33-para-cli"
MAIN_CLI="docker exec ${NODE3} /root/chain33-cli"
PARANAME="para"
PARA_COIN_FROZEN="20.0000"
xsedfix=""
if [ "$(uname)" == "Darwin" ]; then
......@@ -134,7 +136,8 @@ function para_create_manage_nodegroup(){
block_wait "${CLI}" 1
}
function para_create_nodegroup(){
function para_nodegroup_create_test(){
echo "=========== # para chain create node group ============="
##apply
txhash=$(${PARA_CLI} send para nodegroup -o 1 -a "1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4,1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR,1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k,1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs" -c 20 -k 0x6da92a632ab7deb67d38c0f6560bcfed28167998f6496db64c258d5e8393a81b)
......@@ -142,7 +145,40 @@ function para_create_nodegroup(){
query_tx "${PARA_CLI}" "${txhash}"
status=$(${PARA_CLI} para nodegroup_status -t user.p.para. | jq -r ".status")
if [ "$status" != 1 ];then
echo "status not approve"
echo "status not apply"
fi
balance=$(${CLI} account balance -a 1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4 -e paracross | jq -r ".frozen")
if [ "$balance" != "$PARA_COIN_FROZEN" ];then
echo "apply coinfrozen error balance=$balance"
exit 1
fi
##quit
txhash=$(${PARA_CLI} send para nodegroup -o 3 -a "1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4,1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR,1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k,1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs" -c 20 -k 0x6da92a632ab7deb67d38c0f6560bcfed28167998f6496db64c258d5e8393a81b)
echo "tx=$txhash"
query_tx "${PARA_CLI}" "${txhash}"
status=$(${PARA_CLI} para nodegroup_status -t user.p.para. | jq -r ".status")
if [ "$status" != 3 ];then
echo "status not quit"
fi
balance=$(${CLI} account balance -a 1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4 -e paracross | jq -r ".balance")
if [ "$balance" != "$PARA_COIN_FROZEN" ];then
echo "quit coinfrozen error balance=$balance"
exit 1
fi
}
function para_create_nodegroup(){
para_nodegroup_create_test
##apply
txhash=$(${PARA_CLI} send para nodegroup -o 1 -a "1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4,1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR,1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k,1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs" -c 20 -k 0x6da92a632ab7deb67d38c0f6560bcfed28167998f6496db64c258d5e8393a81b)
echo "tx=$txhash"
query_tx "${PARA_CLI}" "${txhash}"
status=$(${PARA_CLI} para nodegroup_status -t user.p.para. | jq -r ".status")
if [ "$status" != 1 ];then
echo "status not apply"
fi
##approve
......@@ -161,6 +197,21 @@ function para_create_nodegroup(){
fi
##quit fail
txhash=$(${PARA_CLI} send para nodegroup -o 3 -a "1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4,1JRNjdEqp4LJ5fqycUBm9ayCKSeeskgMKR,1NLHPEcbTWWxxU3dGUZBhayjrCHD3psX7k,1MCftFynyvG2F4ED5mdHYgziDxx6vDrScs" -k 0x6da92a632ab7deb67d38c0f6560bcfed28167998f6496db64c258d5e8393a81b)
echo "tx=$txhash"
query_tx "${CLI}" "${txhash}"
status=$(${CLI} para nodegroup_status -t user.p.para. | jq -r ".status")
if [ "$status" != 2 ];then
echo "status quit not approve"
fi
balance=$(${CLI} account balance -a 1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4 -e paracross | jq -r ".frozen")
if [ "$balance" != "$PARA_COIN_FROZEN" ];then
echo "quit fail coinfrozen error balance=$balance"
exit 1
fi
}
function para_configkey() {
......@@ -171,7 +222,7 @@ function para_configkey() {
}
function query_tx() {
block_wait "${1}" 3
block_wait "${1}" 2
local times=100
while true; do
......@@ -392,11 +443,24 @@ function para_cross_transfer_withdraw_for_token() {
}
function para_nodemanage_test() {
para_transfer2paracross "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
balance=$(${CLI} account balance -a 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -e paracross | jq -r ".balance")
if [ "$balance" != "$PARA_COIN_FROZEN" ];then
echo "balance coinfrozen error balance=$balance"
exit 1
fi
echo "=========== # para chain new node join ============="
hash=$(${PARA_CLI} send para node -o join -a 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -k CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944)
hash=$(${PARA_CLI} send para node -o join -c 20 -a 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -k CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944)
echo "${hash}"
query_tx "${PARA_CLI}" "${hash}"
balance=$(${CLI} account balance -a 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -e paracross | jq -r ".frozen")
if [ "$balance" != "$PARA_COIN_FROZEN" ];then
echo "frozen coinfrozen error balance=$balance"
exit 1
fi
status=$(${PARA_CLI} para node_list -t user.p.para. -s 1 | jq -r ".addrs[0].applyAddr")
if [ "${status}" != "14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" ]; then
echo "wrong join status"
......@@ -418,10 +482,10 @@ function para_nodemanage_test() {
exit 1
fi
node=$(${PARA_CLI} para node_group -t user.p.para. | jq -r '.value|contains("14K")')
node=$(${PARA_CLI} para nodegroup_addrs -t user.p.para. | jq -r '.value|contains("14K")')
if [ "${node}" != "true" ]; then
echo "wrong node group addr"
${PARA_CLI} para node_group -t user.p.para.
${PARA_CLI} para nodegroup_addrs -t user.p.para.
exit 1
fi
......@@ -444,6 +508,12 @@ function para_nodemanage_test() {
echo "${hash}"
query_tx "${PARA_CLI}" "${hash}"
balance=$(${CLI} account balance -a 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt -e paracross | jq -r ".balance")
if [ "$balance" != "$PARA_COIN_FROZEN" ];then
echo "unfrozen coinfrozen error balance=$balance"
exit 1
fi
status=$(${PARA_CLI} para node_status -t user.p.para. -a 14KEKbYtKKQm4wMthSK9J4La4nAiidGozt | jq -r ".status")
if [ "${status}" != "4" ]; then
echo "wrong vote status"
......@@ -451,10 +521,10 @@ function para_nodemanage_test() {
exit 1
fi
node=$(${PARA_CLI} para node_group -t user.p.para. | jq -r '.value|contains("14K")')
node=$(${PARA_CLI} para nodegroup_addrs -t user.p.para. | jq -r '.value|contains("14K")')
if [ "${node}" == "true" ]; then
echo "wrong node group addr"
${PARA_CLI} para node_group -t user.p.para.
${PARA_CLI} para nodegroup_addrs -t user.p.para.
exit 1
fi
......
......@@ -327,14 +327,13 @@ func (a *action) nodeVote(config *pt.ParaNodeAddrConfig) (*types.Receipt, error)
stat.Votes.Addrs = append(stat.Votes.Addrs, a.fromaddr)
stat.Votes.Votes = append(stat.Votes.Votes, config.Value)
}
receipt := makeNodeConfigReceipt(a.fromaddr, config, &copyStat, stat)
most, vote := getMostVote(stat)
if !isCommitDone(stat, nodes, most) {
//超级用户投yes票,就可以通过,防止当前所有授权节点都忘掉私钥场景
//超级用户且当前group里面有任一账户投yes票也可以通过是备选方案 (most >1)即可
if !(isSuperManager(a.fromaddr) && most > 0 && vote == pt.ParaNodeVoteYes) {
saveNodeAddr(a.db, key, stat)
return receipt, nil
return makeNodeConfigReceipt(a.fromaddr, config, &copyStat, stat), nil
}
}
clog.Info("paracross.nodeVote ----pass", "most", most, "pass", vote)
......@@ -368,13 +367,13 @@ func (a *action) nodeVote(config *pt.ParaNodeAddrConfig) (*types.Receipt, error)
if err != nil {
return nil, err
}
receipt.KV = append(receipt.KV, r.KV...)
receipt.Logs = append(receipt.Logs, r.Logs...)
receiptGroup.KV = append(receiptGroup.KV, r.KV...)
receiptGroup.Logs = append(receiptGroup.Logs, r.Logs...)
}
}
}
saveNodeAddr(a.db, key, stat)
receipt = makeNodeConfigReceipt(a.fromaddr, config, &copyStat, stat)
receipt := makeNodeConfigReceipt(a.fromaddr, config, &copyStat, stat)
if receiptGroup != nil {
receipt.KV = append(receipt.KV, receiptGroup.KV...)
receipt.Logs = append(receipt.Logs, receiptGroup.Logs...)
......@@ -409,7 +408,7 @@ func unpdateNodeGroup(db dbm.KV, title, addr string, add bool) (*types.Receipt,
if add {
item.GetArr().Value = append(item.GetArr().Value, addr)
item.Addr = addr
clog.Info("unpdateNodeGroup", "add key", key, "from", copyItem.GetArr().Value, "to", item.GetArr().Value)
clog.Info("unpdateNodeGroup", "add key", string(key), "from", copyItem.GetArr().Value, "to", item.GetArr().Value)
} else {
//必须保留至少1个授权账户
......@@ -564,13 +563,13 @@ func (a *action) nodeGroupCoinsFrozen(addrs []string, configCoinsFrozen int64) (
realExecAddr := dapp.ExecAddress(realExec)
for _, addr := range addrs {
receipt, err := a.coinsAccount.ExecFrozen(addr, realExecAddr, configCoinsFrozen)
r, err := a.coinsAccount.ExecFrozen(addr, realExecAddr, configCoinsFrozen)
if err != nil {
clog.Error("node group apply", "addr", addr, "realExec", realExec,"realAddr",realExecAddr, "amount", configCoinsFrozen)
return nil, err
}
logs = append(logs, receipt.Logs...)
kv = append(kv, receipt.KV...)
logs = append(logs, r.Logs...)
kv = append(kv, r.KV...)
}
receipt.KV = append(receipt.KV, kv...)
receipt.Logs = append(receipt.Logs, logs...)
......@@ -586,13 +585,13 @@ func (a *action) nodeGroupCoinsActive(addrs []string, configCoinsFrozen int64) (
realExecAddr := dapp.ExecAddress(realExec)
for _, addr := range addrs {
receipt, err := a.coinsAccount.ExecActive(addr, realExecAddr, configCoinsFrozen)
r, err := a.coinsAccount.ExecActive(addr, realExecAddr, configCoinsFrozen)
if err != nil {
clog.Error("node group apply", "addr", addr, "realExec", realExec,"realAddr",realExecAddr, "amount", configCoinsFrozen)
return nil, err
}
logs = append(logs, receipt.Logs...)
kv = append(kv, receipt.KV...)
logs = append(logs, r.Logs...)
kv = append(kv, r.KV...)
}
receipt.KV = append(receipt.KV, kv...)
receipt.Logs = append(receipt.Logs, logs...)
......
......@@ -120,7 +120,7 @@ func (p ParacrossType) CreateTx(action string, message json.RawMessage) (*types.
return nil, types.ErrNotSupport
}
var param ParaNodeAddrConfig
err := json.Unmarshal(message, &param)
err := types.JSONToPB(message, &param)
if err != nil {
glog.Error("CreateTx.NodeConfig", "Error", err)
return nil, types.ErrInvalidParam
......
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