func HandleCommitChain(ctx *web.Context) { state := ctx.Server.Env["state"].(interfaces.IState) type commitchain struct { CommitChainMsg string } c := new(commitchain) if p, err := ioutil.ReadAll(ctx.Request.Body); err != nil { returnMsg(ctx, "Bad commit message", false) return } else { if err := json.Unmarshal(p, c); err != nil { returnMsg(ctx, "Bad commit message", false) return } } commit := entryCreditBlock.NewCommitChain() if p, err := hex.DecodeString(c.CommitChainMsg); err != nil { returnMsg(ctx, "Bad commit message", false) return } else { _, err := commit.UnmarshalBinaryData(p) if err != nil { returnMsg(ctx, "Bad commit message", false) return } } msg := new(messages.CommitChainMsg) msg.CommitChain = commit msg.Timestamp = state.GetTimestamp() state.InMsgQueue() <- msg returnMsg(ctx, "Chain Commit Success", true) }