sodax-dapp-kit-staking
/sodax-dapp-kit-staking
Podaje hooki stakingu SODA i xSODA w @sodax/dapp-kit v2: stake, unstake, nagrody i zatwierdzenia.
- Autor
- gosodax ↗
- Repozytorium
- sodax-sdks ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 27.10.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 0
Brak sygnałów. Repozytorium zmienione 27.10.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Podaje hooki stakingu SODA i xSODA w @sodax/dapp-kit v2: stake, unstake, nagrody i zatwierdzenia.
Wyzwalacze z opisu
Oryginalny opis (EN)
Granular skill for the @sodax/dapp-kit v2 staking feature only — React Query hooks for SODA ↔ xSODA staking: useStake, useUnstake, useInstantUnstake, useClaim, useCancelUnstake, the three dedicated approve/allowance hook pairs (stake/unstake/instantUnstake), plus reads (useStakingInfo, useUnstakingInfoWithPenalty, useStakingConfig, useStakeRatio). Use when a React dapp task is specifically staking (e.g. "useStake with dapp-kit", "unstake hook with penalty", "claim staking rewards in React", "instant unstake slippage hook", "render staking info"). Covers BOTH integration (new v2 hooks) and migr
Jak działa
- Step 1 — Clarify with user before coding
- Integration workflow (new v2 code)
- Migration workflow (port v1 staking hooks to v2)
- Verification
- Related granular skills (same family)
- Wallet connectivity (different SDK package family)
Podgląd SKILL.md
---
name: sodax-dapp-kit-staking
description: 'Granular skill for the @sodax/dapp-kit v2 staking feature only — React Query hooks for SODA ↔ xSODA staking: useStake, useUnstake, useInstantUnstake, useClaim, useCancelUnstake, the three dedicated approve/allowance hook pairs (stake/unstake/instantUnstake), plus reads (useStakingInfo, useUnstakingInfoWithPenalty, useStakingConfig, useStakeRatio). Use when a React dapp task is specifically staking (e.g. "useStake with dapp-kit", "unstake hook with penalty", "claim staking rewards in React", "instant unstake slippage hook", "render staking info"). Covers BOTH integration (new v2 hooks) and migration (port v1 staking hooks — single-object params, useStakeRatio now returns a tuple, mutateAsyncSafe). Links into the parent sodax-dapp-kit knowledge tree. For backend/Node, use the sodax-sdk skill.'
license: MIT
metadata:
version: '0.0.1'
author: sodax
---
# Staking (dapp-kit granular skill)
Granular skill for the staking hooks of `@sodax/dapp-kit` v2. queryKey/mutationKey first segment: `staking`. React-only — backend uses `@sodax/sdk` directly.
## Step 1 — Clarify with user before coding
1. **New code or v1 → v2 port?**
2. **Which action?** `useStake`, `useUnstake` (waiting period), `useInstantUnstake` (slippage, no wait), `useClaim`, `useCancelUnstake`.
3. **Allowance gating?** `stake` approves SODA, `unstake`/`instantUnstake` approve xSODA — each has its OWN approve + allowance hook pair. `claim`/`cancelUnstake` need no approval.
4. **Need reads?** `useStakingInfo` (position), `useUnstakingInfoWithPenalty` (pending requests + penalty), `useStakingConfig` (protocol params), `useStakeRatio`/`useInstantUnstakeRatio` (previews).
## Integration workflow (new v2 code)
1. [`../integration/knowledge/ai-rules.md`](../integration/knowledge/ai-rules.md) — DO / DO NOT (read first).
2. [`../integration/knowledge/architecture.md`](../integration/knowledge/architecture.md) — hook shapes, `mutateAsyncSafe`, `unwrapResult`, queryKey conventions.
3. [`../integration/knowledge/features/staking.md`](../integration/knowledge/features/staking.md) — full hook surface, mutation TVars per action, the three approve/allowance pairs, read shapes.
4. [`../integration/knowledge/recipes/staking.md`](../integration/knowledge/recipes/staking.md) — full worked examples.
5. Call-shape choice → [`../integration/knowledge/recipes/mutation-error-handling.md`](../integration/knowledge/recipes/mutation-error-handling.md).
### Staking-specific anti-patterns (dapp-kit)
- **Treating `useStakeRatio` `data` as a single bigint.** It's a 2-tuple `[xSodaAmount, previewDepositAmount]` (already unwrapped) — index `data?.[0]` / `data?.[1]`.
- **Branching on `data.ok` for staking reads.** All staking read hooks are already unwrapped (the hook throws on SDK `!ok`). Read `data` fields directly; surface SDK failures via `isError`/`error`.
- **Reading the request id at `req.request.requestId`.** On `useUnstakingInfoWithPenalty`, access `data?.requestsWithPenalty` directly; the id is `req.id`.
- **One global approve hook.** There are three — `useStakeApprove` (SODA), `useUnstakeApprove` (xSODA), `useInstantUnstakeApprove` (xSODA). Pick the one matching the action.
- **Treating instant unstake as free.** It bypasses the wait but pays slippage — preview with `useInstantUnstakeRatio`, set `minAmount`.
## Migration workflow (port v1 staking hooks to v2)
1. [`../migration-v1-to-v2/knowledge/ai-rules.md`](../migration-v1-to-v2/knowledge/ai-rules.md) — DO / DO NOT (read first).
2. Cross-cutting deltas: [`../migration-v1-to-v2/knowledge/breaking-changes/hook-signatures.md`](../migration-v1-to-v2/knowledge/breaking-changes/hook-signatures.md), [`../migration-v1-to-v2/knowledge/breaking-changes/result-handling.md`](../migration-v1-to-v2/knowledge/breaking-changes/result-handling.md), [`../migration-v1-to-v2/knowledge/breaking-changes/sdk-leakage.md`](../migration-v1-to-v2/knowledge/breaking-changes/sdk-leakage.md).
3. [`../migration-v1-to-v2/knowledge/features/staking.md`](../migration-v1-to-v2/knowledge/features/staking.md) — all five mutations + their dedicated approve hooks; `useStakeRatio` now returns a tuple.
## Verification
1. `pnpm tsc --noEmit` clean.
2. Mutation flows use `mutateAsyncSafe` and branch on `result.ok`.
3. `useStakeRatio` consumers index the tuple (`data?.[0]`), not a scalar.
4. Staking reads read `data` directly (no `.ok`/`.value`).
5. No `useSpokeProvider`, no hook-level `spokeProvider` (migration only).
## Related granular skills (same family)
- [`../migration/SKILL.md`](../migration/SKILL.md) — BALN → SODA migration can auto-stake (`stake: true`); use it for BALN lock flows.
- [`../auxiliary-services/SKILL.md`](../auxiliary-services/SKILL.md) — `useXBalances` / gas-estimation utilities used alongside staking UI.
For multi-feature tasks, load the broad [`sodax-dapp-kit` skill](../SKILL.md).
## Wallet connectivity (different SDK package family)
`walletProvider` flows through `mutate(vars)`. **Also load the `sodax-wallet-sdk-react` skill (integration mode)** to wire wallets and get a typed `walletProvider` via `useWalletProvider({ xChainId: chainKey })`.
Wersje
W bazie nie ma innych skilli o nazwie sodax-dapp-kit-staking.
Migawka bazy z 28.10.2026 · wersja paczki 185ba2d5973f (skrót SHA-256 całej paczki)
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 85sodax-sdk-staking
Obsługuje staking SODA i xSoda przez vault ERC-4626: stakowanie, unstake z karą, natychmiastowy unstake i odbiór nagród. - 87sodax-dapp-kit
Dodaje do aplikacji React hooki SODAX z @sodax/dapp-kit, obejmujące swapy, pożyczki, staking i mosty między sieciami. - 100optimizing-staking-rewards
Porównuje nagrody ze stakingu u walidatorów i w sieciach z obliczaniem ROI, przy optymalizacji zysków w proof-of-stake. - 95sui-frontend
Wspiera budowanie frontendu dApp dla Sui z @mysten/dapp-kit-react i dapp-kit-core: łączenie z portfelami, odczyt danych on-chain i wykonywanie transakcji. - 100sui-frontend
Buduje frontend dApp na SUI z @mysten/dapp-kit-react lub dapp-kit-core: połączenie z portfelem, zapytania on-chain i podpisywanie transakcji. - 100create-vechain-dapp
Tworzy szkielet dApp VeChain z Next.js, VeChain Kit, Chakra UI v3 i wdrożeniem na GitHub Pages, w trybie samodzielnego frontendu lub monorepo z Turbo i Hardhat.