如何解决如何解组 []byte 事务?
我有这个:
for {
select {
case result := <-socketchan:
logger.Info("got chain","chain",result.Data.(tmtypes.EventDataTx))
// chain := spntypes.UnmarshalChain(codec.BinaryMarshaler,result.Data)
fmt.Println(result.Data.(tmtypes.EventDataTx))
test := result.Data.(tmtypes.EventDataTx)
tx := test.GetTx()
fmt.Println(tx)
chain := gentypes.UnmarshalChain(k,tx)
fmt.Println("ok here comes the chain: ",chain)
// case second := <-newblock:
// logger.Info("got block")
// "index",newblock.Data.(tmtypes.EventData).Index)
case <-quit:
os.Exit(0)
}
}
但似乎 k 依赖于运行链的上下文,如下所示:
ctx,k := spnmocks.MockGenesisContext()
h := genesis.NewHandler(*k)
chainID := spnmocks.MockRandomAlphaString(5)
creator := spnmocks.MockAccAddress()
sourceURL := spnmocks.MockRandomString(20)
sourceHash := spnmocks.MockRandomString(20)
// A chain can be create
msg := types.NewMsgChainCreate(
chainID,creator,sourceURL,sourceHash,)
res,err := h(ctx,msg)
require.NoError(t,err)
chain := types.UnmarshalChain(k.GetCodec(),res.Data)
require.Equal(t,chainID,chain.ChainID)
retrieved,found := k.GetChain(ctx,chainID)
require.True(t,found)
creatorIdentity,_ := k.IdentityKeeper.GetIdentifier(ctx,creator)
require.Equal(t,creatorIdentity,retrieved.Creator)
require.Equal(t,retrieved.sourceURL)
require.Equal(t,retrieved.sourceHash)
但也许我遗漏了一些非常基本的东西,这很有可能。
也许我需要让我的应用程序(它只是从链中读取数据,而不是链本身)读取创世并以某种方式生成上下文?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。