I'm working on a basic SPL staking contract for a token i've created on devnet. Pretty simple goal: lock up tokens for x amount of time, claim, unstake. As this is all relatively ~basic~ functionality, are these functions standardized anywhere? As of now i'm just writing from scratch.
I'm also interested in the entire process, aside from just the program development. I've created the token, that's great. Created an openbook marketID + raydium pool just to understand the process of making it tradeable + getting liquidity
As for staking, where do i send tokens? Do i create a pool, externally, outside of my contract that holds a set amount of the token? Or do i initialize the pool within the contract itself? Would love a general TLDR of how this entire process works to ensure i'm on the right track. Any resources or docs would be helpful, thanks!