Skip to content

refactor: remove backend dependencies - #1192

Merged
fricoben merged 2 commits into
testnetfrom
fricoben/plan-backendless-frontend
Jul 20, 2026
Merged

fricoben merged 2 commits into
testnetfrom
fricoben/plan-backendless-frontend

Conversation

@fricoben

@fricoben fricoben commented Jul 20, 2026 •

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • New Features

    • Mainnet-only Starknet ID experience with identity discovery, minting, registration, renewal, transfers, and domain management.
    • Added identity avatars and improved identity search, domain availability checks, and suggestions.
    • Added transaction tracking with pending, accepted, and reverted statuses.
    • Added Braavos wallet connection and automatic mainnet network handling.
  • Improvements

    • Simplified ETH-focused checkout and pricing displays.
    • Added safer same-origin API access and improved error messages.
    • Updated documentation and deployment guidance for mainnet releases.

@vercel

vercel Bot commented Jul 20, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app-starknet-id Ready Ready Preview, Comment Jul 20, 2026 3:53pm
sepolia-app-starknet-id Ready Ready Preview, Comment Jul 20, 2026 3:53pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 128c7231-5fef-47bb-8a00-1a8b184de04c

📥 Commits

Reviewing files that changed from the base of the PR and between c1147ee and e4edc15.

