func HandleV2FactoidBalance(state interfaces.IState, params interface{}) (interface{}, *primitives.JSONError) { fadr := new(AddressRequest) err := MapToObject(params, fadr) if err != nil { return nil, NewInvalidParamsError() } var adr []byte if primitives.ValidateFUserStr(fadr.Address) { adr = primitives.ConvertUserStrToAddress(fadr.Address) } else { adr, err = hex.DecodeString(fadr.Address) if err == nil && len(adr) != constants.HASH_LENGTH { return nil, NewInvalidAddressError() } if err != nil { return nil, NewInvalidAddressError() } } if len(adr) != constants.HASH_LENGTH { return nil, NewInvalidAddressError() } resp := new(FactoidBalanceResponse) resp.Balance = state.GetFactoidState().GetFactoidBalance(factoid.NewAddress(adr).Fixed()) return resp, nil }
func HandleFactoidBalance(ctx *web.Context, eckey string) { state := ctx.Server.Env["state"].(interfaces.IState) var b FactoidBalance adr, err := hex.DecodeString(eckey) if err == nil && len(adr) != constants.HASH_LENGTH { b = FactoidBalance{Response: "Invalid Address", Success: false} } if err == nil { v := int64(state.GetFactoidState().GetFactoidBalance(factoid.NewAddress(adr).Fixed())) str := fmt.Sprintf("%d", v) b = FactoidBalance{Response: str, Success: true} } else { b = FactoidBalance{Response: err.Error(), Success: false} } if p, err := json.Marshal(b); err != nil { wsLog.Error(err) return } else { ctx.Write(p) } }