Commit 786a2ed7 authored by vipwzw's avatar vipwzw Committed by 33cn

update

parent 4bf72cdd
......@@ -376,8 +376,8 @@ func init() {
import (
log "github.com/inconshreveable/log15"
drivers "gitlab.33.cn/chain33/chain33/system/dapp"
"gitlab.33.cn/chain33/chain33/types"
drivers "github.com/33cn/chain33/system/dapp"
"github.com/33cn/chain33/types"
)
var clog = log.New("module", "execs.${EXECNAME}")
......@@ -453,7 +453,7 @@ message ${ACTIONNAME}None {
CpftDappTypefile = `package types
import (
"gitlab.33.cn/chain33/chain33/types"
"github.com/33cn/chain33/types"
)
var (
......
......@@ -1229,7 +1229,7 @@ func TestChain33_CreateTransaction(t *testing.T) {
in := &rpctypes.CreateTxIn{Execer: "notExist", ActionName: "x", Payload: []byte("x")}
err = client.CreateTransaction(in, &result)
assert.Equal(t, types.ErrNotSupport, err)
assert.Equal(t, types.ErrExecNotFound, err)
in = &rpctypes.CreateTxIn{Execer: types.ExecName("coins"), ActionName: "notExist", Payload: []byte("x")}
err = client.CreateTransaction(in, &result)
......
......@@ -70,7 +70,7 @@ func (client *JSONClient) Call(method string, params, resp interface{}) error {
req := &clientRequest{}
req.Method = method
req.Params[0] = params
data, err := json.MarshalIndent(req, "", "\t")
data, err := json.Marshal(req)
if err != nil {
return err
}
......@@ -116,5 +116,4 @@ func (client *JSONClient) Call(method string, params, resp interface{}) error {
return types.JSONToPB(b, msg)
}
return json.Unmarshal(*cresp.Result, resp)
}
......@@ -5,6 +5,7 @@
package rpc_test
import (
"fmt"
"testing"
"github.com/33cn/chain33/common"
......@@ -113,3 +114,23 @@ func TestGetAllExecBalance(t *testing.T) {
assert.Nil(t, res.ExecAccount)
assert.Equal(t, 0, len(res.ExecAccount))
}
func TestCreateTransactionUserWrite(t *testing.T) {
mocker := testnode.New("--free--", nil)
defer mocker.Close()
mocker.Listen()
jrpcClient := getRPCClient(t, mocker)
req := &rpctypes.CreateTxIn{
Execer: "user.write",
ActionName: "write",
Payload: []byte(`{"key":"value"}`),
}
var res string
err := jrpcClient.Call("Chain33.CreateTransaction", req, &res)
assert.Nil(t, err)
tx := getTx(t, res)
assert.NotNil(t, tx)
fmt.Println(string(tx.Payload))
assert.Nil(t, err)
assert.Equal(t, `{"key":"value"}`, string(tx.Payload))
}
......@@ -59,6 +59,7 @@ var (
ErrEmpty = errors.New("ErrEmpty")
ErrSendSameToRecv = errors.New("ErrSendSameToRecv")
ErrExecNameNotAllow = errors.New("ErrExecNameNotAllow")
ErrExecNotFound = errors.New("ErrExecNotFound")
ErrLocalDBPerfix = errors.New("ErrLocalDBPerfix")
ErrTimeout = errors.New("ErrTimeout")
ErrBlockHeaderDifficulty = errors.New("ErrBlockHeaderDifficulty")
......
......@@ -5,6 +5,7 @@
package types
import (
"bytes"
"encoding/json"
"math/rand"
"reflect"
......@@ -137,8 +138,14 @@ func CallCreateTx(execName, action string, param Message) ([]byte, error) {
func CallCreateTxJSON(execName, action string, param json.RawMessage) ([]byte, error) {
exec := LoadExecutorType(execName)
if exec == nil {
execer := GetParaExecName([]byte(execName))
//找不到执行器,并且是user.xxx 的情况下
if bytes.HasPrefix(execer, UserKey) {
tx := &Transaction{Payload: param}
return FormatTxEncode(execName, tx)
}
tlog.Error("CallCreateTxJSON", "Error", "exec not found")
return nil, ErrNotSupport
return nil, ErrExecNotFound
}
// param is interface{type, var-nil}, check with nil always fail
if param == nil {
......
......@@ -142,7 +142,8 @@ func GetParaExec(execer []byte) []byte {
return execer[len(GetTitle()):]
}
func getParaExecName(execer []byte) []byte {
//GetParaExecName 获取平行链上的执行器
func GetParaExecName(execer []byte) []byte {
if !bytes.HasPrefix(execer, ParaKey) {
return execer
}
......@@ -162,7 +163,7 @@ func getParaExecName(execer []byte) []byte {
//GetRealExecName 获取真实的执行器name
func GetRealExecName(execer []byte) []byte {
//平行链执行器,获取真实执行器的规则
execer = getParaExecName(execer)
execer = GetParaExecName(execer)
//平行链嵌套平行链是不被允许的
if bytes.HasPrefix(execer, ParaKey) {
return execer
......
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