Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .cursor/rules/contributor-workflow.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,13 @@ that enforces Microsoft style, Consensys terminology, and spelling. Fix any lint
requesting review. If a warning is a false positive, add the term to the Vale vocabulary file rather
than rewriting valid technical language.

> **Warning:** Do not wire Vale into the Husky `pre-commit` hook (`lint-staged` in `package.json`).
> Vale is intentionally CI-only. It frequently reports false positives on valid technical content
> (for example, code identifiers like `wagmi-tab`, product names, and intentional ellipses) and lints
> the entire staged file rather than just your diff, so running it on commit blocks unrelated,
> pre-existing content and stalls otherwise-valid commits. Let the PR CI run Vale; contributors can
> still run it on demand with `npm run docs:ci`.

## Pull requests

- Summarize what changed and why in the PR description. Do not just list files.
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,14 @@ jobs:
(cd .github-actions/docs-spelling-check && vale sync)
- name: Run Vale
if: steps.changed-files.outputs.any_changed == 'true'
# Vale is advisory only and must not block merges: it produces false positives on
# valid technical content (code identifiers like `wagmi-tab`, product names,
# intentional ellipses). `continue-on-error` MUST be at the step (not the job) so
# the job still concludes "success" and the required "Spelling" check passes while
# findings stay visible in the logs. Job-level `continue-on-error` does not work
# here: it only keeps the overall run green, but the job's own check run stays
# "failure" and a required status check keeps blocking the merge.
continue-on-error: true
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Install via **Package Manager** using OpenUpm:
- add a new **Scoped Registry** (or edit the existing OpenUPM entry)
- Name package.openupm.com

- URL <CopyableNoFollow url="https://package.openupm.com" />
- URL <CopyableNoFollow url="https://package.openupm.com" plain />

- `Scope(s)` com.nethereum.unity

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Install via **Package Manager** using OpenUpm:
- add a new **Scoped Registry** (or edit the existing OpenUPM entry)
- Name package.openupm.com

- URL <CopyableNoFollow url="https://package.openupm.com" />
- URL <CopyableNoFollow url="https://package.openupm.com" plain />

- `Scope(s)` com.nethereum.unity

Expand Down
2 changes: 1 addition & 1 deletion embedded-wallets/sdk/vue/README.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ Use composables from `@web3auth/modal/vue/solana`.

### Ethereum integration

