首页 > 技术文章 > fabric智能合约模板

dretrtg 2020-04-08 20:45 原文

  以创建用户为例,我觉得基本都是这个框架,用特殊功能直接再往上加,欢迎留言交流

func createUser(stub shim.ChaincodeStubInterface, args []string) pb.Response {
    user := user{}
    key, err := stub.CreateCompositeKey(prefixUser, []string{user.Username})
    userAsBytes, _ := stub.GetState(key) // 检查用户是否已经存在
    if len(userAsBytes) == 0 { // 用户不存在,进行创建工作
        userAsBytes, err = json.Marshal(user)
        …
        err = stub.PutState(key, userAsBytes)
     …
        return shim.Success(nil)
    }
    err = json.Unmarshal(userAsBytes, &user)
    userResponse := struct {//返回响应结构体
        Username string `json:"username"`
        Password string `json:"password"`
    }{
        Username: user.Username,
        Password: user.Password,
    }
    userResponseAsBytes, err := json.Marshal(userResponse)
    …
    return shim.Success(userResponseAsBytes) //返回用户名和密码
}