Commit Graph

87 Commits

Author SHA1 Message Date
David
34ed450fab
User Balance + Referral Logic (#44)
* will implement balance topup endpoint

* will quickly fix other PR reviews

* merging from master

* will finish up godmoe

* will finish up login

* added logic to top up balance (first iteration)

* should implement additional columns soon (currency, amount, tx-hash), as well as a new table for spend

* updated migrations, will account for spend next

* get back to this later

* will merge PR from stats-v2

* stats v2

rebased all my commits and squashed them down to one

* cargo upgrade

* added migrtation for spend in accounting table. will run test-deposit next

* trying to get request from polygon

* first iteration /user/balance/:tx_hash works, needs to add accepted tokens next

* creating the referral code seems to work

* will now check if spending enough credits will lead to both parties receiving credits

* rpcstats takes care of accounting for spend data

* removed track spend from table

* Revert "removed track spend from table"

This reverts commit a50802d6ae75f786864c5ec42d0ceb2cb27124ed.

* Revert "rpcstats takes care of accounting for spend data"

This reverts commit 1cec728bf241e4cfd24351134637ed81c1a5a10b.

* removed rpc request table entity

* updated referral code to use ulid s

* credits used are aggregated

* added a bunch of fields to referrer

* added database logic whenever an aggregate stats is added. will have to iterate over this a couple times i think. go to (1) detecting accepted stables next, (2) fix influxdb bug and (3) start to write test

* removed track spend as this will occur in the database

* will first work on "balance", then referral. these should really be treated as two separate PRs (although already convoluted)

* balance logic initial commit

* breaking WIP, changing the RPC call logic functions

* will start testing next

* got rid of warnings & lint

* will proceed with subtracting / adding to balance

* added decimal points, balance tracking seems to work

* will beautify code a bit

* removed deprecated dependency, and added topic + deposit contract to app.yaml

* brownie test suite does not rely on local contract files it pulls all from polygonscan

* will continue with referral

* should perhaps (in a future revision) recordhow much the referees got for free. marking referrals seems to work rn

* user is upgraded to premium if they deposit more than 10$. we dont accept more than $10M in a single tx

* will start PR, referral seems to be fine so far, perhaps up to some numbers that still may need tweaking

* will start PR

* removed rogue comments, cleaned up payments a bit

* changes before PR

* apply stats

* added unique constraint

* some refactoring such that the user file is not too bloated

* compiling

* progress with subusers, creating a table entry seems to work

* good response type is there as well now, will work on getters from primary user and secondary user next

* subuser logic also seems fine now

* downgrade logic

* fixed bug influxdb does not support different types in same query (which makes sense)

* WIP temporary commit

* merging with PR

* Delete daemon.rs

there are multiple daemons now, so this was moved to `proxyd`

* will remove request clone to &mut

* multiple request handles for payment

* making requests still seem fine

* removed redundant commented out bits

* added deposit endpoint, added deposit amount and deposit user, untested yet

* small bug with downgrade tier id

* will add authorization so balance can be received for users

* balance history should be set now too

* will check balance over time again

* subususer can see rpc key balance if admin or owner

* stats also seems to work fine now with historical balance

* things seem to be building and working

* removed clone from  OpenRequestHandle

* removed influxdb from workspace members

* changed config files

* reran sea-orm generate entities, added a foreign key, should be proper now

* removed contract from commit

* made deposit contract optional

* added topic in polygon dev

* changed deposit contract to deposit factory contract

* added selfrelation on user_tier

* added payment required

* changed chain id to u64

* add wss in polygon llamarpc

* removed origin and method from the table

* added onchain transactions naming (and forgot to add a migration before)

* changed foreign key to be the referrer (id), not the code itself

* forgot to add id as the target foreign key

* WIP adding cache to update role

* fixed merge conflicts

---------

Co-authored-by: Bryan Stitt <bryan@llamanodes.com>
Co-authored-by: Bryan Stitt <bryan@stitthappens.com>
2023-05-12 09:45:15 -07:00
Bryan Stitt
03ef27baa4 Merge branch 'main' into devel 2023-04-19 15:31:08 -07:00
Bryan Stitt
10d2d46512 more packages for kafka+ssl 2023-04-19 15:22:27 -07:00
Bryan Stitt
4889c3e1ce Merge branch 'main' into devel 2023-04-18 20:38:43 -07:00
Bryan Stitt
f3435bc6e0 add bundler_4337_rpcs 2023-04-14 00:04:35 -07:00
yenicelik
8c8c183e65 trying to debug returning multiple files 2023-03-10 20:26:15 +01:00
Bryan Stitt
eb4d05a520 stats v2
rebased all my commits and squashed them down to one
2023-03-04 20:48:49 +01:00
Bryan Stitt
3098791ad9 add optional kafka feature 2023-03-03 01:39:50 +00:00
Bryan Stitt
11ee0aafe9 inotify is a pain cross platform. just check file hashes 2023-02-27 13:13:18 -08:00
Bryan Stitt
e96f09a9c4 refactors to make configs partially reloadable 2023-02-25 23:52:33 -08:00
Bryan Stitt
824a6fa1f0 well it compiles. doesnt work yet. but it compiles 2023-02-14 12:14:50 -08:00
Bryan Stitt
c008f50943 use http and ws providers in a single config 2023-02-12 01:40:01 -08:00
Bryan Stitt
4e63e69c97 actually use app.response_cache_max_bytes 2023-02-09 11:55:39 -08:00
Bryan Stitt
0f280ce483 cargo upgrade and shorten variable names
also begin adding a latency tracker for rpc stats
2023-02-06 09:55:27 -08:00
Bryan Stitt
f2d35ba5eb remove metered in favor of influxdb stats 2023-02-05 18:17:26 -08:00
Bryan Stitt
6d959e2c1f add archive depth to app config 2023-02-05 17:58:03 -08:00
Bryan Stitt
d5f2d6eb18 improve pager duty errors for smarter deduping 2023-01-25 14:04:06 -08:00
Bryan Stitt
2f8920085b configurable gas buffer 2023-01-19 18:08:53 -08:00
Bryan Stitt
52a9ba604c remove allowed lag 2023-01-19 03:05:39 -08:00
Bryan Stitt
0c05b5bdee major refactor to only use backup servers when absolutely necessary 2023-01-19 02:20:06 -08:00
Bryan Stitt
045065986a move allowed_lag around 2023-01-04 12:07:53 -08:00
Bryan Stitt
c0fc999e02 change weight to tier 2023-01-03 22:37:51 -08:00
Bryan Stitt
68183c34c7 more stats and rate limit on user, not key 2022-12-28 13:50:40 -08:00
Bryan Stitt
3b1d6574e3 warn instead of exit on unknown fields 2022-12-28 08:36:22 -08:00
Bryan Stitt
d9c01a59a3 salted recent ip tracking 2022-12-27 22:11:18 -08:00
Bryan Stitt
fd1be8a702 move more into the spawned task 2022-12-20 10:54:13 -08:00
Bryan Stitt
1465ee355c add support for optional db replica
also add cleanup of expired login data
2022-12-16 00:48:24 -08:00
Bryan Stitt
0406b0dc8d fix redirect. config for login domain 2022-11-28 19:59:42 +00:00
Bryan Stitt
4dfb7a5451 fix archive node detection when nodes used to be archive but than changed flags 2022-11-25 00:48:17 +00:00
Bryan Stitt
ea5f791560 simple lock around database migrations 2022-11-14 18:24:52 +00:00
Bryan Stitt
96a486866c add optional display name 2022-11-13 21:05:37 +00:00
Bryan Stitt
0e1cf5767c cut out tracing for now 2022-11-12 08:24:32 +00:00
Bryan Stitt
9ae2337d1d thread fast rng 2022-11-12 06:11:58 +00:00
Bryan Stitt
22fa5136a8 allow no allowed_origin_requests_per_period 2022-11-11 19:24:57 +00:00
Bryan Stitt
c33342d9dd simplify authorization types so we can pass them deeper easily 2022-11-11 06:19:12 +00:00
Bryan Stitt
2c4586302d clean up rpc_key_id template change 2022-11-10 22:17:22 +00:00
Bryan Stitt
d3542c914f lint 2022-11-07 22:30:02 +00:00
Bryan Stitt
bb9e4f99ef fix some auth 2022-11-01 19:12:57 +00:00
Bryan Stitt
8b35bf5e63 clean up migration 2022-11-01 18:54:39 +00:00
Bryan Stitt
a534eae968 trace everything 2022-10-28 22:52:47 +00:00
Bryan Stitt
a67b85a327 concurrency limits on bearer token actions 2022-10-25 18:27:06 +00:00
Bryan Stitt
337f5bc1f8 sort configs 2022-10-25 04:34:24 +00:00
Bryan Stitt
1d24955d6f finish basic ProtectedAction 2022-10-25 04:12:24 +00:00
Bryan Stitt
618bfeb861 semafore cleanup 2022-10-25 04:01:41 +00:00
Bryan Stitt
a0056ca881 optional tracing-sentry 2022-10-24 21:07:29 +00:00
Bryan Stitt
9422a335a7 allow origins on public entrypoints 2022-10-21 20:59:05 +00:00
Bryan Stitt
f6c2d29d0e stricter configs 2022-10-18 23:27:33 +00:00
Bryan Stitt
848af3d8b3 more docs 2022-10-17 21:47:58 +00:00
Bryan Stitt
25aa68a5bf add per-user rpc accounting 2022-10-10 04:15:49 +00:00
Bryan Stitt
c8fbf46885 stats in redis that actually work
we should still investigate a real time series db, but stats in redis is much simpler for now
2022-10-07 02:15:53 +00:00