Skip to content

Commit

Permalink
expose reclaim funds for v2 pools
Browse files Browse the repository at this point in the history
  • Loading branch information
Giannis Chatziveroglou committed Dec 15, 2022
1 parent acbc462 commit 104809f
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 18 deletions.
4 changes: 2 additions & 2 deletions components/ReclaimFunds.tsx
Expand Up @@ -19,8 +19,8 @@ export const ReclaimFunds = () => {
const handleReclaimFunds = useHandleReclaimFunds()
if (
!rewardDistributor.data ||
rewardDistributor.data.parsed?.kind !== RewardDistributorKind.Treasury ||
isRewardDistributorV2(rewardDistributor.data.parsed)
(rewardDistributor.data.parsed?.kind !== RewardDistributorKind.Treasury &&
!isRewardDistributorV2(rewardDistributor.data.parsed))
) {
return <></>
}
Expand Down
40 changes: 29 additions & 11 deletions handlers/useHandleReclaimFunds.ts
@@ -1,3 +1,5 @@
import { findAta, withFindOrInitAssociatedTokenAccount } from '@cardinal/common'
import { rewardsCenterProgram } from '@cardinal/rewards-center'
import { executeTransaction } from '@cardinal/staking'
import { withReclaimFunds } from '@cardinal/staking/dist/cjs/programs/rewardDistributor/transaction'
import { BN } from '@project-serum/anchor'
Expand All @@ -7,6 +9,7 @@ import { notify } from 'common/Notification'
import { asWallet } from 'common/Wallets'
import { useRewardDistributorData } from 'hooks/useRewardDistributorData'
import { useMutation } from 'react-query'
import { TOKEN_PROGRAM_ID } from 'spl-token-v3'

import { isStakePoolV2, useStakePoolData } from '../hooks/useStakePoolData'
import { useEnvironmentCtx } from '../providers/EnvironmentProvider'
Expand All @@ -28,18 +31,33 @@ export const useHandleReclaimFunds = () => {
if (!rewardDistributor.data) throw 'No reward distributor found'

const transaction = new Transaction()
// const program = rewardsCenterProgram(connection, wallet)
if (isStakePoolV2(stakePool.data.parsed)) {
// to do add instruction to lib.rs of reward center
// const ix = await program.methods
// .reclaimFunds()
// .accounts({
// stakePool: stakePool.pubkey,
// stakeAuthorizationRecord: stakeAuthorizationId,
// authority: wallet.publicKey,
// })
// .instruction()
// transaction.add(ix)
const rewardDistributorTokenAccount = await findAta(
rewardDistributor.data.parsed.rewardMint,
rewardDistributor.data.pubkey,
true
)
const authorityTokenAccount =
await withFindOrInitAssociatedTokenAccount(
transaction,
connection,
rewardDistributor.data.parsed.rewardMint,
wallet.publicKey,
wallet.publicKey,
true
)
const program = rewardsCenterProgram(connection, wallet)
const ix = await program.methods
.reclaimFunds(new BN(reclaimAmount || 0))
.accounts({
rewardDistributor: rewardDistributor.data.pubkey,
rewardDistributorTokenAccount: rewardDistributorTokenAccount,
authorityTokenAccount: authorityTokenAccount,
authority: wallet.publicKey,
tokenProgram: TOKEN_PROGRAM_ID,
})
.instruction()
transaction.add(ix)
} else {
await withReclaimFunds(transaction, connection, wallet, {
stakePoolId: stakePool.data.pubkey,
Expand Down
1 change: 1 addition & 0 deletions hooks/useAllowedTokenDatas.tsx
Expand Up @@ -40,6 +40,7 @@ export const allowedTokensForPool = (
tokenDatas.filter((token) => {
let isAllowed = true
if (!stakePool.parsed) throw 'Stake pool data are unknown'
if (!token?.tokenAccount?.parsed) throw 'No token account found'
const creatorAddresses = stakePool.parsed.allowedCreators
const collectionAddresses = stakePool.parsed.allowedCollections
const requiresAuthorization = stakePool.parsed.requiresAuthorization
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -26,7 +26,7 @@
"@apollo/client": "^3.6.9",
"@cardinal/common": "^4.0.1",
"@cardinal/namespaces-components": "^4.1.31",
"@cardinal/rewards-center": "^2.2.1",
"@cardinal/rewards-center": "^2.2.2",
"@cardinal/staking": "^1.13.1",
"@cardinal/stats": "^1.1.0",
"@emotion/babel-plugin": "^11.7.2",
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Expand Up @@ -339,10 +339,10 @@
"@solana/spl-token" "^0.1.8"
"@solana/web3.js" "^1.66.2"

"@cardinal/rewards-center@^2.2.1":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@cardinal/rewards-center/-/rewards-center-2.2.1.tgz#cc95d4f8c884a2d8c8f13874fa4908992036d8a1"
integrity sha512-cZ93FvFfB0fLQ40gwZLfd4PzIDN5zWyUF22+myudTN+kaC/QZpRdD1aOWMmzTmezn15I3YMlPsWlk6qo1nuc1w==
"@cardinal/rewards-center@^2.2.2":
version "2.2.2"
resolved "https://registry.yarnpkg.com/@cardinal/rewards-center/-/rewards-center-2.2.2.tgz#5a2b8399388678ce20868e993ebbb576b99fb11e"
integrity sha512-fQRLu1jSCJ1pJ7SkEj8x+sLMPsCQpWi5W8OXRd8c7oRG/sFCgQaZ8sclsphriRdyWcKoKbXOg0Wgs9NktrP1lw==
dependencies:
"@cardinal/common" "^4.0.1"
"@cardinal/creator-standard" "^2.1.11"
Expand Down

1 comment on commit 104809f

@vercel
Copy link

@vercel vercel bot commented on 104809f Dec 15, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.