package zxsdk import ( "wallet_sdk" "zxsdk/constant" "zxsdk/log" model2 "zxsdk/model" "zxsdk/tools" ) func (zx ZxChainClient) EvSave(data []byte, extendInfo string) (*model2.EvSaveResp, error) { if data == nil || len(data) == 0 { log.Logger.Errorf("local sdk error: evidence data cannot be empty") return nil, constant.EVIDENCE_DATA_EMPTY_ERROR } hash, err := wallet_sdk.SM3Hash(data) if err != nil { log.Logger.Errorf("local sdk error: calculate hash error: %s", err.Error()) return nil, constant.SM3HASH_ERROR } sign, err := wallet_sdk.SignByPriKey(zx.privateKey, tools.GetSignData(zx.publicKey, hash, extendInfo)) if err != nil { log.Logger.Errorf("local sdk error: signature evsave param error: %s", err.Error()) return nil, constant.SIGNATURE_ERROR } trigger := tools.HttpTrigger{ HeaderDic: zx.makeHeader(), Client: zx.httpClient, } req := &model2.EvSaveReq{ Hash: hash, PublicKey: zx.publicKey, Sign: sign, ExtendInfo: extendInfo, } resp := &model2.EvSaveResp{} err = trigger.HttpPost(constant.ZxChainBaseUrl+"/api/v1/ev/save", req, resp) if err != nil { log.Logger.TraceErrorf(trigger.HeaderDic[constant.TraceKey], "evsave error: %v", err.Error()) return nil, err } return resp, nil } func (zx ZxChainClient) EvQuery(evId string, hash string, txId string) (*model2.QueryEvStatusResp, error) { if evId == "" && hash == "" && txId == "" { log.Logger.Errorf("local sdk error: evid, hash, txId cannot be empty at the same time") return nil, constant.RESP_PARAM_ERROR } trigger := tools.HttpTrigger{ Client: tools.DefaultHttpClient, HeaderDic: zx.makeHeader(), QueryDic: map[string]string{ "evId": evId, "hash": hash, "txId": txId, }, } resp := &model2.QueryEvStatusResp{} err := trigger.HttpGet(constant.ZxChainBaseUrl+"/api/v1/ev/query", resp) if err != nil { log.Logger.TraceErrorf(trigger.HeaderDic[constant.TraceKey], "evquery error: %v", err.Error()) return nil, err } return resp, nil } func (zx ZxChainClient) GetEvCert(evId string) (string, error) { if evId == "" { log.Logger.Errorf("local sdk error: evid cannot be empty") return "", constant.EVID_CANNOT_BE_EMPTY_ERROR } return constant.EvCertBaseUrl + evId, nil }