* streaming responses compile, still small TODOs & cleanup
* refactor to allow short curcuits on uncacheable requests (#220)
* refactor to allow short curcuits on uncacheable requests
* handle error inside an Arc from moka
* arc instead of box
* lint
* more lint
* add bonus rate limits and keep all semaphores after rate limits (#221)
* add bonus rate limits and keep all semaphores after rate limits
* remove stale todos
* better function names
* cargo upgrade and update
* make some panics warn. more todo
* pass request_metadata through so streaming responses include their final size
* remove stale TODO
* remove more stale todos
* add file i missed
* make to_json_string work well enough
* check config for free_subscriptions
---------
Co-authored-by: Rory Neithinger <rory@llamanodes.com>
* dont migrate on start. just connect
* it compiles
* that log is loud
* get transaction from a local clone
* import the trait
* put the test app into a thread instead of tokio::spawn
* fix one test
* try db before rpcs
* db connection is too slow. need to wait for it
* do db setup once while spawning
* add more columns to handle uncled transactions
* handle payment uncles
* put relations back
* include all the new columns
* lower log levels
* improve block caching
if we have a block with a number, its canonical. uncles don't get returned
* improve disconnect logic
* lint
* clear first changed for new_top_config_receiver
* better logs around config changing
* i guess we do want one apply top_config at the start
* check correct variable for data limits
* tried to make the balance_entry atomic, asking for feedback
* added locked select everywhere and inside the txn, it should be atomic now
* forgot about overwrite (referee vs sender entities were the same, overwriting each other), fixed it
* will now trigger refreshing cache when balance thresholds are met
* will also invalidate cache if balance gets too low (to out of funds)
* added separate balance cache with shorter TTL. need to know if i should modify it (rn its not atomic), or if low TTL is good enough, and we just fetch the value every now and then from the Database
* removed UserTier struct bcs duplicate with database
* removed subuser premium requirement (which would have lead to a merge conflict later on)
* removed user_tier artefact
* replaced cache to use AtomicF64
* a bunch of small changes
* some changes
* will merge with devel
* changed AtomicF64 to RwLock<Decimal>
* changed AtomicF64 to RwLock<Decimal>
* downgrading user when at 0.1$ or if sum_credits_used is very low
* changed caches to be more aggressive in being non-empty
* replaced Arc::clone() by reference