Commit Graph

54 Commits

Author SHA1 Message Date
Bryan Stitt
6038351cb8 change default tracking in prep for premium-only keys 2023-06-19 13:00:57 -07:00
Bryan Stitt
a083bc652d
Handle uncle transactions (#129)
* 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
2023-06-16 00:46:27 -07:00
David
3f76b08364
Test balance and referral accounting (#111)
* removed bloom filter temporarily, added some fixes with decimals in payment.rs

* balance accounting for a single user (paid and free tier) seems to be ok

* fixed some balance accounting

* compute_cost reduced back to 0
2023-06-08 10:08:29 -07:00
David
de7d8919d3
Change balance to record total spend and total deposits (#109)
* lets test total deposit and total spent

* removed referrer from cache for performance reasons
2023-06-07 14:45:57 -07:00
David
ddfd1dbff1
Added admin balance increase, and also test (#72)
* added admin balance increase, and also test

* slightly hacky, but does do an update expression

* added note column to entities

* removed redundant printlns

* flattened items

* removed user tier logic from admin increase balance completely. admin will have to manually increase the user tier
2023-05-22 17:07:17 -07:00
Bryan Stitt
8a097dabbe
Bryan devel 2023-05-12 (#67)
* add minor todo

* BadRequest instead of web3_context

* more bad request error codes

* use tokio-uring for the tcp listener

* clear block instead of panic

* clone earlier

* more watch channels instead of rwlocks

* drop uring for now (its single threaded) and combine get/post/put routes

* clean up iter vs into_iter and unnecessary collect

* arcswap instead of rwlock for Web3Rpcs.by_name

* cargo upgrade

* uuid fast-rng and alphabetize

* if protected rpcs, only use protected rpcs

* listenfd

* make connectinfo optional

* try_get_with_by_ref instead of try_get_with

* anyhow ensure. and try_get_with_as_ref isn't actually needed

* fix feature flags

* more refs and less clone

* automatic retry for eth_getTransactionReceipt and eth_getTransactionByHash

thanks for the report Lefteris @ Rotki

* ArcSwap for provider

* set archive_request to true on transaction retrying

* merge durable stats

* Revert "ArcSwap for provider"

This reverts commit 166d77f204cde9fa7722c0cefecbb27008749d47.

* comments

* less clones

* more refs

* fix test

* add optional mimalloc feature

* remove stale dependency

* sort

* cargo upgrade

* lint constants

* add todo

* another todo

* lint

* anyhow::ensure instead of panic

* allow rpc_accounting_v2 entries for requests without an rpc key
2023-05-12 15:15:32 -07:00
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
2b30422b84 fixes for NULL and UNIQUE to work together 2023-04-05 14:55:37 -07:00
Bryan Stitt
05db94177d cargo fmt 2023-04-05 12:19:03 -07:00
yenicelik
64505102ef creating a CLI endpoint for the migration 2023-03-21 12:07:21 +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
b87c988439 lint 2023-03-01 11:23:59 -08:00
yenicelik
933f71d2d9 should be ok now again 2023-02-19 21:54:23 +01:00
yenicelik
6be5f2bf25 added admin trail table 2023-02-19 21:34:42 +01:00
yenicelik
1250b7dba2 continue rebase 2023-02-19 21:34:39 +01:00
yenicelik
bbe9061402 continue rebase 2023-02-19 21:33:33 +01:00
yenicelik
34131c93f2 not sure why login was modified 2023-02-19 21:27:59 +01:00
yenicelik
6420dc6aa6 tiny refactoring and added admin entities. some bugs coming up 2023-02-19 21:27:59 +01:00
yenicelik
310df0c86d apply rebase 2023-02-19 21:27:53 +01:00
yenicelik
30b3abe7d8 added entities for credits, referrals and rpc requests 2023-02-05 14:26:46 +01:00
Bryan Stitt
081873e937 move pending logins to the database 2022-12-13 18:34:08 -08:00
Bryan Stitt
01faf8cf35 ascii_case_insensitive instead of serialize_all 2022-12-12 11:38:59 -08:00
Bryan Stitt
78df4177a6 consistent case 2022-12-12 11:00:15 -08:00
Bryan Stitt
4c2d3634c5 default to less detailed stats 2022-12-11 20:39:54 -08:00
Bryan Stitt
c35dd96cfb save rpc_key_id or origin. needs some testing 2022-11-11 06:19:14 +00:00
Bryan Stitt
e8f2a13f5d better stats aggregations 2022-11-02 23:14:16 +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
91eb907a2d fix lints with better types 2022-10-31 20:05:58 +00:00
Bryan Stitt
366f2c8f84 rename api_key to rpc_key 2022-10-27 00:12:42 +00:00
Bryan Stitt
8230172366 more user endpoints 2022-10-25 21:11:19 +00:00
Bryan Stitt
4ccbcb8af4 update sea-orm and entities 2022-10-25 03:41:59 +00:00
Bryan Stitt
76c8f1ef96 i think it works 2022-10-11 21:31:34 +00:00
Bryan Stitt
cfd26940a9 this might be too many columns 2022-10-11 05:13:00 +00:00
Bryan Stitt
825370b5d9 stats almost work
just need to update the migration to match our new ideas for columns.

should also make the shutdown smarter so that nothing gets lost
2022-10-10 05:35:25 +00:00
Bryan Stitt
25aa68a5bf add per-user rpc accounting 2022-10-10 04:15:49 +00:00
Bryan Stitt
53f9551180 finish adding semaphores 2022-09-28 03:35:55 +00:00
Bryan Stitt
a3bba43360 allow null calldata 2022-09-24 07:03:29 +00:00
Bryan Stitt
8459dcd1f1 let the frontend handle their own cookies 2022-09-24 02:47:44 +00:00
Bryan Stitt
8035ee5a0c update entitites 2022-09-24 00:17:02 +00:00
Bryan Stitt
961ccf7cf2 ip, origin, referer, and user agent checks 2022-09-23 05:22:33 +00:00
Bryan Stitt
339bd41f50 change rpm to u64 and create RevertLogs table 2022-09-21 19:55:43 +00:00
Bryan Stitt
19626a8190 lints and copypasta 2022-08-15 17:50:14 +00:00
Production
66132ce638 actually commit what we missed last time 2022-08-13 19:43:29 +00:00
Bryan Stitt
08045a156f missed a spot 2022-08-13 00:48:20 +00:00
Bryan Stitt
2d5e7f263d serve prometheus stats and use unsigned ints for ids 2022-08-12 21:00:26 +00:00
Bryan Stitt
36cf8af511 requests_per_minute, not requests_per_second 2022-08-07 19:33:34 +00:00
Bryan Stitt
439e27101d better results and errors 2022-08-07 06:48:57 +00:00
Bryan Stitt
b90f80f46b back to ids
i still think uuids are a better idea, but sea orm has some kinks to work out
2022-08-06 00:07:12 +00:00
Bryan Stitt
20384e7f2f use Uuid and bools in our generated types 2022-08-05 19:47:50 +00:00