Ethereum composables are provided through [`@wagmi/vue`](https://wagmi.sh/vue), which works with Embedded Wallets. This allows you to leverage a wide range of Ethereum composables for account management, transactions, and more.
Ethereum composables are provided through [`@wagmi/vue`](https://wagmi.sh/vue/getting-started), which works with Embedded Wallets. This allows you to leverage a wide range of Ethereum composables for account management, transactions, and more.

For implementation details and examples, refer to the [Ethereum Composables](./ethereum-composables.mdx) section.

Expand Down
5 changes: 1 addition & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,7 @@
"**/*.{js,jsx,ts,tsx}": "eslint --fix --max-warnings=5 --no-warn-ignored",
"**/*.{ts,tsx}": "tsc-files --noEmit src/globals.d.ts",
"**/*.css": "stylelint --fix",
"**/*.{md,mdx}": [
"prettier --write",
"bash scripts/vale-staged.sh"
],
"**/*.{md,mdx}": "prettier --write",
"**/*.{ts,js,tsx,jsx,json,css,scss,html,yml,yaml}": "prettier --write"
},
"dependencies": {
Expand Down
7 changes: 7 additions & 0 deletions scripts/vale-staged.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
#!/usr/bin/env bash
# Run Vale (Consensys docs-spelling-check) on files passed by lint-staged.
#
# WARNING: Do NOT re-add this to the Husky pre-commit hook (`lint-staged` in
# package.json). Vale is intentionally CI-only: it produces false positives on
# valid technical content (code identifiers like `wagmi-tab`, product names,
# intentional ellipses) and lints the whole staged file, not just the diff, so
# running it on commit blocks unrelated pre-existing content. Let PR CI run Vale.
# Contributors can still run it on demand with `npm run docs:ci`.

set -euo pipefail

Expand Down
19 changes: 15 additions & 4 deletions src/components/CopyableNoFollow/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,16 @@ type CopyableNoFollowProps = {
url: string
/** Optional link text; defaults to url */
children?: React.ReactNode
/**
* Render the value as plain, non-link text (keeping the copy button) instead
* of a nofollow anchor. Use for registry/endpoint URLs that are not meant to
* be browsed (for example, `package.openupm.com`), so crawlers don't flag
* them as broken links.
*/
plain?: boolean
}

export default function CopyableNoFollow({ url, children }: CopyableNoFollowProps) {
export default function CopyableNoFollow({ url, children, plain }: CopyableNoFollowProps) {
const [copied, setCopied] = useState(false)

const handleCopy = useCallback(async () => {
Expand All @@ -28,9 +35,13 @@ export default function CopyableNoFollow({ url, children }: CopyableNoFollowProp

return (
<span className={styles.wrapper}>
<a href={url} rel="nofollow" target="_blank">
{children ?? url}
</a>
{plain ? (
<span>{children ?? url}</span>
) : (
<a href={url} rel="nofollow" target="_blank">
{children ?? url}
</a>
)}
<button
type="button"
onClick={handleCopy}
Expand Down
15 changes: 15 additions & 0 deletions src/globals.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,21 @@ declare module '*.svg' {
export default content
}

// CSS/SCSS module declarations. Docusaurus provides these ambiently via
// `@docusaurus/module-type-aliases` for the full `tsc` build, but the
// `tsc-files` pre-commit hook type-checks staged files in an isolated tsconfig
// that only includes this file, so components importing a `*.module.css`/`.scss`
// stylesheet fail with TS2307 unless the declaration is available here too.
declare module '*.module.css' {
const classes: { readonly [key: string]: string }
export default classes
}

declare module '*.module.scss' {
const classes: { readonly [key: string]: string }
export default classes
}

declare module '*.mdx' {
import type { ComponentType } from 'react'

Expand Down
4 changes: 2 additions & 2 deletions src/pages/tutorials/erc20-paymaster.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ If you are looking to use sponsored paymaster, you can refer to the [sponsored p

## Prerequisites

- Pimlico Account: Since we'll be using the Pimlico paymaster, you'll need to have an API key from Pimlico. You can get a free API key from [Pimlico Dashboard](https://dashboard.pimlico.io/apikeys).
- Pimlico Account: Since we'll be using the Pimlico paymaster, you'll need to have an API key from Pimlico. You can get a free API key from [Pimlico Dashboard](https://docs.pimlico.io/guides/create-api-key).
- Embedded Wallets account: If you haven't already, sign up on the [Embedded Wallets dashboard](https://developer.metamask.io/). It's free and gives you access to the base plan.

:::tip
Expand Down Expand Up @@ -54,7 +54,7 @@ The `AccountAbstractionProvider` requires specific configurations to function co

You can choose from a variety of paymaster services available in the ecosystem. In this guide, we'll be configuring the Pimlico's ERC-20 Paymaster. However, it's important to note that paymaster support is not limited to the Pimlico, giving you the flexibility to integrate any compatible paymaster service that suits your requirements.

To configure the ERC-20 Paymaster, you need to pass the `token` in the `paymasterContext` which allows you to specify the ERC-20 token that will be used to pay for the transaction. For this guide, we'll use the USDC token. [Find the USDC token address for your desired network](https://developers.circle.com/stablecoins/docs/usdc-on-test-networks).
To configure the ERC-20 Paymaster, you need to pass the `token` in the `paymasterContext` which allows you to specify the ERC-20 token that will be used to pay for the transaction. For this guide, we'll use the USDC token. [Find the USDC token address for your desired network](https://developers.circle.com/stablecoins/usdc-contract-addresses).

For simplicity, we have only used `SafeSmartAccount`, but you choose your favorite smart account provider from the available ones. Learn how to [configure the smart account](/embedded-wallets/sdk/react/advanced/smart-accounts).

Expand Down
2 changes: 1 addition & 1 deletion src/pages/tutorials/sending-gasless-transaction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Find the full [demo code on GitHub](https://github.com/Web3Auth/web3auth-example

## Prerequisites

- Pimlico Account: A Pimlico API key. You can get a free API key from [Pimlico Dashboard](https://dashboard.pimlico.io/apikeys).
- Pimlico Account: A Pimlico API key. You can get a free API key from [Pimlico Dashboard](https://docs.pimlico.io/guides/create-api-key).
- Embedded Wallets Web SDK: This guide assumes that you already know how to integrate the React SDK in your project. If
not, you can learn how to [integrate Embedded Wallets in your web app](/embedded-wallets/sdk/react/).

Expand Down
10 changes: 10 additions & 0 deletions src/plugins/llms-html-injector/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,16 @@ function stripDottedTrailingSlashInMetadata(html) {
/(<meta\b[^>]*\bcontent=")([^"]+?)\/("[^>]*\bproperty="og:url"[^>]*>)/i,
'$1$2$3'
)
// <link rel="alternate" href="...://.../changelog/1.5.0/" hreflang="en"> (and
// hreflang="x-default"). Docusaurus emits these self-referencing hreflang
// alternates with a trailing slash too, so they hit the same 308 as canonical
// on dotted routes. Global flag covers both the locale and x-default tags. The
// markdown alternate (`type="text/markdown"`, path-only href without a
// trailing slash) has no `hreflang` attribute and is left untouched.
html = html.replace(
/(<link\b[^>]*\brel="alternate"[^>]*\bhref=")([^"]+?)\/("[^>]*\bhreflang="[^"]*"[^>]*>)/gi,
'$1$2$3'
)
return html
}

Expand Down
12 changes: 0 additions & 12 deletions src/utils/example-maps.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -415,18 +415,6 @@ export const webExamples: ExamplesInterface[] = [
qsLink: '/quick-start?framework=NEXTJS&stepIndex=0',
},

// React Playground
{
title: 'React Playground',
description: 'A playground to test all the features of Web3Auth SDKs in React',
image: 'img/embedded-wallets/banners/react.png',
type: PLAYGROUND,
tags: [tags.pnp, tags.web, tags.evm, tags.wagmi, 'react', 'hooks'],
link: 'https://web3auth-playground.vercel.app/',
githubLink: 'https://github.com/Web3Auth/web3auth-examples/tree/main/react-playground',
id: 'react-playground',
},

// Custom Authentication Examples - Single Connection
{
title: 'Auth0 Implicit Example',
Expand Down
5 changes: 5 additions & 0 deletions vercel.json
Original file line number Diff line number Diff line change
Expand Up @@ -755,6 +755,11 @@
"source": "/smart-accounts-kit/get-started/use-with-openclaw/",
"destination": "/smart-accounts-kit/get-started/use-skills/"
},
{
"source": "/smart-accounts-kit/1.5.0/guides/x402/buyer/advanced-permissions/",
"destination": "/smart-accounts-kit/guides/x402/buyer/advanced-permissions/",
"permanent": true
},
{
"source": "/embedded-wallets/connect-blockchain/custom-chains/",
"destination": "/embedded-wallets/connect-blockchain/other/"
Expand Down
Loading