feat: staking visibility + creator dashboard settings (#814, #816, #817, #818) - #820
Merged
Chucks1093 merged 3 commits intoAug 27, 2026
Merged
Conversation
…accesslayerorg#814) Fetch a per-holder stakedQuantity from the holders endpoint and surface the liquid vs. staked split in the holder list: - KeyHolderEntry / KeyHolder gain an optional stakedQuantity field - rankKeyHolders derives stakedQuantity (clamped to [0, keyCount]) and liquidQuantity (keyCount - stakedQuantity) per ranked entry; ranking stays keyed on total quantity so staked keys still count toward rank - KeyHolderList renders Staked, Liquid and Total columns with a header row and shows a staking badge on rows where stakedQuantity > 0 - CreatorDetailPage sample holders carry demo staked values Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Surface staking economics on the key detail page so holders can weigh staking: - Course gains stakingPoolBalance / totalStaked / recentFeeInflow from the key detail API - stakingRewards.utils computes estimated APY (recentFeeInflow * 12 / stakingPoolBalance * 100, null on divide-by-zero) and hasStakingActivity() for the hide condition - StakingRewardsSection renders pool balance, total staked and est. APY with a "Stake your keys" CTA to /profile?tab=staking, a loading skeleton while data fetches, and nothing when there is no staking activity - CreatorDetailPage renders it below the stat cards (demo stats until the API returns real values) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ction (accesslayerorg#818, accesslayerorg#816) Introduces a creator dashboard at /creator/:id/dashboard whose Settings tab hosts the two creator-facing configuration surfaces. Both issues share this previously-missing page. accesslayerorg#818 — Edit Profile: - creatorMetadata.utils: name (64) / bio (256) limit validation and a minimal-change diff - CreatorMetadataForm pre-fills current metadata, shows live character counters, blocks submit while over a limit or unchanged, and submits only changed fields - useUpdateMetadataMutation issues the update_metadata contract call accesslayerorg#816 — Auction Setup: - auctionConfig.utils: derives Not configured / Active (X of Y sold) / Completed state and validates price (> 0) and supply (whole, > 0) - AuctionSetupPanel shows current state, validated price/supply inputs, and a Cancel Auction button only while auction_sold is zero - useConfigureAuctionMutation / useCancelAuctionMutation issue configure_auction / cancel_auction with a success toast on confirmation Course gains name/bio/avatarUri and auctionPrice/auctionSupply/auctionSold. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
@devsimze Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds staking visibility and creator-configuration surfaces across the key detail page and a new creator dashboard.
Closes #814
Closes #816
Closes #817
Closes #818
#814 — Staking column in the holders list
KeyHolderEntry/KeyHoldergain an optionalstakedQuantityfrom the holders endpoint.rankKeyHoldersderivesstakedQuantity(clamped to[0, keyCount]; negatives / non-finite →0) andliquidQuantity(keyCount − stakedQuantity). Ranking stays keyed on total quantity, so staked keys still count toward rank.KeyHolderListrenders a header row plus Staked / Liquid / Total / Share per row and shows a staking badge only whenstakedQuantity > 0(zero shows0, no badge). Pagination path unchanged.#817 — Staking Rewards section on the key detail page
CoursegainsstakingPoolBalance,totalStaked,recentFeeInflow.stakingRewards.utils:computeEstimatedApy=recentFeeInflow * 12 / stakingPoolBalance * 100, returnsnullon divide-by-zero / non-finite input;hasStakingActivitydrives the hide rule.StakingRewardsSectionshows pool balance, total staked and estimated APY, a "Stake your keys" CTA to/profile?tab=staking, a loading skeleton while data fetches, and renders nothing when there is no staking activity. Rendered onCreatorDetailPagebelow the stat cards.#818 — Edit Profile on the creator dashboard settings tab
/creator/:id/dashboardwith Overview / Settings tabs (no creator dashboard existed before; Add an auction configuration panel on the creator dashboard for setting up a pre-launch fixed price phase #816 and Add a key metadata edit form on the creator dashboard for updating display name, bio, and avatar #818 share this surface).creatorMetadata.utils: name (64) / bio (256) length validation and a minimal-change diff.CreatorMetadataFormpre-fills current metadata, shows live character counters, disables submit while a limit is exceeded or nothing changed, and submits only changed fields via theupdate_metadatacontract call.#816 — Auction Setup on the creator dashboard settings tab
auctionConfig.utils: derivesNot configured/Active (X of Y sold)/Completedand validates price (> 0) and supply (whole, > 0).AuctionSetupPanelshows current state, validated price / supply inputs, and a Cancel Auction button only whileauction_soldis zero. Submitsconfigure_auction/cancel_auctionwith a success toast on confirmation.Coursegainsname/bio/avatarUriandauctionPrice/auctionSupply/auctionSold.Testing
pnpm lint— cleanpnpm build(tsc -b && vite build) — cleanpnpm test— new suites added forkeyHolderRanking,KeyHolderList,stakingRewards,StakingRewardsSection,creatorMetadata,auctionConfig,CreatorMetadataForm,AuctionSetupPanel. Pre-existing failures ondevare unchanged (no regressions).Screenshots
UI changes — screenshots to follow.