首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法改变超级分类账结构的车主

无法改变超级分类账结构的车主
EN

Stack Overflow用户
提问于 2020-09-17 10:37:42
回答 1查看 57关注 0票数 0

我试图创建一个汽车包,但是当我调用传输链代码来更改包中汽车的所有者时,它的所有者没有被更改。

https://github.com/JackAtlas10/Learing-Fabric/blob/master/Learn%20GoLang/Go%20L/tempContract.go

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-17 12:25:37

代码中有几个问题。

  1. 在'InitPackage‘方法中,在’InitPackage‘方法中添加空的cars数组(应该在其中添加car数组)
  2. ,for循环是不正确的。您正在对字符串变量“cNum”执行循环。根据您的代码,每当您调用'AddCarsToPkg‘方法时,包的'cNum’变量将存储一个新的值(或者不会保留旧的汽车编号)

我脑子里有解决办法。这可能对你有帮助。这就是:

  • 添加'cNum‘作为' Car’结构的一个元素&在'PutState‘之前从'Packages’struct
  • 中删除该元素,并在'Transport‘方法中设置Car元素’cNum‘
  • 的值,用下面给定的代码

替换for循环。

代码语言:javascript
复制
    for i := range tempPkg.cars {
        carIndex := tempPkg.cars[i].cNum
        car, _ := s.QueryCar(ctx, carIndex)
        car.Owner = newOwner
        car.Status = "Handed Over"
        carAsBytes, _ := json.Marshal(*car)
        err := ctx.GetStub().PutState(carIndex, carAsBytes)
        if err != nil {
            return fmt.Errorf("Error in Puting state to data base%s", err.Error())
        }
        tempPkg.cars[i].Owner = newOwner
        tempPkg.cars[i].Status = "Handed Over"
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63936259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档