upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/main/market.h
blob: 6dbf43c7e7ed3a098ced4e4da82695f3517c4e6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef MARKET_H
#define MARKET_H

#include "beacon_price.h"
#include "esp_wifi.h"
#include "esp_err.h"
#include <stdint.h>
#include <stdbool.h>

#define MARKET_MAX_ENTRIES 10

typedef struct {
    uint8_t bssid[6];
    char ssid[33];
    int8_t rssi;
    uint16_t price_per_step;
    uint32_t step_size;
    uint8_t metric;
    uint8_t mint_hash[4];
    uint8_t npub_hash[4];
    char geohash[TOLLGATE_IE_GEOHASH_MAX + 1];
    int64_t discovered_ms;
    bool valid;
} market_entry_t;

typedef struct {
    market_entry_t entries[MARKET_MAX_ENTRIES];
    int count;
    int64_t last_scan_ms;
    bool scanning;
    int consecutive_failures;
} market_t;

esp_err_t market_init(void);
void market_tick(void);
const market_t *market_get(void);
int market_find_cheapest(void);
void market_parse_vendor_ie(const uint8_t sa[6], const vendor_ie_data_t *ie, int rssi);

#endif