Commit 18a9ae63 authored by mdj33's avatar mdj33

reconstruc rpc

parent 3ecb14cc
......@@ -5,14 +5,16 @@ source ../dapp-test-common.sh
MAIN_HTTP=""
relay_parallel_exec=""
relay_CreateRawRelaySaveBTCHeadTx() {
local req='{"method":"relay.CreateRawRelaySaveBTCHeadTx","params":[{"hash":"5e7d9c599cd040ec2ba53f4dee28028710be8c135e779f65c56feadaae34c3f2","height":10,"version":536870912,"merkleRoot":"ab91cd4160e1379c337eee6b7a4bdbb7399d70268d86045aba150743c00c90b6","time":1530862108,"nonce":0,"bits":545259519,"previousHash":"604efe53975ab06cad8748fd703ad5bc960e8b752b2aae98f0f871a4a05abfc7","isReset":true}]}'
local req='{"method":"Chain33.CreateTransaction","params":[{"execer":"'"${relay_parallel_exec}"'","actionName":"BtcHeaders","payload":{"btcHeader":[{"hash":"5e7d9c599cd040ec2ba53f4dee28028710be8c135e779f65c56feadaae34c3f2","height":10,"version":536870912,"merkleRoot":"ab91cd4160e1379c337eee6b7a4bdbb7399d70268d86045aba150743c00c90b6","time":1530862108,"nonce":0,"bits":545259519,"previousHash":"604efe53975ab06cad8748fd703ad5bc960e8b752b2aae98f0f871a4a05abfc7","isReset":true}]}}]}'
chain33_Http "$req" ${MAIN_HTTP} '(.error|not) and (.result != null)' "$FUNCNAME" ".result"
chain33_SignAndSendTx "$RETURN_RESP" "0x22968d29c6de695381a8719ef7bf00e2edb6cce500bb59a4fc73c41887610962" "${MAIN_HTTP}"
}
relay_CreateRawRelaySaveBTCHeadTx_11() {
local req='{"method":"relay.CreateRawRelaySaveBTCHeadTx","params":[{"hash":"7b7a4a9b49db5a1162be515d380cd186e98c2bf0bb90f1145485d7c43343fc7c","height":11,"version":536870912,"merkleRoot":"cfa9b66696aea63b7266ffaa1cb4b96c8dd6959eaabf2eb14173f4adaa551f6f","time":1530862108,"nonce":1,"bits":545259519,"previousHash":"5e7d9c599cd040ec2ba53f4dee28028710be8c135e779f65c56feadaae34c3f2","isReset":false}]}'
local req='{"method":"Chain33.CreateTransaction","params":[{"execer":"'"${relay_parallel_exec}"'","actionName":"BtcHeaders","payload":{"btcHeader":[{"hash":"7b7a4a9b49db5a1162be515d380cd186e98c2bf0bb90f1145485d7c43343fc7c","height":11,"version":536870912,"merkleRoot":"cfa9b66696aea63b7266ffaa1cb4b96c8dd6959eaabf2eb14173f4adaa551f6f","time":1530862108,"nonce":1,"bits":545259519,"previousHash":"5e7d9c599cd040ec2ba53f4dee28028710be8c135e779f65c56feadaae34c3f2","isReset":false}]}}]}'
chain33_Http "$req" ${MAIN_HTTP} '(.error|not) and (.result != null)' "$FUNCNAME" ".result"
chain33_SignAndSendTx "$RETURN_RESP" "0x22968d29c6de695381a8719ef7bf00e2edb6cce500bb59a4fc73c41887610962" "${MAIN_HTTP}"
}
......@@ -20,7 +22,7 @@ relay_CreateRawRelaySaveBTCHeadTx_11() {
relay_CreateRawRelayOrderTx() {
localCoinSymbol="$1"
localCoinExec="$2"
local req='{"method":"relay.CreateRawRelayOrderTx","params":[{"operation":0,"xCoin":"BTC","xAmount":299000000,"xAddr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT","localCoinAmount":1000000000,"localCoinSymbol":"'"$localCoinSymbol"'","localCoinExec":"'"$localCoinExec"'","coinWaits":6}]}'
local req='{"method":"Chain33.CreateTransaction","params":[{"execer":"'"${relay_parallel_exec}"'","actionName":"Create","payload":{"operation":0,"xCoin":"BTC","xAmount":299000000,"xAddr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT","localCoinAmount":1000000000,"localCoinSymbol":"'"$localCoinSymbol"'","localCoinExec":"'"$localCoinExec"'","xBlockWaits":6}}]}'
chain33_Http "$req" ${MAIN_HTTP} '(.error|not) and (.result != null)' "$FUNCNAME" ".result"
chain33_SignAndSendTx "$RETURN_RESP" "0x22968d29c6de695381a8719ef7bf00e2edb6cce500bb59a4fc73c41887610962" "${MAIN_HTTP}"
}
......@@ -35,7 +37,7 @@ relay_CreateRawRelayAcceptTx() {
exit 1
fi
local req='{"method":"relay.CreateRawRelayAcceptTx","params":[{"orderId":"'"$id"'","xAddr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT"}]}'
local req='{"method":"Chain33.CreateTransaction","params":[{"execer":"'"${relay_parallel_exec}"'","actionName":"Accept","payload":{"orderId":"'"$id"'","xAddr":"1Am9UTGfdnxabvcywYG2hvzr6qK8T3oUZT"}}]}'
chain33_Http "$req" ${MAIN_HTTP} '(.error|not) and (.result != null)' "$FUNCNAME" ".result"
chain33_SignAndSendTx "$RETURN_RESP" "0xec9162ea5fc2f473ab8240619a0a0f495ba9e9e5d4d9c434b8794a68280236c4" "${MAIN_HTTP}"
}
......@@ -50,7 +52,7 @@ relay_CreateRawRelayRevokeTx() {
exit 1
fi
local req='{"method":"relay.CreateRawRelayRevokeTx","params":[{"orderId":"'"$id"'","target":0,"action":1}]}'
local req='{"method":"Chain33.CreateTransaction","params":[{"execer":"'"${relay_parallel_exec}"'","actionName":"Revoke","payload":{"orderId":"'"$id"'","target":0,"action":1}}]}'
chain33_Http "$req" ${MAIN_HTTP} '(.error|not) and (.result != null)' "$FUNCNAME" ".result"
chain33_SignAndSendTx "$RETURN_RESP" "0x22968d29c6de695381a8719ef7bf00e2edb6cce500bb59a4fc73c41887610962" "${MAIN_HTTP}"
}
......@@ -65,7 +67,7 @@ relay_CreateRawRelayConfirmTx() {
exit 1
fi
local req='{"method":"relay.CreateRawRelayConfirmTx","params":[{"orderId":"'"$id"'","rawTx":"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"}]}'
local req='{"method":"Chain33.CreateTransaction","params":[{"execer":"'"${relay_parallel_exec}"'","actionName":"ConfirmTx","payload":{"orderId":"'"$id"'","txHash":"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"}}]}'
chain33_Http "$req" ${MAIN_HTTP} '(.error|not) and (.result != null)' "$FUNCNAME" ".result"
chain33_SignAndSendTx "$RETURN_RESP" "0xec9162ea5fc2f473ab8240619a0a0f495ba9e9e5d4d9c434b8794a68280236c4" "${MAIN_HTTP}"
}
......@@ -102,8 +104,10 @@ init() {
echo "ipara=$ispara"
local relay_addr=""
if [ "$ispara" == true ]; then
relay_parallel_exec="user.p.para.relay"
relay_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"user.p.para.relay"}]}' ${MAIN_HTTP} | jq -r ".result")
else
relay_parallel_exec="relay"
relay_addr=$(curl -ksd '{"method":"Chain33.ConvertExectoAddr","params":[{"execname":"relay"}]}' ${MAIN_HTTP} | jq -r ".result")
fi
echo "relayaddr=$relay_addr"
......
......@@ -374,7 +374,7 @@ func addExchangeFlags(cmd *cobra.Command) {
}
func relayOrder(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
oper, _ := cmd.Flags().GetUint32("operation")
coin, _ := cmd.Flags().GetString("coin")
coinamount, _ := cmd.Flags().GetFloat64("coin_amount")
......@@ -398,8 +398,28 @@ func relayOrder(cmd *cobra.Command, args []string) {
LocalCoinAmount: btyUInt64 * 1e4,
}
payLoad, err := json.Marshal(params)
if err != nil {
return
}
createTx(cmd, payLoad, "Create")
}
func createTx(cmd *cobra.Command, payLoad []byte, action string) {
title, _ := cmd.Flags().GetString("title")
cfg := types.GetCliSysParam(title)
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
pm := &rpctypes.CreateTxIn{
Execer: cfg.ExecName(ty.RelayX),
ActionName: action,
Payload: payLoad,
}
var res string
ctx := jsonclient.NewRPCCtx(rpcLaddr, "relay.CreateRawRelayOrderTx", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.CreateTransaction", pm, &res)
ctx.RunWithoutMarshal()
}
......@@ -426,7 +446,6 @@ func addRelayAcceptFlags(cmd *cobra.Command) {
}
func relayAccept(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
orderID, _ := cmd.Flags().GetString("order_id")
coinaddr, _ := cmd.Flags().GetString("coin_addr")
coinwait, _ := cmd.Flags().GetUint32("coin_wait")
......@@ -440,9 +459,13 @@ func relayAccept(cmd *cobra.Command, args []string) {
XAddr: coinaddr,
XBlockWaits: coinwait,
}
var res string
ctx := jsonclient.NewRPCCtx(rpcLaddr, "relay.CreateRawRelayAcceptTx", params, &res)
ctx.RunWithoutMarshal()
payLoad, err := json.Marshal(params)
if err != nil {
return
}
createTx(cmd, payLoad, "Accept")
}
// CreateRawRevokeTxCmd revoke order
......@@ -469,7 +492,6 @@ func addRevokeFlags(cmd *cobra.Command) {
}
func relayRevoke(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
orderID, _ := cmd.Flags().GetString("order_id")
target, _ := cmd.Flags().GetUint32("target")
act, _ := cmd.Flags().GetUint32("action")
......@@ -479,9 +501,13 @@ func relayRevoke(cmd *cobra.Command, args []string) {
Target: target,
Action: act,
}
var res string
ctx := jsonclient.NewRPCCtx(rpcLaddr, "relay.CreateRawRelayRevokeTx", params, &res)
ctx.RunWithoutMarshal()
payLoad, err := json.Marshal(params)
if err != nil {
return
}
createTx(cmd, payLoad, "Revoke")
}
// CreateRawRelayConfirmTxCmd confirm tx
......@@ -505,7 +531,6 @@ func addConfirmFlags(cmd *cobra.Command) {
}
func relayConfirm(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
orderID, _ := cmd.Flags().GetString("order_id")
txHash, _ := cmd.Flags().GetString("tx_hash")
......@@ -513,56 +538,10 @@ func relayConfirm(cmd *cobra.Command, args []string) {
OrderId: orderID,
TxHash: txHash,
}
var res string
ctx := jsonclient.NewRPCCtx(rpcLaddr, "relay.CreateRawRelayConfirmTx", params, &res)
ctx.RunWithoutMarshal()
}
// CreateRawRelayBtcHeaderCmd save btc header from cli
func CreateRawRelayBtcHeaderCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "save_header",
Short: "save BTC header",
Run: relaySaveBtcHead,
}
addSaveBtcHeadFlags(cmd)
return cmd
}
func addSaveBtcHeadFlags(cmd *cobra.Command) {
cmd.Flags().StringP("block_hash", "b", "", "block hash")
cmd.MarkFlagRequired("block_hash")
cmd.Flags().StringP("pre_hash", "p", "", "previous block hash")
cmd.MarkFlagRequired("pre_hash")
cmd.Flags().StringP("merkle_root", "m", "", "merkle root")
cmd.MarkFlagRequired("merkle_root")
cmd.Flags().Uint64P("height", "t", 0, "block height")
cmd.MarkFlagRequired("height")
cmd.Flags().Int32P("flag", "g", 0, "reset height and save from current height")
}
func relaySaveBtcHead(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
blockhash, _ := cmd.Flags().GetString("block_hash")
prehash, _ := cmd.Flags().GetString("pre_hash")
merkleroot, _ := cmd.Flags().GetString("merkle_root")
height, _ := cmd.Flags().GetUint64("height")
flag, _ := cmd.Flags().GetInt32("flag")
params := &ty.BtcHeader{
Hash: blockhash,
PreviousHash: prehash,
MerkleRoot: merkleroot,
Height: height,
IsReset: flag == 1,
payLoad, err := json.Marshal(params)
if err != nil {
return
}
var res string
ctx := jsonclient.NewRPCCtx(rpcLaddr, "relay.CreateRawRelaySaveBTCHeadTx", params, &res)
ctx.RunWithoutMarshal()
createTx(cmd, payLoad, "ConfirmTx")
}
......@@ -42,11 +42,6 @@ func TestJRPCChannel(t *testing.T) {
{fn: testShowOnesAcceptRelayOrdersCmd},
{fn: testShowOnesStatusOrdersCmd},
{fn: testShowBTCHeadHeightListCmd},
{fn: testCreateRawRelayOrderTxCmd},
{fn: testCreateRawRelayAcceptTxCmd},
{fn: testCreateRawRevokeTxCmd},
{fn: testCreateRawRelayConfirmTxCmd},
{fn: testCreateRawRelayBtcHeaderCmd},
{fn: testGetBTCHeaderCurHeight},
}
for index, testCase := range testCases {
......@@ -105,36 +100,6 @@ func testShowBTCHeadHeightListCmd(t *testing.T, jrpc *jsonclient.JSONClient) err
return jrpc.Call("Chain33.Query", params, rep)
}
func testCreateRawRelayOrderTxCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
params := pty.RelayCreate{}
var res string
return jrpc.Call("relay.CreateRawRelayOrderTx", params, &res)
}
func testCreateRawRelayAcceptTxCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
params := pty.RelayAccept{}
var res string
return jrpc.Call("relay.CreateRawRelayAcceptTx", params, &res)
}
func testCreateRawRevokeTxCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
params := pty.RelayRevoke{}
var res string
return jrpc.Call("relay.CreateRawRelayRevokeTx", params, &res)
}
func testCreateRawRelayConfirmTxCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
params := pty.RelayConfirmTx{}
var res string
return jrpc.Call("relay.CreateRawRelayConfirmTx", params, &res)
}
func testCreateRawRelayBtcHeaderCmd(t *testing.T, jrpc *jsonclient.JSONClient) error {
params := pty.BtcHeader{}
var res string
return jrpc.Call("relay.CreateRawRelaySaveBTCHeadTx", params, &res)
}
func testGetBTCHeaderCurHeight(t *testing.T, jrpc *jsonclient.JSONClient) error {
var params rpctypes.Query4Jrpc
req := &pty.ReqRelayBtcHeaderHeightList{}
......
......@@ -3,119 +3,3 @@
// license that can be found in the LICENSE file.
package rpc
import (
"encoding/hex"
"github.com/33cn/chain33/types"
ty "github.com/33cn/plugin/plugin/dapp/relay/types"
)
func createRawRelayOrderTx(cfg *types.Chain33Config, parm *ty.RelayCreate) ([]byte, error) {
if parm == nil {
return nil, types.ErrInvalidParam
}
v := *parm
return types.CallCreateTx(cfg, cfg.ExecName(ty.RelayX), "Create", &v)
}
func createRawRelayAcceptTx(cfg *types.Chain33Config, parm *ty.RelayAccept) ([]byte, error) {
if parm == nil {
return nil, types.ErrInvalidParam
}
return types.CallCreateTx(cfg, cfg.ExecName(ty.RelayX), "Accept", parm)
}
func createRawRelayRevokeTx(cfg *types.Chain33Config, parm *ty.RelayRevoke) ([]byte, error) {
if parm == nil {
return nil, types.ErrInvalidParam
}
return types.CallCreateTx(cfg, cfg.ExecName(ty.RelayX), "Revoke", parm)
}
func createRawRelayConfirmTx(cfg *types.Chain33Config, parm *ty.RelayConfirmTx) ([]byte, error) {
if parm == nil {
return nil, types.ErrInvalidParam
}
return types.CallCreateTx(cfg, cfg.ExecName(ty.RelayX), "ConfirmTx", parm)
}
func createRawRelaySaveBTCHeadTx(cfg *types.Chain33Config, parm *ty.BtcHeader) ([]byte, error) {
if parm == nil {
return nil, types.ErrInvalidParam
}
head := &ty.BtcHeader{
Hash: parm.Hash,
PreviousHash: parm.PreviousHash,
MerkleRoot: parm.MerkleRoot,
Height: parm.Height,
Version: parm.Version,
Time: parm.Time,
Nonce: parm.Nonce,
Bits: parm.Bits,
IsReset: parm.IsReset,
}
v := &ty.BtcHeaders{}
v.BtcHeader = append(v.BtcHeader, head)
return types.CallCreateTx(cfg, cfg.ExecName(ty.RelayX), "BtcHeaders", v)
}
//CreateRawRelayOrderTx jrpc create raw relay order
func (c *Jrpc) CreateRawRelayOrderTx(in *ty.RelayCreate, result *interface{}) error {
cfg := c.cli.GetConfig()
reply, err := createRawRelayOrderTx(cfg, in)
if err != nil {
return err
}
*result = hex.EncodeToString(reply)
return nil
}
//CreateRawRelayAcceptTx jrpc creat relay accept tx
func (c *Jrpc) CreateRawRelayAcceptTx(in *ty.RelayAccept, result *interface{}) error {
cfg := c.cli.GetConfig()
reply, err := createRawRelayAcceptTx(cfg, in)
if err != nil {
return err
}
*result = hex.EncodeToString(reply)
return nil
}
//CreateRawRelayRevokeTx jrpc create revoke tx
func (c *Jrpc) CreateRawRelayRevokeTx(in *ty.RelayRevoke, result *interface{}) error {
cfg := c.cli.GetConfig()
reply, err := createRawRelayRevokeTx(cfg, in)
if err != nil {
return err
}
*result = hex.EncodeToString(reply)
return nil
}
//CreateRawRelayConfirmTx jrpc create confirm tx
func (c *Jrpc) CreateRawRelayConfirmTx(in *ty.RelayConfirmTx, result *interface{}) error {
cfg := c.cli.GetConfig()
reply, err := createRawRelayConfirmTx(cfg, in)
if err != nil {
return err
}
*result = hex.EncodeToString(reply)
return nil
}
//CreateRawRelaySaveBTCHeadTx jrpc save btc header
func (c *Jrpc) CreateRawRelaySaveBTCHeadTx(in *ty.BtcHeader, result *interface{}) error {
cfg := c.cli.GetConfig()
reply, err := createRawRelaySaveBTCHeadTx(cfg, in)
if err != nil {
return err
}
*result = hex.EncodeToString(reply)
return nil
}
......@@ -5,7 +5,6 @@
package types
import (
"encoding/json"
"reflect"
//log "github.com/33cn/chain33/common/log/log15"
......@@ -169,9 +168,3 @@ func (r *RelayType) Amount(tx *types.Transaction) (int64, error) {
}
return 0, nil
}
// CreateTx relay create tx TODO 暂时不修改实现, 先完成结构的重构
func (r *RelayType) CreateTx(action string, message json.RawMessage) (*types.Transaction, error) {
var tx *types.Transaction
return tx, 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