Skip to content

chore: release v1.1022.0#12313

Merged
kaladinlight merged 26 commits intomainfrom
release
May 1, 2026
Merged

chore: release v1.1022.0#12313
kaladinlight merged 26 commits intomainfrom
release

Conversation

@kaladinlight
Copy link
Copy Markdown
Contributor

@kaladinlight kaladinlight commented May 1, 2026

Production changes - testing required

Affiliate dashboard

The affiliate dashboard is rewritten on Chakra UI + React Query, wired to the new affiliate swaps/stats endpoints with cursor pagination, and gets visual polish on the swaps table. Test: load the affiliate dashboard, change period selectors, scroll the swaps table (infinite scroll), confirm asset/network icons render correctly, and verify fee amounts and partnerBps look sane.

Public API

Replaces hand-rolled adapter stubs with real @shapeshiftoss/chain-adapters (full surface, RPC-backed), adds EVM input validation, on-chain allowance checks, optional VITE_<CHAIN>_NODE_URL env vars for first-class EVM chains, and a 5s timeout on partner-code resolution. Test: swap-widget quote/rates flows across EVM chains (ETH/BSC/AVAX/ARB/OP/GNO/POLY/BASE), NearIntents quotes, partner-code based affiliate flows, and confirm allowance prompts appear correctly.

UTXO fee estimation fix

Switches Math.round to Math.ceil so low-fee periods (sub-500 sats/kB) don't collapse to a 0 sats/byte rate that breaks coinselect. Test: send/swap on BTC, BCH, LTC, DOGE during normal conditions and confirm fee estimation works at slow/average/fast levels.

Treasury and RPC updates

Updates BTC/SOL DAO treasury addresses, switches first-class chain fallbacks to prefer publicnode over drpc, and adds wider fallback coverage. Test: confirm BTC/SOL deposits land on the new treasury, and sanity-check that swaps/transactions still complete on first-class EVM chains under the new fallback ordering.

Wallet connection refactor

Internal refactor extracting a reusable useIsWalletConnected hook (used in 18 sites). Regression testing only: sanity-check wallet-gated UI across connected/disconnected states, with both a regular wallet and a Ledger read-only wallet, that buttons/CTAs gate correctly.

RPC URL rename

Internal rename across contracts, CSP headers, viem/ethers clients, and swap-widget chains. Regression testing only: sanity-check that EVM chain interactions still work (RPC requests succeed, CSP doesn't block anything in the browser console).

Cleanup and minor fixes

Removes deprecated headers/APIs (document-domain, framer-motion onChange), suppresses non-DOM Route prop warnings on MobileNavLink, and adds optional chaining for appData.metadata in limit order filtering. Regression testing only: open the browser console while navigating the app and limit orders page and confirm no new warnings or runtime errors.

Fixes, deps, and infra

Asset data regenerations, dependency reconciliation, dev-only build pipeline cleanup, and release tooling. No testing required.

Dev/local only - no production testing required

No commits in this batch are gated behind a feature flag that is OFF in production.

kaladinlight and others added 26 commits April 10, 2026 15:33
Co-authored-by: asset-generation-bot <action@github.com>
Co-authored-by: asset-generation-bot <action@github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…meout (#12283)

* fix(public-api): timeout partner code resolution after 5s

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(public-api): support optional EVM node URL env vars

Add optional VITE_<CHAIN>_NODE_URL env vars for first-class EVM chains,
consumed by @shapeshiftoss/contracts viem clients. When unset, clients
fall back to bundled public RPC URLs. Adds @shapeshiftoss/contracts and
viem as workspace deps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(public-api): validate EVM inputs and check on-chain allowance

- Reject EVM sell requests without sendAddress or on unsupported chains
- buildApprovalInfo now reads the ERC-20 allowance on-chain via the viem
  client and only flags approval as required when allowance < sellAmount
- Replace non-null assertions on affiliateBps with DEFAULT_AFFILIATE_BPS
  fallback for unattributed swaps

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* retrigger ci

* retrigger ci

* chore(public-api): log partner code resolution failures

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…2287)

* refactor(affiliate-dashboard): Chakra UI migration and React Query

- Split 1270-line App.tsx into components, hooks, and lib folders
- Migrate inline styles to Chakra UI with shapeshift theme palette
- Replace custom useState/useEffect fetchers with React Query (useQuery + useMutation)
- Add Zod validation for all API responses with shared parseResponse helper
- Add stale-while-revalidate via keepPreviousData to eliminate period-change flicker
- Make dashboard responsive with mobile-card fallback for swaps table
- Strip workspace-shared deps from package.json (hoisted from root)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(affiliate-dashboard): lint fixes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: add PR title rules (commitlint) to pr-rules guideline

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(affiliate-dashboard): address coderabbit review and tighten data flow

- appkit.d.ts: migrate to react/jsx-runtime module augmentation (React 19 drops global JSX)
- AssetSchema: require symbol, drop defensive string-union and optional fallbacks; AssetPill simplifies accordingly
- settings cards (bps/receive/claim): preserve input on mutation failure via try/catch; useAffiliateActions stops swallowing errors
- register/bps cards: share MIN_BPS/MAX_BPS/DEFAULT_BPS constants and parseBps/bpsToPercent helpers
- parseResponse: generalize to accept any ZodType and infer output (supports .transform())
- NumericString / NullableNumericString in lib/api.ts: strict stats parsing (loud fail) vs per-row soft-fail for swaps (malformed USD -> null -> "—" without killing the page)
- API_BASE_URL in constants; affiliate and auth URLs derive from it

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: asset-generation-bot <action@github.com>
Co-authored-by: asset-generation-bot <action@github.com>
- remove vite-plugin-checker (CI/editor LSP cover TS errors; was the main local dev perf bottleneck)
- type publicFilesEnvVars as Record<string, string> for dynamic VITE_SRI_*/VITE_CID_* keys
- suppress multiformats imports whose package.json exports omit type entries

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: asset-generation-bot <action@github.com>
@kaladinlight kaladinlight requested a review from a team as a code owner May 1, 2026 17:23
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 1, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b837b10c-375b-4953-829f-de864504c7b5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release

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 and usage tips.

@kaladinlight kaladinlight merged commit 67b33c6 into main May 1, 2026
8 checks passed
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.

2 participants