⛔ Files ignored due to path filters (2)
  • bun.lock is excluded by !**/*.lock
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (254)
  • .env.example
  • .env.test
  • .eslintrc.json
  • .github/workflows/main.yml
  • DEPLOYMENT.md
  • README.md
  • abi/L1/L1Buying_abi.json
  • abi/starknet/braavosNFT_abi.json
  • abi/starknet/erc20_abi.json
  • abi/starknet/multicall_abi.json
  • abi/starknet/naming_Naming.contract_class.json
  • abi/starknet/naming_abi.json
  • abi/starknet/nft_pp_verifier_abi.json
  • abi/starknet/pricing_abi.json
  • abi/starknet/renewal.sierra.json
  • abi/starknet/sol_subdomain_abi.json
  • abi/starknet/starknet_id_abi.json
  • abi/starknet/verifier_abi.json
  • components/IdentityAvatar.tsx
  • components/UI/backButton.tsx
  • components/UI/confirmationTx.tsx
  • components/UI/connectButton.tsx
  • components/UI/copyContent.tsx
  • components/UI/desktopNav.tsx
  • components/UI/domainExpiredModal.tsx
  • components/UI/footer.tsx
  • components/UI/input.tsx
  • components/UI/inputAction.tsx
  • components/UI/inputHelper.tsx
  • components/UI/isSendingTx.tsx
  • components/UI/modalProfilePic.tsx
  • components/UI/modalWallet.tsx
  • components/UI/navbar.tsx
  • components/UI/newsContainer.tsx
  • components/UI/nftCard.tsx
  • components/UI/notification.tsx
  • components/UI/progressBar.tsx
  • components/UI/registerConfirmationModal.tsx
  • components/UI/screens/errorScreen.tsx
  • components/UI/screens/loadingScreen.tsx
  • components/UI/screens/successScreen.tsx
  • components/UI/searchBar.tsx
  • components/UI/searchResult.tsx
  • components/UI/selectNetwork.tsx
  • components/UI/styledTooltip.tsx
  • components/UI/textCopy.tsx
  • components/UI/textField.tsx
  • components/UI/timer.tsx
  • components/UI/transactionModal.tsx
  • components/UI/txConfirmationModal.tsx
  • components/UI/walletConnect.tsx
  • components/UI/warningMessage.tsx
  • components/discount/discountEndScreen.tsx
  • components/discount/discountOfferScreen.tsx
  • components/discount/discountUpsellScreen.tsx
  • components/discount/freeRegisterCheckout.tsx
  • components/discount/freeRegisterPresentation.tsx
  • components/discount/freeRegisterSummary.tsx
  • components/discount/freeRenewalCheckout.tsx
  • components/discount/freeRenewalPresentation.tsx
  • components/discount/registerDiscount.tsx
  • components/domains/arCurrencyDropdown.tsx
  • components/domains/autoRenewalDomainsBox.tsx
  • components/domains/autorenewal.tsx
  • components/domains/currencyDropdown.tsx
  • components/domains/currencySwitcher.tsx
  • components/domains/domainCard.tsx
  • components/domains/domainCheckboxes.tsx
  • components/domains/domainTabs.tsx
  • components/domains/externalDomainActions.tsx
  • components/domains/externalDomainCard.tsx
  • components/domains/externalDomainTransferModal.tsx
  • components/domains/externalDomainsSkeletons.tsx
  • components/domains/registerCheckboxes.tsx
  • components/domains/registerSummary.tsx
  • components/domains/registerV3.tsx
  • components/domains/renewalDomainsBox.tsx
  • components/domains/renewalV2.tsx
  • components/domains/selectIdentity.tsx
  • components/domains/selectState.tsx
  • components/domains/steps/checkoutCard.tsx
  • components/domains/steps/getStepColor.tsx
  • components/domains/steps/reduceDuration.tsx
  • components/domains/steps/registerSteps.tsx
  • components/domains/steps/selectPfp.tsx
  • components/domains/steps/upsellCard.tsx
  • components/domains/steps/userInfoForm.tsx
  • components/domains/suggestedDomains.tsx
  • components/domains/swissForm.tsx
  • components/domains/termCheckbox.tsx
  • components/identities/actions/ActiveSubscriptionCard.tsx
  • components/identities/actions/addEvmAction.tsx
  • components/identities/actions/addEvmModal.tsx
  • components/identities/actions/changeAddressModal.tsx
  • components/identities/actions/clickable/clickableDiscordIcon.tsx
  • components/identities/actions/clickable/clickableGithubIcon.tsx
  • components/identities/actions/clickable/clickablePersonhoodIcon.tsx
  • components/identities/actions/clickable/clickableTwitterIcon.tsx
  • components/identities/actions/clickable/clickableWarningIcon.tsx
  • components/identities/actions/identityActions.tsx
  • components/identities/actions/socialmediaActions.tsx
  • components/identities/actions/subdomainModal.tsx
  • components/identities/actions/transferFormModal.tsx
  • components/identities/availableIdentities.tsx
  • components/identities/identitiesGalleryV1.tsx
  • components/identities/identityCard.tsx
  • components/identities/identityWarnings.tsx
  • components/identities/mintIdentity.tsx
  • components/identities/pfpGallery.tsx
  • components/identities/selectedCollections.tsx
  • components/identities/subscriptionTooltip.tsx
  • components/identities/updateProfilePic.tsx
  • components/legal/acceptCookies.tsx
  • components/pfpcollections/pfpNftCard.tsx
  • components/solana/changeAddressModal.tsx
  • components/solana/domainActions.tsx
  • components/verify/verifyFirstStep.tsx
  • context/FormProvider.tsx
  • context/StarknetIdJsProvider.tsx
  • hooks/checkout/useCheckoutState.tsx
  • hooks/checkout/useCurrencyManagement.tsx
  • hooks/checkout/useFreeRenewalTxPrep.tsx
  • hooks/checkout/usePriceManagement.tsx
  • hooks/checkout/useRegisterTxPrep.tsx
  • hooks/checkout/useRenewalTxPrep.tsx
  • hooks/contracts.ts
  • hooks/displayName.tsx.tsx
  • hooks/isDeployed.tsx
  • hooks/isWrongNetwork.tsx
  • hooks/naming.ts
  • hooks/paymaster.tsx
  • hooks/useAllowanceCheck.tsx
  • hooks/useBalances.tsx
  • hooks/useCopy.tsx
  • hooks/useHasClaimSolSubdomain.ts
  • hooks/useNeedAllowances.tsx
  • hooks/useNeedSubscription.tsx
  • hooks/useNotificationManager.ts
  • hooks/useOwnedIdentities.ts
  • hooks/useTransactions.tsx
  • hooks/useWhitelistedNFTs.tsx
  • jest.config.js
  • lib/chain/contracts.ts
  • lib/chain/domain.ts
  • lib/chain/errors.ts
  • lib/chain/manifest.ts
  • lib/chain/rpc.ts
  • lib/core/address.ts
  • lib/core/types.ts
  • lib/identity/cache.ts
  • lib/identity/discovery.ts
  • lib/identity/random.ts
  • lib/mongodb.ts
  • lib/server/http.ts
  • lib/server/identity-indexer.ts
  • lib/server/rpc-policy.ts
  • lib/transactions/intents.ts
  • lib/transactions/preflight.ts
  • lib/transactions/receipt.ts
  • lib/transactions/storage.ts
  • lib/ui/identity.ts
  • next.config.js
  • package.json
  • pages/_app.tsx
  • pages/_document.tsx
  • pages/api/anima/get_signature.ts
  • pages/api/anima/init_session.ts
  • pages/api/indexer/identities.ts
  • pages/api/rpc.ts
  • pages/api/twitter/get_user_following.ts
  • pages/api/twitter/get_username.ts
  • pages/argent.tsx
  • pages/confirmation.tsx
  • pages/discord.tsx
  • pages/evmConfirmation.tsx
  • pages/externaldomains/[externalDomain].tsx
  • pages/freerenewal.tsx
  • pages/gift.tsx
  • pages/github.tsx
  • pages/identities.tsx
  • pages/index.tsx
  • pages/newsletter.tsx
  • pages/newsletter/confirm.tsx
  • pages/pfpcollections.tsx
  • pages/quantumleap.tsx
  • pages/register/[domainToRegister].tsx
  • pages/removed.tsx
  • pages/renewal.tsx
  • pages/search.tsx
  • pages/solana.tsx
  • pages/subscription.tsx
  • pages/subscriptionConfirmation.tsx
  • pages/twitter.tsx
  • scripts/check-client-bundle.ts
  • scripts/check-network-denylist.ts
  • tests/address-random.test.ts
  • tests/api-policy.test.ts
  • tests/cache.test.ts
  • tests/discovery.test.ts
  • tests/domain.test.ts
  • tests/intents.test.ts
  • tests/live/mainnet.integration.test.ts
  • tests/manifest.test.ts
  • tests/preflight-errors.test.ts
  • tests/receipt-storage.test.ts
  • tests/utils/altcoinService.test.js
  • tests/utils/apiWrappers/identity.test.ts
  • tests/utils/arrayService.test.js
  • tests/utils/browserService.test.js
  • tests/utils/campaignService.test.js
  • tests/utils/connectorWrapper.test.js
  • tests/utils/dateService.test.js
  • tests/utils/debounceService.test.js
  • tests/utils/ensService.test.js
  • tests/utils/feltService.test.js
  • tests/utils/nftService.test.js
  • tests/utils/priceService.test.js
  • tests/utils/resolverService.test.js
  • tests/utils/stringService.test.js
  • tests/utils/subscriptionService.test.js
  • tests/utils/userDataService.test.js
  • tsconfig.json
  • types/backTypes.d.ts
  • types/frontTypes.d.ts
  • types/icons.d.ts
  • utils/altcoinService.ts
  • utils/apiWrappers/identity.ts
  • utils/arrayService.ts
  • utils/browserService.ts
  • utils/cacheDomainData.ts
  • utils/callData/autoRenewalCalls.ts
  • utils/callData/identityChangeCalls.ts
  • utils/callData/registrationCalls.ts
  • utils/callData/resolverCalls.ts
  • utils/callData/solanaCalls.ts
  • utils/campaignService.ts
  • utils/connectorWrapper.ts
  • utils/constants.ts
  • utils/dateService.ts
  • utils/debounceService.ts
  • utils/discounts/argent.ts
  • utils/discounts/evergreen.ts
  • utils/discounts/freeRegistration.ts
  • utils/discounts/freeRenewal.ts
  • utils/ensService.ts
  • utils/feltService.ts
  • utils/nftService.ts
  • utils/priceService.ts
  • utils/resolverService.ts
  • utils/stringService.ts
  • utils/subscriptionService.ts
  • utils/userDataService.ts
  • utils/verifierFields.ts
  • vercel.json

Walkthrough

The application is converted to a mainnet-only Starknet frontend with manifest-backed contract access, same-origin server proxies, Starkscan identity discovery, local identity caching, prepared transaction intents, persisted transaction tracking, simplified wallet flows, and Bun-based validation.

Changes

Mainnet architecture

Layer / File(s) Summary
Chain and server foundation
lib/chain/*, lib/core/*, lib/server/*, pages/api/*, .env.example
Adds mainnet manifests, RPC utilities, domain/address codecs, API validation, same-origin controls, Starkscan indexing, and server-only API key handling.
Identity discovery and transactions
lib/identity/*, lib/transactions/*, hooks/useOwnedIdentities.ts, hooks/useTransactions.tsx
Adds cached identity discovery, ownership validation, domain enrichment, intent preparation, preflight simulation, receipt classification, and persisted transaction state.
Frontend flows
pages/*, components/UI/*, components/domains/*, components/identities/*
Reworks wallet connection, identity browsing, search, registration, renewal, transfer, subdomain, and transaction UI around mainnet reads and prepared intents.
Tooling and validation
package.json, .github/workflows/main.yml, tests/*, scripts/*, tsconfig.json, .eslintrc.json
Switches CI and local workflows to Bun, adds network/bundle checks, updates lint and TypeScript configuration, and adds unit, integration, discovery, API, and transaction tests.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

Suggested reviewers: marchand-nicolas

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fricoben/plan-backendless-frontend

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@fricoben
fricoben marked this pull request as ready for review July 20, 2026 15:57
@fricoben
fricoben merged commit aa44d23 into testnet Jul 20, 2026
4 of 5 checks passed
@fricoben
fricoben deleted the fricoben/plan-backendless-frontend branch July 20, 2026 15:59

This branch was successfully deployed

2 active deployments
Preview – sepolia-app-starknet-id — e4edc150 Deployed Jul 20, 2026 by vercel[bot]
Preview – app-starknet-id — e4edc150 Deployed Jul 20, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant