Commit 0b4eff9f authored by brent's avatar brent

add merkle tree api

parent 0b30ebbf
......@@ -737,6 +737,10 @@ func (server *ClientController) TotalReward() {
server.respond(models.BusinessFailed, err.Error())
return
}
if response.Code != 0 {
server.respond(models.BusinessFailed, response.Msg)
return
}
server.respond(http.StatusOK, "", response.Data)
}
......@@ -786,5 +790,91 @@ func (server *ClientController) WithdrawalRecord() {
server.respond(models.BusinessFailed, err.Error())
return
}
if response.Code != 0 {
server.respond(models.BusinessFailed, response.Msg)
return
}
server.respond(http.StatusOK, "", response.Data)
}
func (server *ClientController) MerkleNodes() {
requestBody := server.Ctx.Input.RequestBody
appRequest := models.MerkleNodesRequest{}
err := json.Unmarshal(requestBody, &appRequest) //解析body中数据
logs.Debug("appRequest", appRequest)
if appRequest.Date == "" {
server.respond(models.MissingParameter, "Missing date.")
return
}
host, _ := beego.AppConfig.String("rewardUrl")
url := host + "/api/v1/tree/merkleNodes"
payload := new(bytes.Buffer)
json.NewEncoder(payload).Encode(requestBody)
resp, err := http.Post(url, "application/json;charset=UTF-8", payload)
if err != nil {
logs.Info("Error sending request:", err)
server.respond(models.BusinessFailed, err.Error())
return
}
defer resp.Body.Close()
logs.Info("merkleNodes resp code", resp.StatusCode)
body, err := io.ReadAll(resp.Body)
if err != nil {
logs.Info("Error reading response:", err)
server.respond(models.BusinessFailed, err.Error())
return
}
var response models.MerkleNodesResponse
if err := json.Unmarshal(body, &response); err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
if response.Code != 0 {
server.respond(models.BusinessFailed, response.Msg)
return
}
server.respond(http.StatusOK, "", response.Data)
}
func (server *ClientController) MerkleSumNodes() {
requestBody := server.Ctx.Input.RequestBody
appRequest := models.MerkleNodesRequest{}
err := json.Unmarshal(requestBody, &appRequest) //解析body中数据
logs.Debug("appRequest", appRequest)
if appRequest.Date == "" {
server.respond(models.MissingParameter, "Missing date.")
return
}
host, _ := beego.AppConfig.String("rewardUrl")
url := host + "/api/v1/tree/merkleSumNodes"
payload := new(bytes.Buffer)
json.NewEncoder(payload).Encode(requestBody)
resp, err := http.Post(url, "application/json;charset=UTF-8", payload)
if err != nil {
logs.Info("Error sending request:", err)
server.respond(models.BusinessFailed, err.Error())
return
}
defer resp.Body.Close()
logs.Info("merkleNodes resp code", resp.StatusCode)
body, err := io.ReadAll(resp.Body)
if err != nil {
logs.Info("Error reading response:", err)
server.respond(models.BusinessFailed, err.Error())
return
}
var response models.MerkleSumNodesResponse
if err := json.Unmarshal(body, &response); err != nil {
server.respond(models.BusinessFailed, err.Error())
return
}
if response.Code != 0 {
server.respond(models.BusinessFailed, response.Msg)
return
}
server.respond(http.StatusOK, "", response.Data)
}
......@@ -75,3 +75,24 @@ type WithdrawalRecordResponse struct {
Msg string `json:"msg"`
Data WithdrawalRecordData `json:"data"`
}
type MerkleNodesRequest struct {
Date string `json:"date"`
Depth int `json:"depth"`
RootHash string `json:"rootHash"`
}
type MerkleNodesResponse struct {
Code int `json:"code"`
Data [][]string `json:"data"`
Msg string `json:"msg"`
}
type MerkleSumNodesResponse struct {
Code int `json:"code"`
Data struct {
Nodes [][]string `json:"nodes"`
Vals [][]string `json:"vals"`
} `json:"data"`
Msg string `json:"msg"`
}
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