diff --git a/src/abis/reward.ts b/src/abis/reward.ts
index fe69460..4bdde06 100644
--- a/src/abis/reward.ts
+++ b/src/abis/reward.ts
@@ -1 +1,138 @@
-export const rewardABI = [{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"claim","inputs":[{"name":"_poolId","type":"uint8","internalType":"uint8"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createRewardPool","inputs":[{"name":"_rewardPool","type":"tuple","internalType":"struct Reward.RewardPool","components":[{"name":"unlocked","type":"bool","internalType":"bool"},{"name":"rewardToken","type":"address","internalType":"address"},{"name":"whitelistRoot","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"emergencyWithdraw","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rewardPools","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"unlocked","type":"bool","internalType":"bool"},{"name":"rewardToken","type":"address","internalType":"address"},{"name":"whitelistRoot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRewardPool","inputs":[{"name":"_poolId","type":"uint8","internalType":"uint8"},{"name":"_pool","type":"tuple","internalType":"struct Reward.RewardPool","components":[{"name":"unlocked","type":"bool","internalType":"bool"},{"name":"rewardToken","type":"address","internalType":"address"},{"name":"whitelistRoot","type":"bytes32","internalType":"bytes32"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"userRewards","inputs":[{"name":"","type":"uint8","internalType":"uint8"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RewardClaimed","inputs":[{"name":"poolId","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RewardPoolCreated","inputs":[{"name":"poolId","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"unlocked","type":"bool","indexed":false,"internalType":"bool"},{"name":"rewardToken","type":"address","indexed":false,"internalType":"address"},{"name":"whitelistRoot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RewardPoolUpdated","inputs":[{"name":"poolId","type":"uint8","indexed":true,"internalType":"uint8"},{"name":"unlocked","type":"bool","indexed":false,"internalType":"bool"},{"name":"rewardToken","type":"address","indexed":false,"internalType":"address"},{"name":"whitelistRoot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}] as const
+export const rewardABI = [
+ { type: 'constructor', inputs: [], stateMutability: 'nonpayable' },
+ {
+ type: 'function',
+ name: 'claim',
+ inputs: [
+ { name: '_poolId', type: 'uint8', internalType: 'uint8' },
+ { name: '_amount', type: 'uint256', internalType: 'uint256' },
+ { name: '_proof', type: 'bytes32[]', internalType: 'bytes32[]' },
+ ],
+ outputs: [],
+ stateMutability: 'nonpayable',
+ },
+ {
+ type: 'function',
+ name: 'createRewardPool',
+ inputs: [
+ {
+ name: '_rewardPool',
+ type: 'tuple',
+ internalType: 'struct Reward.RewardPool',
+ components: [
+ { name: 'unlocked', type: 'bool', internalType: 'bool' },
+ { name: 'rewardToken', type: 'address', internalType: 'address' },
+ { name: 'whitelistRoot', type: 'bytes32', internalType: 'bytes32' },
+ ],
+ },
+ ],
+ outputs: [],
+ stateMutability: 'nonpayable',
+ },
+ {
+ type: 'function',
+ name: 'emergencyWithdraw',
+ inputs: [
+ { name: '_token', type: 'address', internalType: 'address' },
+ { name: '_amount', type: 'uint256', internalType: 'uint256' },
+ ],
+ outputs: [],
+ stateMutability: 'nonpayable',
+ },
+ {
+ type: 'function',
+ name: 'owner',
+ inputs: [],
+ outputs: [{ name: '', type: 'address', internalType: 'address' }],
+ stateMutability: 'view',
+ },
+ { type: 'function', name: 'renounceOwnership', inputs: [], outputs: [], stateMutability: 'nonpayable' },
+ {
+ type: 'function',
+ name: 'rewardPools',
+ inputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
+ outputs: [
+ { name: 'unlocked', type: 'bool', internalType: 'bool' },
+ { name: 'rewardToken', type: 'address', internalType: 'address' },
+ { name: 'whitelistRoot', type: 'bytes32', internalType: 'bytes32' },
+ ],
+ stateMutability: 'view',
+ },
+ {
+ type: 'function',
+ name: 'transferOwnership',
+ inputs: [{ name: 'newOwner', type: 'address', internalType: 'address' }],
+ outputs: [],
+ stateMutability: 'nonpayable',
+ },
+ {
+ type: 'function',
+ name: 'updateRewardPool',
+ inputs: [
+ { name: '_poolId', type: 'uint8', internalType: 'uint8' },
+ {
+ name: '_pool',
+ type: 'tuple',
+ internalType: 'struct Reward.RewardPool',
+ components: [
+ { name: 'unlocked', type: 'bool', internalType: 'bool' },
+ { name: 'rewardToken', type: 'address', internalType: 'address' },
+ { name: 'whitelistRoot', type: 'bytes32', internalType: 'bytes32' },
+ ],
+ },
+ ],
+ outputs: [],
+ stateMutability: 'nonpayable',
+ },
+ {
+ type: 'function',
+ name: 'userRewards',
+ inputs: [
+ { name: '', type: 'uint8', internalType: 'uint8' },
+ { name: '', type: 'address', internalType: 'address' },
+ ],
+ outputs: [{ name: '', type: 'uint256', internalType: 'uint256' }],
+ stateMutability: 'view',
+ },
+ {
+ type: 'event',
+ name: 'OwnershipTransferred',
+ inputs: [
+ { name: 'previousOwner', type: 'address', indexed: true, internalType: 'address' },
+ { name: 'newOwner', type: 'address', indexed: true, internalType: 'address' },
+ ],
+ anonymous: false,
+ },
+ {
+ type: 'event',
+ name: 'RewardClaimed',
+ inputs: [
+ { name: 'poolId', type: 'uint8', indexed: true, internalType: 'uint8' },
+ { name: 'account', type: 'address', indexed: true, internalType: 'address' },
+ { name: 'amount', type: 'uint256', indexed: false, internalType: 'uint256' },
+ ],
+ anonymous: false,
+ },
+ {
+ type: 'event',
+ name: 'RewardPoolCreated',
+ inputs: [
+ { name: 'poolId', type: 'uint8', indexed: true, internalType: 'uint8' },
+ { name: 'unlocked', type: 'bool', indexed: false, internalType: 'bool' },
+ { name: 'rewardToken', type: 'address', indexed: false, internalType: 'address' },
+ { name: 'whitelistRoot', type: 'bytes32', indexed: false, internalType: 'bytes32' },
+ ],
+ anonymous: false,
+ },
+ {
+ type: 'event',
+ name: 'RewardPoolUpdated',
+ inputs: [
+ { name: 'poolId', type: 'uint8', indexed: true, internalType: 'uint8' },
+ { name: 'unlocked', type: 'bool', indexed: false, internalType: 'bool' },
+ { name: 'rewardToken', type: 'address', indexed: false, internalType: 'address' },
+ { name: 'whitelistRoot', type: 'bytes32', indexed: false, internalType: 'bytes32' },
+ ],
+ anonymous: false,
+ },
+] as const;
diff --git a/src/app/stake/page.tsx b/src/app/stake/page.tsx
index e75a2ac..4444184 100644
--- a/src/app/stake/page.tsx
+++ b/src/app/stake/page.tsx
@@ -1,4 +1,4 @@
-'use client'
+'use client';
import { useState } from 'react';
import { useAccount } from 'wagmi';
@@ -14,7 +14,7 @@ export default function Stake() {
const [isOpen, setIsOpen] = useState(false);
const { address } = useAccount();
return (
-
+
{ const { data } = await stakeAPI.getUserInfo(address as string, "1"); return data },
- })
+ queryKey: ['profile', address],
+ queryFn: async () => {
+ const { data } = await stakeAPI.getUserInfo(address as string, '1');
+ return data;
+ },
+ });
- const rewardPool = data?.reward_pool?.find((pool: any) => pool.name === rewardToken)
+ const rewardPool = data?.reward_pool?.find((pool: any) => pool.name === rewardToken);
- return
-
-
Estimated Rewards
-
- {
- rewardToken === 'rss3' ?
:
- }
-
-
{Number(rewardPool?.amount).toFixed(2) || 0}
-
{rewardToken === 'rss3' ? "RSS3" : "TON"}
+ return (
+
+
+
Estimated Rewards
+
+ {rewardToken === 'rss3' ?
:
}
+
+
+ {Number(rewardPool?.amount).toFixed(2) || 0}
+
+
{rewardToken === 'rss3' ? 'RSS3' : 'TON'}
+
+
{
+ if (!rewardPool) return;
+ writeContract({
+ ...REWARD_CONTRACT,
+ functionName: 'claim',
+ args: [rewardPool.reward_pool_id, BigInt(rewardPool.big_amount), [rewardPool.proof]],
+ });
+ }}
+ >
+ Claim
+
-
{
- if (!rewardPool) return
- writeContract({
- ...REWARD_CONTRACT,
- functionName: 'claim',
- args: [rewardPool.reward_pool_id, BigInt(rewardPool.big_amount), [rewardPool.proof]],
- })
- }} >
- Claim
-
-
+ );
}
diff --git a/src/components/Header/ConnectWalletButton.tsx b/src/components/Header/ConnectWalletButton.tsx
index d12d66e..1d071ef 100644
--- a/src/components/Header/ConnectWalletButton.tsx
+++ b/src/components/Header/ConnectWalletButton.tsx
@@ -25,7 +25,7 @@ export function ConnectWalletButton({ small = false }: ConnectWalletButtonProps)
return (
+ )}
+
+ {small ? 'Connect Wallet' : 'Connect your wallet'}
+
>
)}
diff --git a/src/components/Header/ConnectXButton.tsx b/src/components/Header/ConnectXButton.tsx
index cb0f8e6..4928bb6 100644
--- a/src/components/Header/ConnectXButton.tsx
+++ b/src/components/Header/ConnectXButton.tsx
@@ -11,7 +11,7 @@ export function ConnectXButton() {
) : (