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

add ci case

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