From 993e1f79d0cd3063b63351a00244ea046fcffa7a Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 14 Aug 2026 16:02:10 -0400 Subject: [PATCH 1/5] Add master changelog which ingests changelogs across the products --- .github/workflows/sync-changelog.yml | 46 + .prettierignore | 3 +- AGENTS.md | 26 +- changelog.mdx | 4180 ++++++++++++++++++++++++++ docs.json | 4 + script.js | 123 + scripts/build-changelog.mjs | 459 +++ style.css | 38 + 8 files changed, 4873 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/sync-changelog.yml create mode 100644 changelog.mdx create mode 100644 scripts/build-changelog.mjs diff --git a/.github/workflows/sync-changelog.yml b/.github/workflows/sync-changelog.yml new file mode 100644 index 00000000..7467bdef --- /dev/null +++ b/.github/workflows/sync-changelog.yml @@ -0,0 +1,46 @@ +name: Sync Changelog + +on: + schedule: + - cron: "17 * * * *" + workflow_dispatch: + push: + branches: [main] + paths: + - "references/api/changelog.mdx" + - "scripts/build-changelog.mjs" + +permissions: + contents: write + +concurrency: + group: sync-changelog + cancel-in-progress: false + +jobs: + sync: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + # Needs read access to relayprotocol/relay-kit and relayprotocol/relay-client. + - name: Rebuild changelog.mdx + env: + GITHUB_TOKEN: ${{ secrets.CHANGELOG_SOURCES_TOKEN }} + run: node scripts/build-changelog.mjs + + - name: Commit if changed + run: | + if git diff --quiet -- changelog.mdx; then + echo "No changelog changes" + exit 0 + fi + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add changelog.mdx + git commit -m "docs: sync changelog" + git push diff --git a/.prettierignore b/.prettierignore index 77d85070..e1d8738f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1 +1,2 @@ -references/sdk/getting-started.mdx \ No newline at end of file +references/sdk/getting-started.mdx +changelog.mdx diff --git a/AGENTS.md b/AGENTS.md index dc813b41..99eb7dea 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -252,9 +252,10 @@ Automation design for this flow is intentionally deferred; the current rule is " Breaking changes are renames, removals, signature changes, return-shape changes, and endpoint path changes. - **Edit pages in place.** The page describing the changed surface is updated to reflect the new shape. Do not leave an "old version" trace in-line. -- **Log in a per-product changelog.** Breaking-change narratives live in the product's changelog, not on the page itself. The changelogs are: - - `references/api/changelog.mdx` — for API endpoint changes (create this page; wire into the API Reference nav as a top-level entry). - - Future: `references/relay-kit/sdk/changelog.mdx`, `references/relay-kit/ui/changelog.mdx`, etc. — add when the first breaking change in that surface ships. +- **Log in the product's changelog source.** Breaking-change narratives live in a changelog, not on the page itself. Each product line has one source, and all of them roll up into `changelog.mdx` (§4.6): + - `references/api/changelog.mdx` — API endpoint changes, hand-authored in this repo. + - `relay-kit` package `CHANGELOG.md` files — written as changesets in that repo, not here. + - `relay-client` `.changelog/*.md` entries — written in that repo, not here. This line is curated marketing copy rather than a log of merged PRs, so it is empty by default and the App section is omitted until an entry exists. - **Update inbound links.** Any page that referenced the old name / path / signature must be updated in the same PR. - **No inline `` callout on the updated page.** The changelog is the record. Exception: when the rename has a migration subtlety that every reader must see (e.g. param reordering with silent behavior change), add a one-liner `` with the date and a pointer to the changelog entry. @@ -278,9 +279,9 @@ Deprecation applies when the old surface continues to exist and work, but is mar - If the fix restores documented behavior, no doc update is required. - If the fix is invisible to integrators (internal refactor), no doc update is required. -### 4.5 Changelog page format (API only, for now) +### 4.5 API changelog page format -`references/api/changelog.mdx` is a new page introduced by this guide. Structure: +`references/api/changelog.mdx` is the API product line's changelog, hand-authored in this repo. It is deliberately kept out of `docs.json` — readers get the API entries through the unified changelog (§4.6), so this page is a source file, not a published surface. Structure: ```mdx --- @@ -299,6 +300,21 @@ description: "Record of breaking changes, deprecations, and notable additions to Entries are newest-first. Each entry is a `##` heading with the date and a one-line summary. Body uses bolded change-type leads (`**Breaking**`, `**Deprecated**`, `**Added**`) on their own lines — matching the bolded-lead pattern already used on use-case pages (§3.2). +The `## YYYY-MM-DD — ` heading shape is parsed by `scripts/build-changelog.mjs`; an entry that deviates from it is silently dropped from the unified changelog. + +### 4.6 Unified changelog (`changelog.mdx`) + +`changelog.mdx` is generated — **never edit it by hand.** `scripts/build-changelog.mjs` merges the three sources listed in §4.2 into one date-ordered page of Mintlify `` blocks, and an hourly GitHub Action commits the result. It is its own tab in `docs.json` (`navigation.tabs`), alongside Overview, API Reference, RelayKit, and Relay Protocol. Because the tab holds this page alone, the page sets `mode: "center"` so no single-item sidebar renders. + +- Each day renders as one `` with `### API` / `### RelayKit` / `### App` sections. +- Entry text is reproduced verbatim from its source. Fix wording upstream, not here. +- **API and App changes group by change type across the whole day** — one `**Breaking**` / `**Deprecated**` / `**Behavior change**` / `**Added**` list per day, not per source entry, so a day reads as "here is what was added, here is what changed". Ordering comes from `CHANGE_TYPE_ORDER`; a type that is not listed there still renders, after the known ones. Source entry titles are dropped, and an API paragraph with no bolded type lead is folded into the change above it. +- RelayKit versions are dated by npm publish time. Changeset bullets that only say "Updated dependencies" are dropped, and one changeset spanning several packages collapses into a single item naming each package. +- **Filtering is custom.** Mintlify's own changelog filters render in the table of contents, which `mode: "center"` hides. Instead, `enhanceChangelogPage()` in `script.js` binds the tags Mintlify already renders under each date (`[data-component-part="update-tag"]`, from the `tags={[…]}` prop): click one to narrow to that product line, click it again to clear, several tags OR together, and the selection round-trips through `?tags=`. `style.css` gives those spans their chip look and active state. Filtering and the scroll reveal share one visibility pass, so a filter always shows a full batch of matching days rather than whatever happened to be revealed. Both hang off Mintlify's `data-component-part` attributes — if an upgrade renames them, the filter and the reveal silently stop working, so re-check them after a Mintlify bump. +- **The page carries the full history** (currently back to 2024-02-05) and renders all of it. At ~275 days that is roughly 5.8k DOM elements and 28KB gzipped, so there is nothing to gain from paginating or lazily revealing it — and hiding entries would break browser find, which is the main way to locate something on a page with no table of contents. Revisit only if it grows several times over; splitting by year into separate pages would beat client-side fetching, which forfeits RSS, search indexing, and the contextual copy/markdown menu. Set `CHANGELOG_SINCE` to truncate. +- RelayKit dates come from both npm scopes — `@relayprotocol` for anything after the 2025-08-16 rename, `@reservoir0x` before it — because a version dated by neither cannot be placed on the page at all. +- Regenerate locally with `node scripts/build-changelog.mjs`; `--check` fails when the committed page is stale. + --- ## 5. Terminology diff --git a/changelog.mdx b/changelog.mdx new file mode 100644 index 00000000..ba34094f --- /dev/null +++ b/changelog.mdx @@ -0,0 +1,4180 @@ +--- +title: "Changelog" +description: "Record of new endpoints, breaking changes, deprecations, and default-behavior changes across Relay products" +rss: true +mode: "center" +--- + +{/* Generated by scripts/build-changelog.mjs — do not edit by hand. */} + + + +### RelayKit + +**SDK `7.0.2`** — Patch + +- Add XRP dead address and include the Tron, Zero and XRP dead addresses in isDeadAddress + +**UI Kit `11.0.3`** — Patch + +- Add XRP vm support for destination transactions + + + + + +### API + +**Behavior change** + +- `POST /quote`, `POST /quote/v2`, and `POST /price`: same-chain Solana quotes now reject at quote time when the compiled deposit transaction would exceed 1232 bytes, matching the existing behavior for Solana-origin cross-chain quotes (see the [2026-05-29 entry](/references/api/changelog#2026-05-29-oversized-solana-aggregator-quotes-reject-at-quote-time)). Previously same-chain oversized quotes returned `200` with steps the wallet could not serialize. +- `POST /quote`, `POST /quote/v2`, and `POST /price`: the Solana deposit-transaction size gate now enforces the raw **1232-byte** wire limit. Quotes between 1173 and 1232 bytes — valid on the wire as returned — are now accepted, and the previously reserved 60-byte compute-budget headroom is advisory. Clients that prepend compute-budget instructions at send time are responsible for checking their remaining room against the returned steps. This reverses the [2026-07-09 change](/references/api/changelog#2026-07-09-solana-quote-size-check-reserves-compute-budget-headroom) that had cut the effective quote-time limit to 1172 bytes. + +**Added** + +- `POST /quote`, `POST /quote/v2`, and `POST /price`: the response `errorCode` enum gains **`SOLANA_TX_TOO_LARGE`**, returned with `400` when the compiled Solana deposit transaction would exceed Solana's 1232-byte wire limit and cannot be signed or broadcast. The response `message` reports the measured transaction size and how many bytes it lands over, so clients can see how far over the quote is without recompiling the message themselves. See [Handling Quote Errors](/references/api/api_core_concepts/handling-errors) and [Solana Support](/references/api/api_guides/solana#transaction-size-optimization). + + + + + +### API + +**Added** + +- `GET /intents/status/v3`: the response now includes `failReason` and `refundFailReason`, matching the fields already returned on [`GET /requests/v3`](/references/api/get-requests) and the `request.status.updated` [webhook](/references/api/api_guides/webhooks) / [websocket](/references/api/api_guides/websockets) event. `failReason` returns `"N/A"` on non-failure statuses and the recorded reason (or `"UNKNOWN"`) on `failure`, `fallback`, and `refund` statuses. `refundFailReason` defaults to `"N/A"` when no refund-leg failure is recorded. Integrators polling status can now read these values directly without a follow-up call to `GET /requests/v3`. See [Handling Execution Errors](/references/api/api_core_concepts/execution-errors) for the full enum. +- `GET /intents/status/v3`, `GET /requests/v3`, and the `request.status.updated` webhook: the `refundFailReason` enum gains **`MANUAL_REFUND_REQUIRED`**, returned when the refund leg could not be automatically executed and requires manual intervention (for example, when the origin funds cannot be programmatically returned to the depositor). + + + + + +### API + +**Added** + +- `GET /requests/v3`: the response `data` object now includes `apiKeyName`, the display name of the API key that created the request. It is returned only when the caller authenticates with an API key belonging to the request's owning integrator and passes `includeAuthenticatedData=true` — the same gate as `data.referrer` and `data.platformFee`. `null` when the owning API key has no name set. See the [migration guide](/references/api/api_guides/migrating-to-requests-v3#what-changed). + + + + + +### API + +**Behavior change** + +- `GET /requests/v2`: `429` responses now return a route-specific body — `message`, `successor`, `migrationGuide` — distinct from the generic rate-limit body used by every other endpoint. No `Retry-After` header or field is emitted. Migrate to [`GET /requests/v3`](/references/api/get-requests) — see the [sunset timeline](/references/api/api_guides/migrating-to-requests-v3#sunset-timeline). + +**Added** + +- `GET /requests/v3`: the `filters` AND/OR parameter now accepts `null` as a null-check operator on any recognised key. `{"depositAddress": null}` matches requests where the field is empty (does not exist); `{"not:depositAddress": null}` matches requests where the field is present. Null-checks work across identity, address, chain, currency, and status-style fields, including the composite `user` filter and the case-insensitive `currencyInSymbol` / `currencyOutSymbol` fields. Arrays that mix `null` with real values for the same key return `400`. See the [migration guide](/references/api/api_guides/migrating-to-requests-v3#what-changed). +- `GET /requests/v2`: every response now carries `Deprecation`, `Sunset`, and `Link` headers pointing to `GET /requests/v3` and the [migration guide](/references/api/api_guides/migrating-to-requests-v3), on `2xx`, `4xx`, and `5xx` alike. The `Deprecation` header is a structured-field Date (`@`), `Sunset` is an RFC 7231 HTTP-date, and `Link` includes three relations — `deprecation`, `sunset`, and `successor-version`. The three headers are also listed in the API's `Access-Control-Expose-Headers`, so browser clients using `fetch` or `XMLHttpRequest` can read them cross-origin. +- `GET /requests/v2`: the `200` response body gains a top-level `deprecation` object with `message`, `deprecatedAt`, `throttledFrom`, `sunsetAt`, `successor`, and `migrationGuide`, mirroring the header timeline for clients that read the body rather than headers. + +### RelayKit + +**SDK `7.0.1`** — Patch + +- Sync SDK types + +**UI Kit `11.0.2`** — Patch + +- Add Robinhood Chain, Linea, Monad, Soneium, MegaETH, and Tempo to Uniswap Wallet's supported chains + + + + + +### API + +**Added** + +- `GET /requests/v3`: the new opt-in `includeTotal` boolean query parameter (defaults to `false`) returns an exact `total` field on the response with the count of requests matching the current filters, independent of `limit` and `continuation`. The count reflects all matches across the full data window, not just the returned page. Because computing the exact count adds meaningful query latency, keep `includeTotal` off on the hot list-fetch path and enable it only when the total is needed (e.g. rendering a "X of Y results" header). Pagination behavior is unchanged. + +### RelayKit + +**UI Kit `11.0.1`** — Patch + +- Normalize Uniswap Wallet connector name so its chain restrictions apply + + + + + +### API + +**Behavior change** + +- `GET /requests/v3`: for requests where an origin deposit was observed on-chain but no fill was ever attempted (for example, a double-spent Bitcoin deposit that fails before solve), `data.route.actual.origin.inputCurrency` now reflects the actual deposited amount and currency instead of mirroring `data.route.quoted.origin.inputCurrency`. `data.route.actual.origin.outputCurrency` is `null` in this case — no fill occurred, so no output currency was observed — and `data.route.actual.destination` continues to fall back to `data.route.quoted.destination`. Previously the entire `data.route.actual` object silently mirrored `data.route.quoted` on these rows, hiding the real deposit amount from integrators reading the actual-side fields. Requests that reached a fill attempt are unaffected. +- `GET /requests/v3`: for TON-origin requests, `data.inTxs[].txHash` is now the bare 64-character hex transaction hash, suitable for opening on Tonviewer at `/transaction/{TX_HASH}`. Previously this field returned an internal composite identifier that had to be parsed before it could be linked to an explorer. Non-TON origins and `data.outTxs[]` are unaffected. This mirrors the fix previously shipped for [`GET /requests/v2`](/references/api/get-requests-v2) on 2026-06-19. + + + + + +### API + +**Behavior change** + +- `POST /quote`, `POST /quote/v2`, and `POST /price`: transient failures that previously collapsed into a generic `500` with `errorCode: "UNKNOWN_ERROR"` are now classified. Transient infrastructure failures (including raw transport timeouts) return `503` with `errorCode: "SERVICE_UNAVAILABLE"`, transient price-feed failures return `503` with `errorCode: "PRICE_FETCH_FAILED"`, and quote requests for token pairs that cannot be priced return `400` with `errorCode: "UNSUPPORTED_CURRENCY"`. Only genuinely unclassified failures still return `500 UNKNOWN_ERROR`. Both `503` codes are retryable — see [Handling Quote Errors](/references/api/api_core_concepts/handling-errors). + +**Added** + +- `POST /quote`, `POST /quote/v2`, and `POST /price`: the response `errorCode` enum gains `SERVICE_UNAVAILABLE` and `PRICE_FETCH_FAILED` for transient upstream failures where the request should be retried. +- `GET /requests/v3`: the elevated per-key rate limit is now **20 requests per second**, up from the previously shared 10 rps bucket. `GET /requests` and `GET /requests/v2` continue at 10 rps. Default (non-elevated) limits are unchanged. See [Elevated Rate Limits](/references/api/api-keys#elevated-rate-limits). + +### RelayKit + +**UI Kit `11.0.0`** — Major + +- Migrate wallet balance fetching from Dune (sunset) to Codex + + Breaking changes: + + - `duneConfig` provider option removed — use `codexConfig` (`{ apiBaseUrl?, apiKey? }`). The default api base url is `https://graph.codex.io`; override it to proxy requests and protect your api key. + - `useDuneBalances` hook removed — use `useCodexBalances(address, queryOptions)`. The mainnet/testnet parameter is gone; balances are fetched from Codex-supported networks and filtered by your configured chains. + - `isDuneBalance` removed from `useCurrencyBalance`'s return value. + - `useMultiWalletBalances` no longer takes the mainnet/testnet parameter. + + Other changes: + + - New `useSolanaBalance` hook: selected SVM tokens (Solana and Eclipse) now fetch balances directly from the chain's RPC (native via `getBalance`, SPL via `getTokenAccountsByOwner`) instead of an indexer, so post-swap balances are fresh and the aggressive periodic refetch workaround is gone. The internal eclipse-only balance hook is gone; Eclipse flows through the same path. + - Native SVM balances (SOL, Eclipse ETH) in the consolidated token selector list are fetched from their RPCs and merged with Codex results, since Codex does not index native SVM balances (nor Eclipse at all). Their USD values come from Codex prices for wrapped SOL / mainnet WETH. + - Spam filtering: Codex's `removeScams` plus an `isScam` drop, and a liquidity heuristic replacing Dune's spam scoring — tokens whose pool liquidity is under $1k or below the balance's usd value have their usd value stripped so they can't crowd out real holdings in the token selector (balances still display). + - Known loss: Soon balances are gone from the token selector list; Soon is no longer a supported chain. + +**UI Kit `11.0.0`** — Patch + +- Restrict Robinhood Wallet to its supported chains + + + + + +### API + +**Behavior change** + +- `GET /requests/v3`, `GET /intents/status/v3`, and the `request.status.updated` webhook: gasless `/execute` failure rows that previously returned `failReason: "UNKNOWN"` when a broadcast succeeded but the transaction was never included, or when the transaction was never accepted for broadcast, now return one of the two new reasons. + +**Added** + +- `GET /requests/v3`, `GET /intents/status/v3`, and the `request.status.updated` webhook: the response `failReason` enum gains **`TRANSACTION_SUBMISSION_FAILED`**, returned when the fill transaction could not be broadcast to the network (RPC unavailable, signer unavailable, or pre-broadcast rejection — no transaction hash exists), and **`TRANSACTION_NOT_INCLUDED`**, returned when the fill transaction was broadcast but never included onchain before Relay's retry and gas-bump window elapsed. See [Handling Execution Errors](/references/api/api_core_concepts/execution-errors#transaction-construction--gas-errors) for the full enum. + + + + + +### RelayKit + +**UI Kit `10.0.1`** — Patch + +- Complete the RefundReason error mapping. Every failReason code in the API schema now resolves to a specific user-facing explanation instead of falling back to the generic unknown-issue message, matching the copy used on relay.link and the developer dashboard. + +**UI Kit `10.0.1`** — Patch + +- Gracefully handle broken token/chain logo images. ChainTokenIcon now falls back to the token symbol avatar and ChainIcon hides itself when the logo fails to load, instead of rendering a broken-image placeholder. + +**UI Kit `10.0.1`, Hooks `4.0.1`** — Patch + +- fix: block token contract addresses in recipient field + + + + + +### API + +**Deprecated** + +- `GET /requests/v2` is deprecated as of today. It keeps working for now, but its rate limit will be progressively reduced each month until it is **fully retired on November 24, 2026**. Migrate to v3 before then — see the [sunset timeline](/references/api/api_guides/migrating-to-requests-v3#sunset-timeline). + +**Behavior change** + +- `POST /quote` and `POST /quote/v2`: when a blocklisted wallet recipient reaches destination simulation and the token contract rejects the transfer, the response `errorCode` is still `DESTINATION_TX_FAILED` but the `message` is now `Recipient cannot receive this token (blocked by the token contract). Try a different recipient address.` instead of the generic `Destination transaction failed`. Error classification is unchanged. + +**Added** + +- `POST /quote` and `POST /quote/v2`: an explicitly provided `recipient` is now validated before quoting. Recipients that fail address validation for the destination chain return `400` with `errorCode: "INVALID_ADDRESS"`. Recipients that resolve to a supported token contract (which cannot receive tokens — e.g. passing the destination-chain USDC contract as `recipient`) return `400` with the new `errorCode: "INVALID_RECIPIENT"`. Requests that omit `recipient` are unaffected — the implicit `recipient = user` path is not revalidated. Previously these requests surfaced as `DESTINATION_TX_FAILED` after simulation. See [Handling Quote Errors](/references/api/api_core_concepts/handling-errors). +- `GET /requests/v3`: the recommended Requests API. It requires `x-api-key`, adds a broad filter/search/sort surface, and returns a cleaner, consolidated response. See the [migration guide](/references/api/api_guides/migrating-to-requests-v3). + + + + + +### RelayKit + +**SDK `7.0.0`, UI Kit `10.0.0`, Hooks `4.0.0`** — Major + +- Migrate the Requests API from v2 to v3 (breaking). + + - `useRequests` / `queryRequests` and `useDepositAddressStatus` now call `GET /requests/v3` and return the v3 response shape. + - `GET /requests/v3` requires a Relay API key (`x-api-key`). Since these hooks run client-side, the key is not sent from Relay Kit — you must point `baseApiUrl` at a proxy that injects `x-api-key` server-side. This is now required to use the UI kit. See the package README. + - Response shape changes handled across the SDK/hooks/UI: `inTxs[].hash`/`outTxs[].hash` → `txHash`; `data.metadata.currencyIn/currencyOut/currencyGasTopup` removed — currencies for display are now derived from `data.route` (origin `inputCurrency` / destination `outputCurrency`, with `actual` → `quoted` and same-chain fallbacks); `failReason`/`refundFailReason` are `null` instead of `"N/A"`; new `submitted` status. + - `hash` request filter removed; lookups by transaction hash now use the unified `term` search. + - `RelayKitProvider` now warns (client-side) when `baseApiUrl` points directly at the Relay API instead of a proxy: a `console.error` if an `apiKey` is also set (it would be exposed in the browser), otherwise a `console.warn` that `/requests/v3` will fail without a proxy. Suppress with `acknowledgeApiKeyExposure: true`. + - **Removed** the `secureBaseUrl` option from `RelayKitProvider` and the `useSecureBaseUrl` prop from `SwapWidget`. All Relay API traffic now flows through the single `baseApiUrl`, which must be a proxy — the proxy is responsible for any gas-sponsorship logic (and injecting `x-api-key`) server-side. + +**UI Kit `10.0.0`** — Patch + +- fix: update wallet rejection errors in swap widget + + + + + +### RelayKit + +**UI Kit `9.1.4`** — Patch + +- Block base wallet from receiving / sending on rh chain + + + + + +### API + +**Behavior change** + +- `POST /quote/v2`: the Solana deposit-transaction size check on cross-chain Solana-origin quotes now reserves 60 bytes of headroom for the compute-budget instructions wallets and SDKs prepend at send time, so quotes are rejected when the compiled deposit transaction would exceed **1172 bytes** (1232 minus 60). Previously the check ran at the raw 1232-byte limit and could return `200` with calldata that no longer fit once the client added its compute-budget instructions. The `400` response body now names the effective limit and the reserved-bytes reason. Continue to use **`maxRouteLength`** or **`includedOriginSwapSources`** to keep transactions under the limit — see [Solana Support](/references/api/api_guides/solana#transaction-size-optimization). + + + + + +### RelayKit + +**SDK `6.1.3`, UI Kit `9.1.3`, Hooks `3.0.24`, Bitcoin adapter `19.0.3`, Ethers adapter `31.0.3`, Lighter adapter `2.0.3`, SVM adapter `20.0.3`, TON adapter `2.0.3`, Tron adapter `8.0.3`** — Patch + +- Embed sourcesContent in published sourcemaps so they resolve without the unpublished src directory + +**UI Kit `9.1.3`** — Patch + +- Hide non-deposit-address chains (incl. TON) from origin selector unless VM has wallet support + + + + + +### API + +**Breaking** + +- `POST /quote` and `POST /quote/v2`: the opt-in request flag `includeProtocolSignature` is renamed to `includeProtocolData`. The previous name is no longer honored. Integrators that were passing `includeProtocolSignature: true` to receive `protocol.v2.orderSignature` must switch to `includeProtocolData: true`. Setting this opt-in may increase quote response latency. + +**Added** + +- `POST /quote` and `POST /quote/v2`: when the quote is settled through the Relay settlement protocol, the response's `protocol.v2` block now includes `hubType` (currently always `"onchain"`) alongside `orderId`. With `includeProtocolData: true`, `protocol.v2.orderSignature` — the solver's ECDSA signature over `orderId` — is also returned, so integrators can validate an onchain `orderId` against the quoted intent using `ecrecover` without a follow-up API call. + + + + + +### RelayKit + +**SDK `6.1.2`** — Patch + +- Fix BTC dead address preview error + +**SDK `6.1.2`** — Patch + +- Fix bitcoin dead address + + + + + +### RelayKit + +**SDK `6.1.0`, UI Kit `9.1.0`, TON adapter `2.0.0`** — Minor + +- Add TON support: new `@relayprotocol/relay-ton-wallet-adapter` package exporting `adaptTonWallet`, plus `tonvm` support across the SDK (vmType, TON receipt, transaction step messages, dead address) and UI kit (native TON balance, token selector). + + + + + +### RelayKit + +**SDK `6.0.1`** — Patch + +- Convert `convertViemChainToRelayChain` from an arrow function to a function declaration (no behavior change). + + + + + +### RelayKit + +**SDK `6.0.0`, UI Kit `9.0.0`** — Major + +- Remove Sui support + +**SDK `6.0.0`, UI Kit `9.0.0`, Tron adapter `7.0.0`** — Patch + +- Fix native TRX handling on Tron: forward call_value on the deposit transaction (was sending 0 TRX) and fix the native-TRX sentinel address (the wrong sentinel made native TRX fall through to a failing balanceOf call). + + + + + +### API + +**Breaking** + +- `POST /quote`, `POST /quote/v2`, and `POST /price`: `slippageTolerance` and `latePaymentSlippageTolerance` are now validated as integer strings in the range `0`–`10000` basis points. Values outside that range — including negative integers and values greater than `10000` — return `400` with `errorCode: "INVALID_SLIPPAGE_TOLERANCE"`. Previously, negative values were accepted at quote time and produced refund outcomes downstream, and values above `10000` were accepted, effectively removing the minimum-output floor. Non-integer strings on `POST /price` previously returned `500`; they now return `400` with the same `INVALID_SLIPPAGE_TOLERANCE` code as the other endpoints. See [Handling Quote Errors](/references/api/api_core_concepts/handling-errors). + + + + + +### API + +**Behavior change** + +- `GET /requests/v2`: for TON-origin requests, `data.inTxs[].hash` is now the bare 64-character hex transaction hash, suitable for opening on Tonviewer at `/transaction/{TX_HASH}`. Previously this field returned an internal composite identifier that had to be parsed before it could be linked to an explorer. Non-TON origins and `data.outTxs[]` are unaffected. + +**Added** + +- `GET /chains`: the TON entry now exposes `explorerPaths.transaction` as `/transaction/{TX_HASH}`, so clients building explorer URLs can read the canonical Tonviewer path from the API rather than hardcoding `/tx/{TX_HASH}`. + + + + + +### RelayKit + +**SDK `5.2.8`** — Patch + +- Add TON dead address + +**UI Kit `8.0.11`** — Patch + +- Support TON destination bridging + + + + + +### API + +**Behavior change** + +- `GET /requests/v2`: when a deposit is detected as reorged out or canonically failed on Base, the matching entry in `data.inTxs[]` now reports `status: "failure"`. Previously the top-level request `status` could flip to `"failure"` while the corresponding `data.inTxs[].status` remained `"success"`, leaving integrators that key their deposit UI off `data.inTxs[0].status` showing a succeeded deposit. Historical rows are not backfilled; the new behavior applies to detections going forward. + +**Added** + +- `GET /requests/v2`: failed `data.inTxs[]` entries can now include a `metadata.reorg` object with detection context. Fields: `detectedAt` (unix millis), `source` (detector component), `reason` (short code), and optional `details`, `failReason`, `action` (`"fill"` or `"refund"`), `blockNumber`, `blockHash`, `receiptStatus`. The object is only populated when the failure was caught by the reorg/finality path; deposits that fail through other paths are unaffected. + + + + + +### API + +**Behavior change** + +- `POST /quote/v2`: quote attempts that fail because of a transient upstream RPC error now return `errorCode: "REQUEST_TIMED_OUT"` on timeout or `errorCode: "RPC_HTTP_ERROR"` for other transient RPC failures. Previously these were misclassified as `errorCode: "DESTINATION_TX_FAILED"`, which suggested an on-chain revert and was treated as non-retryable. `DESTINATION_TX_FAILED` is now returned only for genuine destination reverts. Both new codes are retryable — see [Handling Quote Errors](/references/api/api_core_concepts/handling-errors). + + + + + +### API + +**Breaking** + +- `POST /quote/v2`: Solana-origin quotes routed through a third-party aggregator now return `400` when the generated deposit transaction would exceed Solana's 1232-byte limit. Previously these requests returned `200` with calldata that could not be serialized or executed client-side. Use **`maxRouteLength`** or **`includedOriginSwapSources`** to keep transactions under the limit — see [Solana Support](/references/api/api_guides/solana#transaction-size-optimization). + + + + + +### API + +**Behavior change** + +- `GET /intents/status/v3` and the `request.status.updated` webhook/websocket event: requests with a Bitcoin origin deposit now transition to `pending` as soon as the deposit is observed in the Bitcoin mempool, instead of waiting for the first block confirmation. The `pending` status no longer implies block inclusion for Bitcoin origins; block-confirmation policy continues to govern when the request progresses to `submitted`, `success`, `failure`, or `refund`. EVM and other non-Bitcoin origins are unchanged. + + + + + +### API + +**Added** + +- `GET /requests/v2` and the `request.status.updated` webhook/websocket event: the `depositAddress` object now includes `depositTxHash`, the origin-chain transaction hash of the depositor's transfer into the deposit address. This is distinct from `inTxHashes`, which tracks the sweep from the deposit address to the Relay depository. The field is `null` until the depositor's transfer is observed, and is omitted on non-deposit-address requests (where `depositAddress` itself is `null`). + + + + + +### API + +**Added** + +- `request.status.updated` webhook: the `data` object now includes `details`, `failReason`, and `refundFailReason`, matching the corresponding fields on [`GET /intents/status/v3`](/references/api/get-intents-status-v3). `failReason` returns `"N/A"` on non-failure statuses and the recorded reason (or `"UNKNOWN"`) on `failure`/`fallback`/`refund` statuses. `refundFailReason` defaults to `"N/A"` when no refund-leg failure is recorded. `details` is `null` when no additional context is available. + +### RelayKit + +**UI Kit `8.0.10`** — Patch + +- Update CEX address url + + + + + +### API + +**Breaking** + +- `POST /authorize` (Hyperliquid nonce-mapping flow): the EIP-712 `RelayNonceMapping` domain `version` is bumped from `"1"` to `"2"`, and the `NonceMapping` typed-data struct gains a new `depositor` (`address`) field. The `/authorize` request body must include a matching `depositor` field. + + Integrators that pass the API-returned `sign` payload straight to their wallet (and POST `post.body` verbatim) require no code change. Integrators that hand-roll the authorize step must sign the new typed-data shape and forward `depositor` from `steps[0].items[0].data.sign.value.depositor`. See [Hyperliquid Support](/references/api/api_guides/hyperliquid-support) for the updated payload shapes. + + + + + +### API + +**Behavior change** + +- `POST /execute`: raw-call simulation failures now return a decoded `error` label, `message`, `requestId`, and optional `details` object when Relay can decode the revert trace. The `details` object includes the top-level frame, innermost reverting frame, full reverting path, and decoded revert data for both subsidized and non-subsidized gasless execution flows. + + + + + +### API + +**Behavior change** + +- `GET /intents/status/v3`: failure rows that previously returned `failReason: "UNKNOWN"` now return a specific reason where one is available. Failed same-chain swap attempts return `TRANSACTION_REVERTED`, and refund rows triggered by duplicate deposits against the same request return `DOUBLE_SPEND`. No new enum members were introduced for these two cases. + +**Added** + +- `GET /intents/status/v3`: the response `failReason` enum gains `TRANSACTION_TOO_LARGE`, returned when the serialized fill transaction exceeded the origin chain or RPC payload size limit. The enum also gains `SOLVER_BALANCE_TOO_LOW`, returned when the solver could not construct or send the fill because its source-side balance (or available UTXOs) was insufficient. + + + + + +### RelayKit + +**SDK `5.2.7`** — Patch + +- Add testnet ws + +**UI Kit `8.0.9`** — Patch + +- Add link to withdraw page on fill failure and isWithdrawable + + + + + +### API + +**Behavior change** + +- `POST /quote/v2` with `useDepositAddress: true` and `strict: true`: a deposit larger than the quoted `amount` now fills the quoted amount and refunds the excess to `refundTo` in a separate refund leg, instead of scaling the fill up to the deposited amount. Exact payments still fill normally and underpayments still fail and refund. `refundTo` remains required for strict deposit addresses. + +### RelayKit + +**SDK `5.2.6`** — Patch + +- Sync api types + +**UI Kit `8.0.8`** — Patch + +- Differentiate hyperliquid usdc pills + + + + + +### API + +**Breaking** + +- `POST /quote/v2`: same-chain swap requests whose quoted USD value is greater than `0` and less than `$0.05` now return `400` with `errorCode: "AMOUNT_TOO_LOW"`. Previously these requests returned `200` with calldata that reverted on-chain. Wrap and unwrap quotes (e.g. same-chain `ETH` ↔ `WETH`) and quotes that include attached calls continue to be accepted at any size. + +### RelayKit + +**SDK `5.2.5`** — Patch + +- Sync api types + +**UI Kit `8.0.7`** — Patch + +- Fix gap in token selector's suggested tokens + + + + + +### RelayKit + +**SDK `5.2.4`, Lighter adapter `0.1.1`** — Patch + +- lighter sdk adapter + +**SDK `5.2.4`** — Patch + +- add disableCapabilitiesCheck option to skip wallet.getCapabilities + + + + + +### RelayKit + +**SDK `5.2.3`** — Patch + +- Support atomic batching for zero-reset approval swap flows (e.g. USDT on Ethereum). `canBatchTransactions` and `prepareBatchTransaction` now accept any number of leading `approve` steps before the terminal `swap`/`deposit`, so wallets that support EIP-5792 collapse the `approve(0) → approve(amount) → swap` sequence into a single `wallet_sendCalls` instead of three separate prompts. + + + + + +### RelayKit + +**SDK `5.2.2`, UI Kit `8.0.4`, Hooks `3.0.12`** — Patch + +- Sync api types and add depositing step to deposit address status + +**UI Kit `8.0.4`** — Patch + +- Use spotClearinghouseState for Spot USDC and unified Hyperliquid accounts. Adds a new useHyperliquidAccountMode hook to detect the user's account abstraction mode, and routes balance queries through spotClearinghouseState for unified/portfolio-margin accounts where the Perps USDC balance is reported under spot. + + + + + +### RelayKit + +**UI Kit `8.0.3`** — Patch + +- Namespace keyframes with relay- prefix to prevent collisions with host apps + +**UI Kit `8.0.3`** — Patch + +- Add onHapticEvent callback to RelayKitProvider + + + + + +### RelayKit + +**UI Kit `8.0.2`** — Patch + +- Fix CSS layer scoping and priority for host app compatibility + +**UI Kit `8.0.1`** — Patch + +- Fix CSS being tree-shaken in production builds by declaring styles.css as + +**UI Kit `8.0.0`** — Major + +- Migrate styling system from Panda CSS to Tailwind CSS + +**UI Kit `8.0.0`** — Patch + +- Optimize Font Awesome imports to use individual icon paths + + + + + +### RelayKit + +**Hooks `3.0.11`** — Patch + +- Add default stale time to useTokenPrice hook + +**Bitcoin adapter `17.0.2`** — Patch + +- bump bitcoinjs-lib dep version + + + + + +### RelayKit + +**SDK `5.2.1`, Hooks `3.0.10`** — Patch + +- Fix async errors not caught + +**UI Kit `7.1.5`, Hooks `3.0.10`** — Patch + +- Fix minor errors + + + + + +### RelayKit + +**SDK `5.2.0`** — Minor + +- Add executeGaslessBatch action to support 7702 gasless flow + +**UI Kit `7.1.4`** — Patch + +- Make progress modal error scrollable + +**UI Kit `7.1.4`** — Patch + +- Clearer error for locked wallet + + + + + +### RelayKit + +**UI Kit `7.1.3`** — Patch + +- Enable multi wallet dropdown for hyperliquid + +**SVM adapter `17.0.2`** — Patch + +- Add checks for base58 signature + + + + + +### RelayKit + +**SDK `5.1.1`, UI Kit `7.1.2`** — Patch + +- Refactor token selector currency metadata fetching + +**UI Kit `7.1.2`** — Patch + +- Implement AGW logic when hyperliquid is selected as destination + +**UI Kit `7.1.2`** — Patch + +- Add same chain selector + +**UI Kit `7.1.2`** — Patch + +- Universal max amount buffering + + + + + +### RelayKit + +**UI Kit `7.1.1`, Hooks `3.0.7`** — Patch + +- Refactor deposit address transaction tracking to use requests API + + + + + +### RelayKit + +**SDK `5.1.0`, UI Kit `7.1.0`** — Minor + +- Refactor EOA detection to improve ux + + + + + +### RelayKit + +**SDK `5.0.3`** — Patch + +- Fast fill sdk action + +**SDK `5.0.3`** — Patch + +- Improve fast fills error handling + +**UI Kit `7.0.11`** — Patch + +- Use expandedPriceImpact from quote response + + + + + +### RelayKit + +**SDK `5.0.2`** — Patch + +- Add support for custom logger function in createClient initializer + +**SDK `5.0.2`** — Patch + +- Add relay sdk version headers + +**UI Kit `7.0.10`** — Patch + +- Better handling of max input for low balances + + + + + +### RelayKit + +**SDK `5.0.1`** — Patch + +- Improve SolverStatusTimeout error log + + + + + +### RelayKit + +**UI Kit `7.0.8`** — Patch + +- Add support for lighter evm address lookup + + + + + +### RelayKit + +**UI Kit `7.0.7`** — Patch + +- Refactored timeout logic + + + + + +### RelayKit + +**UI Kit `7.0.6`** — Patch + +- Lenient eoa detection timeout + + + + + +### RelayKit + +**SDK `5.0.0`** — Major + +- Move configureViemChain, configureDynamicChains, and fetchChainConfigs to new /chain-utils subpath to reduce bundle size + +**UI Kit `7.0.5`** — Patch + +- Remove twitter share button + +**Hooks `3.0.2`** — Patch + +- Move configureViemChain, configureDynamicChains, and fetchChainConfigs to new /chain-utils subpath to reduce bundle size + + + + + +### RelayKit + +**SDK `4.0.1`** — Patch + +- Add amount param to claimAppFees action + +**UI Kit `7.0.4`** — Patch + +- Allow setting 0 slippage tolerance + + + + + +### RelayKit + +**UI Kit `7.0.2`** — Patch + +- Clearer eoa logs + + + + + +### RelayKit + +**UI Kit `7.0.1`** — Patch + +- Add tracking for eoa detection + + + + + +### RelayKit + +**SDK `4.0.0`, UI Kit `7.0.0`, Hooks `3.0.0`** — Major + +- Upgrade to quote/v2 api + + + + + +### RelayKit + +**UI Kit `6.1.1`** — Patch + +- Support hyperliquid balance fetching for spot coins + +**SVM adapter `14.0.1`** — Patch + +- Update solana adapter docs + + + + + +### RelayKit + +**SDK `3.2.0`, UI Kit `6.1.0`** — Minor + +- Integrate hyperliquid direct deposits + +**SDK `3.2.0`** — Patch + +- Support API key parameter in `createClient` SDK method + +**UI Kit `6.1.0`** — Patch + +- Update porto wallet compatibility + +**UI Kit `6.1.0`** — Patch + +- Phantom support – add monad and hyperevm + + + + + +### RelayKit + +**UI Kit `6.0.10`** — Patch + +- Fix some deps that were incorrectly marked as peerDeps + +**UI Kit `6.0.10`** — Patch + +- Stabilised ens resolution & wallet selection + + + + + +### RelayKit + +**UI Kit `6.0.9`** — Patch + +- Post-launch fixes for `TokenWidget` + + + + + +### RelayKit + +**UI Kit `6.0.8`** — Patch + +- Fix no routes error handling + + + + + +### RelayKit + +**SDK `3.1.1`, UI Kit `6.0.6`** — Patch + +- Add lighter vm and enable destination txs + +**UI Kit `6.0.7`** — Patch + +- Stabilised tab switches + +**UI Kit `6.0.6`** — Patch + +- Remove extra border on fee breakdown ui + +**UI Kit `6.0.6`** — Patch + +- Remove canonical logic and ui + + + + + +### RelayKit + +**UI Kit `6.0.5`** — Patch + +- Mobile payment selector improvments + + + + + +### RelayKit + +**UI Kit `6.0.4`** — Patch + +- Fix mobile ux + + + + + +### RelayKit + +**UI Kit `6.0.3`** — Patch + +- Improved mobile actions + + + + + +### RelayKit + +**UI Kit `6.0.2`** — Patch + +- Improve token widget + + + + + +### RelayKit + +**UI Kit `6.0.1`** — Patch + +- Enable broader support for gas top up + + + + + +### RelayKit + +**UI Kit `6.0.0`** — Major + +- Add TokenWidget + + + + + +### RelayKit + +**UI Kit `5.1.2`** — Patch + +- New mobile token selector + + + + + +### RelayKit + +**SDK `3.1.0`, UI Kit `5.1.0`, Tron adapter `1.0.0`** — Minor + +- Add Tron adapter and balance logic + +**UI Kit `5.1.1`** — Patch + +- Update mobile percentage buttons + +**UI Kit `5.1.1`** — Patch + +- Improve mobile ui for slippage configuration + +**UI Kit `5.1.1`** — Patch + +- Add clear input button to custom address modal + + + + + +### RelayKit + +**SDK `3.0.1`** — Patch + +- Allow getQuote to pass in headers + + + + + +### RelayKit + +**UI Kit `5.0.5`** — Patch + +- Improve sponsored tokens logic by switching to more flexible useSecureApi method + + + + + +### RelayKit + +**UI Kit `5.0.4`** — Patch + +- Improved fill time display on success screen + +**UI Kit `5.0.4`** — Patch + +- Display lowercase 's' for seconds on success screen + +**UI Kit `5.0.4`** — Patch + +- Improved token amount formatting on success screen + + + + + +### RelayKit + +**UI Kit `5.0.3`** — Patch + +- Fix starred chains feature bugs + +**UI Kit `5.0.2`** — Patch + +- Add starred chains feature to token selector + + + + + +### RelayKit + +**SDK `3.0.0`, UI Kit `5.0.0`** — Major + +- Revamped transaction steps + +**UI Kit `5.0.1`** — Patch + +- Improved copy for tx steps + +**UI Kit `5.0.0`** — Patch + +- Fix duplicate deposit success event + + + + + +### RelayKit + +**SDK `2.4.6`** — Patch + +- Fix tenderly error api + +**UI Kit `4.0.19`** — Patch + +- Save recent custom addresses to local storage + +**UI Kit `4.0.19`** — Patch + +- Use fill time on success screen + + + + + +### RelayKit + +**SDK `2.4.5`, UI Kit `4.0.18`, Bitcoin adapter `10.0.6`** — Patch + +- Add bitcoin public key to quote params + +**SDK `2.4.5`, UI Kit `4.0.18`** — Patch + +- Refactor max slippage ui to be more pronounced + +**UI Kit `4.0.17`** — Patch + +- Add transaction count check for explicit deposits + +**UI Kit `4.0.17`** — Patch + +- Update swap event data + + + + + +### RelayKit + +**UI Kit `4.0.16`** — Patch + +- Remove protocol v2 threshold + + + + + +### RelayKit + +**UI Kit `4.0.15`** — Patch + +- Update gas top up copy + +**UI Kit `4.0.14`** — Patch + +- Update gas top up logic and ui + +**UI Kit `4.0.14`** — Patch + +- Tweak logic and ui for gas top up + + + + + +### RelayKit + +**UI Kit `4.0.13`** — Patch + +- Increase protocol v2 threshold to $10k + + + + + +### RelayKit + +**UI Kit `4.0.12`** — Patch + +- Fix explicit deposit for zero native balance wallets + +**UI Kit `4.0.11`** — Patch + +- Increase protocolv2 threshold + +**UI Kit `4.0.10`** — Patch + +- Reimplement explicitDeposit logic + + + + + +### RelayKit + +**UI Kit `4.0.9`** — Patch + +- Remove explicitDeposit parameter + +**UI Kit `4.0.9`** — Patch + +- Remove gas top up re-enabling on swap success + + + + + +### RelayKit + +**SDK `2.4.4`** — Patch + +- Add EOA detection + +**UI Kit `4.0.8`** — Patch + +- Fix issue detecting EOA when disconnected + +**UI Kit `4.0.7`** — Patch + +- Fix bug where logged out scenario not fetching quotes + +**UI Kit `4.0.6`** — Patch + +- Add character minimum for conversion rate tooltip + + + + + +### RelayKit + +**Hooks `2.0.2`** — Patch + +- Fix base url for query quote function + + + + + +### RelayKit + +**UI Kit `4.0.4`** — Patch + +- Fix fee subsidization normalization + + + + + +### RelayKit + +**UI Kit `4.0.3`** — Patch + +- Add button cta font styling to theme + + + + + +### RelayKit + +**SDK `2.4.3`** — Patch + +- Update capabilities check for batching to support MM + +**UI Kit `4.0.2`** — Patch + +- Porto wallet compatibility + +**UI Kit `4.0.1`** — Patch + +- Remove custom fonts from ui kit base theme + + + + + +### RelayKit + +**UI Kit `4.0.0`, Hooks `2.0.0`** — Major + +- Upgrade to React 19 + +**UI Kit `3.0.3`** — Patch + +- Switch to using queryQuote instead of useQuote hook + +**UI Kit `3.0.3`** — Patch + +- Add test ids for automation + + + + + +### RelayKit + +**UI Kit `3.0.2`** — Patch + +- Enable protocolv2 only if destination chain supports settlement + +**UI Kit `3.0.2`** — Patch + +- Fix share icon color + +**Bitcoin adapter `10.0.3`** — Patch + +- Allow default sighash when sending tx + + + + + +### RelayKit + +**UI Kit `3.0.1`** — Patch + +- Add data tracking for gas subsidization + + + + + +### RelayKit + +**SDK `2.4.2`, Bitcoin adapter `10.0.2`, Ethers adapter `22.0.2`, SVM adapter `11.0.2`** — Patch + +- Update relay branding + +**UI Kit `3.0.0`** — Major + +- Update relay branding + +**Hooks `1.13.0`** — Minor + +- Update relay branding + + + + + +### RelayKit + +**SDK `0.0.0-canary-20250822183549`, UI Kit `0.0.0-canary-20250822183549`, Hooks `0.0.0-canary-20250822183549`, Bitcoin adapter `0.0.0-canary-20250822183549`, Ethers adapter `0.0.0-canary-20250822183549`, SVM adapter `0.0.0-canary-20250822183549`** — Patch + +- Fix Unverified modal buttons + +**SDK `0.0.0-canary-20250822181909`, UI Kit `0.0.0-canary-20250822181909`, Hooks `0.0.0-canary-20250822181909`, Bitcoin adapter `0.0.0-canary-20250822181909`, Ethers adapter `0.0.0-canary-20250822181909`, SVM adapter `0.0.0-canary-20250822181909`** — Patch + +- Implement final share link + + + + + +### RelayKit + +**UI Kit `2.17.5`** — Patch + +- Fix modal gap on mobile + + + + + +### RelayKit + +**SDK `0.0.0-canary-20250820191554`, UI Kit `0.0.0-canary-20250820191554`, Hooks `0.0.0-canary-20250820191554`, Bitcoin adapter `0.0.0-canary-20250820191554`, Ethers adapter `0.0.0-canary-20250820191554`, SVM adapter `0.0.0-canary-20250820191554`** — Patch + +- Sync with main branch + +**SDK `2.4.1`, UI Kit `2.17.4`, Hooks `1.12.1`** — Patch + +- Add gas sponsorship functionality + + + + + +### RelayKit + +**UI Kit `2.17.3`** — Patch + +- Always show price impact regardless of input mode + + + + + +### RelayKit + +**UI Kit `2.17.2`** — Patch + +- Reenable solana for protocolv2 + + + + + +### RelayKit + +**SDK `0.0.0-canary-20250814020954`, UI Kit `0.0.0-canary-20250814020954`, Hooks `0.0.0-canary-20250814020954`, Bitcoin adapter `0.0.0-canary-20250814020954`, Ethers adapter `0.0.0-canary-20250814020954`, SVM adapter `0.0.0-canary-20250814020954`** — Patch + +- Rebuild canary build + +**UI Kit `2.17.1`** — Patch + +- Disable protocol v2 on solana + + + + + +### RelayKit + +**SDK `0.0.0-canary-20250813132716`, UI Kit `0.0.0-canary-20250813132716`** — Minor + +- Update theme to better match Relay brand + + + + + +### RelayKit + +**SDK `2.4.0`, UI Kit `2.17.0`, Hooks `1.12.0`, Bitcoin adapter `10.0.0`, Ethers adapter `22.0.0`, SVM adapter `11.0.0`** — Minor + +- Add websocket support and refactor executeSteps + + + + + +### RelayKit + +**UI Kit `2.16.2`** — Patch + +- Increase prefers v2 threshold to $100 + + + + + +### RelayKit + +**UI Kit `2.16.1`** — Patch + +- revert overflow fix + + + + + +### RelayKit + +**UI Kit `2.16.0`** — Minor + +- Fix token amount overflow on success screen + +**UI Kit `2.16.0`** — Patch + +- Fix Hyperliquid wallet compatability + +**UI Kit `2.16.0`** — Patch + +- Bump USD threshold for protocolv2 logic + +**UI Kit `2.16.0`** — Patch + +- Improve ui when no route are available + + + + + +### RelayKit + +**UI Kit `2.15.11`** — Patch + +- Add refundTo for HL withdrawals + + + + + +### RelayKit + +**SDK `2.3.2`, UI Kit `2.15.10`** — Patch + +- Add hyperliquid usd send functionality + +**UI Kit `2.15.10`** — Patch + +- Prevent onAnalyticEvent from throwing errors internally + + + + + +### RelayKit + +**SDK `2.3.1`, UI Kit `2.15.9`** — Patch + +- Enable protocol v2 for chains programatically + +**UI Kit `2.15.9`** — Patch + +- Fix bug with selecting token from trending tokens list + +**UI Kit `2.15.9`** — Patch + +- Add context to CURRENCY_STEP_CHAIN_FILTER event + + + + + +### RelayKit + +**UI Kit `2.15.8`** — Patch + +- Add log to AGW check error + +**UI Kit `2.15.8`** — Patch + +- Add usd values to swap events + +**UI Kit `2.15.8`** — Patch + +- Use max slippage between user input and quote for display + +**UI Kit `2.15.8`, Hooks `1.11.1`** — Patch + +- Add relay trending tokens to token selector + +**UI Kit `2.15.8`** — Patch + +- Enable more v2 protocol chains + + + + + +### RelayKit + +**UI Kit `2.15.7`** — Patch + +- Add more protocol v2 chains + + + + + +### RelayKit + +**UI Kit `2.15.6`** — Patch + +- Address accessibility issues + +**UI Kit `2.15.6`** — Patch + +- Add protocol v2 enabled chains + + + + + +### RelayKit + +**UI Kit `2.15.5`** — Patch + +- Enable preferv2 protocol for more chains (Ethereum, Polygon, BNB, OP, Zksync) + + + + + +### RelayKit + +**UI Kit `2.15.4`** — Patch + +- Reenable prefers protocolv2 for a subset of chains + + + + + +### RelayKit + +**SVM adapter `10.0.1`** — Patch + +- Add an optional payerKey to customize gas payer + + + + + +### RelayKit + +**UI Kit `2.15.3`** — Patch + +- Disable protocolv2 usage + + + + + +### RelayKit + +**UI Kit `2.15.2`** — Patch + +- Enable prefersV2 for Avalanche, unichain and Gnosis + +**UI Kit `2.15.1`** — Patch + +- Disable gas top up by default + + + + + +### RelayKit + +**SDK `2.3.0`, UI Kit `2.15.0`, Hooks `1.11.0`, Bitcoin adapter `9.0.0`, Ethers adapter `21.0.0`, SVM adapter `10.0.0`** — Minor + +- Upgrade viem to >=2.26.0 + +**SDK `2.2.0`, UI Kit `2.14.0`** — Minor + +- Upgrade sdk types and add custom logic for blast protocol v2 configuration + +**UI Kit `2.14.0`** — Patch + +- Check custom address against CEX address list + + + + + +### RelayKit + +**UI Kit `2.13.3`** — Patch + +- Add warning for missing token price detection + add stroke to all alerts + + + + + +### RelayKit + +**UI Kit `2.13.2`** — Patch + +- Hide gas token badge for hyperliquid usdc + + + + + +### RelayKit + +**SDK `2.1.3`** — Patch + +- Add getAppFees and claimAppFees sdk actions + +**UI Kit `2.13.0`** — Minor + +- Fix destination wallet alert showing without wallet selection + +**UI Kit `2.13.0`** — Patch + +- Add themeScheme to the provider to improve SSR hydration + + + + + +### RelayKit + +**UI Kit `2.12.0`** — Minor + +- Switch to Dune's Sim api for token balances + +**UI Kit `2.12.0`** — Patch + +- Hide display of batch txs on success step + +**UI Kit `2.12.0`** — Patch + +- Improve usd fee display + +**UI Kit `2.12.0`** — Patch + +- Adds toggle to switch between token amount and usd input + +**UI Kit `2.12.0`, Hooks `1.10.4`** — Patch + +- Remove referrer from requests api calls + + + + + +### RelayKit + +**SDK `2.1.2`, UI Kit `2.11.3`, Hooks `1.10.2`** — Patch + +- Update endpoints + +**SDK `2.1.2`, UI Kit `2.11.3`** — Patch + +- Add hypevm to vmtypes for destination + +**UI Kit `2.11.3`** — Patch + +- Ellipsify conversion rate + add tooltip to prevent overflow + +**UI Kit `2.11.3`** — Patch + +- Fix cropped token selector text + +**UI Kit `2.11.3`** — Patch + +- Decrease high fee warning threshold to 1.5% + +**Hooks `1.10.3`** — Patch + +- Allow headers to be configured from query functions + + + + + +### RelayKit + +**SDK `2.1.1`, UI Kit `2.11.2`** — Patch + +- Allow changing the polling interval for confirmation and improve RPC configuration + + + + + +### RelayKit + +**SDK `2.1.0`, UI Kit `2.11.0`, Hooks `1.10.0`** — Minor + +- Deduplicate request IDs + +**SDK `2.1.0`** — Patch + +- Optimize same chain swapping to skip intent status if slower than receipt + +**UI Kit `2.11.1`** — Patch + +- Fix solana address regex + +**UI Kit `2.11.0`** — Patch + +- Add copy for new refund reason + +**UI Kit `2.11.0`** — Patch + +- Add better handling for eclipse rpc balance errors + +**UI Kit `2.11.0`** — Patch + +- Allow selecting wallet before selecting chain + +**UI Kit `2.11.0`** — Patch + +- Add context to wallet_selector events + +**UI Kit `2.11.0`** — Patch + +- Fix distorted token images + +**UI Kit `2.11.0`** — Patch + +- Capture quote to be used in TransactionModal + + + + + +### RelayKit + +**UI Kit `2.10.12`** — Patch + +- Fix tx confirmation issue preventing the error screen from showing + + + + + +### RelayKit + +**UI Kit `2.10.11`** — Patch + +- Allow slippage to be set to 0.01 in the slippage configuration component + +**UI Kit `2.10.11`** — Patch + +- Hide amount usd if returned value is 0 + +**UI Kit `2.10.11`** — Patch + +- Use eclipse RPC for widget balances + + + + + +### RelayKit + +**UI Kit `2.10.10`** — Patch + +- Remove max width from suggested token pills + +**UI Kit `2.10.10`** — Patch + +- Fix token selector scroll bug and improve dialog animation + + + + + +### RelayKit + +**SDK `2.0.3`, UI Kit `2.10.9`** — Patch + +- Improve DEPOSIT_SUCCESS logic by checking pending status + + + + + +### RelayKit + +**SDK `2.0.2`** — Patch + +- Sync api types + +**UI Kit `2.10.8`** — Patch + +- Fix broken suggested token logoUrl + +**UI Kit `2.10.8`** — Patch + +- add AVAX to ME wallet compatibility + +**UI Kit `2.10.7`** — Patch + +- Fix status code data point for quote_error + + + + + +### RelayKit + +**SDK `2.0.1`, UI Kit `2.10.6`, Hooks `1.9.11`, Bitcoin adapter `6.0.1`, Ethers adapter `18.0.1`, SVM adapter `7.0.1`** — Patch + +- Lock viem version to patch only to avoid breaking changes + +**UI Kit `2.10.6`** — Patch + +- Add status to quote error + +**UI Kit `2.10.6`** — Patch + +- Adjust gas top up copy + + + + + +### RelayKit + +**SDK `2.0.0`** — Major + +- [BREAKING] Update sdk getQuote method to optionally include defaults + +**UI Kit `2.10.5`** — Patch + +- Fix receipt validation + +**Ethers adapter `18.0.0`** — Patch + +- [BREAKING] Update sdk getQuote method to optionally include defaults + + + + + +### RelayKit + +**SDK `1.8.1`** — Patch + +- Sync api types + +**UI Kit `2.10.4`** — Patch + +- Fix gas top up bigint error + + + + + +### RelayKit + +**UI Kit `2.10.3`** — Patch + +- Fix race condition with events + + + + + +### RelayKit + +**UI Kit `2.10.2`** — Patch + +- Add quote_request_id to all swap events + +**UI Kit `2.10.1`** — Patch + +- Fix issues with quote_id + + + + + +### RelayKit + +**SDK `1.8.0`, UI Kit `2.10.0`** — Minor + +- Overhaul analytics events + +**UI Kit `2.10.0`** — Patch + +- Add interval to regenerate hash every 15m + +**UI Kit `2.10.0`** — Patch + +- Refresh quote data when tx modal closes + + + + + +### RelayKit + +**SDK `1.7.4`, UI Kit `2.9.14`, SVM adapter `5.0.4`** — Patch + +- Add sui wallet adapter + +**UI Kit `2.9.14`** — Patch + +- Switch to sha256 from murmur3 to fix esm compatibility issue + +**UI Kit `2.9.14`** — Patch + +- Fix address comparison logic in MultiWalletDropdown + + + + + +### RelayKit + +**SDK `1.7.3`** — Patch + +- Add ability to override default logger + +**UI Kit `2.9.13`, Hooks `1.9.6`** — Patch + +- Add a quoteRequestId when requests and receiving a quote + +**UI Kit `2.9.13`, Hooks `1.9.6`** — Patch + +- Improve quote and swap analytics + +**UI Kit `2.9.13`** — Patch + +- Rename quote events + + + + + +### RelayKit + +**SDK `1.7.2`** — Patch + +- Fix add ethereum chain errors + +**UI Kit `2.9.12`** — Patch + +- Display estimated USD value for input token before swap quote is available + + + + + +### RelayKit + +**SDK `1.7.1`, UI Kit `2.9.11`** — Patch + +- Add fallback mechanism when InternalJSONRPC occurrs + +**SDK `1.7.1`, UI Kit `2.9.11`** — Patch + +- Sync sdk types and update sugested tokens to use logoURI from featured tokens + +**UI Kit `2.9.11`** — Patch + +- Render fallback token placeholder using symbol initial + +**UI Kit `2.9.11`** — Patch + +- Add sei to ME wallet compatibility + +**UI Kit `2.9.11`** — Patch + +- Max Button gas estimation improvements for evm + + + + + +### RelayKit + +**SDK `1.7.0`** — Minor + +- Gas top up functionality + +**UI Kit `2.9.10`, Hooks `1.9.3`** — Patch + +- Gas top up functionality + + + + + +### RelayKit + +**SDK `1.6.15`, UI Kit `2.9.9`, Hooks `1.9.2`** — Patch + +- Add additional refund reason messaging + +**UI Kit `2.9.9`** — Patch + +- Add ronin wallet compatibility + +**UI Kit `2.9.9`** — Patch + +- Upgrade to new dune svm balance api + + + + + +### RelayKit + +**UI Kit `2.9.8`** — Patch + +- Reset swap widget inputs after a successful swap + +**UI Kit `2.9.8`** — Patch + +- Fix slice error on confirmation screens + +**UI Kit `2.9.8`** — Patch + +- Handle rejecting tx in AGW + + + + + +### RelayKit + +**SDK `1.6.14`** — Patch + +- Add endpoint to APIError for debugging + +**UI Kit `2.9.7`** — Patch + +- Fix chain scroll bug + + + + + +### RelayKit + +**UI Kit `2.9.5`** — Patch + +- Prevent AGW from receiving incompatible funds + + + + + +### RelayKit + +**UI Kit `2.9.4`** — Patch + +- Fix token symbol overflow within token selector + +**UI Kit `2.9.4`** — Patch + +- Add privateChainIds to RelayKitProvider options + +**UI Kit `2.9.4`** — Patch + +- Add dropdown-border theme element + + + + + +### RelayKit + +**UI Kit `2.9.3`** — Patch + +- Fix useCurrencyBalnce hook bug + + + + + +### RelayKit + +**UI Kit `2.9.2`** — Patch + +- Update analytic events for token selector + +**UI Kit `2.9.2`** — Patch + +- Fix undefined token setting in swap widget + + + + + +### RelayKit + +**SDK `1.6.13`** — Patch + +- Breaking Changes: + + - `relay-kit-hooks`: Updated `useTokenLists` hook to use `/currencies/v2` API with new response structure + - `relay-kit-ui`: Redesigned token selector component with improved architecture + - Removed chain selector in favor of unified token selector component + - Removed `defaultToToken` and `defaultFromToken` props + - Added `toToken`, `setToToken`, `fromToken`, `setFromToken` props + - Added `disableInputAutoFocus` and `popularChainIds` configuration options + + These changes improve token selection UX, provide better state management, and enable more flexible chain configuration. + +**UI Kit `2.9.1`** — Patch + +- Fix token setters + +**UI Kit `2.9.0`, Hooks `1.9.0`** — Minor + +- Breaking Changes: + + - `relay-kit-hooks`: Updated `useTokenLists` hook to use `/currencies/v2` API with new response structure + - `relay-kit-ui`: Redesigned token selector component with improved architecture + - Removed chain selector in favor of unified token selector component + - Removed `defaultToToken` and `defaultFromToken` props + - Added `toToken`, `setToToken`, `fromToken`, `setFromToken` props + - Added `disableInputAutoFocus` and `popularChainIds` configuration options + + These changes improve token selection UX, provide better state management, and enable more flexible chain configuration. + +**UI Kit `2.9.0`** — Patch + +- Allow dune base api to fallback to default + + + + + +### RelayKit + +**UI Kit `2.8.0`** — Minor + +- Refactor dune api config + +**UI Kit `2.8.0`** — Patch + +- OnrampModal: reset recipient if vm changes and recipient is now invalid + +**UI Kit `2.8.0`** — Patch + +- Add a prop to disable paste address wallet option + +**UI Kit `2.8.0`** — Patch + +- Fix conversion rate display bug + +**UI Kit `2.8.0`** — Patch + +- Add a short cache for balance queries to optimize dune usage + + + + + +### RelayKit + +**SDK `1.6.12`** — Patch + +- Fix hyperevm chain configuration + + + + + +### RelayKit + +**SDK `1.6.11`, UI Kit `2.7.18`** — Patch + +- Update API SDK types, fix react 19 component type issues + + + + + +### RelayKit + +**SDK `1.6.10`, UI Kit `2.7.16`** — Patch + +- Add Sui VM support + +**UI Kit `2.7.17`** — Patch + +- Improve OnrampModal robustness + +**UI Kit `2.7.17`** — Patch + +- Always return QR code for deposit address flow + + + + + +### RelayKit + +**UI Kit `2.7.15`** — Patch + +- Uniswap wallet compatability configurations + +**UI Kit `2.7.15`** — Patch + +- Fix max capacity error message not shown + + + + + +### RelayKit + +**SDK `1.6.9`, UI Kit `2.7.14`, Hooks `1.8.5`** — Patch + +- Add scripts for statically bundling versions + +**SDK `1.6.9`, UI Kit `2.7.14`** — Patch + +- Handle custom block explorer transaction page + +**UI Kit `2.7.14`** — Patch + +- Detect changes to destination chain and select supporting wallet + +**UI Kit `2.7.14`** — Patch + +- Improve Deposit address logic in TokenSelector + +**UI Kit `2.7.14`** — Patch + +- Fix a bug where changing the chain to a different vm would not find the supported linked wallet + + + + + +### RelayKit + +**SDK `1.6.8`** — Patch + +- Update Tron dead address + +**UI Kit `2.7.13`** — Patch + +- Add analytic events for chain select + +**UI Kit `2.7.13`** — Patch + +- Rename connect CTA to "Connect Wallet" + +**UI Kit `2.7.13`** — Patch + +- Fix approval tx display on swap confirmation screen + +**UI Kit `2.7.12`** — Patch + +- Remove duplicate price impact warning + +**UI Kit `2.7.12`** — Patch + +- Fix bug where deposit address origin prevented connecting a destination wallet + + + + + +### RelayKit + +**UI Kit `2.7.11`** — Patch + +- Fix default unverified tokens not prompting approval + + + + + +### RelayKit + +**SDK `1.6.7`, UI Kit `2.7.9`** — Patch + +- Tron support + +**SDK `1.6.6`** — Patch + +- Fix sender sometimes being set to dead address + +**UI Kit `2.7.10`** — Patch + +- Fix tvm filter + +**Hooks `1.8.2`** — Patch + +- Swallow useQuote error if onError handler is passed + + + + + +### RelayKit + +**SDK `1.6.5`** — Patch + +- Check tx confirmation error with tenderly api to enhance error data + +**UI Kit `2.7.7`** — Patch + +- Ensure quote is always fresh when TransactionModal closes + +**UI Kit `2.7.6`** — Patch + +- Fix transaction validating event getting triggered multiple times + + + + + +### RelayKit + +**UI Kit `2.7.5`** — Patch + +- Dune token api chain_ids update + +**UI Kit `2.7.5`** — Patch + +- Remove 'Review Quote' step and consolidate tx flow into one ui state + + + + + +### RelayKit + +**UI Kit `2.7.4`** — Patch + +- Fixes for suggested tokens and default token + +**UI Kit `2.7.3`** — Patch + +- Fix default selected token + +**UI Kit `2.7.3`** — Patch + +- Wallet compatibility for major wallets and abstract address detection + + + + + +### RelayKit + +**UI Kit `2.7.2`** — Patch + +- Update slippage tolerance logic to handle remote swaps + + + + + +### RelayKit + +**SDK `1.6.4`** — Patch + +- SDK config option to omit gas fee estimates + +**UI Kit `2.7.1`** — Patch + +- Fix dialog and dropdown menu incompatibility + +**UI Kit `2.7.0`, Hooks `1.8.0`** — Minor + +- Remove usePrice hook, queryPrice action, and PriceResponse type + +**UI Kit `2.7.0`** — Patch + +- Remap max liquidity error + + + + + +### RelayKit + +**SDK `1.6.3`, UI Kit `2.6.11`** — Patch + +- Handle confirmation error appropriately + + + + + +### RelayKit + +**UI Kit `2.6.10`** — Patch + +- Fix slippage displayed for same-chain-swaps + +**UI Kit `2.6.9`** — Patch + +- Fix slippage config bug on rerender + +**UI Kit `2.6.8`** — Patch + +- Add slippage configuration component + +**UI Kit `2.6.8`** — Patch + +- Fix ChainTokenIcon fallback dimensions + +**UI Kit `2.6.8`** — Patch + +- Fix onramping dollar formatting + +**UI Kit `2.6.8`** — Patch + +- Increase width of onramp widget + + + + + +### RelayKit + +**UI Kit `2.6.7`** — Patch + +- Hide fiat currency selector + +**UI Kit `2.6.6`** — Patch + +- Add onTokenChange callback handler to OnrampWidget + + + + + +### RelayKit + +**SDK `1.6.2`, UI Kit `2.6.3`** — Patch + +- Sync api types, append moonpay id to relay request + +**SDK `1.6.2`, UI Kit `2.6.3`** — Patch + +- Fix solver status timeout ui bug and split error into sub error + +**UI Kit `2.6.5`** — Patch + +- Fix onramping bugs + +**UI Kit `2.6.4`** — Patch + +- Fix onramp modal parseUnits error with eth amount + +**UI Kit `2.6.3`** — Patch + +- Fix onramping bugs: hide suggested tokens, avoid same chain swaps + +**UI Kit `2.6.3`** — Patch + +- OnrampModal bugs + +**UI Kit `2.6.3`** — Patch + +- Fix useEnsResolver hook undefined address + + + + + +### RelayKit + +**UI Kit `2.6.2`** — Patch + +- Fix default chain icons + + + + + +### RelayKit + +**UI Kit `2.6.1`** — Patch + +- Fix bugs with onramping input + +**UI Kit `2.6.0`, Hooks `1.7.0`** — Minor + +- OnrampWidget and useTokenPrice hook + + + + + +### RelayKit + +**UI Kit `2.5.6`** — Patch + +- Fix token lock issues in SwapWidget + +**UI Kit `2.5.5`** — Patch + +- Update logs to include steps + + + + + +### RelayKit + +**UI Kit `2.5.4`** — Patch + +- Update radix dialog version + + + + + +### RelayKit + +**UI Kit `2.5.2`** — Patch + +- Fix theme token usage for inputs + +**UI Kit `2.5.2`** — Patch + +- Fix recipient bug when multi wallet support is not enabled + + + + + +### RelayKit + +**SDK `1.6.1`** — Patch + +- Post same chain tx to solver to fix status timeout errors + + + + + +### RelayKit + +**SDK `1.6.0`, UI Kit `2.5.0`, Hooks `1.6.0`, Bitcoin adapter `3.0.0`, Ethers adapter `15.0.0`, SVM adapter `4.0.0`** — Minor + +- Add support for batch transactions + +**SDK `1.6.0`, UI Kit `2.5.0`, Hooks `1.6.0`, Bitcoin adapter `3.0.0`, Ethers adapter `15.0.0`, SVM adapter `4.0.0`** — Patch + +- Add support for EIP-5792 batch transactions + +**UI Kit `2.5.0`** — Patch + +- Remove usePrice hook usage from widget + + + + + +### RelayKit + +**SDK `1.5.0`, UI Kit `2.4.0`, Hooks `1.5.0`, Bitcoin adapter `2.0.0`, Ethers adapter `14.0.0`, SVM adapter `3.0.0`** — Minor + +- Upgrade viem peer dependency + +**UI Kit `2.4.0`** — Patch + +- Add usdc to ink chain's suggested tokens + + + + + +### RelayKit + +**UI Kit `2.3.10`** — Patch + +- Add approve + swap ux flow and update cta copy in widget and modal + + + + + +### RelayKit + +**UI Kit `2.3.9`** — Patch + +- Extract more data out of error message when sending to analytics handler + +**UI Kit `2.3.8`** — Patch + +- Fix quote_error data + +**UI Kit `2.3.8`** — Patch + +- Adjust how we handle approval denied and plugin closed errors + + + + + +### RelayKit + +**UI Kit `2.3.7`, Hooks `1.4.16`** — Patch + +- Add quote_error analytics event + +**UI Kit `2.3.7`** — Patch + +- Fix token selector height bug + + + + + +### RelayKit + +**SDK `1.4.10`** — Patch + +- Improve robustness of pre tx chain id check + +**SDK `1.4.10`, UI Kit `2.3.6`** — Patch + +- Fix dead address being allowed as burn address + +**UI Kit `2.3.6`** — Patch + +- Upgrade dune api version to v1 + + + + + +### RelayKit + +**SDK `1.4.9`, SVM adapter `2.0.9`** — Patch + +- Expose instructions in signature function + +**UI Kit `2.3.5`** — Patch + +- Optimize token list merging and sorting logic in TokenSelector + +**UI Kit `2.3.5`** — Patch + +- Fix token overflow ui bug on token selector + + + + + +### RelayKit + +**Hooks `1.4.13`** — Patch + +- Fix useRequests base url + + + + + +### RelayKit + +**UI Kit `2.3.3`** — Patch + +- Update token selector dimensions and breakpoints + +**UI Kit `2.3.3`** — Patch + +- Fix slippage ui bugs + + + + + +### RelayKit + +**UI Kit `2.3.2`** — Patch + +- Fix token selection bugs with lockChainId and restrictedTokens + +**UI Kit `2.3.2`** — Patch + +- Add additional data points to switch wallet event + +**UI Kit `2.3.2`** — Patch + +- Update copy for link new wallet dropdown item + + + + + +### RelayKit + +**UI Kit `2.3.1`** — Patch + +- Optimize usePrice hook by moving baseChainId validation to SwapWidgetRenderer and removing checkExternalLiquiditySupport prop. This improves performance by skipping invalid canonical routes based on baseChainId relationships. + +**UI Kit `2.3.1`** — Patch + +- Spacing for DepositAddressModal + +**Hooks `1.4.12`** — Patch + +- feat: optimize usePrice hook to skip invalid canonical routes + + + + + +### RelayKit + +**UI Kit `2.3.0`** — Minor + +- Deposit Address fallback functionality + +**UI Kit `2.3.0`** — Patch + +- Remove trailing zeros from formatted amount + +**UI Kit `2.3.0`** — Patch + +- Include additional parameters when generating tx urls + +**Hooks `1.4.11`** — Patch + +- Deposit Address fallback functionality + + + + + +### RelayKit + +**SDK `1.4.8`** — Patch + +- Fix typescript error in RelayChain + +**UI Kit `2.2.28`** — Patch + +- Restore slippage UI component in transaction review step + +**UI Kit `2.2.27`** — Patch + +- Allow selecting same chain from chain selector + + + + + +### RelayKit + +**UI Kit `2.2.26`** — Patch + +- Hide slippage ui temporarily + +**UI Kit `2.2.25`** — Patch + +- Fix slippage ui bugs + +**UI Kit `2.2.24`** — Patch + +- Add slippage details to review quote screen + + + + + +### RelayKit + +**UI Kit `2.2.23`** — Patch + +- Add onSwapValidating callback + +**UI Kit `2.2.23`** — Patch + +- Use transaction data rather than quote data on success screen + +**UI Kit `2.2.23`** — Patch + +- Update SwapConfirmationStep ui to fix overflow + + + + + +### RelayKit + +**UI Kit `2.2.22`** — Patch + +- Add new theme tokens and section ids + +**UI Kit `2.2.22`** — Patch + +- Fix undefined placeholder in custom address model when toChain is undefined + + + + + +### RelayKit + +**SDK `1.4.7`** — Patch + +- Update zero address for zero chain + +**UI Kit `2.2.21`** — Patch + +- Ensure dead address is properly generated + +**UI Kit `2.2.20`** — Patch + +- Fix zero quote api error message + +**UI Kit `2.2.20`** — Patch + +- Fix high price impact warning + + + + + +### RelayKit + +**UI Kit `2.2.19`** — Patch + +- Hide route selector in fee breakdown in single chain mode + +**UI Kit `2.2.18`** — Patch + +- Allow overriding chain to connector list + +**UI Kit `2.2.17`** — Patch + +- Remove route selector from single chain mode + +**UI Kit `2.2.17`** — Patch + +- Add chain icon to token selector in single chain mode + +**UI Kit `2.2.17`** — Patch + +- Fix switch tokens button border theme + + + + + +### RelayKit + +**SDK `1.4.6`, UI Kit `2.2.15`, SVM adapter `2.0.6`** — Patch + +- Support for eclipse svm + +**UI Kit `2.2.16`** — Patch + +- Add single chain mode to swap widget + +**Hooks `1.4.8`** — Patch + +- Fix usePrice error handling + + + + + +### RelayKit + +**SDK `1.4.5`, UI Kit `2.2.14`** — Patch + +- Add suggested tokens to token selector + +**UI Kit `2.2.14`** — Patch + +- Fix capacity exceeded error to find max capacity + + + + + +### RelayKit + +**SDK `1.4.4`, UI Kit `2.2.13`** — Patch + +- Impprove wallet switch error handling + +**UI Kit `2.2.13`** — Patch + +- Handle max capacity error when maximum not returned in error message + + + + + +### RelayKit + +**SDK `1.4.3`, UI Kit `2.2.12`** — Patch + +- Update solana dead address + +**UI Kit `2.2.11`** — Patch + +- Remove support for setting unverified tokens from the chain selector + +**UI Kit `2.2.11`** — Patch + +- Update token uri fallback styling + +**UI Kit `2.2.10`** — Patch + +- Update unverified token modal to link out to block explorer's token page + +**UI Kit `2.2.10`** — Patch + +- Fix token selector trigger overflow + +**UI Kit `2.2.10`** — Patch + +- Fix pending balance bug breaking ui + + + + + +### RelayKit + +**SDK `1.4.2`, UI Kit `2.2.9`** — Patch + +- Add support for unverified tokens + +**UI Kit `2.2.9`** — Patch + +- Display pending balance when bitcoin tx is inflight + +**UI Kit `2.2.9`** — Patch + +- Remove logic to prefill address with connected address in custom address modal + + + + + +### RelayKit + +**UI Kit `2.2.8`** — Patch + +- Double time estimate for bitcoin + +**UI Kit `2.2.7`** — Patch + +- Make selector theme optional + +**UI Kit `2.2.6`** — Patch + +- Add disclaimer messaging in confirmation modal with long canonical relays + +**UI Kit `2.2.6`** — Patch + +- Add widget selector theme variable + +**UI Kit `2.2.6`** — Patch + +- Fix 0 price impact + + + + + +### RelayKit + +**UI Kit `2.2.5`** — Patch + +- Fix parallel quoting when quote returns errror but price does not + +**UI Kit `2.2.5`** — Patch + +- Remove stroke from route selector when focused + +**UI Kit `2.2.4`** — Patch + +- Fix double route ui issue where price error shows up alongside valid quote data + +**UI Kit `2.2.3`** — Patch + +- Expand bitcoin address validation to taproot and base58 + +**UI Kit `2.2.2`, Hooks `1.4.2`** — Patch + +- Fetch price and quote in parallel to improve price accuracy in SwapWidget + + + + + +### RelayKit + +**SDK `1.4.1`, UI Kit `2.2.1`** — Patch + +- Fix bugs with bitcoin implementation + + + + + +### RelayKit + +**SDK `1.4.0`, UI Kit `2.2.0`, Bitcoin adapter `1.0.0`** — Minor + +- Bitcoin support + +**Hooks `1.4.0`** — Minor + +- Remove automatic refresh of quote data after execution in useQuote hook + + + + + +### RelayKit + +**UI Kit `2.1.9`** — Patch + +- Added keyboard navigation to token selector + + + + + +### RelayKit + +**SDK `1.3.4`, UI Kit `2.1.7`** — Patch + +- Replace exact_output with expected_output tradeType + + + + + +### RelayKit + +**UI Kit `2.1.6`** — Patch + +- Fix ux issues with canonical route selector + + + + + +### RelayKit + +**UI Kit `2.1.5`** — Patch + +- Improve price impact, handle no instant liquidity ux + + + + + +### RelayKit + +**UI Kit `2.1.4`** — Patch + +- Improvements on the canonical fallback ux + + + + + +### RelayKit + +**UI Kit `2.1.3`** — Patch + +- Fix disabled token selector background and issue with resetting canonical route + +**UI Kit `2.1.2`** — Patch + +- Remove hardcoded canonical currencies + + + + + +### RelayKit + +**UI Kit `2.1.1`** — Patch + +- Fix canonical check amount, disable token selector when one option available + +**UI Kit `2.1.0`** — Minor + +- Implement canonical+ support into SwapWidget, remove ChainWidget + + + + + +### RelayKit + +**SDK `1.3.3`** — Patch + +- Fix switchChain logic to take into account missing chain in wallet + +**UI Kit `2.0.8`** — Patch + +- Fix token selector balance display + + + + + +### RelayKit + +**UI Kit `2.0.5`** — Patch + +- Patches fixes for Solana + multi wallet dropdown ui + +**UI Kit `2.0.4`** — Patch + +- Fix minor CustomAddressModal bugs + + + + + +### RelayKit + +**SDK `1.3.2`, UI Kit `2.0.3`** — Patch + +- Fix wallet switching in ChainWidget, fix sdk convert viem chain to RelayChain helper + +**UI Kit `2.0.3`** — Patch + +- Removed max button when Solana balance is less than minimum buffer. + +**UI Kit `2.0.2`** — Patch + +- Added a buffer of 0.02 minimum when selecting max for a Solana balance + +**UI Kit `2.0.2`** — Patch + +- Fix solana custom address prompt + +**UI Kit `2.0.1`** — Patch + +- Fix solana balance cached after swapping + + + + + +### RelayKit + +**SDK `1.3.1`** — Patch + +- Add solana ui support in SwapWidget + +**UI Kit `2.0.0`** — Major + +- Add solana ui support in SwapWidget + + + + + +### RelayKit + +**UI Kit `1.4.1`** — Patch + +- Improve high price impact copy + + + + + +### RelayKit + +**SDK `1.3.0`, UI Kit `1.4.0`, Hooks `1.3.0`, Ethers adapter `12.0.0`** — Minor + +- Abstract txs in Adapted Wallet + new Solana Adapter + + + + + +### RelayKit + +**SDK `1.2.2`, UI Kit `1.3.20`** — Patch + +- Expand support for svm chains when setting addresses + +**UI Kit `1.3.20`** — Patch + +- Remove resetting of chain filter when token selector is closed + +**UI Kit `1.3.20`** — Patch + +- Fix modal's "x" button size and alignment + + + + + +### RelayKit + +**UI Kit `1.3.19`** — Patch + +- Chain selector ux tweaks + + + + + +### RelayKit + +**UI Kit `1.3.18`** — Patch + +- Update high price impact warning logic + +**UI Kit `1.3.18`** — Patch + +- Update swap widget padding and box shadow + + + + + +### RelayKit + +**UI Kit `1.3.17`** — Patch + +- Fix conversion rate formatting bug + +**UI Kit `1.3.16`** — Patch + +- Fix ui overflow on transaction modal + +**UI Kit `1.3.16`** — Patch + +- Allow fetching solana quotes with no custom address + + + + + +### RelayKit + +**UI Kit `1.3.15`** — Patch + +- Fix search by chain displayName + +**UI Kit `1.3.15`** — Patch + +- Update Swapping CTA + +**UI Kit `1.3.14`** — Patch + +- Small token selector bug fixes + + + + + +### RelayKit + +**UI Kit `1.3.13`** — Patch + +- Fix token selector chain filter bug + +**UI Kit `1.3.12`** — Patch + +- Use default token list when chain is filtered + +**UI Kit `1.3.11`** — Patch + +- Chain selector improvements + +**UI Kit `1.3.10`** — Patch + +- Add styling support for undefined tokens in new swap widget + + + + + +### RelayKit + +**SDK `1.2.1`, UI Kit `1.3.9`, Hooks `1.2.4`, Ethers adapter `11.0.1`** — Patch + +- New swap widget ui + + + + + +### RelayKit + +**SDK `1.2.0`** — Minor + +- Better handling of transaction in flight and post transaction ui, handle refund status when polling for transaction success + +**UI Kit `1.3.8`** — Patch + +- Better handling of transaction in flight and post transaction ui, handle refund status when polling for transaction success + + + + + +### RelayKit + +**SDK `1.1.2`** — Patch + +- Add getPrice action + + + + + +### RelayKit + +**UI Kit `1.3.6`** — Patch + +- Fix analytics in TransactionModal + +**UI Kit `1.3.5`** — Patch + +- Update balance display for solana + +**UI Kit `1.3.4`** — Patch + +- Update solana token selector logic + +**UI Kit `1.3.3`** — Patch + +- Prevent switch token button in swap widget when swapping to solana token + + + + + +### RelayKit + +**SDK `1.1.1`** — Patch + +- Update sdk api types + +**UI Kit `1.3.2`** — Patch + +- Reduce swap conversion rate from 5 decimals to 2 decimals + +**UI Kit `1.3.2`** — Patch + +- Link out to to chain block explorer in review quote ux + +**UI Kit `1.3.2`** — Patch + +- Handle 0s time estimate + +**UI Kit `1.3.2`** — Patch + +- Improve custom wallet address modal ux + +**UI Kit `1.3.2`** — Patch + +- Improve tx error messaging + +**UI Kit `1.3.2`** — Patch + +- Reset custom address when switching to token from solana to evm chain + +**UI Kit `1.3.2`** — Patch + +- Price Impact ui tweaks + + + + + +### RelayKit + +**UI Kit `1.3.1`** — Patch + +- Support Solana deposits in Swap widget + + + + + +### RelayKit + +**UI Kit `1.3.0`, Hooks `1.2.0`** — Minor + +- Upgrade /requests api to /requests/v2 + +**UI Kit `1.3.0`** — Patch + +- ChainWidget: Fix copy in SwapRouteSelector + + + + + +### RelayKit + +**SDK `1.1.0`, UI Kit `1.2.0`, Hooks `1.1.0`** — Minor + +- Switch from execute/swap to quote api + +**SDK `1.1.0`** — Patch + +- Drop lodash cloneDeep in favor of native cloning + + + + + +### RelayKit + +**SDK `1.0.13`, UI Kit `1.1.18`** — Patch + +- Add support for iconUrl chain icon override + +**UI Kit `1.1.18`** — Patch + +- Add price impact warning to review quote ux + + + + + +### RelayKit + +**UI Kit `1.1.17`** — Patch + +- Fix safari modal animation flickering bug + +**UI Kit `1.1.17`** — Patch + +- Add defaultExternalChainToken to Chain Widget + + + + + +### RelayKit + +**SDK `1.0.12`** — Patch + +- Add supportsBridging to Relay Chain + +**SDK `1.0.11`** — Patch + +- Sync api types + + + + + +### RelayKit + +**UI Kit `1.1.14`, Hooks `1.0.16`** — Patch + +- Fix chain widget testnet configuration + +**UI Kit `1.1.13`** — Patch + +- Fix swap widget cta bug + +**UI Kit `1.1.12`** — Patch + +- Remove compact formatting from review quote + + + + + +### RelayKit + +**UI Kit `1.1.11`** — Patch + +- Decouple dune balance loading from token selector + + + + + +### RelayKit + +**SDK `1.0.10`, UI Kit `1.1.10`, Hooks `1.0.15`, Ethers adapter `9.0.10`** — Patch + +- Add review quote step, refactor modal renderers + +**SDK `1.0.10`, Hooks `1.0.15`** — Patch + +- Add usePrice hook + +**UI Kit `1.1.10`** — Patch + +- Fix dollar formatting sub 0 and price impact spacing + +**UI Kit `1.1.10`** — Patch + +- Color coding price impact + + + + + +### RelayKit + +**UI Kit `1.1.9`** — Patch + +- Fix dropdown item hover color + + + + + +### RelayKit + +**SDK `1.0.9`, UI Kit `1.1.8`** — Patch + +- Better contextualize actions based on operation + +**SDK `1.0.9`** — Patch + +- Add blockProductionLagging to RelayChain + +**UI Kit `1.1.8`** — Patch + +- Only show fill time on success page if sub 10s + +**UI Kit `1.1.8`** — Patch + +- Export TokenSelector component + + + + + +### RelayKit + +**UI Kit `1.1.7`** — Patch + +- Reset canonical selection on ChainWidget unless supported + +**UI Kit `1.1.6`** — Patch + +- Add txHashes to success and error events + +**UI Kit `1.1.6`** — Patch + +- Add transaction validating event + +**UI Kit `1.1.5`** — Patch + +- Update chain display in token select ui + +**UI Kit `1.1.4`** — Patch + +- Sort token selector by total value usd and balance + + + + + +### RelayKit + +**SDK `1.0.8`** — Patch + +- Fix json error spreading throwing error in executeSteps + +**UI Kit `1.1.3`** — Patch + +- Add success screen for canonical + + + + + +### RelayKit + +**UI Kit `1.1.2`** — Patch + +- ChainWidget Canonical functionality + + + + + +### RelayKit + +**UI Kit `1.1.1`** — Patch + +- Remove log + + + + + +### RelayKit + +**SDK `1.0.7`, UI Kit `1.1.0`, Hooks `1.0.12`** — Patch + +- Add tests and fix global axios instance + +**UI Kit `1.1.0`** — Minor + +- Refactor SwapWidget and add new ChainWidget for deposit/withdraw ux + + + + + +### RelayKit + +**Hooks `1.0.11`** — Patch + +- Fix source getting overriden in useQuote hook + +**Hooks `1.0.10`** — Patch + +- Fix useQuote hook source + + + + + +### RelayKit + +**UI Kit `1.0.14`** — Patch + +- Pass source in widget + + + + + +### RelayKit + +**SDK `1.0.6`, UI Kit `1.0.13`** — Patch + +- Improve post transaction polling to increase speed + +**UI Kit `1.0.13`** — Patch + +- Fix capabilities check when coinbase wallet connected + + + + + +### RelayKit + +**UI Kit `1.0.12`** — Patch + +- Update swap time icon color code + +**UI Kit `1.0.12`** — Patch + +- Hide balance column in TokenSelector when account is not connected + +**UI Kit `1.0.12`** — Patch + +- Disable useCapabilities except for on coinbase wallet + + + + + +### RelayKit + +**SDK `1.0.5`, UI Kit `1.0.11`, Hooks `1.0.8`** — Patch + +- Move wallet chain id check to further in the flow + +**UI Kit `1.0.11`** — Patch + +- Fix button color when token selector is locked + +**UI Kit `1.0.10`** — Patch + +- Add lock token params to swap widget" + +**UI Kit `1.0.9`** — Patch + +- Update powered by reservoir to use logo + +**UI Kit `1.0.9`** — Patch + +- Fix total price impact copy + +**UI Kit `1.0.9`, Hooks `1.0.7`** — Patch + +- Add onSuccess and onError callbacks for SwapWidget + + + + + +### RelayKit + +**SDK `1.0.4`** — Patch + +- Add request to quote to be passed into execute function + +**UI Kit `1.0.8`** — Patch + +- Allow same currency swapping when different recipient + +**UI Kit `1.0.8`** — Patch + +- Fix RelayKitProvider initialization + + + + + +### RelayKit + +**SDK `1.0.3`** — Patch + +- Optimize the way we import lodash + +**UI Kit `1.0.7`** — Patch + +- Add app fee to breakdown ui + +**UI Kit `1.0.7`** — Patch + +- Fix info icon alignment + +**UI Kit `1.0.7`** — Patch + +- Fix input icon position + +**UI Kit `1.0.7`** — Patch + +- Filter token search by configured tokens + +**Hooks `1.0.5`** — Patch + +- Add useRelayConfig hook + + + + + +### RelayKit + +**SDK `1.0.2`, UI Kit `1.0.5`, Hooks `1.0.4`, Ethers adapter `9.0.2`** — Patch + +- Strip layers from generated ui kit stylesheet + +**UI Kit `1.0.6`** — Patch + +- Add app name and fees to RelayKitProvider options + +**UI Kit `1.0.6`** — Patch + +- Add token change callbacks + +**UI Kit `1.0.6`** — Patch + +- Fix theme override selector + +**UI Kit `1.0.4`, Hooks `1.0.3`** — Patch + +- Make tanstack query a peer dependency + +**UI Kit `1.0.3`** — Patch + +- Make wagmi a peer dependency + +**UI Kit `1.0.2`, Hooks `1.0.2`** — Patch + +- Fix esm import errors + + + + + +### RelayKit + +**SDK `1.0.1`, UI Kit `1.0.1`, Hooks `1.0.1`, Ethers adapter `9.0.1`** — Patch + +- Fix deploy script + +**SDK `1.0.0`, UI Kit `1.0.0`, Hooks `1.0.0`** — Major + +- Refactor SDK to simplify, add ui packages + + + + + +### RelayKit + +**SDK `0.7.0`** — Minor + +- Migrate to v2 of call and bridge api + + + + + +### RelayKit + +**SDK `0.6.2`** — Patch + +- Make txs a first class parameter in swap action + +**SDK `0.6.1`** — Patch + +- Support swap + extra call txs + + + + + +### RelayKit + +**SDK `0.6.0`** — Minor + +- Upgrade getSolverCapacity method to use config v2 api + +**SDK `0.6.0`** — Patch + +- Add square icons to Relay Chain + +**SDK `0.6.0`** — Patch + +- Move sdk methods to actions + +**SDK `0.6.0`** — Patch + +- Add progress state + +**SDK `0.6.0`** — Patch + +- Improve typescript fee execute types + + + + + +### RelayKit + +**SDK `0.5.4`** — Patch + +- Post deposit transactions to solver + +**SDK `0.5.4`** — Patch + +- Fix return types for get quote methods + + + + + +### RelayKit + +**SDK `0.5.3`** — Patch + +- Fix internal txhash chain id + + + + + +### RelayKit + +**SDK `0.5.2`** — Patch + +- Await tx receipt for transaction steps + +**SDK `0.5.1`, Ethers adapter `6.0.1`** — Patch + +- Swaps action and getSwapQuote method + + + + + +### RelayKit + +**SDK `0.5.0`** — Minor + +- Swap SDK action + +**SDK `0.5.0`** — Patch + +- Sync types + + + + + +### RelayKit + +**SDK `0.4.0`** — Minor + +- Improve onProgress action callback to be easier to use + +**SDK `0.4.0`** — Patch + +- Update sdk readme + + + + + +### RelayKit + +**SDK `0.3.10`** — Patch + +- Sync api types + add useExactInput parameter to demo + + + + + +### RelayKit + +**SDK `0.3.9`** — Patch + +- Remove requestId from Execute type + + + + + +### RelayKit + +**SDK `0.3.8`** — Patch + +- Skip check object if bridge is canonical + + + + + +### RelayKit + +**SDK `0.3.7`** — Patch + +- Sync api types + + + + + +### RelayKit + +**SDK `0.3.6`** — Patch + +- Sync API types + + + + + +### RelayKit + +**SDK `0.3.5`** — Patch + +- Add currency id to RelayChain type + +**SDK `0.3.4`** — Patch + +- Sync api types + + + + + +### RelayKit + +**SDK `0.3.3`** — Patch + +- Handle inTxHashes for signature step items + + + + + +### RelayKit + +**SDK `0.3.2`** — Patch + +- Add isValidatingSignature to step item + + + + + +### RelayKit + +**SDK `0.3.1`** — Patch + +- Sync api types and add erc20Currencies to RelayChain + + + + + +### RelayKit + +**SDK `0.3.0`** — Minor + +- Update bridge action to use new bridge api + usdc support + +**SDK `0.3.0`** — Patch + +- Handle rainbow wallet bug where txHash of "null" is returned when tx rejected + + + + + +### RelayKit + +**SDK `0.2.5`** — Patch + +- Omit duplicate types from call and bridge action options + +**SDK `0.2.5`** — Patch + +- Return route breakdown in onProgress callback + +**SDK `0.2.5`** — Patch + +- Remove tx intent trigger api call + + + + + +### RelayKit + +**SDK `0.2.4`** — Patch + +- Sync sdk types with api + +**SDK `0.2.4`** — Patch + +- Added readme to sdk + + + + + +### RelayKit + +**SDK `0.2.3`** — Patch + +- Make wallet parameter optional for get quote methods + + + + + +### RelayKit + +**SDK `0.2.2`** — Patch + +- Add ability to pass in a gasLimit for deposit transactions + +**SDK `0.2.2`** — Patch + +- Add currentStep and currentStep item to onProgress callback + + + + + +### RelayKit + +**SDK `0.2.1`** — Patch + +- Add getSolverCapacity, getCallQuote, getBridgeQuote methods + + + + + +### RelayKit + +**SDK `0.2.0`, Ethers adapter `3.0.0`** — Minor + +- Handle mismatched chain prior to execution + +**SDK `0.2.0`** — Patch + +- Add simplified bridge action for convenience + + + + + +### RelayKit + +**SDK `0.1.0`, Ethers adapter `2.0.0`** — Minor + +- Upgrade wagmi, viem and rainbowkit to v2 + +**SDK `0.1.0`** — Patch + +- Automatic source detection + + + + + +### RelayKit + +**SDK `0.0.13`** — Patch + +- Add source attribution parameter to call action + + + + + +### RelayKit + +**SDK `0.0.12`** — Patch + +- Improve chain conversion by using viem chains if available or fallback to api chain data + +**Ethers adapter `1.0.0`** — Major + +- Relay SDK ethers wallet adapter + + diff --git a/docs.json b/docs.json index 08d74414..7ef6717e 100644 --- a/docs.json +++ b/docs.json @@ -299,6 +299,10 @@ ] } ] + }, + { + "tab": "Changelog", + "pages": ["changelog"] } ] }, diff --git a/script.js b/script.js index beff0544..a41c510f 100644 --- a/script.js +++ b/script.js @@ -1,5 +1,6 @@ // ---- GLOBAL STATE ------------------------- let pageObserver = null; +let lastPath = null; const addLearnMore = ( targetId, @@ -128,6 +129,118 @@ function enhanceGetChainsPage() { }); } +// Mintlify's own changelog filters live in the table of contents, which `mode: "center"` +// hides. Instead, the tags it renders under each date become the filter control: click one +// to narrow to that product line, click it again to clear. +// +// Entries are cached at module scope: startPageObserver re-runs this on every DOM mutation, +// and the page carries ~275 of them. +const TAG_LIST = '[data-component-part="update-tag-list"]'; +const TAG = '[data-component-part="update-tag"]'; + +let changelog = null; + +function ancestorsOf(element) { + const chain = []; + for (let node = element; node; node = node.parentElement) chain.push(node); + return chain; +} + +// Each day is the child of the shared timeline container holding one tag list. Deriving the +// container from two entries keeps this off Mintlify's class names without walking the tree +// once per entry. +function collectEntries(tagLists) { + if (tagLists.length < 2) { + return [...tagLists].map((list) => ({ + element: list.parentElement || list, + tags: tagsOf(list), + })); + } + + const first = ancestorsOf(tagLists[0]); + const last = new Set(ancestorsOf(tagLists[tagLists.length - 1])); + const container = first.find((node) => last.has(node)); + + return [...tagLists].map((list) => { + let element = list; + while (element.parentElement && element.parentElement !== container) { + element = element.parentElement; + } + return { element, tags: tagsOf(list) }; + }); +} + +function tagsOf(list) { + return [...list.querySelectorAll(TAG)].map((tag) => tag.textContent.trim()); +} + +function applyChangelogFilter() { + for (const entry of changelog.entries) { + const matches = + changelog.active.size === 0 || + entry.tags.some((tag) => changelog.active.has(tag)); + entry.element.style.display = matches ? "" : "none"; + } + + for (const chip of document.querySelectorAll(TAG)) { + chip.dataset.clActive = String(changelog.active.has(chip.textContent.trim())); + } + + const url = new URL(window.location.href); + if (changelog.active.size) { + url.searchParams.set("tags", [...changelog.active].join(",")); + } else { + url.searchParams.delete("tags"); + } + // replaceState is patched to emit mintlify:navigation — only call it on a real change. + if (url.toString() !== window.location.href) { + history.replaceState(null, "", url); + } +} + +function enhanceChangelogPage() { + const tagLists = document.querySelectorAll(TAG_LIST); + if (!tagLists.length) return; + + if (!changelog || changelog.count !== tagLists.length) { + changelog = { + count: tagLists.length, + entries: collectEntries(tagLists), + active: new Set( + (new URLSearchParams(window.location.search).get("tags") || "") + .split(",") + .filter(Boolean), + ), + }; + } + + for (const chip of document.querySelectorAll(TAG)) { + if (chip.dataset.clBound === "true") continue; + chip.dataset.clBound = "true"; + chip.setAttribute("role", "button"); + chip.setAttribute("tabindex", "0"); + + const toggle = () => { + const tag = chip.textContent.trim(); + if (changelog.active.has(tag)) { + changelog.active.delete(tag); + } else { + changelog.active.add(tag); + } + applyChangelogFilter(); + }; + + chip.addEventListener("click", toggle); + chip.addEventListener("keydown", (event) => { + if (event.key !== "Enter" && event.key !== " ") return; + event.preventDefault(); + toggle(); + }); + } + + applyChangelogFilter(); +} + // ---- MAIN NAVIGATION HANDLER -------------- function onPageChange() { @@ -139,13 +252,23 @@ function onPageChange() { pageObserver = null; } + // Toggling a filter rewrites the query string, which fires this too — only a real page + // change should discard the cached entries and the active filter. + if (path !== lastPath) { + changelog = null; + lastPath = path; + } + if (path.includes("/references/api/get-quote-v2")) { startPageObserver(enhanceGetQuotePage); } else if (path.includes("/references/api/get-chains")) { startPageObserver(enhanceGetChainsPage); + } else if (path.replace(/\/$/, "").endsWith("/changelog")) { + startPageObserver(enhanceChangelogPage); } } + // Run on first page load onPageChange(); diff --git a/scripts/build-changelog.mjs b/scripts/build-changelog.mjs new file mode 100644 index 00000000..66201c25 --- /dev/null +++ b/scripts/build-changelog.mjs @@ -0,0 +1,459 @@ +#!/usr/bin/env node +// Generates changelog.mdx by merging three upstream sources into one date-ordered page: +// API references/api/changelog.mdx in this repo (hand-authored, "## YYYY-MM-DD — title") +// RelayKit packages/*/CHANGELOG.md in relayprotocol/relay-kit, dated by npm publish time +// App .changelog/*.md entries in relayprotocol/relay-client +// +// Upstream repos are shallow-cloned from main (https + GITHUB_TOKEN in CI, ssh locally). +// Set RELAY_KIT_DIR / RELAY_CLIENT_DIR to read an existing checkout's working tree instead. +// +// Usage: node scripts/build-changelog.mjs [--check] + +import { execFileSync } from 'node:child_process' +import { existsSync, mkdtempSync, readdirSync, readFileSync, writeFileSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { dirname, join, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') +const OUT = join(ROOT, 'changelog.mdx') +const API_CHANGELOG = join(ROOT, 'references', 'api', 'changelog.mdx') + +// Unset means the full history of every source — ~275 days is around 5.8k DOM elements and +// 28KB gzipped, so the whole page renders at once. Set it to truncate. +const SINCE = process.env.CHANGELOG_SINCE ?? '0000-00-00' +const CHECK = process.argv.includes('--check') + +const SECTION_ORDER = ['API', 'RelayKit', 'App'] +const TAG_ORDER = ['API', 'SDK', 'UI Kit', 'Hooks', 'Adapters', 'App'] + +// Change-type groups within a day's API and App sections, most consequential first. +// Types not listed here still render, after these, in the order they first appear. +const CHANGE_TYPE_ORDER = ['Breaking', 'Deprecated', 'Behavior change', 'Added', 'Changed', 'Fixed', 'Removed'] + +// `tag` drives the Update's filter tags; `label` is the display name in the RelayKit section. +const RELAY_KIT_PACKAGES = [ + { dir: 'sdk', npm: '@relayprotocol/relay-sdk', tag: 'SDK', label: 'SDK' }, + { dir: 'ui', npm: '@relayprotocol/relay-kit-ui', tag: 'UI Kit', label: 'UI Kit' }, + { dir: 'hooks', npm: '@relayprotocol/relay-kit-hooks', tag: 'Hooks', label: 'Hooks' }, + { + dir: 'relay-bitcoin-wallet-adapter', + npm: '@relayprotocol/relay-bitcoin-wallet-adapter', + tag: 'Adapters', + label: 'Bitcoin adapter' + }, + { + dir: 'relay-ethers-wallet-adapter', + npm: '@relayprotocol/relay-ethers-wallet-adapter', + tag: 'Adapters', + label: 'Ethers adapter' + }, + { + dir: 'relay-lighter-wallet-adapter', + npm: '@relayprotocol/relay-lighter-wallet-adapter', + tag: 'Adapters', + label: 'Lighter adapter' + }, + { + dir: 'relay-svm-wallet-adapter', + npm: '@relayprotocol/relay-svm-wallet-adapter', + tag: 'Adapters', + label: 'SVM adapter' + }, + { + dir: 'relay-ton-wallet-adapter', + npm: '@relayprotocol/relay-ton-wallet-adapter', + tag: 'Adapters', + label: 'TON adapter' + }, + { + dir: 'relay-tron-wallet-adapter', + npm: '@relayprotocol/relay-tron-wallet-adapter', + tag: 'Adapters', + label: 'Tron adapter' + } +] + +const APP_CHANGE_TYPES = { + added: 'Added', + changed: 'Changed', + fixed: 'Fixed', + breaking: 'Breaking', + deprecated: 'Deprecated', + removed: 'Removed' +} + +const warnings = [] + +function warn(message) { + warnings.push(message) + console.warn(`warn: ${message}`) +} + +function resolveRepo(name, envVar) { + const fromEnv = process.env[envVar] + if (fromEnv) { + if (!existsSync(fromEnv)) throw new Error(`${envVar} points at a missing path: ${fromEnv}`) + warn(`${envVar} is set — reading ${name} from the working tree at ${fromEnv}, which may not match main`) + return fromEnv + } + + const token = process.env.GITHUB_TOKEN + const url = token + ? `https://x-access-token:${token}@github.com/relayprotocol/${name}.git` + : `git@github.com:relayprotocol/${name}.git` + const target = join(mkdtempSync(join(tmpdir(), 'relay-changelog-')), name) + execFileSync('git', ['clone', '--quiet', '--depth=1', '--filter=blob:none', url, target], { stdio: 'inherit' }) + return target +} + +async function registryDates(pkg) { + const res = await fetch(`https://registry.npmjs.org/${pkg.replace('/', '%2F')}`) + if (res.status === 404) return {} + if (!res.ok) throw new Error(`npm registry returned ${res.status} for ${pkg}`) + const { time } = await res.json() + return Object.fromEntries( + Object.entries(time) + .filter(([version]) => version !== 'created' && version !== 'modified') + .map(([version, iso]) => [version, iso.slice(0, 10)]) + ) +} + +// Versions before the 2025-08-16 rename were published under @reservoir0x, so dating the +// full CHANGELOG needs both scopes. A version in both keeps its first publish date. +async function npmPublishDates(pkg) { + const [current, legacy] = await Promise.all([ + registryDates(pkg), + registryDates(pkg.replace('@relayprotocol/', '@reservoir0x/')) + ]) + + const dates = { ...legacy } + for (const [version, date] of Object.entries(current)) { + if (!dates[version] || date < dates[version]) dates[version] = date + } + return dates +} + +// "## 2026-08-13 — Solana quote size check returns `SOLANA_TX_TOO_LARGE`" + body until the next ## +function parseApiChangelog(markdown) { + const body = markdown.replace(/^---\n[\s\S]*?\n---\n/, '') + const entries = [] + const pattern = /^## (\d{4}-\d{2}-\d{2})\s*—\s*(.+)$/gm + const matches = [...body.matchAll(pattern)] + + matches.forEach((match, index) => { + const start = match.index + match[0].length + const end = index + 1 < matches.length ? matches[index + 1].index : body.length + // Same-page anchors in the source resolve against the API changelog, not this page. + const entryBody = body.slice(start, end).trim().replaceAll('](#', '](/references/api/changelog#') + entries.push({ + date: match[1], + section: 'API', + tag: 'API', + title: match[2].trim(), + items: splitChangeTypes(entryBody, `API entry "${match[2].trim()}"`) + }) + }) + + return entries +} + +// Bodies are paragraphs led by a bolded change type: "**Added** — ". +// A paragraph without a lead continues the change above it. +function splitChangeTypes(body, source) { + const items = [] + + for (const paragraph of body.split(/\n{2,}/)) { + const lead = paragraph.match(/^\*\*([^*]+)\*\*\s*—\s*([\s\S]+)$/) + if (lead) { + items.push({ type: lead[1].trim(), text: lead[2].trim() }) + continue + } + if (items.length === 0) { + warn(`${source} opens with a paragraph that has no bolded change-type lead — grouped under "Other"`) + items.push({ type: 'Other', text: paragraph.trim() }) + continue + } + items.at(-1).text += `\n\n${paragraph.trim()}` + } + + return items +} + +// Changesets format: "## " → "### Major|Minor|Patch Changes" → "- : " +function parseChangesetChangelog(markdown) { + const releases = [] + const lines = markdown.split('\n') + let release = null + let kind = null + let bullet = null + + const flushBullet = () => { + if (!bullet) return + const text = bullet.join('\n').trimEnd() + if (text && !/^Updated dependencies\b/.test(text)) release.changes.push({ kind, text }) + bullet = null + } + + for (const line of lines) { + const version = line.match(/^## (\d+\.\d+\.\d+.*)$/) + if (version) { + flushBullet() + release = { version: version[1].trim(), changes: [] } + releases.push(release) + kind = null + continue + } + if (!release) continue + + const heading = line.match(/^### (Major|Minor|Patch) Changes$/) + if (heading) { + flushBullet() + kind = heading[1] + continue + } + + if (/^- /.test(line)) { + flushBullet() + bullet = [line.replace(/^- /, '').replace(/^[0-9a-f]{7,40}: /, '')] + continue + } + + // Continuation lines of the current bullet are indented by two spaces. + if (bullet && (line.trim() === '' || /^\s{2,}/.test(line))) { + bullet.push(line.replace(/^ {2}/, '')) + } + } + + flushBullet() + return releases.filter((entry) => entry.changes.length > 0) +} + +function parseAppEntry(filename, raw) { + const match = raw.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/) + if (!match) { + warn(`relay-client .changelog/${filename} has no frontmatter — skipped`) + return null + } + + const meta = {} + for (const line of match[1].split('\n')) { + const field = line.match(/^([A-Za-z_]+):\s*(.*)$/) + if (field) meta[field[1]] = field[2].trim().replace(/^["']|["']$/g, '') + } + + if (!/^\d{4}-\d{2}-\d{2}$/.test(meta.date ?? '')) { + warn(`relay-client .changelog/${filename} has a missing or malformed date — skipped`) + return null + } + + const type = (meta.type ?? 'changed').toLowerCase() + if (!APP_CHANGE_TYPES[type]) { + warn(`relay-client .changelog/${filename} has an unrecognized type "${type}" — skipped`) + return null + } + + const body = match[2].trim() + if (!body) { + warn(`relay-client .changelog/${filename} has an empty body — skipped`) + return null + } + + return { + date: meta.date, + section: 'App', + tag: 'App', + items: [{ type: APP_CHANGE_TYPES[type], text: escapeMdx(body) }] + } +} + +async function collectRelayKitEntries(repoDir) { + const entries = [] + + for (const pkg of RELAY_KIT_PACKAGES) { + const path = join(repoDir, 'packages', pkg.dir, 'CHANGELOG.md') + if (!existsSync(path)) { + warn(`relay-kit is missing packages/${pkg.dir}/CHANGELOG.md — skipped`) + continue + } + + const dates = await npmPublishDates(pkg.npm) + const releases = parseChangesetChangelog(readFileSync(path, 'utf8')) + + // An undated version above the newest dated one is unpublished or a failed publish — + // worth flagging, unlike the pre-rename versions further down the file. + const newestDated = releases.findIndex((release) => dates[release.version]) + const unpublished = newestDated === -1 ? releases : releases.slice(0, newestDated) + if (unpublished.length > 0) { + warn(`${pkg.npm} has no npm publish date for ${unpublished.map((r) => r.version).join(', ')} — skipped`) + } + + for (const release of releases) { + const date = dates[release.version] + if (!date) continue + if (date < SINCE) continue + entries.push({ + date, + section: 'RelayKit', + tag: pkg.tag, + label: pkg.label, + version: release.version, + changes: release.changes + }) + } + } + + return entries +} + +function collectAppEntries(repoDir) { + const dir = join(repoDir, '.changelog') + if (!existsSync(dir)) { + warn('relay-client has no .changelog directory — the App section will be empty') + return [] + } + + return readdirSync(dir) + .filter((file) => file.endsWith('.md') && file !== 'README.md') + .map((file) => parseAppEntry(file, readFileSync(join(dir, file), 'utf8'))) + .filter((entry) => entry !== null && entry.date >= SINCE) +} + +// Upstream text is plain markdown, so a stray `<` or `{` would break the MDX build. +function escapeMdx(text) { + return text + .split(/(`[^`\n]*`)/) + .map((part, index) => (index % 2 === 1 ? part : part.replace(/[<{]/g, '\\$&'))) + .join('') +} + +function indentBullet(text) { + return text + .split('\n') + .map((line, index) => (index === 0 ? `- ${line}` : line.trim() === '' ? '' : ` ${line}`)) + .join('\n') +} + +function compareVersions(a, b) { + const parse = (version) => version.split(/[.-]/).map((part) => (/^\d+$/.test(part) ? Number(part) : part)) + const left = parse(a) + const right = parse(b) + for (let i = 0; i < Math.max(left.length, right.length); i++) { + if (left[i] === right[i]) continue + if (left[i] === undefined) return -1 + if (right[i] === undefined) return 1 + return left[i] < right[i] ? -1 : 1 + } + return 0 +} + +// A day's changes are grouped by change type rather than by source entry, so the +// whole day's additions read together and its behavior changes read together. +function renderTypeGroups(entries) { + const groups = new Map() + for (const item of entries.flatMap((entry) => entry.items)) { + if (!groups.has(item.type)) groups.set(item.type, []) + groups.get(item.type).push(item.text) + } + + const known = CHANGE_TYPE_ORDER.filter((type) => groups.has(type)) + const rest = [...groups.keys()].filter((type) => !CHANGE_TYPE_ORDER.includes(type)) + + return [...known, ...rest] + .map((type) => { + const bullets = groups.get(type).map(indentBullet) + return `**${type}**\n\n${bullets.join('\n')}` + }) + .join('\n\n') +} + +// One changeset lands in every package it touches, so the same text repeats across +// CHANGELOGs on the same day. Collapse it into a single item naming each package. +function renderRelayKit(entries) { + const groups = new Map() + + for (const entry of entries) { + for (const change of entry.changes) { + const key = `${change.kind}${change.text}` + if (!groups.has(key)) groups.set(key, { kind: change.kind, text: change.text, packages: new Map() }) + // A package can publish twice in a day; credit the newest version carrying the change. + const seen = groups.get(key).packages.get(entry.label) + if (!seen || compareVersions(entry.version, seen) > 0) groups.get(key).packages.set(entry.label, entry.version) + } + } + + return [...groups.values()] + .map((group) => { + const packages = [...group.packages].map(([label, version]) => `${label} \`${version}\``) + const body = indentBullet(escapeMdx(group.text)) + return `**${packages.join(', ')}** — ${group.kind}\n\n${body}` + }) + .join('\n\n') +} + +function renderPage(entries) { + const byDate = new Map() + for (const entry of entries) { + if (!byDate.has(entry.date)) byDate.set(entry.date, []) + byDate.get(entry.date).push(entry) + } + + const days = [...byDate.keys()].sort().reverse() + const blocks = days.map((date) => { + const dayEntries = byDate.get(date) + const sections = SECTION_ORDER.filter((section) => dayEntries.some((entry) => entry.section === section)).map( + (section) => { + const scoped = dayEntries.filter((entry) => entry.section === section) + if (section === 'RelayKit') return `### RelayKit\n\n${renderRelayKit(scoped)}` + return `### ${section}\n\n${renderTypeGroups(scoped)}` + } + ) + + // Mintlify renders these tags under the date; script.js makes them the filter control. + const dayTags = new Set(dayEntries.map((entry) => entry.tag)) + const tagProp = TAG_ORDER.filter((tag) => dayTags.has(tag)) + .map((tag) => `"${tag}"`) + .join(', ') + return `\n\n${sections.join('\n\n')}\n\n` + }) + + const frontmatter = [ + '---', + 'title: "Changelog"', + 'description: "Record of new endpoints, breaking changes, deprecations, and default-behavior changes across Relay products"', + 'rss: true', + // The tab holds this page alone, so drop the one-item sidebar and the TOC. + 'mode: "center"', + '---', + '', + '{/* Generated by scripts/build-changelog.mjs — do not edit by hand. */}', + '' + ].join('\n') + + return `${frontmatter}\n${blocks.join('\n\n')}\n` +} + +const relayKitDir = resolveRepo('relay-kit', 'RELAY_KIT_DIR', ['relay-kit', 'relay-sdk']) +const relayClientDir = resolveRepo('relay-client', 'RELAY_CLIENT_DIR') + +const entries = [ + ...parseApiChangelog(readFileSync(API_CHANGELOG, 'utf8')).filter((entry) => entry.date >= SINCE), + ...(await collectRelayKitEntries(relayKitDir)), + ...collectAppEntries(relayClientDir) +] + +const page = renderPage(entries) + +if (CHECK) { + const current = existsSync(OUT) ? readFileSync(OUT, 'utf8') : '' + if (current !== page) { + console.error('changelog.mdx is out of date — run: node scripts/build-changelog.mjs') + process.exit(1) + } + console.log('changelog.mdx is up to date') +} else { + writeFileSync(OUT, page) + console.log(`wrote ${OUT} — ${entries.length} entries across ${new Set(entries.map((e) => e.date)).size} days`) +} + +if (warnings.length > 0) console.warn(`${warnings.length} warning(s)`) diff --git a/style.css b/style.css index 5f24e532..2db3c910 100644 --- a/style.css +++ b/style.css @@ -388,3 +388,41 @@ .callout .prose > :first-child { margin-top: 0; } + +/* Changelog tag filters — Mintlify renders these tags under each date; script.js makes + them the filter control (its own filters live in the hidden table of contents). */ +[data-component-part="update-tag"] { + cursor: pointer; + padding: 2px 8px; + border: 1px solid var(--gray-200); + border-radius: 9999px; + transition: + border-color 0.15s, + color 0.15s, + background-color 0.15s; +} + +[data-component-part="update-tag"]:hover, +[data-component-part="update-tag"][data-cl-active="true"] { + border-color: rgb(var(--primary) / var(--tw-text-opacity, 1)); + color: rgb(var(--primary) / var(--tw-text-opacity, 1)); +} + +[data-component-part="update-tag"][data-cl-active="true"] { + background: rgb(var(--primary) / 0.08); +} + +/* --primary is too dark to read on a dark background; the light tint takes over. */ +.dark [data-component-part="update-tag"] { + border-color: rgb(55 65 81); +} + +.dark [data-component-part="update-tag"]:hover, +.dark [data-component-part="update-tag"][data-cl-active="true"] { + border-color: rgb(var(--primary-light)); + color: rgb(var(--primary-light)); +} + +.dark [data-component-part="update-tag"][data-cl-active="true"] { + background: rgb(var(--primary-light) / 0.14); +} From 6cd12488aab85c9621dd8565e3036265fba19b50 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 14 Aug 2026 16:19:14 -0400 Subject: [PATCH 2/5] Omit canary releases and fix some review comments --- .github/workflows/sync-changelog.yml | 13 ++- AGENTS.md | 9 ++- changelog.mdx | 40 +-------- script.js | 31 ++++--- scripts/build-changelog.mjs | 116 +++++++++++++++++++++------ 5 files changed, 131 insertions(+), 78 deletions(-) diff --git a/.github/workflows/sync-changelog.yml b/.github/workflows/sync-changelog.yml index 7467bdef..711ecc2c 100644 --- a/.github/workflows/sync-changelog.yml +++ b/.github/workflows/sync-changelog.yml @@ -33,6 +33,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.CHANGELOG_SOURCES_TOKEN }} run: node scripts/build-changelog.mjs + # Nothing serialises this against humans merging PRs, so a push that lost the race is + # rebased and retried rather than failing the run and leaving the page stale. - name: Commit if changed run: | if git diff --quiet -- changelog.mdx; then @@ -43,4 +45,13 @@ jobs: git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git add changelog.mdx git commit -m "docs: sync changelog" - git push + + for attempt in 1 2 3; do + if git push; then + exit 0 + fi + echo "push rejected (attempt $attempt) — rebasing onto origin/main" + git pull --rebase origin main + done + echo "::error::could not push the changelog after 3 attempts" + exit 1 diff --git a/AGENTS.md b/AGENTS.md index 99eb7dea..aa6ce0c8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -310,10 +310,13 @@ The `## YYYY-MM-DD — ` heading shape is parsed by `scripts/build-chan - Entry text is reproduced verbatim from its source. Fix wording upstream, not here. - **API and App changes group by change type across the whole day** — one `**Breaking**` / `**Deprecated**` / `**Behavior change**` / `**Added**` list per day, not per source entry, so a day reads as "here is what was added, here is what changed". Ordering comes from `CHANGE_TYPE_ORDER`; a type that is not listed there still renders, after the known ones. Source entry titles are dropped, and an API paragraph with no bolded type lead is folded into the change above it. - RelayKit versions are dated by npm publish time. Changeset bullets that only say "Updated dependencies" are dropped, and one changeset spanning several packages collapses into a single item naming each package. -- **Filtering is custom.** Mintlify's own changelog filters render in the table of contents, which `mode: "center"` hides. Instead, `enhanceChangelogPage()` in `script.js` binds the tags Mintlify already renders under each date (`[data-component-part="update-tag"]`, from the `tags={[…]}` prop): click one to narrow to that product line, click it again to clear, several tags OR together, and the selection round-trips through `?tags=`. `style.css` gives those spans their chip look and active state. Filtering and the scroll reveal share one visibility pass, so a filter always shows a full batch of matching days rather than whatever happened to be revealed. Both hang off Mintlify's `data-component-part` attributes — if an upgrade renames them, the filter and the reveal silently stop working, so re-check them after a Mintlify bump. -- **The page carries the full history** (currently back to 2024-02-05) and renders all of it. At ~275 days that is roughly 5.8k DOM elements and 28KB gzipped, so there is nothing to gain from paginating or lazily revealing it — and hiding entries would break browser find, which is the main way to locate something on a page with no table of contents. Revisit only if it grows several times over; splitting by year into separate pages would beat client-side fetching, which forfeits RSS, search indexing, and the contextual copy/markdown menu. Set `CHANGELOG_SINCE` to truncate. +- **Filtering is custom.** Mintlify's own changelog filters render in the table of contents, which `mode: "center"` hides. Instead, `enhanceChangelogPage()` in `script.js` binds the tags Mintlify already renders under each date (`[data-component-part="update-tag"]`, from the `tags={[…]}` prop): click one to narrow to that product line, click it again to clear, several tags OR together, and the selection round-trips through `?tags=`. `style.css` gives those spans their chip look and active state. Both hang off Mintlify's `data-component-part` attributes — verified present on a deployed build, but if an upgrade renames them the filter silently stops working, so re-check it after a Mintlify bump. +- **The page carries the full history** (currently back to 2024-02-05) and renders all of it. Measured on a deployed build at 272 days: 1.8MB of HTML, **113KB gzipped**, **~10.4k DOM elements** — heavier than a normal docs page, and worth re-measuring as it grows. Hiding entries client-side is not the lever: it saves no bytes, and it breaks browser find, which is how readers locate things on a page with no table of contents. If the weight becomes a problem, split by year into real pages (`changelog/2026`), which the generator can emit from the same grouping — client-side fetching of markdown or JSON forfeits RSS, Mintlify's search index, the contextual copy/markdown menu, and crawler visibility. Set `CHANGELOG_SINCE` to truncate. +- Prerelease versions never reach the page. relay-kit publishes `0.0.0-canary-*` builds to npm, and a reader cannot install one. +- Cross-references between API entries resolve to `#YYYY-MM-DD`, the id Mintlify gives each ``. - RelayKit dates come from both npm scopes — `@relayprotocol` for anything after the 2025-08-16 rename, `@reservoir0x` before it — because a version dated by neither cannot be placed on the page at all. -- Regenerate locally with `node scripts/build-changelog.mjs`; `--check` fails when the committed page is stale. +- Regenerate locally with `node scripts/build-changelog.mjs`. `--check` fails when the committed page differs from a fresh build; it is a **local** command, not a CI gate — it clones upstream `main` and queries npm live, so it would fail on any PR that happens to be open when relay-kit publishes. Consequence to expect: a PR that edits `references/api/changelog.mdx` gets a preview without that entry, which appears after merge at the next `:17`. +- A failed npm lookup aborts the run rather than emitting a page missing that package — an hourly job that commits its output must not be able to delete history on a transient 502. --- diff --git a/changelog.mdx b/changelog.mdx index ba34094f..f95c776b 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -27,8 +27,8 @@ mode: "center" **Behavior change** -- `POST /quote`, `POST /quote/v2`, and `POST /price`: same-chain Solana quotes now reject at quote time when the compiled deposit transaction would exceed 1232 bytes, matching the existing behavior for Solana-origin cross-chain quotes (see the [2026-05-29 entry](/references/api/changelog#2026-05-29-oversized-solana-aggregator-quotes-reject-at-quote-time)). Previously same-chain oversized quotes returned `200` with steps the wallet could not serialize. -- `POST /quote`, `POST /quote/v2`, and `POST /price`: the Solana deposit-transaction size gate now enforces the raw **1232-byte** wire limit. Quotes between 1173 and 1232 bytes — valid on the wire as returned — are now accepted, and the previously reserved 60-byte compute-budget headroom is advisory. Clients that prepend compute-budget instructions at send time are responsible for checking their remaining room against the returned steps. This reverses the [2026-07-09 change](/references/api/changelog#2026-07-09-solana-quote-size-check-reserves-compute-budget-headroom) that had cut the effective quote-time limit to 1172 bytes. +- `POST /quote`, `POST /quote/v2`, and `POST /price`: same-chain Solana quotes now reject at quote time when the compiled deposit transaction would exceed 1232 bytes, matching the existing behavior for Solana-origin cross-chain quotes (see the [2026-05-29 entry](#2026-05-29)). Previously same-chain oversized quotes returned `200` with steps the wallet could not serialize. +- `POST /quote`, `POST /quote/v2`, and `POST /price`: the Solana deposit-transaction size gate now enforces the raw **1232-byte** wire limit. Quotes between 1173 and 1232 bytes — valid on the wire as returned — are now accepted, and the previously reserved 60-byte compute-budget headroom is advisory. Clients that prepend compute-budget instructions at send time are responsible for checking their remaining room against the returned steps. This reverses the [2026-07-09 change](#2026-07-09) that had cut the effective quote-time limit to 1172 bytes. **Added** @@ -1327,20 +1327,6 @@ mode: "center" - - -### RelayKit - -**SDK `0.0.0-canary-20250822183549`, UI Kit `0.0.0-canary-20250822183549`, Hooks `0.0.0-canary-20250822183549`, Bitcoin adapter `0.0.0-canary-20250822183549`, Ethers adapter `0.0.0-canary-20250822183549`, SVM adapter `0.0.0-canary-20250822183549`** — Patch - -- Fix Unverified modal buttons - -**SDK `0.0.0-canary-20250822181909`, UI Kit `0.0.0-canary-20250822181909`, Hooks `0.0.0-canary-20250822181909`, Bitcoin adapter `0.0.0-canary-20250822181909`, Ethers adapter `0.0.0-canary-20250822181909`, SVM adapter `0.0.0-canary-20250822181909`** — Patch - -- Implement final share link - - - ### RelayKit @@ -1351,14 +1337,10 @@ mode: "center" - + ### RelayKit -**SDK `0.0.0-canary-20250820191554`, UI Kit `0.0.0-canary-20250820191554`, Hooks `0.0.0-canary-20250820191554`, Bitcoin adapter `0.0.0-canary-20250820191554`, Ethers adapter `0.0.0-canary-20250820191554`, SVM adapter `0.0.0-canary-20250820191554`** — Patch - -- Sync with main branch - **SDK `2.4.1`, UI Kit `2.17.4`, Hooks `1.12.1`** — Patch - Add gas sponsorship functionality @@ -1385,30 +1367,16 @@ mode: "center" - + ### RelayKit -**SDK `0.0.0-canary-20250814020954`, UI Kit `0.0.0-canary-20250814020954`, Hooks `0.0.0-canary-20250814020954`, Bitcoin adapter `0.0.0-canary-20250814020954`, Ethers adapter `0.0.0-canary-20250814020954`, SVM adapter `0.0.0-canary-20250814020954`** — Patch - -- Rebuild canary build - **UI Kit `2.17.1`** — Patch - Disable protocol v2 on solana - - -### RelayKit - -**SDK `0.0.0-canary-20250813132716`, UI Kit `0.0.0-canary-20250813132716`** — Minor - -- Update theme to better match Relay brand - - - ### RelayKit diff --git a/script.js b/script.js index a41c510f..e56624e0 100644 --- a/script.js +++ b/script.js @@ -150,21 +150,18 @@ function ancestorsOf(element) { // container from two entries keeps this off Mintlify's class names without walking the tree // once per entry. function collectEntries(tagLists) { - if (tagLists.length < 2) { - return [...tagLists].map((list) => ({ - element: list.parentElement || list, - tags: tagsOf(list), - })); - } - const first = ancestorsOf(tagLists[0]); const last = new Set(ancestorsOf(tagLists[tagLists.length - 1])); const container = first.find((node) => last.has(node)); return [...tagLists].map((list) => { let element = list; - while (element.parentElement && element.parentElement !== container) { - element = element.parentElement; + // Climbing without a container to stop at would run to , and hiding that blanks + // the page — so fall back to filtering nothing. + if (container && container !== list && container.contains(list)) { + while (element.parentElement && element.parentElement !== container) { + element = element.parentElement; + } } return { element, tags: tagsOf(list) }; }); @@ -183,7 +180,10 @@ function applyChangelogFilter() { } for (const chip of document.querySelectorAll(TAG)) { - chip.dataset.clActive = String(changelog.active.has(chip.textContent.trim())); + const isActive = changelog.active.has(chip.textContent.trim()); + chip.dataset.clActive = String(isActive); + // The active state is otherwise only conveyed by colour. + chip.setAttribute("aria-pressed", String(isActive)); } const url = new URL(window.location.href); @@ -200,9 +200,16 @@ function applyChangelogFilter() { function enhanceChangelogPage() { const tagLists = document.querySelectorAll(TAG_LIST); - if (!tagLists.length) return; + // Below two entries there is no timeline container to derive and nothing worth filtering. + if (tagLists.length < 2) return; - if (!changelog || changelog.count !== tagLists.length) { + // A re-mount can swap every node while leaving the count intact, which would leave the + // cache pointing at detached elements and filtering silently doing nothing. + if ( + !changelog || + changelog.count !== tagLists.length || + !changelog.entries[0].element.isConnected + ) { changelog = { count: tagLists.length, entries: collectEntries(tagLists), diff --git a/scripts/build-changelog.mjs b/scripts/build-changelog.mjs index 66201c25..5a47adcf 100644 --- a/scripts/build-changelog.mjs +++ b/scripts/build-changelog.mjs @@ -10,7 +10,7 @@ // Usage: node scripts/build-changelog.mjs [--check] import { execFileSync } from 'node:child_process' -import { existsSync, mkdtempSync, readdirSync, readFileSync, writeFileSync } from 'node:fs' +import { existsSync, mkdtempSync, readdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs' import { tmpdir } from 'node:os' import { dirname, join, resolve } from 'node:path' import { fileURLToPath } from 'node:url' @@ -19,8 +19,8 @@ const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..') const OUT = join(ROOT, 'changelog.mdx') const API_CHANGELOG = join(ROOT, 'references', 'api', 'changelog.mdx') -// Unset means the full history of every source — ~275 days is around 5.8k DOM elements and -// 28KB gzipped, so the whole page renders at once. Set it to truncate. +// Unset means the full history of every source. At ~272 days the deployed page is 113KB +// gzipped and ~10.4k DOM elements; see AGENTS.md §4.6 before letting it grow much further. const SINCE = process.env.CHANGELOG_SINCE ?? '0000-00-00' const CHECK = process.argv.includes('--check') @@ -84,6 +84,11 @@ const APP_CHANGE_TYPES = { } const warnings = [] +const clones = [] + +process.on('exit', () => { + for (const dir of clones) rmSync(dir, { recursive: true, force: true }) +}) function warn(message) { warnings.push(message) @@ -99,24 +104,44 @@ function resolveRepo(name, envVar) { } const token = process.env.GITHUB_TOKEN + if (!token && process.env.CI) { + throw new Error(`GITHUB_TOKEN is empty — CI cannot clone ${name} over ssh. Check CHANGELOG_SOURCES_TOKEN.`) + } + const url = token ? `https://x-access-token:${token}@github.com/relayprotocol/${name}.git` : `git@github.com:relayprotocol/${name}.git` - const target = join(mkdtempSync(join(tmpdir(), 'relay-changelog-')), name) + const parent = mkdtempSync(join(tmpdir(), 'relay-changelog-')) + clones.push(parent) + const target = join(parent, name) execFileSync('git', ['clone', '--quiet', '--depth=1', '--filter=blob:none', url, target], { stdio: 'inherit' }) return target } +// A failed lookup must not fall through to "this package has no releases" — that would +// delete its history from the page and commit the deletion. Retry, then give up loudly. async function registryDates(pkg) { - const res = await fetch(`https://registry.npmjs.org/${pkg.replace('/', '%2F')}`) - if (res.status === 404) return {} - if (!res.ok) throw new Error(`npm registry returned ${res.status} for ${pkg}`) - const { time } = await res.json() - return Object.fromEntries( - Object.entries(time) - .filter(([version]) => version !== 'created' && version !== 'modified') - .map(([version, iso]) => [version, iso.slice(0, 10)]) - ) + const url = `https://registry.npmjs.org/${pkg.replace('/', '%2F')}` + + for (let attempt = 1; ; attempt++) { + try { + const res = await fetch(url) + if (res.status === 404) return {} + if (!res.ok) throw new Error(`HTTP ${res.status}`) + + const { time } = await res.json() + if (!time) throw new Error('response has no "time" field') + + return Object.fromEntries( + Object.entries(time) + .filter(([version]) => version !== 'created' && version !== 'modified') + .map(([version, iso]) => [version, iso.slice(0, 10)]) + ) + } catch (error) { + if (attempt === 3) throw new Error(`npm registry lookup failed for ${pkg}: ${error.message}`) + await new Promise((resolve) => setTimeout(resolve, attempt * 500)) + } + } } // Versions before the 2025-08-16 rename were published under @reservoir0x, so dating the @@ -144,8 +169,12 @@ function parseApiChangelog(markdown) { matches.forEach((match, index) => { const start = match.index + match[0].length const end = index + 1 < matches.length ? matches[index + 1].index : body.length - // Same-page anchors in the source resolve against the API changelog, not this page. - const entryBody = body.slice(start, end).trim().replaceAll('](#', '](/references/api/changelog#') + // Source anchors are "#-"; Mintlify gives each Update an id of just the + // date, so trimming the slug keeps cross-references on this page. + const entryBody = body + .slice(start, end) + .trim() + .replace(/\]\(#(\d{4}-\d{2}-\d{2})[^)]*\)/g, '](#$1)') entries.push({ date: match[1], section: 'API', @@ -278,7 +307,15 @@ async function collectRelayKitEntries(repoDir) { } const dates = await npmPublishDates(pkg.npm) - const releases = parseChangesetChangelog(readFileSync(path, 'utf8')) + // Canary builds (0.0.0-canary-*) are published to npm but are not releases a reader + // could install, so no prerelease version reaches the page. + const releases = parseChangesetChangelog(readFileSync(path, 'utf8')).filter( + (release) => !release.version.includes('-') + ) + + if (releases.length > 0 && Object.keys(dates).length === 0) { + throw new Error(`no npm publish dates for ${pkg.npm} — refusing to drop its history from the page`) + } // An undated version above the newest dated one is unpublished or a failed publish — // worth flagging, unlike the pre-rename versions further down the file. @@ -319,11 +356,19 @@ function collectAppEntries(repoDir) { .filter((entry) => entry !== null && entry.date >= SINCE) } -// Upstream text is plain markdown, so a stray `<` or `{` would break the MDX build. +// Upstream text is plain markdown, so a stray `<` or `{` would break the MDX build. Fenced +// blocks are split off first — escaping inside one renders the backslashes literally. function escapeMdx(text) { return text - .split(/(`[^`\n]*`)/) - .map((part, index) => (index % 2 === 1 ? part : part.replace(/[<{]/g, '\\$&'))) + .split(/(```[\s\S]*?```)/) + .map((block, blockIndex) => + blockIndex % 2 === 1 + ? block + : block + .split(/(`[^`\n]*`)/) + .map((part, index) => (index % 2 === 1 ? part : part.replace(/[<{]/g, '\\$&'))) + .join('') + ) .join('') } @@ -335,14 +380,33 @@ function indentBullet(text) { } function compareVersions(a, b) { - const parse = (version) => version.split(/[.-]/).map((part) => (/^\d+$/.test(part) ? Number(part) : part)) + const parse = (version) => { + const [core, prerelease] = version.split('-', 2) + return { + core: core.split('.').map(Number), + // Absent prerelease outranks any prerelease: 1.2.0 > 1.2.0-beta.1. + prerelease: prerelease ? prerelease.split('.').map((part) => (/^\d+$/.test(part) ? Number(part) : part)) : null + } + } + const left = parse(a) const right = parse(b) - for (let i = 0; i < Math.max(left.length, right.length); i++) { - if (left[i] === right[i]) continue - if (left[i] === undefined) return -1 - if (right[i] === undefined) return 1 - return left[i] < right[i] ? -1 : 1 + + for (let i = 0; i < 3; i++) { + if (left.core[i] !== right.core[i]) return left.core[i] < right.core[i] ? -1 : 1 + } + + if (!left.prerelease && !right.prerelease) return 0 + if (!left.prerelease) return 1 + if (!right.prerelease) return -1 + + for (let i = 0; i < Math.max(left.prerelease.length, right.prerelease.length); i++) { + const l = left.prerelease[i] + const r = right.prerelease[i] + if (l === r) continue + if (l === undefined) return -1 + if (r === undefined) return 1 + return l < r ? -1 : 1 } return 0 } @@ -433,7 +497,7 @@ function renderPage(entries) { return `${frontmatter}\n${blocks.join('\n\n')}\n` } -const relayKitDir = resolveRepo('relay-kit', 'RELAY_KIT_DIR', ['relay-kit', 'relay-sdk']) +const relayKitDir = resolveRepo('relay-kit', 'RELAY_KIT_DIR') const relayClientDir = resolveRepo('relay-client', 'RELAY_CLIENT_DIR') const entries = [ From fe6d3870a67c5fb03aac77565d51acd54306e9bc Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 14 Aug 2026 16:55:52 -0400 Subject: [PATCH 3/5] Add commit links to public repos --- .github/workflows/sync-changelog.yml | 6 +- AGENTS.md | 1 + changelog.mdx | 1154 +++++++++++++------------- scripts/build-changelog.mjs | 36 +- 4 files changed, 610 insertions(+), 587 deletions(-) diff --git a/.github/workflows/sync-changelog.yml b/.github/workflows/sync-changelog.yml index 711ecc2c..601949c9 100644 --- a/.github/workflows/sync-changelog.yml +++ b/.github/workflows/sync-changelog.yml @@ -21,9 +21,11 @@ jobs: sync: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + # Pinned by commit SHA, not tag: this job holds contents:write and pushes to main, so + # a retagged action would be a direct write path into the repo. + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: 22 diff --git a/AGENTS.md b/AGENTS.md index aa6ce0c8..9a92af29 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -310,6 +310,7 @@ The `## YYYY-MM-DD — ` heading shape is parsed by `scripts/build-chan - Entry text is reproduced verbatim from its source. Fix wording upstream, not here. - **API and App changes group by change type across the whole day** — one `**Breaking**` / `**Deprecated**` / `**Behavior change**` / `**Added**` list per day, not per source entry, so a day reads as "here is what was added, here is what changed". Ordering comes from `CHANGE_TYPE_ORDER`; a type that is not listed there still renders, after the known ones. Source entry titles are dropped, and an API paragraph with no bolded type lead is folded into the change above it. - RelayKit versions are dated by npm publish time. Changeset bullets that only say "Updated dependencies" are dropped, and one changeset spanning several packages collapses into a single item naming each package. +- **RelayKit entries link to their commit.** relay-kit is public and its changesets config (`@changesets/cli/changelog`) prefixes each bullet with the commit hash, so the generator turns that into a link on the summary line. The commit page names the originating PR, so this covers both without any API lookups. Bullets written without a hash simply get no link. Nothing links for the API or App lines — `solver` and `relay-client` are private. - **Filtering is custom.** Mintlify's own changelog filters render in the table of contents, which `mode: "center"` hides. Instead, `enhanceChangelogPage()` in `script.js` binds the tags Mintlify already renders under each date (`[data-component-part="update-tag"]`, from the `tags={[…]}` prop): click one to narrow to that product line, click it again to clear, several tags OR together, and the selection round-trips through `?tags=`. `style.css` gives those spans their chip look and active state. Both hang off Mintlify's `data-component-part` attributes — verified present on a deployed build, but if an upgrade renames them the filter silently stops working, so re-check it after a Mintlify bump. - **The page carries the full history** (currently back to 2024-02-05) and renders all of it. Measured on a deployed build at 272 days: 1.8MB of HTML, **113KB gzipped**, **~10.4k DOM elements** — heavier than a normal docs page, and worth re-measuring as it grows. Hiding entries client-side is not the lever: it saves no bytes, and it breaks browser find, which is how readers locate things on a page with no table of contents. If the weight becomes a problem, split by year into real pages (`changelog/2026`), which the generator can emit from the same grouping — client-side fetching of markdown or JSON forfeits RSS, Mintlify's search index, the contextual copy/markdown menu, and crawler visibility. Set `CHANGELOG_SINCE` to truncate. - Prerelease versions never reach the page. relay-kit publishes `0.0.0-canary-*` builds to npm, and a reader cannot install one. diff --git a/changelog.mdx b/changelog.mdx index f95c776b..82d9d61d 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -13,11 +13,11 @@ mode: "center" **SDK `7.0.2`** — Patch -- Add XRP dead address and include the Tron, Zero and XRP dead addresses in isDeadAddress +- Add XRP dead address and include the Tron, Zero and XRP dead addresses in isDeadAddress ([`e9dbac1`](https://github.com/relayprotocol/relay-kit/commit/e9dbac1)) **UI Kit `11.0.3`** — Patch -- Add XRP vm support for destination transactions +- Add XRP vm support for destination transactions ([`e9dbac1`](https://github.com/relayprotocol/relay-kit/commit/e9dbac1)) @@ -75,11 +75,11 @@ mode: "center" **SDK `7.0.1`** — Patch -- Sync SDK types +- Sync SDK types ([`fb843c4`](https://github.com/relayprotocol/relay-kit/commit/fb843c4)) **UI Kit `11.0.2`** — Patch -- Add Robinhood Chain, Linea, Monad, Soneium, MegaETH, and Tempo to Uniswap Wallet's supported chains +- Add Robinhood Chain, Linea, Monad, Soneium, MegaETH, and Tempo to Uniswap Wallet's supported chains ([`78bf766`](https://github.com/relayprotocol/relay-kit/commit/78bf766)) @@ -95,7 +95,7 @@ mode: "center" **UI Kit `11.0.1`** — Patch -- Normalize Uniswap Wallet connector name so its chain restrictions apply +- Normalize Uniswap Wallet connector name so its chain restrictions apply ([`4ed6905`](https://github.com/relayprotocol/relay-kit/commit/4ed6905)) @@ -127,7 +127,7 @@ mode: "center" **UI Kit `11.0.0`** — Major -- Migrate wallet balance fetching from Dune (sunset) to Codex +- Migrate wallet balance fetching from Dune (sunset) to Codex ([`e426f05`](https://github.com/relayprotocol/relay-kit/commit/e426f05)) Breaking changes: @@ -145,7 +145,7 @@ mode: "center" **UI Kit `11.0.0`** — Patch -- Restrict Robinhood Wallet to its supported chains +- Restrict Robinhood Wallet to its supported chains ([`d8c713c`](https://github.com/relayprotocol/relay-kit/commit/d8c713c)) @@ -169,15 +169,15 @@ mode: "center" **UI Kit `10.0.1`** — Patch -- Complete the RefundReason error mapping. Every failReason code in the API schema now resolves to a specific user-facing explanation instead of falling back to the generic unknown-issue message, matching the copy used on relay.link and the developer dashboard. +- Complete the RefundReason error mapping. Every failReason code in the API schema now resolves to a specific user-facing explanation instead of falling back to the generic unknown-issue message, matching the copy used on relay.link and the developer dashboard. ([`f1a9fd8`](https://github.com/relayprotocol/relay-kit/commit/f1a9fd8)) **UI Kit `10.0.1`** — Patch -- Gracefully handle broken token/chain logo images. ChainTokenIcon now falls back to the token symbol avatar and ChainIcon hides itself when the logo fails to load, instead of rendering a broken-image placeholder. +- Gracefully handle broken token/chain logo images. ChainTokenIcon now falls back to the token symbol avatar and ChainIcon hides itself when the logo fails to load, instead of rendering a broken-image placeholder. ([`628ad74`](https://github.com/relayprotocol/relay-kit/commit/628ad74)) **UI Kit `10.0.1`, Hooks `4.0.1`** — Patch -- fix: block token contract addresses in recipient field +- fix: block token contract addresses in recipient field ([`23e4ecf`](https://github.com/relayprotocol/relay-kit/commit/23e4ecf)) @@ -206,7 +206,7 @@ mode: "center" **SDK `7.0.0`, UI Kit `10.0.0`, Hooks `4.0.0`** — Major -- Migrate the Requests API from v2 to v3 (breaking). +- Migrate the Requests API from v2 to v3 (breaking). ([`07dda45`](https://github.com/relayprotocol/relay-kit/commit/07dda45)) - `useRequests` / `queryRequests` and `useDepositAddressStatus` now call `GET /requests/v3` and return the v3 response shape. - `GET /requests/v3` requires a Relay API key (`x-api-key`). Since these hooks run client-side, the key is not sent from Relay Kit — you must point `baseApiUrl` at a proxy that injects `x-api-key` server-side. This is now required to use the UI kit. See the package README. @@ -217,7 +217,7 @@ mode: "center" **UI Kit `10.0.0`** — Patch -- fix: update wallet rejection errors in swap widget +- fix: update wallet rejection errors in swap widget ([`b4a3f7c`](https://github.com/relayprotocol/relay-kit/commit/b4a3f7c)) @@ -227,7 +227,7 @@ mode: "center" **UI Kit `9.1.4`** — Patch -- Block base wallet from receiving / sending on rh chain +- Block base wallet from receiving / sending on rh chain ([`a29e409`](https://github.com/relayprotocol/relay-kit/commit/a29e409)) @@ -247,11 +247,11 @@ mode: "center" **SDK `6.1.3`, UI Kit `9.1.3`, Hooks `3.0.24`, Bitcoin adapter `19.0.3`, Ethers adapter `31.0.3`, Lighter adapter `2.0.3`, SVM adapter `20.0.3`, TON adapter `2.0.3`, Tron adapter `8.0.3`** — Patch -- Embed sourcesContent in published sourcemaps so they resolve without the unpublished src directory +- Embed sourcesContent in published sourcemaps so they resolve without the unpublished src directory ([`0020895`](https://github.com/relayprotocol/relay-kit/commit/0020895)) **UI Kit `9.1.3`** — Patch -- Hide non-deposit-address chains (incl. TON) from origin selector unless VM has wallet support +- Hide non-deposit-address chains (incl. TON) from origin selector unless VM has wallet support ([`4ac9782`](https://github.com/relayprotocol/relay-kit/commit/4ac9782)) @@ -275,11 +275,11 @@ mode: "center" **SDK `6.1.2`** — Patch -- Fix BTC dead address preview error +- Fix BTC dead address preview error ([`88a63b6`](https://github.com/relayprotocol/relay-kit/commit/88a63b6)) **SDK `6.1.2`** — Patch -- Fix bitcoin dead address +- Fix bitcoin dead address ([`88a63b6`](https://github.com/relayprotocol/relay-kit/commit/88a63b6)) @@ -289,7 +289,7 @@ mode: "center" **SDK `6.1.0`, UI Kit `9.1.0`, TON adapter `2.0.0`** — Minor -- Add TON support: new `@relayprotocol/relay-ton-wallet-adapter` package exporting `adaptTonWallet`, plus `tonvm` support across the SDK (vmType, TON receipt, transaction step messages, dead address) and UI kit (native TON balance, token selector). +- Add TON support: new `@relayprotocol/relay-ton-wallet-adapter` package exporting `adaptTonWallet`, plus `tonvm` support across the SDK (vmType, TON receipt, transaction step messages, dead address) and UI kit (native TON balance, token selector). ([`4711f4b`](https://github.com/relayprotocol/relay-kit/commit/4711f4b)) @@ -299,7 +299,7 @@ mode: "center" **SDK `6.0.1`** — Patch -- Convert `convertViemChainToRelayChain` from an arrow function to a function declaration (no behavior change). +- Convert `convertViemChainToRelayChain` from an arrow function to a function declaration (no behavior change). ([`bb7b1bb`](https://github.com/relayprotocol/relay-kit/commit/bb7b1bb)) @@ -309,11 +309,11 @@ mode: "center" **SDK `6.0.0`, UI Kit `9.0.0`** — Major -- Remove Sui support +- Remove Sui support ([`4149ded`](https://github.com/relayprotocol/relay-kit/commit/4149ded)) **SDK `6.0.0`, UI Kit `9.0.0`, Tron adapter `7.0.0`** — Patch -- Fix native TRX handling on Tron: forward call_value on the deposit transaction (was sending 0 TRX) and fix the native-TRX sentinel address (the wrong sentinel made native TRX fall through to a failing balanceOf call). +- Fix native TRX handling on Tron: forward call_value on the deposit transaction (was sending 0 TRX) and fix the native-TRX sentinel address (the wrong sentinel made native TRX fall through to a failing balanceOf call). ([`b61e540`](https://github.com/relayprotocol/relay-kit/commit/b61e540)) @@ -347,11 +347,11 @@ mode: "center" **SDK `5.2.8`** — Patch -- Add TON dead address +- Add TON dead address ([`1fc8190`](https://github.com/relayprotocol/relay-kit/commit/1fc8190)) **UI Kit `8.0.11`** — Patch -- Support TON destination bridging +- Support TON destination bridging ([`d3eda06`](https://github.com/relayprotocol/relay-kit/commit/d3eda06)) @@ -421,7 +421,7 @@ mode: "center" **UI Kit `8.0.10`** — Patch -- Update CEX address url +- Update CEX address url ([`4d73aeb`](https://github.com/relayprotocol/relay-kit/commit/4d73aeb)) @@ -467,11 +467,11 @@ mode: "center" **SDK `5.2.7`** — Patch -- Add testnet ws +- Add testnet ws ([`eab4c8f`](https://github.com/relayprotocol/relay-kit/commit/eab4c8f)) **UI Kit `8.0.9`** — Patch -- Add link to withdraw page on fill failure and isWithdrawable +- Add link to withdraw page on fill failure and isWithdrawable ([`eac2776`](https://github.com/relayprotocol/relay-kit/commit/eac2776)) @@ -487,11 +487,11 @@ mode: "center" **SDK `5.2.6`** — Patch -- Sync api types +- Sync api types ([`a443358`](https://github.com/relayprotocol/relay-kit/commit/a443358)) **UI Kit `8.0.8`** — Patch -- Differentiate hyperliquid usdc pills +- Differentiate hyperliquid usdc pills ([`22aa1f9`](https://github.com/relayprotocol/relay-kit/commit/22aa1f9)) @@ -507,11 +507,11 @@ mode: "center" **SDK `5.2.5`** — Patch -- Sync api types +- Sync api types ([`ef54ef1`](https://github.com/relayprotocol/relay-kit/commit/ef54ef1)) **UI Kit `8.0.7`** — Patch -- Fix gap in token selector's suggested tokens +- Fix gap in token selector's suggested tokens ([`31cd7b4`](https://github.com/relayprotocol/relay-kit/commit/31cd7b4)) @@ -521,11 +521,11 @@ mode: "center" **SDK `5.2.4`, Lighter adapter `0.1.1`** — Patch -- lighter sdk adapter +- lighter sdk adapter ([`670737f`](https://github.com/relayprotocol/relay-kit/commit/670737f)) **SDK `5.2.4`** — Patch -- add disableCapabilitiesCheck option to skip wallet.getCapabilities +- add disableCapabilitiesCheck option to skip wallet.getCapabilities ([`0eedcc1`](https://github.com/relayprotocol/relay-kit/commit/0eedcc1)) @@ -535,7 +535,7 @@ mode: "center" **SDK `5.2.3`** — Patch -- Support atomic batching for zero-reset approval swap flows (e.g. USDT on Ethereum). `canBatchTransactions` and `prepareBatchTransaction` now accept any number of leading `approve` steps before the terminal `swap`/`deposit`, so wallets that support EIP-5792 collapse the `approve(0) → approve(amount) → swap` sequence into a single `wallet_sendCalls` instead of three separate prompts. +- Support atomic batching for zero-reset approval swap flows (e.g. USDT on Ethereum). `canBatchTransactions` and `prepareBatchTransaction` now accept any number of leading `approve` steps before the terminal `swap`/`deposit`, so wallets that support EIP-5792 collapse the `approve(0) → approve(amount) → swap` sequence into a single `wallet_sendCalls` instead of three separate prompts. ([`eeb4695`](https://github.com/relayprotocol/relay-kit/commit/eeb4695)) @@ -545,11 +545,11 @@ mode: "center" **SDK `5.2.2`, UI Kit `8.0.4`, Hooks `3.0.12`** — Patch -- Sync api types and add depositing step to deposit address status +- Sync api types and add depositing step to deposit address status ([`8d8aa50`](https://github.com/relayprotocol/relay-kit/commit/8d8aa50)) **UI Kit `8.0.4`** — Patch -- Use spotClearinghouseState for Spot USDC and unified Hyperliquid accounts. Adds a new useHyperliquidAccountMode hook to detect the user's account abstraction mode, and routes balance queries through spotClearinghouseState for unified/portfolio-margin accounts where the Perps USDC balance is reported under spot. +- Use spotClearinghouseState for Spot USDC and unified Hyperliquid accounts. Adds a new useHyperliquidAccountMode hook to detect the user's account abstraction mode, and routes balance queries through spotClearinghouseState for unified/portfolio-margin accounts where the Perps USDC balance is reported under spot. ([`38dabc0`](https://github.com/relayprotocol/relay-kit/commit/38dabc0)) @@ -559,11 +559,11 @@ mode: "center" **UI Kit `8.0.3`** — Patch -- Namespace keyframes with relay- prefix to prevent collisions with host apps +- Namespace keyframes with relay- prefix to prevent collisions with host apps ([`d5bea75`](https://github.com/relayprotocol/relay-kit/commit/d5bea75)) **UI Kit `8.0.3`** — Patch -- Add onHapticEvent callback to RelayKitProvider +- Add onHapticEvent callback to RelayKitProvider ([`08ecc49`](https://github.com/relayprotocol/relay-kit/commit/08ecc49)) @@ -573,19 +573,19 @@ mode: "center" **UI Kit `8.0.2`** — Patch -- Fix CSS layer scoping and priority for host app compatibility +- Fix CSS layer scoping and priority for host app compatibility ([`26b2fc7`](https://github.com/relayprotocol/relay-kit/commit/26b2fc7)) **UI Kit `8.0.1`** — Patch -- Fix CSS being tree-shaken in production builds by declaring styles.css as +- Fix CSS being tree-shaken in production builds by declaring styles.css as ([`887f0e0`](https://github.com/relayprotocol/relay-kit/commit/887f0e0)) **UI Kit `8.0.0`** — Major -- Migrate styling system from Panda CSS to Tailwind CSS +- Migrate styling system from Panda CSS to Tailwind CSS ([`4c6d8d2`](https://github.com/relayprotocol/relay-kit/commit/4c6d8d2)) **UI Kit `8.0.0`** — Patch -- Optimize Font Awesome imports to use individual icon paths +- Optimize Font Awesome imports to use individual icon paths ([`0e44e49`](https://github.com/relayprotocol/relay-kit/commit/0e44e49)) @@ -595,11 +595,11 @@ mode: "center" **Hooks `3.0.11`** — Patch -- Add default stale time to useTokenPrice hook +- Add default stale time to useTokenPrice hook ([`ad4f08c`](https://github.com/relayprotocol/relay-kit/commit/ad4f08c)) **Bitcoin adapter `17.0.2`** — Patch -- bump bitcoinjs-lib dep version +- bump bitcoinjs-lib dep version ([`daaae5b`](https://github.com/relayprotocol/relay-kit/commit/daaae5b)) @@ -609,11 +609,11 @@ mode: "center" **SDK `5.2.1`, Hooks `3.0.10`** — Patch -- Fix async errors not caught +- Fix async errors not caught ([`7b351ab`](https://github.com/relayprotocol/relay-kit/commit/7b351ab)) **UI Kit `7.1.5`, Hooks `3.0.10`** — Patch -- Fix minor errors +- Fix minor errors ([`2f0d6de`](https://github.com/relayprotocol/relay-kit/commit/2f0d6de)) @@ -623,15 +623,15 @@ mode: "center" **SDK `5.2.0`** — Minor -- Add executeGaslessBatch action to support 7702 gasless flow +- Add executeGaslessBatch action to support 7702 gasless flow ([`144f7a4`](https://github.com/relayprotocol/relay-kit/commit/144f7a4)) **UI Kit `7.1.4`** — Patch -- Make progress modal error scrollable +- Make progress modal error scrollable ([`1ae288f`](https://github.com/relayprotocol/relay-kit/commit/1ae288f)) **UI Kit `7.1.4`** — Patch -- Clearer error for locked wallet +- Clearer error for locked wallet ([`3c9e0a1`](https://github.com/relayprotocol/relay-kit/commit/3c9e0a1)) @@ -641,11 +641,11 @@ mode: "center" **UI Kit `7.1.3`** — Patch -- Enable multi wallet dropdown for hyperliquid +- Enable multi wallet dropdown for hyperliquid ([`5b4830b`](https://github.com/relayprotocol/relay-kit/commit/5b4830b)) **SVM adapter `17.0.2`** — Patch -- Add checks for base58 signature +- Add checks for base58 signature ([`20db8bc`](https://github.com/relayprotocol/relay-kit/commit/20db8bc)) @@ -655,19 +655,19 @@ mode: "center" **SDK `5.1.1`, UI Kit `7.1.2`** — Patch -- Refactor token selector currency metadata fetching +- Refactor token selector currency metadata fetching ([`f851b3c`](https://github.com/relayprotocol/relay-kit/commit/f851b3c)) **UI Kit `7.1.2`** — Patch -- Implement AGW logic when hyperliquid is selected as destination +- Implement AGW logic when hyperliquid is selected as destination ([`00cad1c`](https://github.com/relayprotocol/relay-kit/commit/00cad1c)) **UI Kit `7.1.2`** — Patch -- Add same chain selector +- Add same chain selector ([`8aa2bca`](https://github.com/relayprotocol/relay-kit/commit/8aa2bca)) **UI Kit `7.1.2`** — Patch -- Universal max amount buffering +- Universal max amount buffering ([`c7da389`](https://github.com/relayprotocol/relay-kit/commit/c7da389)) @@ -677,7 +677,7 @@ mode: "center" **UI Kit `7.1.1`, Hooks `3.0.7`** — Patch -- Refactor deposit address transaction tracking to use requests API +- Refactor deposit address transaction tracking to use requests API ([`448ec7c`](https://github.com/relayprotocol/relay-kit/commit/448ec7c)) @@ -687,7 +687,7 @@ mode: "center" **SDK `5.1.0`, UI Kit `7.1.0`** — Minor -- Refactor EOA detection to improve ux +- Refactor EOA detection to improve ux ([`56123ee`](https://github.com/relayprotocol/relay-kit/commit/56123ee)) @@ -697,15 +697,15 @@ mode: "center" **SDK `5.0.3`** — Patch -- Fast fill sdk action +- Fast fill sdk action ([`0f0ad9f`](https://github.com/relayprotocol/relay-kit/commit/0f0ad9f)) **SDK `5.0.3`** — Patch -- Improve fast fills error handling +- Improve fast fills error handling ([`7acfaed`](https://github.com/relayprotocol/relay-kit/commit/7acfaed)) **UI Kit `7.0.11`** — Patch -- Use expandedPriceImpact from quote response +- Use expandedPriceImpact from quote response ([`6ff1ba6`](https://github.com/relayprotocol/relay-kit/commit/6ff1ba6)) @@ -715,15 +715,15 @@ mode: "center" **SDK `5.0.2`** — Patch -- Add support for custom logger function in createClient initializer +- Add support for custom logger function in createClient initializer ([`efa0aae`](https://github.com/relayprotocol/relay-kit/commit/efa0aae)) **SDK `5.0.2`** — Patch -- Add relay sdk version headers +- Add relay sdk version headers ([`b86a59d`](https://github.com/relayprotocol/relay-kit/commit/b86a59d)) **UI Kit `7.0.10`** — Patch -- Better handling of max input for low balances +- Better handling of max input for low balances ([`da08649`](https://github.com/relayprotocol/relay-kit/commit/da08649)) @@ -733,7 +733,7 @@ mode: "center" **SDK `5.0.1`** — Patch -- Improve SolverStatusTimeout error log +- Improve SolverStatusTimeout error log ([`9d7aab2`](https://github.com/relayprotocol/relay-kit/commit/9d7aab2)) @@ -743,7 +743,7 @@ mode: "center" **UI Kit `7.0.8`** — Patch -- Add support for lighter evm address lookup +- Add support for lighter evm address lookup ([`492e417`](https://github.com/relayprotocol/relay-kit/commit/492e417)) @@ -753,7 +753,7 @@ mode: "center" **UI Kit `7.0.7`** — Patch -- Refactored timeout logic +- Refactored timeout logic ([`9cc3fac`](https://github.com/relayprotocol/relay-kit/commit/9cc3fac)) @@ -763,7 +763,7 @@ mode: "center" **UI Kit `7.0.6`** — Patch -- Lenient eoa detection timeout +- Lenient eoa detection timeout ([`6c804bc`](https://github.com/relayprotocol/relay-kit/commit/6c804bc)) @@ -773,15 +773,15 @@ mode: "center" **SDK `5.0.0`** — Major -- Move configureViemChain, configureDynamicChains, and fetchChainConfigs to new /chain-utils subpath to reduce bundle size +- Move configureViemChain, configureDynamicChains, and fetchChainConfigs to new /chain-utils subpath to reduce bundle size ([`7d8cfef`](https://github.com/relayprotocol/relay-kit/commit/7d8cfef)) **UI Kit `7.0.5`** — Patch -- Remove twitter share button +- Remove twitter share button ([`cb3b9e9`](https://github.com/relayprotocol/relay-kit/commit/cb3b9e9)) **Hooks `3.0.2`** — Patch -- Move configureViemChain, configureDynamicChains, and fetchChainConfigs to new /chain-utils subpath to reduce bundle size +- Move configureViemChain, configureDynamicChains, and fetchChainConfigs to new /chain-utils subpath to reduce bundle size ([`7d8cfef`](https://github.com/relayprotocol/relay-kit/commit/7d8cfef)) @@ -791,11 +791,11 @@ mode: "center" **SDK `4.0.1`** — Patch -- Add amount param to claimAppFees action +- Add amount param to claimAppFees action ([`dd3f0c2`](https://github.com/relayprotocol/relay-kit/commit/dd3f0c2)) **UI Kit `7.0.4`** — Patch -- Allow setting 0 slippage tolerance +- Allow setting 0 slippage tolerance ([`4323f0e`](https://github.com/relayprotocol/relay-kit/commit/4323f0e)) @@ -805,7 +805,7 @@ mode: "center" **UI Kit `7.0.2`** — Patch -- Clearer eoa logs +- Clearer eoa logs ([`e2a4b65`](https://github.com/relayprotocol/relay-kit/commit/e2a4b65)) @@ -815,7 +815,7 @@ mode: "center" **UI Kit `7.0.1`** — Patch -- Add tracking for eoa detection +- Add tracking for eoa detection ([`34167fa`](https://github.com/relayprotocol/relay-kit/commit/34167fa)) @@ -825,7 +825,7 @@ mode: "center" **SDK `4.0.0`, UI Kit `7.0.0`, Hooks `3.0.0`** — Major -- Upgrade to quote/v2 api +- Upgrade to quote/v2 api ([`f544c1d`](https://github.com/relayprotocol/relay-kit/commit/f544c1d)) @@ -835,11 +835,11 @@ mode: "center" **UI Kit `6.1.1`** — Patch -- Support hyperliquid balance fetching for spot coins +- Support hyperliquid balance fetching for spot coins ([`e27e88a`](https://github.com/relayprotocol/relay-kit/commit/e27e88a)) **SVM adapter `14.0.1`** — Patch -- Update solana adapter docs +- Update solana adapter docs ([`8854ced`](https://github.com/relayprotocol/relay-kit/commit/8854ced)) @@ -849,19 +849,19 @@ mode: "center" **SDK `3.2.0`, UI Kit `6.1.0`** — Minor -- Integrate hyperliquid direct deposits +- Integrate hyperliquid direct deposits ([`2519846`](https://github.com/relayprotocol/relay-kit/commit/2519846)) **SDK `3.2.0`** — Patch -- Support API key parameter in `createClient` SDK method +- Support API key parameter in `createClient` SDK method ([`b1dbfb7`](https://github.com/relayprotocol/relay-kit/commit/b1dbfb7)) **UI Kit `6.1.0`** — Patch -- Update porto wallet compatibility +- Update porto wallet compatibility ([`3910284`](https://github.com/relayprotocol/relay-kit/commit/3910284)) **UI Kit `6.1.0`** — Patch -- Phantom support – add monad and hyperevm +- Phantom support – add monad and hyperevm ([`84e79a8`](https://github.com/relayprotocol/relay-kit/commit/84e79a8)) @@ -871,11 +871,11 @@ mode: "center" **UI Kit `6.0.10`** — Patch -- Fix some deps that were incorrectly marked as peerDeps +- Fix some deps that were incorrectly marked as peerDeps ([`d45f6be`](https://github.com/relayprotocol/relay-kit/commit/d45f6be)) **UI Kit `6.0.10`** — Patch -- Stabilised ens resolution & wallet selection +- Stabilised ens resolution & wallet selection ([`65d0b3d`](https://github.com/relayprotocol/relay-kit/commit/65d0b3d)) @@ -885,7 +885,7 @@ mode: "center" **UI Kit `6.0.9`** — Patch -- Post-launch fixes for `TokenWidget` +- Post-launch fixes for `TokenWidget` ([`7a9777a`](https://github.com/relayprotocol/relay-kit/commit/7a9777a)) @@ -895,7 +895,7 @@ mode: "center" **UI Kit `6.0.8`** — Patch -- Fix no routes error handling +- Fix no routes error handling ([`e65cb19`](https://github.com/relayprotocol/relay-kit/commit/e65cb19)) @@ -905,19 +905,19 @@ mode: "center" **SDK `3.1.1`, UI Kit `6.0.6`** — Patch -- Add lighter vm and enable destination txs +- Add lighter vm and enable destination txs ([`1ed92a5`](https://github.com/relayprotocol/relay-kit/commit/1ed92a5)) **UI Kit `6.0.7`** — Patch -- Stabilised tab switches +- Stabilised tab switches ([`a33c5b0`](https://github.com/relayprotocol/relay-kit/commit/a33c5b0)) **UI Kit `6.0.6`** — Patch -- Remove extra border on fee breakdown ui +- Remove extra border on fee breakdown ui ([`a95b32d`](https://github.com/relayprotocol/relay-kit/commit/a95b32d)) **UI Kit `6.0.6`** — Patch -- Remove canonical logic and ui +- Remove canonical logic and ui ([`69fcdb7`](https://github.com/relayprotocol/relay-kit/commit/69fcdb7)) @@ -927,7 +927,7 @@ mode: "center" **UI Kit `6.0.5`** — Patch -- Mobile payment selector improvments +- Mobile payment selector improvments ([`b59d911`](https://github.com/relayprotocol/relay-kit/commit/b59d911)) @@ -937,7 +937,7 @@ mode: "center" **UI Kit `6.0.4`** — Patch -- Fix mobile ux +- Fix mobile ux ([`09031d5`](https://github.com/relayprotocol/relay-kit/commit/09031d5)) @@ -947,7 +947,7 @@ mode: "center" **UI Kit `6.0.3`** — Patch -- Improved mobile actions +- Improved mobile actions ([`68788cf`](https://github.com/relayprotocol/relay-kit/commit/68788cf)) @@ -957,7 +957,7 @@ mode: "center" **UI Kit `6.0.2`** — Patch -- Improve token widget +- Improve token widget ([`9e1f80a`](https://github.com/relayprotocol/relay-kit/commit/9e1f80a)) @@ -967,7 +967,7 @@ mode: "center" **UI Kit `6.0.1`** — Patch -- Enable broader support for gas top up +- Enable broader support for gas top up ([`6fc5b9b`](https://github.com/relayprotocol/relay-kit/commit/6fc5b9b)) @@ -977,7 +977,7 @@ mode: "center" **UI Kit `6.0.0`** — Major -- Add TokenWidget +- Add TokenWidget ([`dbb99e3`](https://github.com/relayprotocol/relay-kit/commit/dbb99e3)) @@ -987,7 +987,7 @@ mode: "center" **UI Kit `5.1.2`** — Patch -- New mobile token selector +- New mobile token selector ([`9a0dc7c`](https://github.com/relayprotocol/relay-kit/commit/9a0dc7c)) @@ -997,19 +997,19 @@ mode: "center" **SDK `3.1.0`, UI Kit `5.1.0`, Tron adapter `1.0.0`** — Minor -- Add Tron adapter and balance logic +- Add Tron adapter and balance logic ([`5108307`](https://github.com/relayprotocol/relay-kit/commit/5108307)) **UI Kit `5.1.1`** — Patch -- Update mobile percentage buttons +- Update mobile percentage buttons ([`70badbb`](https://github.com/relayprotocol/relay-kit/commit/70badbb)) **UI Kit `5.1.1`** — Patch -- Improve mobile ui for slippage configuration +- Improve mobile ui for slippage configuration ([`5c80c9a`](https://github.com/relayprotocol/relay-kit/commit/5c80c9a)) **UI Kit `5.1.1`** — Patch -- Add clear input button to custom address modal +- Add clear input button to custom address modal ([`38ea2b6`](https://github.com/relayprotocol/relay-kit/commit/38ea2b6)) @@ -1019,7 +1019,7 @@ mode: "center" **SDK `3.0.1`** — Patch -- Allow getQuote to pass in headers +- Allow getQuote to pass in headers ([`028701b`](https://github.com/relayprotocol/relay-kit/commit/028701b)) @@ -1029,7 +1029,7 @@ mode: "center" **UI Kit `5.0.5`** — Patch -- Improve sponsored tokens logic by switching to more flexible useSecureApi method +- Improve sponsored tokens logic by switching to more flexible useSecureApi method ([`8ca6ff5`](https://github.com/relayprotocol/relay-kit/commit/8ca6ff5)) @@ -1039,15 +1039,15 @@ mode: "center" **UI Kit `5.0.4`** — Patch -- Improved fill time display on success screen +- Improved fill time display on success screen ([`2fcce34`](https://github.com/relayprotocol/relay-kit/commit/2fcce34)) **UI Kit `5.0.4`** — Patch -- Display lowercase 's' for seconds on success screen +- Display lowercase 's' for seconds on success screen ([`d830300`](https://github.com/relayprotocol/relay-kit/commit/d830300)) **UI Kit `5.0.4`** — Patch -- Improved token amount formatting on success screen +- Improved token amount formatting on success screen ([`ae3e3bb`](https://github.com/relayprotocol/relay-kit/commit/ae3e3bb)) @@ -1057,11 +1057,11 @@ mode: "center" **UI Kit `5.0.3`** — Patch -- Fix starred chains feature bugs +- Fix starred chains feature bugs ([`d49b6e5`](https://github.com/relayprotocol/relay-kit/commit/d49b6e5)) **UI Kit `5.0.2`** — Patch -- Add starred chains feature to token selector +- Add starred chains feature to token selector ([`7784329`](https://github.com/relayprotocol/relay-kit/commit/7784329)) @@ -1071,15 +1071,15 @@ mode: "center" **SDK `3.0.0`, UI Kit `5.0.0`** — Major -- Revamped transaction steps +- Revamped transaction steps ([`d38abdf`](https://github.com/relayprotocol/relay-kit/commit/d38abdf)) **UI Kit `5.0.1`** — Patch -- Improved copy for tx steps +- Improved copy for tx steps ([`e43a756`](https://github.com/relayprotocol/relay-kit/commit/e43a756)) **UI Kit `5.0.0`** — Patch -- Fix duplicate deposit success event +- Fix duplicate deposit success event ([`3bd044c`](https://github.com/relayprotocol/relay-kit/commit/3bd044c)) @@ -1089,15 +1089,15 @@ mode: "center" **SDK `2.4.6`** — Patch -- Fix tenderly error api +- Fix tenderly error api ([`5135cd1`](https://github.com/relayprotocol/relay-kit/commit/5135cd1)) **UI Kit `4.0.19`** — Patch -- Save recent custom addresses to local storage +- Save recent custom addresses to local storage ([`f54d1f3`](https://github.com/relayprotocol/relay-kit/commit/f54d1f3)) **UI Kit `4.0.19`** — Patch -- Use fill time on success screen +- Use fill time on success screen ([`cda3f6d`](https://github.com/relayprotocol/relay-kit/commit/cda3f6d)) @@ -1107,19 +1107,19 @@ mode: "center" **SDK `2.4.5`, UI Kit `4.0.18`, Bitcoin adapter `10.0.6`** — Patch -- Add bitcoin public key to quote params +- Add bitcoin public key to quote params ([`e3a9e1d`](https://github.com/relayprotocol/relay-kit/commit/e3a9e1d)) **SDK `2.4.5`, UI Kit `4.0.18`** — Patch -- Refactor max slippage ui to be more pronounced +- Refactor max slippage ui to be more pronounced ([`967e95b`](https://github.com/relayprotocol/relay-kit/commit/967e95b)) **UI Kit `4.0.17`** — Patch -- Add transaction count check for explicit deposits +- Add transaction count check for explicit deposits ([`eb3a8fb`](https://github.com/relayprotocol/relay-kit/commit/eb3a8fb)) **UI Kit `4.0.17`** — Patch -- Update swap event data +- Update swap event data ([`1ad6ac3`](https://github.com/relayprotocol/relay-kit/commit/1ad6ac3)) @@ -1129,7 +1129,7 @@ mode: "center" **UI Kit `4.0.16`** — Patch -- Remove protocol v2 threshold +- Remove protocol v2 threshold ([`686070b`](https://github.com/relayprotocol/relay-kit/commit/686070b)) @@ -1139,15 +1139,15 @@ mode: "center" **UI Kit `4.0.15`** — Patch -- Update gas top up copy +- Update gas top up copy ([`99516bb`](https://github.com/relayprotocol/relay-kit/commit/99516bb)) **UI Kit `4.0.14`** — Patch -- Update gas top up logic and ui +- Update gas top up logic and ui ([`2108fb8`](https://github.com/relayprotocol/relay-kit/commit/2108fb8)) **UI Kit `4.0.14`** — Patch -- Tweak logic and ui for gas top up +- Tweak logic and ui for gas top up ([`ffd4dd2`](https://github.com/relayprotocol/relay-kit/commit/ffd4dd2)) @@ -1157,7 +1157,7 @@ mode: "center" **UI Kit `4.0.13`** — Patch -- Increase protocol v2 threshold to $10k +- Increase protocol v2 threshold to $10k ([`42ef53d`](https://github.com/relayprotocol/relay-kit/commit/42ef53d)) @@ -1167,15 +1167,15 @@ mode: "center" **UI Kit `4.0.12`** — Patch -- Fix explicit deposit for zero native balance wallets +- Fix explicit deposit for zero native balance wallets ([`b3a83ee`](https://github.com/relayprotocol/relay-kit/commit/b3a83ee)) **UI Kit `4.0.11`** — Patch -- Increase protocolv2 threshold +- Increase protocolv2 threshold ([`99a32eb`](https://github.com/relayprotocol/relay-kit/commit/99a32eb)) **UI Kit `4.0.10`** — Patch -- Reimplement explicitDeposit logic +- Reimplement explicitDeposit logic ([`bbee152`](https://github.com/relayprotocol/relay-kit/commit/bbee152)) @@ -1185,11 +1185,11 @@ mode: "center" **UI Kit `4.0.9`** — Patch -- Remove explicitDeposit parameter +- Remove explicitDeposit parameter ([`4749b3e`](https://github.com/relayprotocol/relay-kit/commit/4749b3e)) **UI Kit `4.0.9`** — Patch -- Remove gas top up re-enabling on swap success +- Remove gas top up re-enabling on swap success ([`0ec9be8`](https://github.com/relayprotocol/relay-kit/commit/0ec9be8)) @@ -1199,19 +1199,19 @@ mode: "center" **SDK `2.4.4`** — Patch -- Add EOA detection +- Add EOA detection ([`7b8f325`](https://github.com/relayprotocol/relay-kit/commit/7b8f325)) **UI Kit `4.0.8`** — Patch -- Fix issue detecting EOA when disconnected +- Fix issue detecting EOA when disconnected ([`2467b30`](https://github.com/relayprotocol/relay-kit/commit/2467b30)) **UI Kit `4.0.7`** — Patch -- Fix bug where logged out scenario not fetching quotes +- Fix bug where logged out scenario not fetching quotes ([`1bd5324`](https://github.com/relayprotocol/relay-kit/commit/1bd5324)) **UI Kit `4.0.6`** — Patch -- Add character minimum for conversion rate tooltip +- Add character minimum for conversion rate tooltip ([`7e99ce4`](https://github.com/relayprotocol/relay-kit/commit/7e99ce4)) @@ -1221,7 +1221,7 @@ mode: "center" **Hooks `2.0.2`** — Patch -- Fix base url for query quote function +- Fix base url for query quote function ([`622c094`](https://github.com/relayprotocol/relay-kit/commit/622c094)) @@ -1231,7 +1231,7 @@ mode: "center" **UI Kit `4.0.4`** — Patch -- Fix fee subsidization normalization +- Fix fee subsidization normalization ([`d502596`](https://github.com/relayprotocol/relay-kit/commit/d502596)) @@ -1241,7 +1241,7 @@ mode: "center" **UI Kit `4.0.3`** — Patch -- Add button cta font styling to theme +- Add button cta font styling to theme ([`4142310`](https://github.com/relayprotocol/relay-kit/commit/4142310)) @@ -1251,15 +1251,15 @@ mode: "center" **SDK `2.4.3`** — Patch -- Update capabilities check for batching to support MM +- Update capabilities check for batching to support MM ([`dd8a006`](https://github.com/relayprotocol/relay-kit/commit/dd8a006)) **UI Kit `4.0.2`** — Patch -- Porto wallet compatibility +- Porto wallet compatibility ([`e7d50bb`](https://github.com/relayprotocol/relay-kit/commit/e7d50bb)) **UI Kit `4.0.1`** — Patch -- Remove custom fonts from ui kit base theme +- Remove custom fonts from ui kit base theme ([`41d48e1`](https://github.com/relayprotocol/relay-kit/commit/41d48e1)) @@ -1269,15 +1269,15 @@ mode: "center" **UI Kit `4.0.0`, Hooks `2.0.0`** — Major -- Upgrade to React 19 +- Upgrade to React 19 ([`581937b`](https://github.com/relayprotocol/relay-kit/commit/581937b)) **UI Kit `3.0.3`** — Patch -- Switch to using queryQuote instead of useQuote hook +- Switch to using queryQuote instead of useQuote hook ([`8dc4d4b`](https://github.com/relayprotocol/relay-kit/commit/8dc4d4b)) **UI Kit `3.0.3`** — Patch -- Add test ids for automation +- Add test ids for automation ([`dc26d7b`](https://github.com/relayprotocol/relay-kit/commit/dc26d7b)) @@ -1287,15 +1287,15 @@ mode: "center" **UI Kit `3.0.2`** — Patch -- Enable protocolv2 only if destination chain supports settlement +- Enable protocolv2 only if destination chain supports settlement ([`34fa345`](https://github.com/relayprotocol/relay-kit/commit/34fa345)) **UI Kit `3.0.2`** — Patch -- Fix share icon color +- Fix share icon color ([`de102bb`](https://github.com/relayprotocol/relay-kit/commit/de102bb)) **Bitcoin adapter `10.0.3`** — Patch -- Allow default sighash when sending tx +- Allow default sighash when sending tx ([`7615501`](https://github.com/relayprotocol/relay-kit/commit/7615501)) @@ -1305,7 +1305,7 @@ mode: "center" **UI Kit `3.0.1`** — Patch -- Add data tracking for gas subsidization +- Add data tracking for gas subsidization ([`0dae775`](https://github.com/relayprotocol/relay-kit/commit/0dae775)) @@ -1315,15 +1315,15 @@ mode: "center" **SDK `2.4.2`, Bitcoin adapter `10.0.2`, Ethers adapter `22.0.2`, SVM adapter `11.0.2`** — Patch -- Update relay branding +- Update relay branding ([`2ad3c52`](https://github.com/relayprotocol/relay-kit/commit/2ad3c52)) **UI Kit `3.0.0`** — Major -- Update relay branding +- Update relay branding ([`2ad3c52`](https://github.com/relayprotocol/relay-kit/commit/2ad3c52)) **Hooks `1.13.0`** — Minor -- Update relay branding +- Update relay branding ([`2ad3c52`](https://github.com/relayprotocol/relay-kit/commit/2ad3c52)) @@ -1333,7 +1333,7 @@ mode: "center" **UI Kit `2.17.5`** — Patch -- Fix modal gap on mobile +- Fix modal gap on mobile ([`5c97c8d`](https://github.com/relayprotocol/relay-kit/commit/5c97c8d)) @@ -1343,7 +1343,7 @@ mode: "center" **SDK `2.4.1`, UI Kit `2.17.4`, Hooks `1.12.1`** — Patch -- Add gas sponsorship functionality +- Add gas sponsorship functionality ([`fd0b328`](https://github.com/relayprotocol/relay-kit/commit/fd0b328)) @@ -1353,7 +1353,7 @@ mode: "center" **UI Kit `2.17.3`** — Patch -- Always show price impact regardless of input mode +- Always show price impact regardless of input mode ([`b2d6c8c`](https://github.com/relayprotocol/relay-kit/commit/b2d6c8c)) @@ -1363,7 +1363,7 @@ mode: "center" **UI Kit `2.17.2`** — Patch -- Reenable solana for protocolv2 +- Reenable solana for protocolv2 ([`8a8d560`](https://github.com/relayprotocol/relay-kit/commit/8a8d560)) @@ -1373,7 +1373,7 @@ mode: "center" **UI Kit `2.17.1`** — Patch -- Disable protocol v2 on solana +- Disable protocol v2 on solana ([`a50bea6`](https://github.com/relayprotocol/relay-kit/commit/a50bea6)) @@ -1383,7 +1383,7 @@ mode: "center" **SDK `2.4.0`, UI Kit `2.17.0`, Hooks `1.12.0`, Bitcoin adapter `10.0.0`, Ethers adapter `22.0.0`, SVM adapter `11.0.0`** — Minor -- Add websocket support and refactor executeSteps +- Add websocket support and refactor executeSteps ([`6400542`](https://github.com/relayprotocol/relay-kit/commit/6400542)) @@ -1393,7 +1393,7 @@ mode: "center" **UI Kit `2.16.2`** — Patch -- Increase prefers v2 threshold to $100 +- Increase prefers v2 threshold to $100 ([`c309276`](https://github.com/relayprotocol/relay-kit/commit/c309276)) @@ -1403,7 +1403,7 @@ mode: "center" **UI Kit `2.16.1`** — Patch -- revert overflow fix +- revert overflow fix ([`a284af5`](https://github.com/relayprotocol/relay-kit/commit/a284af5)) @@ -1413,19 +1413,19 @@ mode: "center" **UI Kit `2.16.0`** — Minor -- Fix token amount overflow on success screen +- Fix token amount overflow on success screen ([`bb08004`](https://github.com/relayprotocol/relay-kit/commit/bb08004)) **UI Kit `2.16.0`** — Patch -- Fix Hyperliquid wallet compatability +- Fix Hyperliquid wallet compatability ([`09ccc5c`](https://github.com/relayprotocol/relay-kit/commit/09ccc5c)) **UI Kit `2.16.0`** — Patch -- Bump USD threshold for protocolv2 logic +- Bump USD threshold for protocolv2 logic ([`2669722`](https://github.com/relayprotocol/relay-kit/commit/2669722)) **UI Kit `2.16.0`** — Patch -- Improve ui when no route are available +- Improve ui when no route are available ([`a437ede`](https://github.com/relayprotocol/relay-kit/commit/a437ede)) @@ -1435,7 +1435,7 @@ mode: "center" **UI Kit `2.15.11`** — Patch -- Add refundTo for HL withdrawals +- Add refundTo for HL withdrawals ([`762dc3c`](https://github.com/relayprotocol/relay-kit/commit/762dc3c)) @@ -1445,11 +1445,11 @@ mode: "center" **SDK `2.3.2`, UI Kit `2.15.10`** — Patch -- Add hyperliquid usd send functionality +- Add hyperliquid usd send functionality ([`1a88de0`](https://github.com/relayprotocol/relay-kit/commit/1a88de0)) **UI Kit `2.15.10`** — Patch -- Prevent onAnalyticEvent from throwing errors internally +- Prevent onAnalyticEvent from throwing errors internally ([`dce6e56`](https://github.com/relayprotocol/relay-kit/commit/dce6e56)) @@ -1459,15 +1459,15 @@ mode: "center" **SDK `2.3.1`, UI Kit `2.15.9`** — Patch -- Enable protocol v2 for chains programatically +- Enable protocol v2 for chains programatically ([`d1aeceb`](https://github.com/relayprotocol/relay-kit/commit/d1aeceb)) **UI Kit `2.15.9`** — Patch -- Fix bug with selecting token from trending tokens list +- Fix bug with selecting token from trending tokens list ([`cfad35b`](https://github.com/relayprotocol/relay-kit/commit/cfad35b)) **UI Kit `2.15.9`** — Patch -- Add context to CURRENCY_STEP_CHAIN_FILTER event +- Add context to CURRENCY_STEP_CHAIN_FILTER event ([`2bc1938`](https://github.com/relayprotocol/relay-kit/commit/2bc1938)) @@ -1477,23 +1477,23 @@ mode: "center" **UI Kit `2.15.8`** — Patch -- Add log to AGW check error +- Add log to AGW check error ([`fbb50ac`](https://github.com/relayprotocol/relay-kit/commit/fbb50ac)) **UI Kit `2.15.8`** — Patch -- Add usd values to swap events +- Add usd values to swap events ([`1627058`](https://github.com/relayprotocol/relay-kit/commit/1627058)) **UI Kit `2.15.8`** — Patch -- Use max slippage between user input and quote for display +- Use max slippage between user input and quote for display ([`54e4628`](https://github.com/relayprotocol/relay-kit/commit/54e4628)) **UI Kit `2.15.8`, Hooks `1.11.1`** — Patch -- Add relay trending tokens to token selector +- Add relay trending tokens to token selector ([`7985e6b`](https://github.com/relayprotocol/relay-kit/commit/7985e6b)) **UI Kit `2.15.8`** — Patch -- Enable more v2 protocol chains +- Enable more v2 protocol chains ([`a95050e`](https://github.com/relayprotocol/relay-kit/commit/a95050e)) @@ -1503,7 +1503,7 @@ mode: "center" **UI Kit `2.15.7`** — Patch -- Add more protocol v2 chains +- Add more protocol v2 chains ([`96351f0`](https://github.com/relayprotocol/relay-kit/commit/96351f0)) @@ -1513,11 +1513,11 @@ mode: "center" **UI Kit `2.15.6`** — Patch -- Address accessibility issues +- Address accessibility issues ([`506f105`](https://github.com/relayprotocol/relay-kit/commit/506f105)) **UI Kit `2.15.6`** — Patch -- Add protocol v2 enabled chains +- Add protocol v2 enabled chains ([`ff38840`](https://github.com/relayprotocol/relay-kit/commit/ff38840)) @@ -1527,7 +1527,7 @@ mode: "center" **UI Kit `2.15.5`** — Patch -- Enable preferv2 protocol for more chains (Ethereum, Polygon, BNB, OP, Zksync) +- Enable preferv2 protocol for more chains (Ethereum, Polygon, BNB, OP, Zksync) ([`7e4273d`](https://github.com/relayprotocol/relay-kit/commit/7e4273d)) @@ -1537,7 +1537,7 @@ mode: "center" **UI Kit `2.15.4`** — Patch -- Reenable prefers protocolv2 for a subset of chains +- Reenable prefers protocolv2 for a subset of chains ([`1aae32c`](https://github.com/relayprotocol/relay-kit/commit/1aae32c)) @@ -1547,7 +1547,7 @@ mode: "center" **SVM adapter `10.0.1`** — Patch -- Add an optional payerKey to customize gas payer +- Add an optional payerKey to customize gas payer ([`e251ccd`](https://github.com/relayprotocol/relay-kit/commit/e251ccd)) @@ -1557,7 +1557,7 @@ mode: "center" **UI Kit `2.15.3`** — Patch -- Disable protocolv2 usage +- Disable protocolv2 usage ([`4334b2f`](https://github.com/relayprotocol/relay-kit/commit/4334b2f)) @@ -1567,11 +1567,11 @@ mode: "center" **UI Kit `2.15.2`** — Patch -- Enable prefersV2 for Avalanche, unichain and Gnosis +- Enable prefersV2 for Avalanche, unichain and Gnosis ([`be1ec2c`](https://github.com/relayprotocol/relay-kit/commit/be1ec2c)) **UI Kit `2.15.1`** — Patch -- Disable gas top up by default +- Disable gas top up by default ([`c8ef9b5`](https://github.com/relayprotocol/relay-kit/commit/c8ef9b5)) @@ -1581,15 +1581,15 @@ mode: "center" **SDK `2.3.0`, UI Kit `2.15.0`, Hooks `1.11.0`, Bitcoin adapter `9.0.0`, Ethers adapter `21.0.0`, SVM adapter `10.0.0`** — Minor -- Upgrade viem to >=2.26.0 +- Upgrade viem to >=2.26.0 ([`aee47ea`](https://github.com/relayprotocol/relay-kit/commit/aee47ea)) **SDK `2.2.0`, UI Kit `2.14.0`** — Minor -- Upgrade sdk types and add custom logic for blast protocol v2 configuration +- Upgrade sdk types and add custom logic for blast protocol v2 configuration ([`3dbf1be`](https://github.com/relayprotocol/relay-kit/commit/3dbf1be)) **UI Kit `2.14.0`** — Patch -- Check custom address against CEX address list +- Check custom address against CEX address list ([`dad85e2`](https://github.com/relayprotocol/relay-kit/commit/dad85e2)) @@ -1599,7 +1599,7 @@ mode: "center" **UI Kit `2.13.3`** — Patch -- Add warning for missing token price detection + add stroke to all alerts +- Add warning for missing token price detection + add stroke to all alerts ([`1b67ee5`](https://github.com/relayprotocol/relay-kit/commit/1b67ee5)) @@ -1609,7 +1609,7 @@ mode: "center" **UI Kit `2.13.2`** — Patch -- Hide gas token badge for hyperliquid usdc +- Hide gas token badge for hyperliquid usdc ([`ac027bb`](https://github.com/relayprotocol/relay-kit/commit/ac027bb)) @@ -1619,15 +1619,15 @@ mode: "center" **SDK `2.1.3`** — Patch -- Add getAppFees and claimAppFees sdk actions +- Add getAppFees and claimAppFees sdk actions ([`9e35bcd`](https://github.com/relayprotocol/relay-kit/commit/9e35bcd)) **UI Kit `2.13.0`** — Minor -- Fix destination wallet alert showing without wallet selection +- Fix destination wallet alert showing without wallet selection ([`57c625b`](https://github.com/relayprotocol/relay-kit/commit/57c625b)) **UI Kit `2.13.0`** — Patch -- Add themeScheme to the provider to improve SSR hydration +- Add themeScheme to the provider to improve SSR hydration ([`862ee79`](https://github.com/relayprotocol/relay-kit/commit/862ee79)) @@ -1637,23 +1637,23 @@ mode: "center" **UI Kit `2.12.0`** — Minor -- Switch to Dune's Sim api for token balances +- Switch to Dune's Sim api for token balances ([`e3e114e`](https://github.com/relayprotocol/relay-kit/commit/e3e114e)) **UI Kit `2.12.0`** — Patch -- Hide display of batch txs on success step +- Hide display of batch txs on success step ([`9c81150`](https://github.com/relayprotocol/relay-kit/commit/9c81150)) **UI Kit `2.12.0`** — Patch -- Improve usd fee display +- Improve usd fee display ([`b6e92a9`](https://github.com/relayprotocol/relay-kit/commit/b6e92a9)) **UI Kit `2.12.0`** — Patch -- Adds toggle to switch between token amount and usd input +- Adds toggle to switch between token amount and usd input ([`37479c3`](https://github.com/relayprotocol/relay-kit/commit/37479c3)) **UI Kit `2.12.0`, Hooks `1.10.4`** — Patch -- Remove referrer from requests api calls +- Remove referrer from requests api calls ([`3471571`](https://github.com/relayprotocol/relay-kit/commit/3471571)) @@ -1663,27 +1663,27 @@ mode: "center" **SDK `2.1.2`, UI Kit `2.11.3`, Hooks `1.10.2`** — Patch -- Update endpoints +- Update endpoints ([`1d8da8a`](https://github.com/relayprotocol/relay-kit/commit/1d8da8a)) **SDK `2.1.2`, UI Kit `2.11.3`** — Patch -- Add hypevm to vmtypes for destination +- Add hypevm to vmtypes for destination ([`6049aa6`](https://github.com/relayprotocol/relay-kit/commit/6049aa6)) **UI Kit `2.11.3`** — Patch -- Ellipsify conversion rate + add tooltip to prevent overflow +- Ellipsify conversion rate + add tooltip to prevent overflow ([`8d5e07c`](https://github.com/relayprotocol/relay-kit/commit/8d5e07c)) **UI Kit `2.11.3`** — Patch -- Fix cropped token selector text +- Fix cropped token selector text ([`c3a562f`](https://github.com/relayprotocol/relay-kit/commit/c3a562f)) **UI Kit `2.11.3`** — Patch -- Decrease high fee warning threshold to 1.5% +- Decrease high fee warning threshold to 1.5% ([`3aabf44`](https://github.com/relayprotocol/relay-kit/commit/3aabf44)) **Hooks `1.10.3`** — Patch -- Allow headers to be configured from query functions +- Allow headers to be configured from query functions ([`1da754c`](https://github.com/relayprotocol/relay-kit/commit/1da754c)) @@ -1693,7 +1693,7 @@ mode: "center" **SDK `2.1.1`, UI Kit `2.11.2`** — Patch -- Allow changing the polling interval for confirmation and improve RPC configuration +- Allow changing the polling interval for confirmation and improve RPC configuration ([`8b4754a`](https://github.com/relayprotocol/relay-kit/commit/8b4754a)) @@ -1703,39 +1703,39 @@ mode: "center" **SDK `2.1.0`, UI Kit `2.11.0`, Hooks `1.10.0`** — Minor -- Deduplicate request IDs +- Deduplicate request IDs ([`bb63fc9`](https://github.com/relayprotocol/relay-kit/commit/bb63fc9)) **SDK `2.1.0`** — Patch -- Optimize same chain swapping to skip intent status if slower than receipt +- Optimize same chain swapping to skip intent status if slower than receipt ([`758f8a7`](https://github.com/relayprotocol/relay-kit/commit/758f8a7)) **UI Kit `2.11.1`** — Patch -- Fix solana address regex +- Fix solana address regex ([`f073269`](https://github.com/relayprotocol/relay-kit/commit/f073269)) **UI Kit `2.11.0`** — Patch -- Add copy for new refund reason +- Add copy for new refund reason ([`73334f9`](https://github.com/relayprotocol/relay-kit/commit/73334f9)) **UI Kit `2.11.0`** — Patch -- Add better handling for eclipse rpc balance errors +- Add better handling for eclipse rpc balance errors ([`d0971ec`](https://github.com/relayprotocol/relay-kit/commit/d0971ec)) **UI Kit `2.11.0`** — Patch -- Allow selecting wallet before selecting chain +- Allow selecting wallet before selecting chain ([`b30f584`](https://github.com/relayprotocol/relay-kit/commit/b30f584)) **UI Kit `2.11.0`** — Patch -- Add context to wallet_selector events +- Add context to wallet_selector events ([`42aa03d`](https://github.com/relayprotocol/relay-kit/commit/42aa03d)) **UI Kit `2.11.0`** — Patch -- Fix distorted token images +- Fix distorted token images ([`dc9da43`](https://github.com/relayprotocol/relay-kit/commit/dc9da43)) **UI Kit `2.11.0`** — Patch -- Capture quote to be used in TransactionModal +- Capture quote to be used in TransactionModal ([`4d75f3a`](https://github.com/relayprotocol/relay-kit/commit/4d75f3a)) @@ -1745,7 +1745,7 @@ mode: "center" **UI Kit `2.10.12`** — Patch -- Fix tx confirmation issue preventing the error screen from showing +- Fix tx confirmation issue preventing the error screen from showing ([`c40a8ea`](https://github.com/relayprotocol/relay-kit/commit/c40a8ea)) @@ -1755,15 +1755,15 @@ mode: "center" **UI Kit `2.10.11`** — Patch -- Allow slippage to be set to 0.01 in the slippage configuration component +- Allow slippage to be set to 0.01 in the slippage configuration component ([`df9ec72`](https://github.com/relayprotocol/relay-kit/commit/df9ec72)) **UI Kit `2.10.11`** — Patch -- Hide amount usd if returned value is 0 +- Hide amount usd if returned value is 0 ([`6fa5e73`](https://github.com/relayprotocol/relay-kit/commit/6fa5e73)) **UI Kit `2.10.11`** — Patch -- Use eclipse RPC for widget balances +- Use eclipse RPC for widget balances ([`eaeab61`](https://github.com/relayprotocol/relay-kit/commit/eaeab61)) @@ -1773,11 +1773,11 @@ mode: "center" **UI Kit `2.10.10`** — Patch -- Remove max width from suggested token pills +- Remove max width from suggested token pills ([`260725c`](https://github.com/relayprotocol/relay-kit/commit/260725c)) **UI Kit `2.10.10`** — Patch -- Fix token selector scroll bug and improve dialog animation +- Fix token selector scroll bug and improve dialog animation ([`665cc92`](https://github.com/relayprotocol/relay-kit/commit/665cc92)) @@ -1787,7 +1787,7 @@ mode: "center" **SDK `2.0.3`, UI Kit `2.10.9`** — Patch -- Improve DEPOSIT_SUCCESS logic by checking pending status +- Improve DEPOSIT_SUCCESS logic by checking pending status ([`dd0f93c`](https://github.com/relayprotocol/relay-kit/commit/dd0f93c)) @@ -1797,19 +1797,19 @@ mode: "center" **SDK `2.0.2`** — Patch -- Sync api types +- Sync api types ([`e169c87`](https://github.com/relayprotocol/relay-kit/commit/e169c87)) **UI Kit `2.10.8`** — Patch -- Fix broken suggested token logoUrl +- Fix broken suggested token logoUrl ([`dc09164`](https://github.com/relayprotocol/relay-kit/commit/dc09164)) **UI Kit `2.10.8`** — Patch -- add AVAX to ME wallet compatibility +- add AVAX to ME wallet compatibility ([`43bee2a`](https://github.com/relayprotocol/relay-kit/commit/43bee2a)) **UI Kit `2.10.7`** — Patch -- Fix status code data point for quote_error +- Fix status code data point for quote_error ([`a4f7deb`](https://github.com/relayprotocol/relay-kit/commit/a4f7deb)) @@ -1819,15 +1819,15 @@ mode: "center" **SDK `2.0.1`, UI Kit `2.10.6`, Hooks `1.9.11`, Bitcoin adapter `6.0.1`, Ethers adapter `18.0.1`, SVM adapter `7.0.1`** — Patch -- Lock viem version to patch only to avoid breaking changes +- Lock viem version to patch only to avoid breaking changes ([`dab775f`](https://github.com/relayprotocol/relay-kit/commit/dab775f)) **UI Kit `2.10.6`** — Patch -- Add status to quote error +- Add status to quote error ([`1df049b`](https://github.com/relayprotocol/relay-kit/commit/1df049b)) **UI Kit `2.10.6`** — Patch -- Adjust gas top up copy +- Adjust gas top up copy ([`e572905`](https://github.com/relayprotocol/relay-kit/commit/e572905)) @@ -1837,15 +1837,15 @@ mode: "center" **SDK `2.0.0`** — Major -- [BREAKING] Update sdk getQuote method to optionally include defaults +- [BREAKING] Update sdk getQuote method to optionally include defaults ([`5759fd0`](https://github.com/relayprotocol/relay-kit/commit/5759fd0)) **UI Kit `2.10.5`** — Patch -- Fix receipt validation +- Fix receipt validation ([`2ee2f44`](https://github.com/relayprotocol/relay-kit/commit/2ee2f44)) **Ethers adapter `18.0.0`** — Patch -- [BREAKING] Update sdk getQuote method to optionally include defaults +- [BREAKING] Update sdk getQuote method to optionally include defaults ([`5759fd0`](https://github.com/relayprotocol/relay-kit/commit/5759fd0)) @@ -1855,11 +1855,11 @@ mode: "center" **SDK `1.8.1`** — Patch -- Sync api types +- Sync api types ([`e5d8e39`](https://github.com/relayprotocol/relay-kit/commit/e5d8e39)) **UI Kit `2.10.4`** — Patch -- Fix gas top up bigint error +- Fix gas top up bigint error ([`eed08f3`](https://github.com/relayprotocol/relay-kit/commit/eed08f3)) @@ -1869,7 +1869,7 @@ mode: "center" **UI Kit `2.10.3`** — Patch -- Fix race condition with events +- Fix race condition with events ([`b74d695`](https://github.com/relayprotocol/relay-kit/commit/b74d695)) @@ -1879,11 +1879,11 @@ mode: "center" **UI Kit `2.10.2`** — Patch -- Add quote_request_id to all swap events +- Add quote_request_id to all swap events ([`09be9a1`](https://github.com/relayprotocol/relay-kit/commit/09be9a1)) **UI Kit `2.10.1`** — Patch -- Fix issues with quote_id +- Fix issues with quote_id ([`1c1c05c`](https://github.com/relayprotocol/relay-kit/commit/1c1c05c)) @@ -1893,15 +1893,15 @@ mode: "center" **SDK `1.8.0`, UI Kit `2.10.0`** — Minor -- Overhaul analytics events +- Overhaul analytics events ([`d430ab3`](https://github.com/relayprotocol/relay-kit/commit/d430ab3)) **UI Kit `2.10.0`** — Patch -- Add interval to regenerate hash every 15m +- Add interval to regenerate hash every 15m ([`47a0157`](https://github.com/relayprotocol/relay-kit/commit/47a0157)) **UI Kit `2.10.0`** — Patch -- Refresh quote data when tx modal closes +- Refresh quote data when tx modal closes ([`16beb2e`](https://github.com/relayprotocol/relay-kit/commit/16beb2e)) @@ -1911,15 +1911,15 @@ mode: "center" **SDK `1.7.4`, UI Kit `2.9.14`, SVM adapter `5.0.4`** — Patch -- Add sui wallet adapter +- Add sui wallet adapter ([`ee3693a`](https://github.com/relayprotocol/relay-kit/commit/ee3693a)) **UI Kit `2.9.14`** — Patch -- Switch to sha256 from murmur3 to fix esm compatibility issue +- Switch to sha256 from murmur3 to fix esm compatibility issue ([`83769eb`](https://github.com/relayprotocol/relay-kit/commit/83769eb)) **UI Kit `2.9.14`** — Patch -- Fix address comparison logic in MultiWalletDropdown +- Fix address comparison logic in MultiWalletDropdown ([`3ae300a`](https://github.com/relayprotocol/relay-kit/commit/3ae300a)) @@ -1929,19 +1929,19 @@ mode: "center" **SDK `1.7.3`** — Patch -- Add ability to override default logger +- Add ability to override default logger ([`bc85ead`](https://github.com/relayprotocol/relay-kit/commit/bc85ead)) **UI Kit `2.9.13`, Hooks `1.9.6`** — Patch -- Add a quoteRequestId when requests and receiving a quote +- Add a quoteRequestId when requests and receiving a quote ([`052745e`](https://github.com/relayprotocol/relay-kit/commit/052745e)) **UI Kit `2.9.13`, Hooks `1.9.6`** — Patch -- Improve quote and swap analytics +- Improve quote and swap analytics ([`fe54a20`](https://github.com/relayprotocol/relay-kit/commit/fe54a20)) **UI Kit `2.9.13`** — Patch -- Rename quote events +- Rename quote events ([`c3c4a53`](https://github.com/relayprotocol/relay-kit/commit/c3c4a53)) @@ -1951,11 +1951,11 @@ mode: "center" **SDK `1.7.2`** — Patch -- Fix add ethereum chain errors +- Fix add ethereum chain errors ([`4fb4ac3`](https://github.com/relayprotocol/relay-kit/commit/4fb4ac3)) **UI Kit `2.9.12`** — Patch -- Display estimated USD value for input token before swap quote is available +- Display estimated USD value for input token before swap quote is available ([`fe2398d`](https://github.com/relayprotocol/relay-kit/commit/fe2398d)) @@ -1965,23 +1965,23 @@ mode: "center" **SDK `1.7.1`, UI Kit `2.9.11`** — Patch -- Add fallback mechanism when InternalJSONRPC occurrs +- Add fallback mechanism when InternalJSONRPC occurrs ([`effd487`](https://github.com/relayprotocol/relay-kit/commit/effd487)) **SDK `1.7.1`, UI Kit `2.9.11`** — Patch -- Sync sdk types and update sugested tokens to use logoURI from featured tokens +- Sync sdk types and update sugested tokens to use logoURI from featured tokens ([`af85e2a`](https://github.com/relayprotocol/relay-kit/commit/af85e2a)) **UI Kit `2.9.11`** — Patch -- Render fallback token placeholder using symbol initial +- Render fallback token placeholder using symbol initial ([`afdb901`](https://github.com/relayprotocol/relay-kit/commit/afdb901)) **UI Kit `2.9.11`** — Patch -- Add sei to ME wallet compatibility +- Add sei to ME wallet compatibility ([`b2af4e9`](https://github.com/relayprotocol/relay-kit/commit/b2af4e9)) **UI Kit `2.9.11`** — Patch -- Max Button gas estimation improvements for evm +- Max Button gas estimation improvements for evm ([`6416987`](https://github.com/relayprotocol/relay-kit/commit/6416987)) @@ -1991,11 +1991,11 @@ mode: "center" **SDK `1.7.0`** — Minor -- Gas top up functionality +- Gas top up functionality ([`6940a55`](https://github.com/relayprotocol/relay-kit/commit/6940a55)) **UI Kit `2.9.10`, Hooks `1.9.3`** — Patch -- Gas top up functionality +- Gas top up functionality ([`6940a55`](https://github.com/relayprotocol/relay-kit/commit/6940a55)) @@ -2005,15 +2005,15 @@ mode: "center" **SDK `1.6.15`, UI Kit `2.9.9`, Hooks `1.9.2`** — Patch -- Add additional refund reason messaging +- Add additional refund reason messaging ([`293486b`](https://github.com/relayprotocol/relay-kit/commit/293486b)) **UI Kit `2.9.9`** — Patch -- Add ronin wallet compatibility +- Add ronin wallet compatibility ([`9868461`](https://github.com/relayprotocol/relay-kit/commit/9868461)) **UI Kit `2.9.9`** — Patch -- Upgrade to new dune svm balance api +- Upgrade to new dune svm balance api ([`b2187e1`](https://github.com/relayprotocol/relay-kit/commit/b2187e1)) @@ -2023,15 +2023,15 @@ mode: "center" **UI Kit `2.9.8`** — Patch -- Reset swap widget inputs after a successful swap +- Reset swap widget inputs after a successful swap ([`a8ecc87`](https://github.com/relayprotocol/relay-kit/commit/a8ecc87)) **UI Kit `2.9.8`** — Patch -- Fix slice error on confirmation screens +- Fix slice error on confirmation screens ([`d243416`](https://github.com/relayprotocol/relay-kit/commit/d243416)) **UI Kit `2.9.8`** — Patch -- Handle rejecting tx in AGW +- Handle rejecting tx in AGW ([`0e55b40`](https://github.com/relayprotocol/relay-kit/commit/0e55b40)) @@ -2041,11 +2041,11 @@ mode: "center" **SDK `1.6.14`** — Patch -- Add endpoint to APIError for debugging +- Add endpoint to APIError for debugging ([`b2782e9`](https://github.com/relayprotocol/relay-kit/commit/b2782e9)) **UI Kit `2.9.7`** — Patch -- Fix chain scroll bug +- Fix chain scroll bug ([`ed9cddb`](https://github.com/relayprotocol/relay-kit/commit/ed9cddb)) @@ -2055,7 +2055,7 @@ mode: "center" **UI Kit `2.9.5`** — Patch -- Prevent AGW from receiving incompatible funds +- Prevent AGW from receiving incompatible funds ([`f0ed8bc`](https://github.com/relayprotocol/relay-kit/commit/f0ed8bc)) @@ -2065,15 +2065,15 @@ mode: "center" **UI Kit `2.9.4`** — Patch -- Fix token symbol overflow within token selector +- Fix token symbol overflow within token selector ([`9eef113`](https://github.com/relayprotocol/relay-kit/commit/9eef113)) **UI Kit `2.9.4`** — Patch -- Add privateChainIds to RelayKitProvider options +- Add privateChainIds to RelayKitProvider options ([`e5d2bb9`](https://github.com/relayprotocol/relay-kit/commit/e5d2bb9)) **UI Kit `2.9.4`** — Patch -- Add dropdown-border theme element +- Add dropdown-border theme element ([`be993e3`](https://github.com/relayprotocol/relay-kit/commit/be993e3)) @@ -2083,7 +2083,7 @@ mode: "center" **UI Kit `2.9.3`** — Patch -- Fix useCurrencyBalnce hook bug +- Fix useCurrencyBalnce hook bug ([`f7a90ba`](https://github.com/relayprotocol/relay-kit/commit/f7a90ba)) @@ -2093,11 +2093,11 @@ mode: "center" **UI Kit `2.9.2`** — Patch -- Update analytic events for token selector +- Update analytic events for token selector ([`e0f74be`](https://github.com/relayprotocol/relay-kit/commit/e0f74be)) **UI Kit `2.9.2`** — Patch -- Fix undefined token setting in swap widget +- Fix undefined token setting in swap widget ([`ca56384`](https://github.com/relayprotocol/relay-kit/commit/ca56384)) @@ -2107,7 +2107,7 @@ mode: "center" **SDK `1.6.13`** — Patch -- Breaking Changes: +- Breaking Changes: ([`bf8dbdb`](https://github.com/relayprotocol/relay-kit/commit/bf8dbdb)) - `relay-kit-hooks`: Updated `useTokenLists` hook to use `/currencies/v2` API with new response structure - `relay-kit-ui`: Redesigned token selector component with improved architecture @@ -2120,11 +2120,11 @@ mode: "center" **UI Kit `2.9.1`** — Patch -- Fix token setters +- Fix token setters ([`40c1910`](https://github.com/relayprotocol/relay-kit/commit/40c1910)) **UI Kit `2.9.0`, Hooks `1.9.0`** — Minor -- Breaking Changes: +- Breaking Changes: ([`bf8dbdb`](https://github.com/relayprotocol/relay-kit/commit/bf8dbdb)) - `relay-kit-hooks`: Updated `useTokenLists` hook to use `/currencies/v2` API with new response structure - `relay-kit-ui`: Redesigned token selector component with improved architecture @@ -2137,7 +2137,7 @@ mode: "center" **UI Kit `2.9.0`** — Patch -- Allow dune base api to fallback to default +- Allow dune base api to fallback to default ([`12c8e59`](https://github.com/relayprotocol/relay-kit/commit/12c8e59)) @@ -2147,23 +2147,23 @@ mode: "center" **UI Kit `2.8.0`** — Minor -- Refactor dune api config +- Refactor dune api config ([`ccff74e`](https://github.com/relayprotocol/relay-kit/commit/ccff74e)) **UI Kit `2.8.0`** — Patch -- OnrampModal: reset recipient if vm changes and recipient is now invalid +- OnrampModal: reset recipient if vm changes and recipient is now invalid ([`7e7df25`](https://github.com/relayprotocol/relay-kit/commit/7e7df25)) **UI Kit `2.8.0`** — Patch -- Add a prop to disable paste address wallet option +- Add a prop to disable paste address wallet option ([`36bad1d`](https://github.com/relayprotocol/relay-kit/commit/36bad1d)) **UI Kit `2.8.0`** — Patch -- Fix conversion rate display bug +- Fix conversion rate display bug ([`cff46c3`](https://github.com/relayprotocol/relay-kit/commit/cff46c3)) **UI Kit `2.8.0`** — Patch -- Add a short cache for balance queries to optimize dune usage +- Add a short cache for balance queries to optimize dune usage ([`5b70dc4`](https://github.com/relayprotocol/relay-kit/commit/5b70dc4)) @@ -2173,7 +2173,7 @@ mode: "center" **SDK `1.6.12`** — Patch -- Fix hyperevm chain configuration +- Fix hyperevm chain configuration ([`66b8de8`](https://github.com/relayprotocol/relay-kit/commit/66b8de8)) @@ -2183,7 +2183,7 @@ mode: "center" **SDK `1.6.11`, UI Kit `2.7.18`** — Patch -- Update API SDK types, fix react 19 component type issues +- Update API SDK types, fix react 19 component type issues ([`0af5808`](https://github.com/relayprotocol/relay-kit/commit/0af5808)) @@ -2193,15 +2193,15 @@ mode: "center" **SDK `1.6.10`, UI Kit `2.7.16`** — Patch -- Add Sui VM support +- Add Sui VM support ([`769d648`](https://github.com/relayprotocol/relay-kit/commit/769d648)) **UI Kit `2.7.17`** — Patch -- Improve OnrampModal robustness +- Improve OnrampModal robustness ([`dfbca22`](https://github.com/relayprotocol/relay-kit/commit/dfbca22)) **UI Kit `2.7.17`** — Patch -- Always return QR code for deposit address flow +- Always return QR code for deposit address flow ([`16c07ed`](https://github.com/relayprotocol/relay-kit/commit/16c07ed)) @@ -2211,11 +2211,11 @@ mode: "center" **UI Kit `2.7.15`** — Patch -- Uniswap wallet compatability configurations +- Uniswap wallet compatability configurations ([`05733be`](https://github.com/relayprotocol/relay-kit/commit/05733be)) **UI Kit `2.7.15`** — Patch -- Fix max capacity error message not shown +- Fix max capacity error message not shown ([`93331ae`](https://github.com/relayprotocol/relay-kit/commit/93331ae)) @@ -2225,23 +2225,23 @@ mode: "center" **SDK `1.6.9`, UI Kit `2.7.14`, Hooks `1.8.5`** — Patch -- Add scripts for statically bundling versions +- Add scripts for statically bundling versions ([`bc77582`](https://github.com/relayprotocol/relay-kit/commit/bc77582)) **SDK `1.6.9`, UI Kit `2.7.14`** — Patch -- Handle custom block explorer transaction page +- Handle custom block explorer transaction page ([`cdc8d92`](https://github.com/relayprotocol/relay-kit/commit/cdc8d92)) **UI Kit `2.7.14`** — Patch -- Detect changes to destination chain and select supporting wallet +- Detect changes to destination chain and select supporting wallet ([`7f6c958`](https://github.com/relayprotocol/relay-kit/commit/7f6c958)) **UI Kit `2.7.14`** — Patch -- Improve Deposit address logic in TokenSelector +- Improve Deposit address logic in TokenSelector ([`842b547`](https://github.com/relayprotocol/relay-kit/commit/842b547)) **UI Kit `2.7.14`** — Patch -- Fix a bug where changing the chain to a different vm would not find the supported linked wallet +- Fix a bug where changing the chain to a different vm would not find the supported linked wallet ([`72f7f75`](https://github.com/relayprotocol/relay-kit/commit/72f7f75)) @@ -2251,27 +2251,27 @@ mode: "center" **SDK `1.6.8`** — Patch -- Update Tron dead address +- Update Tron dead address ([`3993eb3`](https://github.com/relayprotocol/relay-kit/commit/3993eb3)) **UI Kit `2.7.13`** — Patch -- Add analytic events for chain select +- Add analytic events for chain select ([`3b733af`](https://github.com/relayprotocol/relay-kit/commit/3b733af)) **UI Kit `2.7.13`** — Patch -- Rename connect CTA to "Connect Wallet" +- Rename connect CTA to "Connect Wallet" ([`38bfb4c`](https://github.com/relayprotocol/relay-kit/commit/38bfb4c)) **UI Kit `2.7.13`** — Patch -- Fix approval tx display on swap confirmation screen +- Fix approval tx display on swap confirmation screen ([`2b603a3`](https://github.com/relayprotocol/relay-kit/commit/2b603a3)) **UI Kit `2.7.12`** — Patch -- Remove duplicate price impact warning +- Remove duplicate price impact warning ([`8376d7f`](https://github.com/relayprotocol/relay-kit/commit/8376d7f)) **UI Kit `2.7.12`** — Patch -- Fix bug where deposit address origin prevented connecting a destination wallet +- Fix bug where deposit address origin prevented connecting a destination wallet ([`63be014`](https://github.com/relayprotocol/relay-kit/commit/63be014)) @@ -2281,7 +2281,7 @@ mode: "center" **UI Kit `2.7.11`** — Patch -- Fix default unverified tokens not prompting approval +- Fix default unverified tokens not prompting approval ([`00d34dd`](https://github.com/relayprotocol/relay-kit/commit/00d34dd)) @@ -2291,19 +2291,19 @@ mode: "center" **SDK `1.6.7`, UI Kit `2.7.9`** — Patch -- Tron support +- Tron support ([`f1f6d42`](https://github.com/relayprotocol/relay-kit/commit/f1f6d42)) **SDK `1.6.6`** — Patch -- Fix sender sometimes being set to dead address +- Fix sender sometimes being set to dead address ([`b0d1c88`](https://github.com/relayprotocol/relay-kit/commit/b0d1c88)) **UI Kit `2.7.10`** — Patch -- Fix tvm filter +- Fix tvm filter ([`0cad99d`](https://github.com/relayprotocol/relay-kit/commit/0cad99d)) **Hooks `1.8.2`** — Patch -- Swallow useQuote error if onError handler is passed +- Swallow useQuote error if onError handler is passed ([`7a675e3`](https://github.com/relayprotocol/relay-kit/commit/7a675e3)) @@ -2313,15 +2313,15 @@ mode: "center" **SDK `1.6.5`** — Patch -- Check tx confirmation error with tenderly api to enhance error data +- Check tx confirmation error with tenderly api to enhance error data ([`e0133b1`](https://github.com/relayprotocol/relay-kit/commit/e0133b1)) **UI Kit `2.7.7`** — Patch -- Ensure quote is always fresh when TransactionModal closes +- Ensure quote is always fresh when TransactionModal closes ([`62952a9`](https://github.com/relayprotocol/relay-kit/commit/62952a9)) **UI Kit `2.7.6`** — Patch -- Fix transaction validating event getting triggered multiple times +- Fix transaction validating event getting triggered multiple times ([`4f5f328`](https://github.com/relayprotocol/relay-kit/commit/4f5f328)) @@ -2331,11 +2331,11 @@ mode: "center" **UI Kit `2.7.5`** — Patch -- Dune token api chain_ids update +- Dune token api chain_ids update ([`5107aee`](https://github.com/relayprotocol/relay-kit/commit/5107aee)) **UI Kit `2.7.5`** — Patch -- Remove 'Review Quote' step and consolidate tx flow into one ui state +- Remove 'Review Quote' step and consolidate tx flow into one ui state ([`a173c5a`](https://github.com/relayprotocol/relay-kit/commit/a173c5a)) @@ -2345,15 +2345,15 @@ mode: "center" **UI Kit `2.7.4`** — Patch -- Fixes for suggested tokens and default token +- Fixes for suggested tokens and default token ([`99c4dbd`](https://github.com/relayprotocol/relay-kit/commit/99c4dbd)) **UI Kit `2.7.3`** — Patch -- Fix default selected token +- Fix default selected token ([`5eefe1f`](https://github.com/relayprotocol/relay-kit/commit/5eefe1f)) **UI Kit `2.7.3`** — Patch -- Wallet compatibility for major wallets and abstract address detection +- Wallet compatibility for major wallets and abstract address detection ([`a662444`](https://github.com/relayprotocol/relay-kit/commit/a662444)) @@ -2363,7 +2363,7 @@ mode: "center" **UI Kit `2.7.2`** — Patch -- Update slippage tolerance logic to handle remote swaps +- Update slippage tolerance logic to handle remote swaps ([`3a6fdd7`](https://github.com/relayprotocol/relay-kit/commit/3a6fdd7)) @@ -2373,19 +2373,19 @@ mode: "center" **SDK `1.6.4`** — Patch -- SDK config option to omit gas fee estimates +- SDK config option to omit gas fee estimates ([`0ccd0d7`](https://github.com/relayprotocol/relay-kit/commit/0ccd0d7)) **UI Kit `2.7.1`** — Patch -- Fix dialog and dropdown menu incompatibility +- Fix dialog and dropdown menu incompatibility ([`5af363f`](https://github.com/relayprotocol/relay-kit/commit/5af363f)) **UI Kit `2.7.0`, Hooks `1.8.0`** — Minor -- Remove usePrice hook, queryPrice action, and PriceResponse type +- Remove usePrice hook, queryPrice action, and PriceResponse type ([`df2820a`](https://github.com/relayprotocol/relay-kit/commit/df2820a)) **UI Kit `2.7.0`** — Patch -- Remap max liquidity error +- Remap max liquidity error ([`2aaf42a`](https://github.com/relayprotocol/relay-kit/commit/2aaf42a)) @@ -2395,7 +2395,7 @@ mode: "center" **SDK `1.6.3`, UI Kit `2.6.11`** — Patch -- Handle confirmation error appropriately +- Handle confirmation error appropriately ([`a601dfa`](https://github.com/relayprotocol/relay-kit/commit/a601dfa)) @@ -2405,27 +2405,27 @@ mode: "center" **UI Kit `2.6.10`** — Patch -- Fix slippage displayed for same-chain-swaps +- Fix slippage displayed for same-chain-swaps ([`5be1e1d`](https://github.com/relayprotocol/relay-kit/commit/5be1e1d)) **UI Kit `2.6.9`** — Patch -- Fix slippage config bug on rerender +- Fix slippage config bug on rerender ([`6772e0f`](https://github.com/relayprotocol/relay-kit/commit/6772e0f)) **UI Kit `2.6.8`** — Patch -- Add slippage configuration component +- Add slippage configuration component ([`c876fdf`](https://github.com/relayprotocol/relay-kit/commit/c876fdf)) **UI Kit `2.6.8`** — Patch -- Fix ChainTokenIcon fallback dimensions +- Fix ChainTokenIcon fallback dimensions ([`914af94`](https://github.com/relayprotocol/relay-kit/commit/914af94)) **UI Kit `2.6.8`** — Patch -- Fix onramping dollar formatting +- Fix onramping dollar formatting ([`46e6c73`](https://github.com/relayprotocol/relay-kit/commit/46e6c73)) **UI Kit `2.6.8`** — Patch -- Increase width of onramp widget +- Increase width of onramp widget ([`1cabbd1`](https://github.com/relayprotocol/relay-kit/commit/1cabbd1)) @@ -2435,11 +2435,11 @@ mode: "center" **UI Kit `2.6.7`** — Patch -- Hide fiat currency selector +- Hide fiat currency selector ([`a5e77cc`](https://github.com/relayprotocol/relay-kit/commit/a5e77cc)) **UI Kit `2.6.6`** — Patch -- Add onTokenChange callback handler to OnrampWidget +- Add onTokenChange callback handler to OnrampWidget ([`a90dc24`](https://github.com/relayprotocol/relay-kit/commit/a90dc24)) @@ -2449,31 +2449,31 @@ mode: "center" **SDK `1.6.2`, UI Kit `2.6.3`** — Patch -- Sync api types, append moonpay id to relay request +- Sync api types, append moonpay id to relay request ([`1bf4aa7`](https://github.com/relayprotocol/relay-kit/commit/1bf4aa7)) **SDK `1.6.2`, UI Kit `2.6.3`** — Patch -- Fix solver status timeout ui bug and split error into sub error +- Fix solver status timeout ui bug and split error into sub error ([`4215d2e`](https://github.com/relayprotocol/relay-kit/commit/4215d2e)) **UI Kit `2.6.5`** — Patch -- Fix onramping bugs +- Fix onramping bugs ([`a89bedd`](https://github.com/relayprotocol/relay-kit/commit/a89bedd)) **UI Kit `2.6.4`** — Patch -- Fix onramp modal parseUnits error with eth amount +- Fix onramp modal parseUnits error with eth amount ([`7c7d3ce`](https://github.com/relayprotocol/relay-kit/commit/7c7d3ce)) **UI Kit `2.6.3`** — Patch -- Fix onramping bugs: hide suggested tokens, avoid same chain swaps +- Fix onramping bugs: hide suggested tokens, avoid same chain swaps ([`869d750`](https://github.com/relayprotocol/relay-kit/commit/869d750)) **UI Kit `2.6.3`** — Patch -- OnrampModal bugs +- OnrampModal bugs ([`620e41d`](https://github.com/relayprotocol/relay-kit/commit/620e41d)) **UI Kit `2.6.3`** — Patch -- Fix useEnsResolver hook undefined address +- Fix useEnsResolver hook undefined address ([`773f61e`](https://github.com/relayprotocol/relay-kit/commit/773f61e)) @@ -2483,7 +2483,7 @@ mode: "center" **UI Kit `2.6.2`** — Patch -- Fix default chain icons +- Fix default chain icons ([`9ae33f8`](https://github.com/relayprotocol/relay-kit/commit/9ae33f8)) @@ -2493,11 +2493,11 @@ mode: "center" **UI Kit `2.6.1`** — Patch -- Fix bugs with onramping input +- Fix bugs with onramping input ([`5a8bcfc`](https://github.com/relayprotocol/relay-kit/commit/5a8bcfc)) **UI Kit `2.6.0`, Hooks `1.7.0`** — Minor -- OnrampWidget and useTokenPrice hook +- OnrampWidget and useTokenPrice hook ([`dc81aac`](https://github.com/relayprotocol/relay-kit/commit/dc81aac)) @@ -2507,11 +2507,11 @@ mode: "center" **UI Kit `2.5.6`** — Patch -- Fix token lock issues in SwapWidget +- Fix token lock issues in SwapWidget ([`af6c612`](https://github.com/relayprotocol/relay-kit/commit/af6c612)) **UI Kit `2.5.5`** — Patch -- Update logs to include steps +- Update logs to include steps ([`c205df0`](https://github.com/relayprotocol/relay-kit/commit/c205df0)) @@ -2521,7 +2521,7 @@ mode: "center" **UI Kit `2.5.4`** — Patch -- Update radix dialog version +- Update radix dialog version ([`72cdfad`](https://github.com/relayprotocol/relay-kit/commit/72cdfad)) @@ -2531,11 +2531,11 @@ mode: "center" **UI Kit `2.5.2`** — Patch -- Fix theme token usage for inputs +- Fix theme token usage for inputs ([`27b298c`](https://github.com/relayprotocol/relay-kit/commit/27b298c)) **UI Kit `2.5.2`** — Patch -- Fix recipient bug when multi wallet support is not enabled +- Fix recipient bug when multi wallet support is not enabled ([`2abfa1a`](https://github.com/relayprotocol/relay-kit/commit/2abfa1a)) @@ -2545,7 +2545,7 @@ mode: "center" **SDK `1.6.1`** — Patch -- Post same chain tx to solver to fix status timeout errors +- Post same chain tx to solver to fix status timeout errors ([`5a9208f`](https://github.com/relayprotocol/relay-kit/commit/5a9208f)) @@ -2555,15 +2555,15 @@ mode: "center" **SDK `1.6.0`, UI Kit `2.5.0`, Hooks `1.6.0`, Bitcoin adapter `3.0.0`, Ethers adapter `15.0.0`, SVM adapter `4.0.0`** — Minor -- Add support for batch transactions +- Add support for batch transactions ([`3ae98ed`](https://github.com/relayprotocol/relay-kit/commit/3ae98ed)) **SDK `1.6.0`, UI Kit `2.5.0`, Hooks `1.6.0`, Bitcoin adapter `3.0.0`, Ethers adapter `15.0.0`, SVM adapter `4.0.0`** — Patch -- Add support for EIP-5792 batch transactions +- Add support for EIP-5792 batch transactions ([`80aba91`](https://github.com/relayprotocol/relay-kit/commit/80aba91)) **UI Kit `2.5.0`** — Patch -- Remove usePrice hook usage from widget +- Remove usePrice hook usage from widget ([`e7f0acc`](https://github.com/relayprotocol/relay-kit/commit/e7f0acc)) @@ -2573,11 +2573,11 @@ mode: "center" **SDK `1.5.0`, UI Kit `2.4.0`, Hooks `1.5.0`, Bitcoin adapter `2.0.0`, Ethers adapter `14.0.0`, SVM adapter `3.0.0`** — Minor -- Upgrade viem peer dependency +- Upgrade viem peer dependency ([`1effc86`](https://github.com/relayprotocol/relay-kit/commit/1effc86)) **UI Kit `2.4.0`** — Patch -- Add usdc to ink chain's suggested tokens +- Add usdc to ink chain's suggested tokens ([`bbc62bc`](https://github.com/relayprotocol/relay-kit/commit/bbc62bc)) @@ -2587,7 +2587,7 @@ mode: "center" **UI Kit `2.3.10`** — Patch -- Add approve + swap ux flow and update cta copy in widget and modal +- Add approve + swap ux flow and update cta copy in widget and modal ([`cbbe9b7`](https://github.com/relayprotocol/relay-kit/commit/cbbe9b7)) @@ -2597,15 +2597,15 @@ mode: "center" **UI Kit `2.3.9`** — Patch -- Extract more data out of error message when sending to analytics handler +- Extract more data out of error message when sending to analytics handler ([`93d9556`](https://github.com/relayprotocol/relay-kit/commit/93d9556)) **UI Kit `2.3.8`** — Patch -- Fix quote_error data +- Fix quote_error data ([`a273799`](https://github.com/relayprotocol/relay-kit/commit/a273799)) **UI Kit `2.3.8`** — Patch -- Adjust how we handle approval denied and plugin closed errors +- Adjust how we handle approval denied and plugin closed errors ([`52ceb0c`](https://github.com/relayprotocol/relay-kit/commit/52ceb0c)) @@ -2615,11 +2615,11 @@ mode: "center" **UI Kit `2.3.7`, Hooks `1.4.16`** — Patch -- Add quote_error analytics event +- Add quote_error analytics event ([`9928dbc`](https://github.com/relayprotocol/relay-kit/commit/9928dbc)) **UI Kit `2.3.7`** — Patch -- Fix token selector height bug +- Fix token selector height bug ([`bf0e5ef`](https://github.com/relayprotocol/relay-kit/commit/bf0e5ef)) @@ -2629,15 +2629,15 @@ mode: "center" **SDK `1.4.10`** — Patch -- Improve robustness of pre tx chain id check +- Improve robustness of pre tx chain id check ([`7d6f035`](https://github.com/relayprotocol/relay-kit/commit/7d6f035)) **SDK `1.4.10`, UI Kit `2.3.6`** — Patch -- Fix dead address being allowed as burn address +- Fix dead address being allowed as burn address ([`f81fbfa`](https://github.com/relayprotocol/relay-kit/commit/f81fbfa)) **UI Kit `2.3.6`** — Patch -- Upgrade dune api version to v1 +- Upgrade dune api version to v1 ([`0f3e5f5`](https://github.com/relayprotocol/relay-kit/commit/0f3e5f5)) @@ -2647,15 +2647,15 @@ mode: "center" **SDK `1.4.9`, SVM adapter `2.0.9`** — Patch -- Expose instructions in signature function +- Expose instructions in signature function ([`2b257cd`](https://github.com/relayprotocol/relay-kit/commit/2b257cd)) **UI Kit `2.3.5`** — Patch -- Optimize token list merging and sorting logic in TokenSelector +- Optimize token list merging and sorting logic in TokenSelector ([`9d16628`](https://github.com/relayprotocol/relay-kit/commit/9d16628)) **UI Kit `2.3.5`** — Patch -- Fix token overflow ui bug on token selector +- Fix token overflow ui bug on token selector ([`5193c1a`](https://github.com/relayprotocol/relay-kit/commit/5193c1a)) @@ -2665,7 +2665,7 @@ mode: "center" **Hooks `1.4.13`** — Patch -- Fix useRequests base url +- Fix useRequests base url ([`91e7d85`](https://github.com/relayprotocol/relay-kit/commit/91e7d85)) @@ -2675,11 +2675,11 @@ mode: "center" **UI Kit `2.3.3`** — Patch -- Update token selector dimensions and breakpoints +- Update token selector dimensions and breakpoints ([`73f94b2`](https://github.com/relayprotocol/relay-kit/commit/73f94b2)) **UI Kit `2.3.3`** — Patch -- Fix slippage ui bugs +- Fix slippage ui bugs ([`cd44e80`](https://github.com/relayprotocol/relay-kit/commit/cd44e80)) @@ -2689,15 +2689,15 @@ mode: "center" **UI Kit `2.3.2`** — Patch -- Fix token selection bugs with lockChainId and restrictedTokens +- Fix token selection bugs with lockChainId and restrictedTokens ([`e2e93c7`](https://github.com/relayprotocol/relay-kit/commit/e2e93c7)) **UI Kit `2.3.2`** — Patch -- Add additional data points to switch wallet event +- Add additional data points to switch wallet event ([`869d7f8`](https://github.com/relayprotocol/relay-kit/commit/869d7f8)) **UI Kit `2.3.2`** — Patch -- Update copy for link new wallet dropdown item +- Update copy for link new wallet dropdown item ([`46c7bdd`](https://github.com/relayprotocol/relay-kit/commit/46c7bdd)) @@ -2707,15 +2707,15 @@ mode: "center" **UI Kit `2.3.1`** — Patch -- Optimize usePrice hook by moving baseChainId validation to SwapWidgetRenderer and removing checkExternalLiquiditySupport prop. This improves performance by skipping invalid canonical routes based on baseChainId relationships. +- Optimize usePrice hook by moving baseChainId validation to SwapWidgetRenderer and removing checkExternalLiquiditySupport prop. This improves performance by skipping invalid canonical routes based on baseChainId relationships. ([`d5b3c66`](https://github.com/relayprotocol/relay-kit/commit/d5b3c66)) **UI Kit `2.3.1`** — Patch -- Spacing for DepositAddressModal +- Spacing for DepositAddressModal ([`cb7ded3`](https://github.com/relayprotocol/relay-kit/commit/cb7ded3)) **Hooks `1.4.12`** — Patch -- feat: optimize usePrice hook to skip invalid canonical routes +- feat: optimize usePrice hook to skip invalid canonical routes ([`1a593b5`](https://github.com/relayprotocol/relay-kit/commit/1a593b5)) @@ -2725,19 +2725,19 @@ mode: "center" **UI Kit `2.3.0`** — Minor -- Deposit Address fallback functionality +- Deposit Address fallback functionality ([`561b396`](https://github.com/relayprotocol/relay-kit/commit/561b396)) **UI Kit `2.3.0`** — Patch -- Remove trailing zeros from formatted amount +- Remove trailing zeros from formatted amount ([`aa034bd`](https://github.com/relayprotocol/relay-kit/commit/aa034bd)) **UI Kit `2.3.0`** — Patch -- Include additional parameters when generating tx urls +- Include additional parameters when generating tx urls ([`dc6b34c`](https://github.com/relayprotocol/relay-kit/commit/dc6b34c)) **Hooks `1.4.11`** — Patch -- Deposit Address fallback functionality +- Deposit Address fallback functionality ([`561b396`](https://github.com/relayprotocol/relay-kit/commit/561b396)) @@ -2747,15 +2747,15 @@ mode: "center" **SDK `1.4.8`** — Patch -- Fix typescript error in RelayChain +- Fix typescript error in RelayChain ([`bb5a8d0`](https://github.com/relayprotocol/relay-kit/commit/bb5a8d0)) **UI Kit `2.2.28`** — Patch -- Restore slippage UI component in transaction review step +- Restore slippage UI component in transaction review step ([`c7167e6`](https://github.com/relayprotocol/relay-kit/commit/c7167e6)) **UI Kit `2.2.27`** — Patch -- Allow selecting same chain from chain selector +- Allow selecting same chain from chain selector ([`9e50085`](https://github.com/relayprotocol/relay-kit/commit/9e50085)) @@ -2765,15 +2765,15 @@ mode: "center" **UI Kit `2.2.26`** — Patch -- Hide slippage ui temporarily +- Hide slippage ui temporarily ([`9255bd1`](https://github.com/relayprotocol/relay-kit/commit/9255bd1)) **UI Kit `2.2.25`** — Patch -- Fix slippage ui bugs +- Fix slippage ui bugs ([`3a71c56`](https://github.com/relayprotocol/relay-kit/commit/3a71c56)) **UI Kit `2.2.24`** — Patch -- Add slippage details to review quote screen +- Add slippage details to review quote screen ([`90c9ef9`](https://github.com/relayprotocol/relay-kit/commit/90c9ef9)) @@ -2783,15 +2783,15 @@ mode: "center" **UI Kit `2.2.23`** — Patch -- Add onSwapValidating callback +- Add onSwapValidating callback ([`8d62614`](https://github.com/relayprotocol/relay-kit/commit/8d62614)) **UI Kit `2.2.23`** — Patch -- Use transaction data rather than quote data on success screen +- Use transaction data rather than quote data on success screen ([`25d17fa`](https://github.com/relayprotocol/relay-kit/commit/25d17fa)) **UI Kit `2.2.23`** — Patch -- Update SwapConfirmationStep ui to fix overflow +- Update SwapConfirmationStep ui to fix overflow ([`9a34e7e`](https://github.com/relayprotocol/relay-kit/commit/9a34e7e)) @@ -2801,11 +2801,11 @@ mode: "center" **UI Kit `2.2.22`** — Patch -- Add new theme tokens and section ids +- Add new theme tokens and section ids ([`68ad52a`](https://github.com/relayprotocol/relay-kit/commit/68ad52a)) **UI Kit `2.2.22`** — Patch -- Fix undefined placeholder in custom address model when toChain is undefined +- Fix undefined placeholder in custom address model when toChain is undefined ([`372fcd4`](https://github.com/relayprotocol/relay-kit/commit/372fcd4)) @@ -2815,19 +2815,19 @@ mode: "center" **SDK `1.4.7`** — Patch -- Update zero address for zero chain +- Update zero address for zero chain ([`a52745f`](https://github.com/relayprotocol/relay-kit/commit/a52745f)) **UI Kit `2.2.21`** — Patch -- Ensure dead address is properly generated +- Ensure dead address is properly generated ([`dce3b7b`](https://github.com/relayprotocol/relay-kit/commit/dce3b7b)) **UI Kit `2.2.20`** — Patch -- Fix zero quote api error message +- Fix zero quote api error message ([`04ba9cf`](https://github.com/relayprotocol/relay-kit/commit/04ba9cf)) **UI Kit `2.2.20`** — Patch -- Fix high price impact warning +- Fix high price impact warning ([`31b754f`](https://github.com/relayprotocol/relay-kit/commit/31b754f)) @@ -2837,23 +2837,23 @@ mode: "center" **UI Kit `2.2.19`** — Patch -- Hide route selector in fee breakdown in single chain mode +- Hide route selector in fee breakdown in single chain mode ([`fa63f61`](https://github.com/relayprotocol/relay-kit/commit/fa63f61)) **UI Kit `2.2.18`** — Patch -- Allow overriding chain to connector list +- Allow overriding chain to connector list ([`4fffded`](https://github.com/relayprotocol/relay-kit/commit/4fffded)) **UI Kit `2.2.17`** — Patch -- Remove route selector from single chain mode +- Remove route selector from single chain mode ([`d1fd8ae`](https://github.com/relayprotocol/relay-kit/commit/d1fd8ae)) **UI Kit `2.2.17`** — Patch -- Add chain icon to token selector in single chain mode +- Add chain icon to token selector in single chain mode ([`604b9f6`](https://github.com/relayprotocol/relay-kit/commit/604b9f6)) **UI Kit `2.2.17`** — Patch -- Fix switch tokens button border theme +- Fix switch tokens button border theme ([`ce675ba`](https://github.com/relayprotocol/relay-kit/commit/ce675ba)) @@ -2863,15 +2863,15 @@ mode: "center" **SDK `1.4.6`, UI Kit `2.2.15`, SVM adapter `2.0.6`** — Patch -- Support for eclipse svm +- Support for eclipse svm ([`69df434`](https://github.com/relayprotocol/relay-kit/commit/69df434)) **UI Kit `2.2.16`** — Patch -- Add single chain mode to swap widget +- Add single chain mode to swap widget ([`0c92f0e`](https://github.com/relayprotocol/relay-kit/commit/0c92f0e)) **Hooks `1.4.8`** — Patch -- Fix usePrice error handling +- Fix usePrice error handling ([`1c68705`](https://github.com/relayprotocol/relay-kit/commit/1c68705)) @@ -2881,11 +2881,11 @@ mode: "center" **SDK `1.4.5`, UI Kit `2.2.14`** — Patch -- Add suggested tokens to token selector +- Add suggested tokens to token selector ([`0292590`](https://github.com/relayprotocol/relay-kit/commit/0292590)) **UI Kit `2.2.14`** — Patch -- Fix capacity exceeded error to find max capacity +- Fix capacity exceeded error to find max capacity ([`bbad717`](https://github.com/relayprotocol/relay-kit/commit/bbad717)) @@ -2895,11 +2895,11 @@ mode: "center" **SDK `1.4.4`, UI Kit `2.2.13`** — Patch -- Impprove wallet switch error handling +- Impprove wallet switch error handling ([`2ea4fde`](https://github.com/relayprotocol/relay-kit/commit/2ea4fde)) **UI Kit `2.2.13`** — Patch -- Handle max capacity error when maximum not returned in error message +- Handle max capacity error when maximum not returned in error message ([`ab5bc9b`](https://github.com/relayprotocol/relay-kit/commit/ab5bc9b)) @@ -2909,27 +2909,27 @@ mode: "center" **SDK `1.4.3`, UI Kit `2.2.12`** — Patch -- Update solana dead address +- Update solana dead address ([`3dd7177`](https://github.com/relayprotocol/relay-kit/commit/3dd7177)) **UI Kit `2.2.11`** — Patch -- Remove support for setting unverified tokens from the chain selector +- Remove support for setting unverified tokens from the chain selector ([`f9b6975`](https://github.com/relayprotocol/relay-kit/commit/f9b6975)) **UI Kit `2.2.11`** — Patch -- Update token uri fallback styling +- Update token uri fallback styling ([`5745538`](https://github.com/relayprotocol/relay-kit/commit/5745538)) **UI Kit `2.2.10`** — Patch -- Update unverified token modal to link out to block explorer's token page +- Update unverified token modal to link out to block explorer's token page ([`6c52029`](https://github.com/relayprotocol/relay-kit/commit/6c52029)) **UI Kit `2.2.10`** — Patch -- Fix token selector trigger overflow +- Fix token selector trigger overflow ([`40aece0`](https://github.com/relayprotocol/relay-kit/commit/40aece0)) **UI Kit `2.2.10`** — Patch -- Fix pending balance bug breaking ui +- Fix pending balance bug breaking ui ([`aceb483`](https://github.com/relayprotocol/relay-kit/commit/aceb483)) @@ -2939,15 +2939,15 @@ mode: "center" **SDK `1.4.2`, UI Kit `2.2.9`** — Patch -- Add support for unverified tokens +- Add support for unverified tokens ([`631f997`](https://github.com/relayprotocol/relay-kit/commit/631f997)) **UI Kit `2.2.9`** — Patch -- Display pending balance when bitcoin tx is inflight +- Display pending balance when bitcoin tx is inflight ([`e8681aa`](https://github.com/relayprotocol/relay-kit/commit/e8681aa)) **UI Kit `2.2.9`** — Patch -- Remove logic to prefill address with connected address in custom address modal +- Remove logic to prefill address with connected address in custom address modal ([`73525f1`](https://github.com/relayprotocol/relay-kit/commit/73525f1)) @@ -2957,23 +2957,23 @@ mode: "center" **UI Kit `2.2.8`** — Patch -- Double time estimate for bitcoin +- Double time estimate for bitcoin ([`742a49a`](https://github.com/relayprotocol/relay-kit/commit/742a49a)) **UI Kit `2.2.7`** — Patch -- Make selector theme optional +- Make selector theme optional ([`87b0bca`](https://github.com/relayprotocol/relay-kit/commit/87b0bca)) **UI Kit `2.2.6`** — Patch -- Add disclaimer messaging in confirmation modal with long canonical relays +- Add disclaimer messaging in confirmation modal with long canonical relays ([`a1e9418`](https://github.com/relayprotocol/relay-kit/commit/a1e9418)) **UI Kit `2.2.6`** — Patch -- Add widget selector theme variable +- Add widget selector theme variable ([`bd1ec82`](https://github.com/relayprotocol/relay-kit/commit/bd1ec82)) **UI Kit `2.2.6`** — Patch -- Fix 0 price impact +- Fix 0 price impact ([`b68e6c1`](https://github.com/relayprotocol/relay-kit/commit/b68e6c1)) @@ -2983,23 +2983,23 @@ mode: "center" **UI Kit `2.2.5`** — Patch -- Fix parallel quoting when quote returns errror but price does not +- Fix parallel quoting when quote returns errror but price does not ([`47c6c04`](https://github.com/relayprotocol/relay-kit/commit/47c6c04)) **UI Kit `2.2.5`** — Patch -- Remove stroke from route selector when focused +- Remove stroke from route selector when focused ([`fc902d3`](https://github.com/relayprotocol/relay-kit/commit/fc902d3)) **UI Kit `2.2.4`** — Patch -- Fix double route ui issue where price error shows up alongside valid quote data +- Fix double route ui issue where price error shows up alongside valid quote data ([`321a64e`](https://github.com/relayprotocol/relay-kit/commit/321a64e)) **UI Kit `2.2.3`** — Patch -- Expand bitcoin address validation to taproot and base58 +- Expand bitcoin address validation to taproot and base58 ([`104fe18`](https://github.com/relayprotocol/relay-kit/commit/104fe18)) **UI Kit `2.2.2`, Hooks `1.4.2`** — Patch -- Fetch price and quote in parallel to improve price accuracy in SwapWidget +- Fetch price and quote in parallel to improve price accuracy in SwapWidget ([`f18951c`](https://github.com/relayprotocol/relay-kit/commit/f18951c)) @@ -3009,7 +3009,7 @@ mode: "center" **SDK `1.4.1`, UI Kit `2.2.1`** — Patch -- Fix bugs with bitcoin implementation +- Fix bugs with bitcoin implementation ([`6237949`](https://github.com/relayprotocol/relay-kit/commit/6237949)) @@ -3019,11 +3019,11 @@ mode: "center" **SDK `1.4.0`, UI Kit `2.2.0`, Bitcoin adapter `1.0.0`** — Minor -- Bitcoin support +- Bitcoin support ([`07917f6`](https://github.com/relayprotocol/relay-kit/commit/07917f6)) **Hooks `1.4.0`** — Minor -- Remove automatic refresh of quote data after execution in useQuote hook +- Remove automatic refresh of quote data after execution in useQuote hook ([`d3f975d`](https://github.com/relayprotocol/relay-kit/commit/d3f975d)) @@ -3033,7 +3033,7 @@ mode: "center" **UI Kit `2.1.9`** — Patch -- Added keyboard navigation to token selector +- Added keyboard navigation to token selector ([`29bb388`](https://github.com/relayprotocol/relay-kit/commit/29bb388)) @@ -3043,7 +3043,7 @@ mode: "center" **SDK `1.3.4`, UI Kit `2.1.7`** — Patch -- Replace exact_output with expected_output tradeType +- Replace exact_output with expected_output tradeType ([`2134530`](https://github.com/relayprotocol/relay-kit/commit/2134530)) @@ -3053,7 +3053,7 @@ mode: "center" **UI Kit `2.1.6`** — Patch -- Fix ux issues with canonical route selector +- Fix ux issues with canonical route selector ([`cea3f43`](https://github.com/relayprotocol/relay-kit/commit/cea3f43)) @@ -3063,7 +3063,7 @@ mode: "center" **UI Kit `2.1.5`** — Patch -- Improve price impact, handle no instant liquidity ux +- Improve price impact, handle no instant liquidity ux ([`af05332`](https://github.com/relayprotocol/relay-kit/commit/af05332)) @@ -3073,7 +3073,7 @@ mode: "center" **UI Kit `2.1.4`** — Patch -- Improvements on the canonical fallback ux +- Improvements on the canonical fallback ux ([`fbe5a41`](https://github.com/relayprotocol/relay-kit/commit/fbe5a41)) @@ -3083,11 +3083,11 @@ mode: "center" **UI Kit `2.1.3`** — Patch -- Fix disabled token selector background and issue with resetting canonical route +- Fix disabled token selector background and issue with resetting canonical route ([`25d9c9a`](https://github.com/relayprotocol/relay-kit/commit/25d9c9a)) **UI Kit `2.1.2`** — Patch -- Remove hardcoded canonical currencies +- Remove hardcoded canonical currencies ([`9b0319e`](https://github.com/relayprotocol/relay-kit/commit/9b0319e)) @@ -3097,11 +3097,11 @@ mode: "center" **UI Kit `2.1.1`** — Patch -- Fix canonical check amount, disable token selector when one option available +- Fix canonical check amount, disable token selector when one option available ([`d7a2ced`](https://github.com/relayprotocol/relay-kit/commit/d7a2ced)) **UI Kit `2.1.0`** — Minor -- Implement canonical+ support into SwapWidget, remove ChainWidget +- Implement canonical+ support into SwapWidget, remove ChainWidget ([`466cf46`](https://github.com/relayprotocol/relay-kit/commit/466cf46)) @@ -3111,11 +3111,11 @@ mode: "center" **SDK `1.3.3`** — Patch -- Fix switchChain logic to take into account missing chain in wallet +- Fix switchChain logic to take into account missing chain in wallet ([`3f88d12`](https://github.com/relayprotocol/relay-kit/commit/3f88d12)) **UI Kit `2.0.8`** — Patch -- Fix token selector balance display +- Fix token selector balance display ([`e3044ff`](https://github.com/relayprotocol/relay-kit/commit/e3044ff)) @@ -3125,11 +3125,11 @@ mode: "center" **UI Kit `2.0.5`** — Patch -- Patches fixes for Solana + multi wallet dropdown ui +- Patches fixes for Solana + multi wallet dropdown ui ([`e0b311d`](https://github.com/relayprotocol/relay-kit/commit/e0b311d)) **UI Kit `2.0.4`** — Patch -- Fix minor CustomAddressModal bugs +- Fix minor CustomAddressModal bugs ([`e763551`](https://github.com/relayprotocol/relay-kit/commit/e763551)) @@ -3139,23 +3139,23 @@ mode: "center" **SDK `1.3.2`, UI Kit `2.0.3`** — Patch -- Fix wallet switching in ChainWidget, fix sdk convert viem chain to RelayChain helper +- Fix wallet switching in ChainWidget, fix sdk convert viem chain to RelayChain helper ([`277bfc5`](https://github.com/relayprotocol/relay-kit/commit/277bfc5)) **UI Kit `2.0.3`** — Patch -- Removed max button when Solana balance is less than minimum buffer. +- Removed max button when Solana balance is less than minimum buffer. ([`1edca7c`](https://github.com/relayprotocol/relay-kit/commit/1edca7c)) **UI Kit `2.0.2`** — Patch -- Added a buffer of 0.02 minimum when selecting max for a Solana balance +- Added a buffer of 0.02 minimum when selecting max for a Solana balance ([`78e5d13`](https://github.com/relayprotocol/relay-kit/commit/78e5d13)) **UI Kit `2.0.2`** — Patch -- Fix solana custom address prompt +- Fix solana custom address prompt ([`b1526cb`](https://github.com/relayprotocol/relay-kit/commit/b1526cb)) **UI Kit `2.0.1`** — Patch -- Fix solana balance cached after swapping +- Fix solana balance cached after swapping ([`dc387e3`](https://github.com/relayprotocol/relay-kit/commit/dc387e3)) @@ -3165,11 +3165,11 @@ mode: "center" **SDK `1.3.1`** — Patch -- Add solana ui support in SwapWidget +- Add solana ui support in SwapWidget ([`2c38afe`](https://github.com/relayprotocol/relay-kit/commit/2c38afe)) **UI Kit `2.0.0`** — Major -- Add solana ui support in SwapWidget +- Add solana ui support in SwapWidget ([`2c38afe`](https://github.com/relayprotocol/relay-kit/commit/2c38afe)) @@ -3179,7 +3179,7 @@ mode: "center" **UI Kit `1.4.1`** — Patch -- Improve high price impact copy +- Improve high price impact copy ([`c5ed1d8`](https://github.com/relayprotocol/relay-kit/commit/c5ed1d8)) @@ -3189,7 +3189,7 @@ mode: "center" **SDK `1.3.0`, UI Kit `1.4.0`, Hooks `1.3.0`, Ethers adapter `12.0.0`** — Minor -- Abstract txs in Adapted Wallet + new Solana Adapter +- Abstract txs in Adapted Wallet + new Solana Adapter ([`a8215cf`](https://github.com/relayprotocol/relay-kit/commit/a8215cf)) @@ -3199,15 +3199,15 @@ mode: "center" **SDK `1.2.2`, UI Kit `1.3.20`** — Patch -- Expand support for svm chains when setting addresses +- Expand support for svm chains when setting addresses ([`41feac9`](https://github.com/relayprotocol/relay-kit/commit/41feac9)) **UI Kit `1.3.20`** — Patch -- Remove resetting of chain filter when token selector is closed +- Remove resetting of chain filter when token selector is closed ([`ae0dd9b`](https://github.com/relayprotocol/relay-kit/commit/ae0dd9b)) **UI Kit `1.3.20`** — Patch -- Fix modal's "x" button size and alignment +- Fix modal's "x" button size and alignment ([`10a4d30`](https://github.com/relayprotocol/relay-kit/commit/10a4d30)) @@ -3217,7 +3217,7 @@ mode: "center" **UI Kit `1.3.19`** — Patch -- Chain selector ux tweaks +- Chain selector ux tweaks ([`a93ae37`](https://github.com/relayprotocol/relay-kit/commit/a93ae37)) @@ -3227,11 +3227,11 @@ mode: "center" **UI Kit `1.3.18`** — Patch -- Update high price impact warning logic +- Update high price impact warning logic ([`2d33c4a`](https://github.com/relayprotocol/relay-kit/commit/2d33c4a)) **UI Kit `1.3.18`** — Patch -- Update swap widget padding and box shadow +- Update swap widget padding and box shadow ([`128127f`](https://github.com/relayprotocol/relay-kit/commit/128127f)) @@ -3241,15 +3241,15 @@ mode: "center" **UI Kit `1.3.17`** — Patch -- Fix conversion rate formatting bug +- Fix conversion rate formatting bug ([`9fe399d`](https://github.com/relayprotocol/relay-kit/commit/9fe399d)) **UI Kit `1.3.16`** — Patch -- Fix ui overflow on transaction modal +- Fix ui overflow on transaction modal ([`7079727`](https://github.com/relayprotocol/relay-kit/commit/7079727)) **UI Kit `1.3.16`** — Patch -- Allow fetching solana quotes with no custom address +- Allow fetching solana quotes with no custom address ([`32c533e`](https://github.com/relayprotocol/relay-kit/commit/32c533e)) @@ -3259,15 +3259,15 @@ mode: "center" **UI Kit `1.3.15`** — Patch -- Fix search by chain displayName +- Fix search by chain displayName ([`e6f3183`](https://github.com/relayprotocol/relay-kit/commit/e6f3183)) **UI Kit `1.3.15`** — Patch -- Update Swapping CTA +- Update Swapping CTA ([`5caf19b`](https://github.com/relayprotocol/relay-kit/commit/5caf19b)) **UI Kit `1.3.14`** — Patch -- Small token selector bug fixes +- Small token selector bug fixes ([`2a11467`](https://github.com/relayprotocol/relay-kit/commit/2a11467)) @@ -3277,19 +3277,19 @@ mode: "center" **UI Kit `1.3.13`** — Patch -- Fix token selector chain filter bug +- Fix token selector chain filter bug ([`f409525`](https://github.com/relayprotocol/relay-kit/commit/f409525)) **UI Kit `1.3.12`** — Patch -- Use default token list when chain is filtered +- Use default token list when chain is filtered ([`6001f8d`](https://github.com/relayprotocol/relay-kit/commit/6001f8d)) **UI Kit `1.3.11`** — Patch -- Chain selector improvements +- Chain selector improvements ([`2c6ead0`](https://github.com/relayprotocol/relay-kit/commit/2c6ead0)) **UI Kit `1.3.10`** — Patch -- Add styling support for undefined tokens in new swap widget +- Add styling support for undefined tokens in new swap widget ([`9b623c2`](https://github.com/relayprotocol/relay-kit/commit/9b623c2)) @@ -3299,7 +3299,7 @@ mode: "center" **SDK `1.2.1`, UI Kit `1.3.9`, Hooks `1.2.4`, Ethers adapter `11.0.1`** — Patch -- New swap widget ui +- New swap widget ui ([`7a084fa`](https://github.com/relayprotocol/relay-kit/commit/7a084fa)) @@ -3309,11 +3309,11 @@ mode: "center" **SDK `1.2.0`** — Minor -- Better handling of transaction in flight and post transaction ui, handle refund status when polling for transaction success +- Better handling of transaction in flight and post transaction ui, handle refund status when polling for transaction success ([`9e14a17`](https://github.com/relayprotocol/relay-kit/commit/9e14a17)) **UI Kit `1.3.8`** — Patch -- Better handling of transaction in flight and post transaction ui, handle refund status when polling for transaction success +- Better handling of transaction in flight and post transaction ui, handle refund status when polling for transaction success ([`9e14a17`](https://github.com/relayprotocol/relay-kit/commit/9e14a17)) @@ -3323,7 +3323,7 @@ mode: "center" **SDK `1.1.2`** — Patch -- Add getPrice action +- Add getPrice action ([`78c6ed0`](https://github.com/relayprotocol/relay-kit/commit/78c6ed0)) @@ -3333,19 +3333,19 @@ mode: "center" **UI Kit `1.3.6`** — Patch -- Fix analytics in TransactionModal +- Fix analytics in TransactionModal ([`7a1a4c7`](https://github.com/relayprotocol/relay-kit/commit/7a1a4c7)) **UI Kit `1.3.5`** — Patch -- Update balance display for solana +- Update balance display for solana ([`7d3f84d`](https://github.com/relayprotocol/relay-kit/commit/7d3f84d)) **UI Kit `1.3.4`** — Patch -- Update solana token selector logic +- Update solana token selector logic ([`785b732`](https://github.com/relayprotocol/relay-kit/commit/785b732)) **UI Kit `1.3.3`** — Patch -- Prevent switch token button in swap widget when swapping to solana token +- Prevent switch token button in swap widget when swapping to solana token ([`3ae5fee`](https://github.com/relayprotocol/relay-kit/commit/3ae5fee)) @@ -3355,35 +3355,35 @@ mode: "center" **SDK `1.1.1`** — Patch -- Update sdk api types +- Update sdk api types ([`28ed450`](https://github.com/relayprotocol/relay-kit/commit/28ed450)) **UI Kit `1.3.2`** — Patch -- Reduce swap conversion rate from 5 decimals to 2 decimals +- Reduce swap conversion rate from 5 decimals to 2 decimals ([`98bf004`](https://github.com/relayprotocol/relay-kit/commit/98bf004)) **UI Kit `1.3.2`** — Patch -- Link out to to chain block explorer in review quote ux +- Link out to to chain block explorer in review quote ux ([`4473144`](https://github.com/relayprotocol/relay-kit/commit/4473144)) **UI Kit `1.3.2`** — Patch -- Handle 0s time estimate +- Handle 0s time estimate ([`6363308`](https://github.com/relayprotocol/relay-kit/commit/6363308)) **UI Kit `1.3.2`** — Patch -- Improve custom wallet address modal ux +- Improve custom wallet address modal ux ([`35d5e43`](https://github.com/relayprotocol/relay-kit/commit/35d5e43)) **UI Kit `1.3.2`** — Patch -- Improve tx error messaging +- Improve tx error messaging ([`2cd9327`](https://github.com/relayprotocol/relay-kit/commit/2cd9327)) **UI Kit `1.3.2`** — Patch -- Reset custom address when switching to token from solana to evm chain +- Reset custom address when switching to token from solana to evm chain ([`b940e97`](https://github.com/relayprotocol/relay-kit/commit/b940e97)) **UI Kit `1.3.2`** — Patch -- Price Impact ui tweaks +- Price Impact ui tweaks ([`a42142d`](https://github.com/relayprotocol/relay-kit/commit/a42142d)) @@ -3393,7 +3393,7 @@ mode: "center" **UI Kit `1.3.1`** — Patch -- Support Solana deposits in Swap widget +- Support Solana deposits in Swap widget ([`df71a3b`](https://github.com/relayprotocol/relay-kit/commit/df71a3b)) @@ -3403,11 +3403,11 @@ mode: "center" **UI Kit `1.3.0`, Hooks `1.2.0`** — Minor -- Upgrade /requests api to /requests/v2 +- Upgrade /requests api to /requests/v2 ([`b9db008`](https://github.com/relayprotocol/relay-kit/commit/b9db008)) **UI Kit `1.3.0`** — Patch -- ChainWidget: Fix copy in SwapRouteSelector +- ChainWidget: Fix copy in SwapRouteSelector ([`4cd7401`](https://github.com/relayprotocol/relay-kit/commit/4cd7401)) @@ -3417,11 +3417,11 @@ mode: "center" **SDK `1.1.0`, UI Kit `1.2.0`, Hooks `1.1.0`** — Minor -- Switch from execute/swap to quote api +- Switch from execute/swap to quote api ([`105d1b8`](https://github.com/relayprotocol/relay-kit/commit/105d1b8)) **SDK `1.1.0`** — Patch -- Drop lodash cloneDeep in favor of native cloning +- Drop lodash cloneDeep in favor of native cloning ([`c158099`](https://github.com/relayprotocol/relay-kit/commit/c158099)) @@ -3431,11 +3431,11 @@ mode: "center" **SDK `1.0.13`, UI Kit `1.1.18`** — Patch -- Add support for iconUrl chain icon override +- Add support for iconUrl chain icon override ([`b342c8d`](https://github.com/relayprotocol/relay-kit/commit/b342c8d)) **UI Kit `1.1.18`** — Patch -- Add price impact warning to review quote ux +- Add price impact warning to review quote ux ([`efd44d6`](https://github.com/relayprotocol/relay-kit/commit/efd44d6)) @@ -3445,11 +3445,11 @@ mode: "center" **UI Kit `1.1.17`** — Patch -- Fix safari modal animation flickering bug +- Fix safari modal animation flickering bug ([`f66e0f5`](https://github.com/relayprotocol/relay-kit/commit/f66e0f5)) **UI Kit `1.1.17`** — Patch -- Add defaultExternalChainToken to Chain Widget +- Add defaultExternalChainToken to Chain Widget ([`87239fa`](https://github.com/relayprotocol/relay-kit/commit/87239fa)) @@ -3459,11 +3459,11 @@ mode: "center" **SDK `1.0.12`** — Patch -- Add supportsBridging to Relay Chain +- Add supportsBridging to Relay Chain ([`ec9b20f`](https://github.com/relayprotocol/relay-kit/commit/ec9b20f)) **SDK `1.0.11`** — Patch -- Sync api types +- Sync api types ([`92b9c71`](https://github.com/relayprotocol/relay-kit/commit/92b9c71)) @@ -3473,15 +3473,15 @@ mode: "center" **UI Kit `1.1.14`, Hooks `1.0.16`** — Patch -- Fix chain widget testnet configuration +- Fix chain widget testnet configuration ([`fac3415`](https://github.com/relayprotocol/relay-kit/commit/fac3415)) **UI Kit `1.1.13`** — Patch -- Fix swap widget cta bug +- Fix swap widget cta bug ([`5acf10e`](https://github.com/relayprotocol/relay-kit/commit/5acf10e)) **UI Kit `1.1.12`** — Patch -- Remove compact formatting from review quote +- Remove compact formatting from review quote ([`23b528c`](https://github.com/relayprotocol/relay-kit/commit/23b528c)) @@ -3491,7 +3491,7 @@ mode: "center" **UI Kit `1.1.11`** — Patch -- Decouple dune balance loading from token selector +- Decouple dune balance loading from token selector ([`00da309`](https://github.com/relayprotocol/relay-kit/commit/00da309)) @@ -3505,15 +3505,15 @@ mode: "center" **SDK `1.0.10`, Hooks `1.0.15`** — Patch -- Add usePrice hook +- Add usePrice hook ([`2d22eec`](https://github.com/relayprotocol/relay-kit/commit/2d22eec)) **UI Kit `1.1.10`** — Patch -- Fix dollar formatting sub 0 and price impact spacing +- Fix dollar formatting sub 0 and price impact spacing ([`af694ab`](https://github.com/relayprotocol/relay-kit/commit/af694ab)) **UI Kit `1.1.10`** — Patch -- Color coding price impact +- Color coding price impact ([`e231382`](https://github.com/relayprotocol/relay-kit/commit/e231382)) @@ -3523,7 +3523,7 @@ mode: "center" **UI Kit `1.1.9`** — Patch -- Fix dropdown item hover color +- Fix dropdown item hover color ([`b3432f4`](https://github.com/relayprotocol/relay-kit/commit/b3432f4)) @@ -3533,19 +3533,19 @@ mode: "center" **SDK `1.0.9`, UI Kit `1.1.8`** — Patch -- Better contextualize actions based on operation +- Better contextualize actions based on operation ([`3648ec3`](https://github.com/relayprotocol/relay-kit/commit/3648ec3)) **SDK `1.0.9`** — Patch -- Add blockProductionLagging to RelayChain +- Add blockProductionLagging to RelayChain ([`be74a6a`](https://github.com/relayprotocol/relay-kit/commit/be74a6a)) **UI Kit `1.1.8`** — Patch -- Only show fill time on success page if sub 10s +- Only show fill time on success page if sub 10s ([`ea3e6c5`](https://github.com/relayprotocol/relay-kit/commit/ea3e6c5)) **UI Kit `1.1.8`** — Patch -- Export TokenSelector component +- Export TokenSelector component ([`d5b3f82`](https://github.com/relayprotocol/relay-kit/commit/d5b3f82)) @@ -3555,23 +3555,23 @@ mode: "center" **UI Kit `1.1.7`** — Patch -- Reset canonical selection on ChainWidget unless supported +- Reset canonical selection on ChainWidget unless supported ([`7445bbf`](https://github.com/relayprotocol/relay-kit/commit/7445bbf)) **UI Kit `1.1.6`** — Patch -- Add txHashes to success and error events +- Add txHashes to success and error events ([`433ca57`](https://github.com/relayprotocol/relay-kit/commit/433ca57)) **UI Kit `1.1.6`** — Patch -- Add transaction validating event +- Add transaction validating event ([`7c8fb89`](https://github.com/relayprotocol/relay-kit/commit/7c8fb89)) **UI Kit `1.1.5`** — Patch -- Update chain display in token select ui +- Update chain display in token select ui ([`4cf2285`](https://github.com/relayprotocol/relay-kit/commit/4cf2285)) **UI Kit `1.1.4`** — Patch -- Sort token selector by total value usd and balance +- Sort token selector by total value usd and balance ([`02c5ea0`](https://github.com/relayprotocol/relay-kit/commit/02c5ea0)) @@ -3581,11 +3581,11 @@ mode: "center" **SDK `1.0.8`** — Patch -- Fix json error spreading throwing error in executeSteps +- Fix json error spreading throwing error in executeSteps ([`1e83361`](https://github.com/relayprotocol/relay-kit/commit/1e83361)) **UI Kit `1.1.3`** — Patch -- Add success screen for canonical +- Add success screen for canonical ([`643c6a6`](https://github.com/relayprotocol/relay-kit/commit/643c6a6)) @@ -3595,7 +3595,7 @@ mode: "center" **UI Kit `1.1.2`** — Patch -- ChainWidget Canonical functionality +- ChainWidget Canonical functionality ([`eae9b4d`](https://github.com/relayprotocol/relay-kit/commit/eae9b4d)) @@ -3605,7 +3605,7 @@ mode: "center" **UI Kit `1.1.1`** — Patch -- Remove log +- Remove log ([`3f2bd68`](https://github.com/relayprotocol/relay-kit/commit/3f2bd68)) @@ -3615,11 +3615,11 @@ mode: "center" **SDK `1.0.7`, UI Kit `1.1.0`, Hooks `1.0.12`** — Patch -- Add tests and fix global axios instance +- Add tests and fix global axios instance ([`4335c35`](https://github.com/relayprotocol/relay-kit/commit/4335c35)) **UI Kit `1.1.0`** — Minor -- Refactor SwapWidget and add new ChainWidget for deposit/withdraw ux +- Refactor SwapWidget and add new ChainWidget for deposit/withdraw ux ([`0384db0`](https://github.com/relayprotocol/relay-kit/commit/0384db0)) @@ -3629,11 +3629,11 @@ mode: "center" **Hooks `1.0.11`** — Patch -- Fix source getting overriden in useQuote hook +- Fix source getting overriden in useQuote hook ([`5c1a210`](https://github.com/relayprotocol/relay-kit/commit/5c1a210)) **Hooks `1.0.10`** — Patch -- Fix useQuote hook source +- Fix useQuote hook source ([`ec5e68e`](https://github.com/relayprotocol/relay-kit/commit/ec5e68e)) @@ -3643,7 +3643,7 @@ mode: "center" **UI Kit `1.0.14`** — Patch -- Pass source in widget +- Pass source in widget ([`f7f014b`](https://github.com/relayprotocol/relay-kit/commit/f7f014b)) @@ -3653,11 +3653,11 @@ mode: "center" **SDK `1.0.6`, UI Kit `1.0.13`** — Patch -- Improve post transaction polling to increase speed +- Improve post transaction polling to increase speed ([`5184197`](https://github.com/relayprotocol/relay-kit/commit/5184197)) **UI Kit `1.0.13`** — Patch -- Fix capabilities check when coinbase wallet connected +- Fix capabilities check when coinbase wallet connected ([`d264b99`](https://github.com/relayprotocol/relay-kit/commit/d264b99)) @@ -3667,15 +3667,15 @@ mode: "center" **UI Kit `1.0.12`** — Patch -- Update swap time icon color code +- Update swap time icon color code ([`4758845`](https://github.com/relayprotocol/relay-kit/commit/4758845)) **UI Kit `1.0.12`** — Patch -- Hide balance column in TokenSelector when account is not connected +- Hide balance column in TokenSelector when account is not connected ([`5a6f8ca`](https://github.com/relayprotocol/relay-kit/commit/5a6f8ca)) **UI Kit `1.0.12`** — Patch -- Disable useCapabilities except for on coinbase wallet +- Disable useCapabilities except for on coinbase wallet ([`d2c94a3`](https://github.com/relayprotocol/relay-kit/commit/d2c94a3)) @@ -3685,27 +3685,27 @@ mode: "center" **SDK `1.0.5`, UI Kit `1.0.11`, Hooks `1.0.8`** — Patch -- Move wallet chain id check to further in the flow +- Move wallet chain id check to further in the flow ([`1945809`](https://github.com/relayprotocol/relay-kit/commit/1945809)) **UI Kit `1.0.11`** — Patch -- Fix button color when token selector is locked +- Fix button color when token selector is locked ([`ffb9ebe`](https://github.com/relayprotocol/relay-kit/commit/ffb9ebe)) **UI Kit `1.0.10`** — Patch -- Add lock token params to swap widget" +- Add lock token params to swap widget" ([`b093883`](https://github.com/relayprotocol/relay-kit/commit/b093883)) **UI Kit `1.0.9`** — Patch -- Update powered by reservoir to use logo +- Update powered by reservoir to use logo ([`577658a`](https://github.com/relayprotocol/relay-kit/commit/577658a)) **UI Kit `1.0.9`** — Patch -- Fix total price impact copy +- Fix total price impact copy ([`525e523`](https://github.com/relayprotocol/relay-kit/commit/525e523)) **UI Kit `1.0.9`, Hooks `1.0.7`** — Patch -- Add onSuccess and onError callbacks for SwapWidget +- Add onSuccess and onError callbacks for SwapWidget ([`813be48`](https://github.com/relayprotocol/relay-kit/commit/813be48)) @@ -3715,15 +3715,15 @@ mode: "center" **SDK `1.0.4`** — Patch -- Add request to quote to be passed into execute function +- Add request to quote to be passed into execute function ([`6b5015b`](https://github.com/relayprotocol/relay-kit/commit/6b5015b)) **UI Kit `1.0.8`** — Patch -- Allow same currency swapping when different recipient +- Allow same currency swapping when different recipient ([`f0ecb82`](https://github.com/relayprotocol/relay-kit/commit/f0ecb82)) **UI Kit `1.0.8`** — Patch -- Fix RelayKitProvider initialization +- Fix RelayKitProvider initialization ([`7361f60`](https://github.com/relayprotocol/relay-kit/commit/7361f60)) @@ -3733,27 +3733,27 @@ mode: "center" **SDK `1.0.3`** — Patch -- Optimize the way we import lodash +- Optimize the way we import lodash ([`772b657`](https://github.com/relayprotocol/relay-kit/commit/772b657)) **UI Kit `1.0.7`** — Patch -- Add app fee to breakdown ui +- Add app fee to breakdown ui ([`5759936`](https://github.com/relayprotocol/relay-kit/commit/5759936)) **UI Kit `1.0.7`** — Patch -- Fix info icon alignment +- Fix info icon alignment ([`0c7e56c`](https://github.com/relayprotocol/relay-kit/commit/0c7e56c)) **UI Kit `1.0.7`** — Patch -- Fix input icon position +- Fix input icon position ([`a3d4c06`](https://github.com/relayprotocol/relay-kit/commit/a3d4c06)) **UI Kit `1.0.7`** — Patch -- Filter token search by configured tokens +- Filter token search by configured tokens ([`0a8325b`](https://github.com/relayprotocol/relay-kit/commit/0a8325b)) **Hooks `1.0.5`** — Patch -- Add useRelayConfig hook +- Add useRelayConfig hook ([`2922c29`](https://github.com/relayprotocol/relay-kit/commit/2922c29)) @@ -3763,31 +3763,31 @@ mode: "center" **SDK `1.0.2`, UI Kit `1.0.5`, Hooks `1.0.4`, Ethers adapter `9.0.2`** — Patch -- Strip layers from generated ui kit stylesheet +- Strip layers from generated ui kit stylesheet ([`ce46e72`](https://github.com/relayprotocol/relay-kit/commit/ce46e72)) **UI Kit `1.0.6`** — Patch -- Add app name and fees to RelayKitProvider options +- Add app name and fees to RelayKitProvider options ([`7aa524c`](https://github.com/relayprotocol/relay-kit/commit/7aa524c)) **UI Kit `1.0.6`** — Patch -- Add token change callbacks +- Add token change callbacks ([`9ad0dda`](https://github.com/relayprotocol/relay-kit/commit/9ad0dda)) **UI Kit `1.0.6`** — Patch -- Fix theme override selector +- Fix theme override selector ([`7a073f8`](https://github.com/relayprotocol/relay-kit/commit/7a073f8)) **UI Kit `1.0.4`, Hooks `1.0.3`** — Patch -- Make tanstack query a peer dependency +- Make tanstack query a peer dependency ([`592feb1`](https://github.com/relayprotocol/relay-kit/commit/592feb1)) **UI Kit `1.0.3`** — Patch -- Make wagmi a peer dependency +- Make wagmi a peer dependency ([`ac60282`](https://github.com/relayprotocol/relay-kit/commit/ac60282)) **UI Kit `1.0.2`, Hooks `1.0.2`** — Patch -- Fix esm import errors +- Fix esm import errors ([`2c6d3da`](https://github.com/relayprotocol/relay-kit/commit/2c6d3da)) @@ -3797,11 +3797,11 @@ mode: "center" **SDK `1.0.1`, UI Kit `1.0.1`, Hooks `1.0.1`, Ethers adapter `9.0.1`** — Patch -- Fix deploy script +- Fix deploy script ([`4a55654`](https://github.com/relayprotocol/relay-kit/commit/4a55654)) **SDK `1.0.0`, UI Kit `1.0.0`, Hooks `1.0.0`** — Major -- Refactor SDK to simplify, add ui packages +- Refactor SDK to simplify, add ui packages ([`ba72406`](https://github.com/relayprotocol/relay-kit/commit/ba72406)) @@ -3811,7 +3811,7 @@ mode: "center" **SDK `0.7.0`** — Minor -- Migrate to v2 of call and bridge api +- Migrate to v2 of call and bridge api ([`a77e30f`](https://github.com/relayprotocol/relay-kit/commit/a77e30f)) @@ -3821,11 +3821,11 @@ mode: "center" **SDK `0.6.2`** — Patch -- Make txs a first class parameter in swap action +- Make txs a first class parameter in swap action ([`820021e`](https://github.com/relayprotocol/relay-kit/commit/820021e)) **SDK `0.6.1`** — Patch -- Support swap + extra call txs +- Support swap + extra call txs ([`6ae4f8d`](https://github.com/relayprotocol/relay-kit/commit/6ae4f8d)) @@ -3835,23 +3835,23 @@ mode: "center" **SDK `0.6.0`** — Minor -- Upgrade getSolverCapacity method to use config v2 api +- Upgrade getSolverCapacity method to use config v2 api ([`309af6e`](https://github.com/relayprotocol/relay-kit/commit/309af6e)) **SDK `0.6.0`** — Patch -- Add square icons to Relay Chain +- Add square icons to Relay Chain ([`96db714`](https://github.com/relayprotocol/relay-kit/commit/96db714)) **SDK `0.6.0`** — Patch -- Move sdk methods to actions +- Move sdk methods to actions ([`47a8aed`](https://github.com/relayprotocol/relay-kit/commit/47a8aed)) **SDK `0.6.0`** — Patch -- Add progress state +- Add progress state ([`31fecc5`](https://github.com/relayprotocol/relay-kit/commit/31fecc5)) **SDK `0.6.0`** — Patch -- Improve typescript fee execute types +- Improve typescript fee execute types ([`bce691b`](https://github.com/relayprotocol/relay-kit/commit/bce691b)) @@ -3861,11 +3861,11 @@ mode: "center" **SDK `0.5.4`** — Patch -- Post deposit transactions to solver +- Post deposit transactions to solver ([`8ef9ba6`](https://github.com/relayprotocol/relay-kit/commit/8ef9ba6)) **SDK `0.5.4`** — Patch -- Fix return types for get quote methods +- Fix return types for get quote methods ([`9799870`](https://github.com/relayprotocol/relay-kit/commit/9799870)) @@ -3875,7 +3875,7 @@ mode: "center" **SDK `0.5.3`** — Patch -- Fix internal txhash chain id +- Fix internal txhash chain id ([`dd34345`](https://github.com/relayprotocol/relay-kit/commit/dd34345)) @@ -3885,11 +3885,11 @@ mode: "center" **SDK `0.5.2`** — Patch -- Await tx receipt for transaction steps +- Await tx receipt for transaction steps ([`e795842`](https://github.com/relayprotocol/relay-kit/commit/e795842)) **SDK `0.5.1`, Ethers adapter `6.0.1`** — Patch -- Swaps action and getSwapQuote method +- Swaps action and getSwapQuote method ([`597371e`](https://github.com/relayprotocol/relay-kit/commit/597371e)) @@ -3899,11 +3899,11 @@ mode: "center" **SDK `0.5.0`** — Minor -- Swap SDK action +- Swap SDK action ([`74e12e1`](https://github.com/relayprotocol/relay-kit/commit/74e12e1)) **SDK `0.5.0`** — Patch -- Sync types +- Sync types ([`e0f2219`](https://github.com/relayprotocol/relay-kit/commit/e0f2219)) @@ -3913,11 +3913,11 @@ mode: "center" **SDK `0.4.0`** — Minor -- Improve onProgress action callback to be easier to use +- Improve onProgress action callback to be easier to use ([`fc2f8ce`](https://github.com/relayprotocol/relay-kit/commit/fc2f8ce)) **SDK `0.4.0`** — Patch -- Update sdk readme +- Update sdk readme ([`84a2ea8`](https://github.com/relayprotocol/relay-kit/commit/84a2ea8)) @@ -3927,7 +3927,7 @@ mode: "center" **SDK `0.3.10`** — Patch -- Sync api types + add useExactInput parameter to demo +- Sync api types + add useExactInput parameter to demo ([`0dbeb4a`](https://github.com/relayprotocol/relay-kit/commit/0dbeb4a)) @@ -3937,7 +3937,7 @@ mode: "center" **SDK `0.3.9`** — Patch -- Remove requestId from Execute type +- Remove requestId from Execute type ([`4239703`](https://github.com/relayprotocol/relay-kit/commit/4239703)) @@ -3947,7 +3947,7 @@ mode: "center" **SDK `0.3.8`** — Patch -- Skip check object if bridge is canonical +- Skip check object if bridge is canonical ([`19019b4`](https://github.com/relayprotocol/relay-kit/commit/19019b4)) @@ -3957,7 +3957,7 @@ mode: "center" **SDK `0.3.7`** — Patch -- Sync api types +- Sync api types ([`96d0990`](https://github.com/relayprotocol/relay-kit/commit/96d0990)) @@ -3967,7 +3967,7 @@ mode: "center" **SDK `0.3.6`** — Patch -- Sync API types +- Sync API types ([`c9d17bb`](https://github.com/relayprotocol/relay-kit/commit/c9d17bb)) @@ -3977,11 +3977,11 @@ mode: "center" **SDK `0.3.5`** — Patch -- Add currency id to RelayChain type +- Add currency id to RelayChain type ([`952b5a6`](https://github.com/relayprotocol/relay-kit/commit/952b5a6)) **SDK `0.3.4`** — Patch -- Sync api types +- Sync api types ([`8bd3d17`](https://github.com/relayprotocol/relay-kit/commit/8bd3d17)) @@ -3991,7 +3991,7 @@ mode: "center" **SDK `0.3.3`** — Patch -- Handle inTxHashes for signature step items +- Handle inTxHashes for signature step items ([`0f291dc`](https://github.com/relayprotocol/relay-kit/commit/0f291dc)) @@ -4001,7 +4001,7 @@ mode: "center" **SDK `0.3.2`** — Patch -- Add isValidatingSignature to step item +- Add isValidatingSignature to step item ([`a76f067`](https://github.com/relayprotocol/relay-kit/commit/a76f067)) @@ -4011,7 +4011,7 @@ mode: "center" **SDK `0.3.1`** — Patch -- Sync api types and add erc20Currencies to RelayChain +- Sync api types and add erc20Currencies to RelayChain ([`f9dff0c`](https://github.com/relayprotocol/relay-kit/commit/f9dff0c)) @@ -4021,11 +4021,11 @@ mode: "center" **SDK `0.3.0`** — Minor -- Update bridge action to use new bridge api + usdc support +- Update bridge action to use new bridge api + usdc support ([`e41c632`](https://github.com/relayprotocol/relay-kit/commit/e41c632)) **SDK `0.3.0`** — Patch -- Handle rainbow wallet bug where txHash of "null" is returned when tx rejected +- Handle rainbow wallet bug where txHash of "null" is returned when tx rejected ([`a572a48`](https://github.com/relayprotocol/relay-kit/commit/a572a48)) @@ -4035,15 +4035,15 @@ mode: "center" **SDK `0.2.5`** — Patch -- Omit duplicate types from call and bridge action options +- Omit duplicate types from call and bridge action options ([`180d1c7`](https://github.com/relayprotocol/relay-kit/commit/180d1c7)) **SDK `0.2.5`** — Patch -- Return route breakdown in onProgress callback +- Return route breakdown in onProgress callback ([`4910cbf`](https://github.com/relayprotocol/relay-kit/commit/4910cbf)) **SDK `0.2.5`** — Patch -- Remove tx intent trigger api call +- Remove tx intent trigger api call ([`f454345`](https://github.com/relayprotocol/relay-kit/commit/f454345)) @@ -4053,11 +4053,11 @@ mode: "center" **SDK `0.2.4`** — Patch -- Sync sdk types with api +- Sync sdk types with api ([`ade63ae`](https://github.com/relayprotocol/relay-kit/commit/ade63ae)) **SDK `0.2.4`** — Patch -- Added readme to sdk +- Added readme to sdk ([`2624964`](https://github.com/relayprotocol/relay-kit/commit/2624964)) @@ -4067,7 +4067,7 @@ mode: "center" **SDK `0.2.3`** — Patch -- Make wallet parameter optional for get quote methods +- Make wallet parameter optional for get quote methods ([`10c3e03`](https://github.com/relayprotocol/relay-kit/commit/10c3e03)) @@ -4077,11 +4077,11 @@ mode: "center" **SDK `0.2.2`** — Patch -- Add ability to pass in a gasLimit for deposit transactions +- Add ability to pass in a gasLimit for deposit transactions ([`90e4d58`](https://github.com/relayprotocol/relay-kit/commit/90e4d58)) **SDK `0.2.2`** — Patch -- Add currentStep and currentStep item to onProgress callback +- Add currentStep and currentStep item to onProgress callback ([`8a5fdda`](https://github.com/relayprotocol/relay-kit/commit/8a5fdda)) @@ -4091,7 +4091,7 @@ mode: "center" **SDK `0.2.1`** — Patch -- Add getSolverCapacity, getCallQuote, getBridgeQuote methods +- Add getSolverCapacity, getCallQuote, getBridgeQuote methods ([`b59c35a`](https://github.com/relayprotocol/relay-kit/commit/b59c35a)) @@ -4101,11 +4101,11 @@ mode: "center" **SDK `0.2.0`, Ethers adapter `3.0.0`** — Minor -- Handle mismatched chain prior to execution +- Handle mismatched chain prior to execution ([`53f089b`](https://github.com/relayprotocol/relay-kit/commit/53f089b)) **SDK `0.2.0`** — Patch -- Add simplified bridge action for convenience +- Add simplified bridge action for convenience ([`0fbab53`](https://github.com/relayprotocol/relay-kit/commit/0fbab53)) @@ -4115,11 +4115,11 @@ mode: "center" **SDK `0.1.0`, Ethers adapter `2.0.0`** — Minor -- Upgrade wagmi, viem and rainbowkit to v2 +- Upgrade wagmi, viem and rainbowkit to v2 ([`547425d`](https://github.com/relayprotocol/relay-kit/commit/547425d)) **SDK `0.1.0`** — Patch -- Automatic source detection +- Automatic source detection ([`bad65fe`](https://github.com/relayprotocol/relay-kit/commit/bad65fe)) @@ -4129,7 +4129,7 @@ mode: "center" **SDK `0.0.13`** — Patch -- Add source attribution parameter to call action +- Add source attribution parameter to call action ([`3c6c3fc`](https://github.com/relayprotocol/relay-kit/commit/3c6c3fc)) @@ -4139,10 +4139,10 @@ mode: "center" **SDK `0.0.12`** — Patch -- Improve chain conversion by using viem chains if available or fallback to api chain data +- Improve chain conversion by using viem chains if available or fallback to api chain data ([`60854a6`](https://github.com/relayprotocol/relay-kit/commit/60854a6)) **Ethers adapter `1.0.0`** — Major -- Relay SDK ethers wallet adapter +- Relay SDK ethers wallet adapter ([`8b3f605`](https://github.com/relayprotocol/relay-kit/commit/8b3f605)) diff --git a/scripts/build-changelog.mjs b/scripts/build-changelog.mjs index 5a47adcf..4dd591a0 100644 --- a/scripts/build-changelog.mjs +++ b/scripts/build-changelog.mjs @@ -24,6 +24,12 @@ const API_CHANGELOG = join(ROOT, 'references', 'api', 'changelog.mdx') const SINCE = process.env.CHANGELOG_SINCE ?? '0000-00-00' const CHECK = process.argv.includes('--check') +// relay-kit is public, so the commit hash changesets records on each bullet can be linked. +// Its changesets config is `@changesets/cli/changelog`, which writes a bare hash rather than +// the PR/commit links `@changesets/changelog-github` would produce — hence building the URL +// here. The commit page names the PR it came from, so one link covers both. +const RELAY_KIT_COMMIT_URL = 'https://github.com/relayprotocol/relay-kit/commit' + const SECTION_ORDER = ['API', 'RelayKit', 'App'] const TAG_ORDER = ['API', 'SDK', 'UI Kit', 'Hooks', 'Adapters', 'App'] @@ -216,12 +222,14 @@ function parseChangesetChangelog(markdown) { let release = null let kind = null let bullet = null + let commit = null const flushBullet = () => { if (!bullet) return const text = bullet.join('\n').trimEnd() - if (text && !/^Updated dependencies\b/.test(text)) release.changes.push({ kind, text }) + if (text && !/^Updated dependencies\b/.test(text)) release.changes.push({ kind, text, commit }) bullet = null + commit = null } for (const line of lines) { @@ -244,14 +252,17 @@ function parseChangesetChangelog(markdown) { if (/^- /.test(line)) { flushBullet() - bullet = [line.replace(/^- /, '').replace(/^[0-9a-f]{7,40}: /, '')] + const body = line.replace(/^- /, '') + const hash = body.match(/^([0-9a-f]{7,40}): /) + commit = hash ? hash[1] : null + bullet = [hash ? body.slice(hash[0].length) : body] continue } - // Continuation lines of the current bullet are indented by two spaces. - if (bullet && (line.trim() === '' || /^\s{2,}/.test(line))) { - bullet.push(line.replace(/^ {2}/, '')) - } + // Everything up to the next bullet or heading continues the current one. Requiring an + // indent here would silently drop lazily-continued, tab-indented, and single-space + // lines, truncating the release note mid-sentence. + if (bullet) bullet.push(line.replace(/^(\t| {1,2})/, '')) } flushBullet() @@ -372,6 +383,13 @@ function escapeMdx(text) { .join('') } +// The link belongs on the summary line, not after any nested bullets that follow it. +function withCommitLink(text, commit) { + if (!commit) return text + const [summary, ...rest] = text.split('\n') + return [`${summary} ([\`${commit}\`](${RELAY_KIT_COMMIT_URL}/${commit}))`, ...rest].join('\n') +} + function indentBullet(text) { return text .split('\n') @@ -439,7 +457,9 @@ function renderRelayKit(entries) { for (const entry of entries) { for (const change of entry.changes) { const key = `${change.kind}${change.text}` - if (!groups.has(key)) groups.set(key, { kind: change.kind, text: change.text, packages: new Map() }) + if (!groups.has(key)) { + groups.set(key, { kind: change.kind, text: change.text, commit: change.commit, packages: new Map() }) + } // A package can publish twice in a day; credit the newest version carrying the change. const seen = groups.get(key).packages.get(entry.label) if (!seen || compareVersions(entry.version, seen) > 0) groups.get(key).packages.set(entry.label, entry.version) @@ -449,7 +469,7 @@ function renderRelayKit(entries) { return [...groups.values()] .map((group) => { const packages = [...group.packages].map(([label, version]) => `${label} \`${version}\``) - const body = indentBullet(escapeMdx(group.text)) + const body = indentBullet(withCommitLink(escapeMdx(group.text), group.commit)) return `**${packages.join(', ')}** — ${group.kind}\n\n${body}` }) .join('\n\n') From 006e74eb4ae49fda0c9df4b69e7af320a9811606 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 14 Aug 2026 17:16:56 -0400 Subject: [PATCH 4/5] Fix syntax error --- .mintignore | 5 +++++ AGENTS.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .mintignore diff --git a/.mintignore b/.mintignore new file mode 100644 index 00000000..68e80086 --- /dev/null +++ b/.mintignore @@ -0,0 +1,5 @@ +# Internal guidance and repo scaffolding, not docs pages. Without this they are parsed as +# MDX on every edit, so a `` in prose fails the whole deployment. +AGENTS.md +CLAUDE.md +README.md diff --git a/AGENTS.md b/AGENTS.md index 9a92af29..d67ada12 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -103,7 +103,7 @@ Parameter tables are the dominant structured element on reference pages. - Keep cell descriptions concise; move long explanations into prose below the table. - `Required` column uses ✅ / ❌. **Only include the `Required` column when the table has a mix of required and optional params** — if everything is required (or everything is optional), omit the column entirely. Use a compound value like `✅ (❌ if X)` when requirement is conditional. - Precede every parameter table with a one-line intro sentence ("Arguments:" / "Parameters:" are acceptable, but a full sentence reads better). -- When the table intentionally shows only a subset of parameters, call that out in the intro sentence and link to the full reference (e.g. "The most commonly used parameters are below; see [](/...) for the complete list."). +- When the table intentionally shows only a subset of parameters, call that out in the intro sentence and link to the full reference (e.g. "The most commonly used parameters are below; see [``](/...) for the complete list."). ### 2.8 Code examples From 26d433704071896fe066a490a7d75f2124aece10 Mon Sep 17 00:00:00 2001 From: pedromcunha Date: Fri, 14 Aug 2026 17:27:00 -0400 Subject: [PATCH 5/5] fix url navigation when filtering changelog --- AGENTS.md | 2 +- script.js | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d67ada12..bfb873f4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -311,7 +311,7 @@ The `## YYYY-MM-DD — ` heading shape is parsed by `scripts/build-chan - **API and App changes group by change type across the whole day** — one `**Breaking**` / `**Deprecated**` / `**Behavior change**` / `**Added**` list per day, not per source entry, so a day reads as "here is what was added, here is what changed". Ordering comes from `CHANGE_TYPE_ORDER`; a type that is not listed there still renders, after the known ones. Source entry titles are dropped, and an API paragraph with no bolded type lead is folded into the change above it. - RelayKit versions are dated by npm publish time. Changeset bullets that only say "Updated dependencies" are dropped, and one changeset spanning several packages collapses into a single item naming each package. - **RelayKit entries link to their commit.** relay-kit is public and its changesets config (`@changesets/cli/changelog`) prefixes each bullet with the commit hash, so the generator turns that into a link on the summary line. The commit page names the originating PR, so this covers both without any API lookups. Bullets written without a hash simply get no link. Nothing links for the API or App lines — `solver` and `relay-client` are private. -- **Filtering is custom.** Mintlify's own changelog filters render in the table of contents, which `mode: "center"` hides. Instead, `enhanceChangelogPage()` in `script.js` binds the tags Mintlify already renders under each date (`[data-component-part="update-tag"]`, from the `tags={[…]}` prop): click one to narrow to that product line, click it again to clear, several tags OR together, and the selection round-trips through `?tags=`. `style.css` gives those spans their chip look and active state. Both hang off Mintlify's `data-component-part` attributes — verified present on a deployed build, but if an upgrade renames them the filter silently stops working, so re-check it after a Mintlify bump. +- **Filtering is custom.** Mintlify's own changelog filters render in the table of contents, which `mode: "center"` hides. Instead, `enhanceChangelogPage()` in `script.js` binds the tags Mintlify already renders under each date (`[data-component-part="update-tag"]`, from the `tags={[…]}` prop): click one to narrow to that product line, click it again to clear, several tags OR together. **The `?tags=` query string is the source of truth**, re-read on every navigation event — a shared link, a back/forward step, and a click on the Changelog tab each land on the filter the URL names, rather than on whatever was last clicked. `style.css` gives those spans their chip look and active state. Both hang off Mintlify's `data-component-part` attributes — verified present on a deployed build, but if an upgrade renames them the filter silently stops working, so re-check it after a Mintlify bump. - **The page carries the full history** (currently back to 2024-02-05) and renders all of it. Measured on a deployed build at 272 days: 1.8MB of HTML, **113KB gzipped**, **~10.4k DOM elements** — heavier than a normal docs page, and worth re-measuring as it grows. Hiding entries client-side is not the lever: it saves no bytes, and it breaks browser find, which is how readers locate things on a page with no table of contents. If the weight becomes a problem, split by year into real pages (`changelog/2026`), which the generator can emit from the same grouping — client-side fetching of markdown or JSON forfeits RSS, Mintlify's search index, the contextual copy/markdown menu, and crawler visibility. Set `CHANGELOG_SINCE` to truncate. - Prerelease versions never reach the page. relay-kit publishes `0.0.0-canary-*` builds to npm, and a reader cannot install one. - Cross-references between API entries resolve to `#YYYY-MM-DD`, the id Mintlify gives each ``. diff --git a/script.js b/script.js index e56624e0..28f6c21d 100644 --- a/script.js +++ b/script.js @@ -171,6 +171,16 @@ function tagsOf(list) { return [...list.querySelectorAll(TAG)].map((tag) => tag.textContent.trim()); } +// The query string is the source of truth for which filters are on, so a shared link, a +// back/forward step, and a click on the Changelog tab all land on the filter they name. +function activeTagsFromUrl() { + return new Set( + (new URLSearchParams(window.location.search).get("tags") || "") + .split(",") + .filter(Boolean), + ); +} + function applyChangelogFilter() { for (const entry of changelog.entries) { const matches = @@ -213,11 +223,7 @@ function enhanceChangelogPage() { changelog = { count: tagLists.length, entries: collectEntries(tagLists), - active: new Set( - (new URLSearchParams(window.location.search).get("tags") || "") - .split(",") - .filter(Boolean), - ), + active: activeTagsFromUrl(), }; } @@ -259,11 +265,15 @@ function onPageChange() { pageObserver = null; } - // Toggling a filter rewrites the query string, which fires this too — only a real page - // change should discard the cached entries and the active filter. + // Toggling a filter rewrites the query string, which fires this too, so only a real page + // change discards the cached entries. A query-only change still has to be honoured: the + // URL decides which filters are on, or a shared link and back/forward would both be + // overwritten by whatever was last clicked. if (path !== lastPath) { changelog = null; lastPath = path; + } else if (changelog) { + changelog.active = activeTagsFromUrl(); } if (path.includes("/references/api/get-quote-v2")) {