Compare commits
119
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
449ae19f94 | ||
|
|
7304c5b0c7 | ||
|
|
49cfdb3fd9 | ||
|
|
2d7ebe2111 | ||
|
|
a9ce10f39a | ||
|
|
321cf26342 | ||
|
|
d2ad36d76d | ||
|
|
507d0e5bf4 | ||
|
|
79e6a047d6 | ||
|
|
4dce62de1c | ||
|
|
1c533efcd5 | ||
|
|
eca6217f77 | ||
|
|
df84f9c4ce | ||
|
|
17c0e6f282 | ||
|
|
d51c1883af | ||
|
|
9cf3a1d663 | ||
|
|
c94bcd574a | ||
|
|
41c6d04c2f | ||
|
|
3a78041de7 | ||
|
|
8b74602e3b | ||
|
|
f9081d58d4 | ||
|
|
b051d844d0 | ||
|
|
f8e0c5f84b | ||
|
|
476b6cc271 | ||
|
|
ffaff744f7 | ||
|
|
198f72c493 | ||
|
|
5cb580e99e | ||
|
|
eff710738c | ||
|
|
fb6a07d4b8 | ||
|
|
7768067bf4 | ||
|
|
5ece04cdc0 | ||
|
|
1b15e7b1f2 | ||
|
|
a4086c6a39 | ||
|
|
1aaa63eec7 | ||
|
|
502c53ac0b | ||
|
|
e7ba698f3e | ||
|
|
6746416db9 | ||
|
|
2fb81bd4b7 | ||
|
|
841c86aa12 | ||
|
|
132b3cb45a | ||
|
|
b248afc160 | ||
|
|
9f42e4d241 | ||
|
|
901427c33c | ||
|
|
62ee972a20 | ||
|
|
84e07fa9d5 | ||
|
|
0ef7d6c0a8 | ||
|
|
7dec4d049d | ||
|
|
3a1fd985fc | ||
|
|
5698b0c5a9 | ||
|
|
6a48b62783 | ||
|
|
668e3b9333 | ||
|
|
7afd2dac0a | ||
|
|
3948f4320c | ||
|
|
a4d041b368 | ||
|
|
7a7b491e15 | ||
|
|
ce45a793b5 | ||
|
|
d2cbb1ee7e | ||
|
|
8750470d90 | ||
|
|
923a5ec556 | ||
|
|
75fde5c89f | ||
|
|
e763ace602 | ||
|
|
f2004b54ea | ||
|
|
ce45d4f3bd | ||
|
|
7135d6051a | ||
|
|
0b3829032f | ||
|
|
a5db9a330f | ||
|
|
73af67aad1 | ||
|
|
d4882236b7 | ||
|
|
913f99a9a4 | ||
|
|
5938f0d4a5 | ||
|
|
efae2f36b6 | ||
|
|
f66161f666 | ||
|
|
37ec4ca28d | ||
|
|
558885aae9 | ||
|
|
21ca67dc13 | ||
|
|
8acf5643d5 | ||
|
|
dbf74aad3f | ||
|
|
63b4e6c507 | ||
|
|
824a631b55 | ||
|
|
e7b9b9f438 | ||
|
|
95c4151f59 | ||
|
|
5d47e505ed | ||
|
|
043f0da708 | ||
|
|
58d14c9eaf | ||
|
|
ca31a6c0d8 | ||
|
|
fa146b1ec9 | ||
|
|
1cf9da4946 | ||
|
|
0852edfe15 | ||
|
|
f13a40ba99 | ||
|
|
e7443edda7 | ||
|
|
ee20298535 | ||
|
|
ae9496e9d8 | ||
|
|
4cd83e6707 | ||
|
|
0328bc894e | ||
|
|
61b0d26023 | ||
|
|
4cddbe775f | ||
|
|
a3461114c5 | ||
|
|
51e7adaeb0 | ||
|
|
3f669453d0 | ||
|
|
fe0c4ed00c | ||
|
|
fb8a11654e | ||
|
|
c1e155d04f | ||
|
|
91e658035d | ||
|
|
8491675e2e | ||
|
|
1b2edb4c09 | ||
|
|
874747b3e0 | ||
|
|
01f883f637 | ||
|
|
123275bbe2 | ||
|
|
7bb241f7db | ||
|
|
a1f53a2b9e | ||
|
|
46e9072576 | ||
|
|
501ef9339d | ||
|
|
3dca028a7e | ||
|
|
fd777c71c2 | ||
|
|
fbec24e260 | ||
|
|
bbf65acc80 | ||
|
|
b569eb48ad | ||
|
|
b6b0eb9120 | ||
|
|
7cfe6745e8 |
@@ -73,6 +73,10 @@ pnpm test:dev <YOUR TEST FILE PATH>
|
||||
|
||||
> Specifying your test file path is optional, but will save time by only running specific tests each time. Before opening your PR, run `pnpm test` from the monorepo root (without specifying your test file) to ensure your changes didn't break any existing tests.
|
||||
|
||||
Many of the tests use forked versions of live chains like mainnet. We fork these chains at a specific arbitrary block number so results are consistent across test runs. If you're interacting with on-chain data, you can write tests that interact with real contracts at the same block number by using `FORKED_ETHEREUM_CHAIN`. However, if you don't need to interact with existing contracts, we recommend running your tests against `ANVIL_CHAIN`.
|
||||
|
||||
If you need to use accounts in your tests, use the predefined accounts in `test/src/test-wallets.ts`. These are the default anvil accounts that are pre-funded on the local test forks.
|
||||
|
||||
#### Linting
|
||||
|
||||
We use a linter to maintain best practices across projects. Once your changes are complete (or periodically while making changes), run the linter with the following command from the repo root:
|
||||
|
||||
@@ -90,6 +90,10 @@ jobs:
|
||||
timeout-minutes: 15
|
||||
name: E2E Tests
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
package_manager: [npm, yarn, pnpm, bun]
|
||||
bundler: [vite, webpack, esbuild]
|
||||
steps:
|
||||
- name: Check out the code
|
||||
uses: actions/checkout@v4
|
||||
@@ -97,7 +101,58 @@ jobs:
|
||||
- name: Setup & Install
|
||||
uses: ./.github/composite-actions/install
|
||||
|
||||
# TODO actually run e2e tests
|
||||
- name: Build Packages
|
||||
run: pnpm build:packages
|
||||
|
||||
- name: Install Yarn (if needed)
|
||||
if: matrix.package_manager == 'yarn'
|
||||
run: npm install -g [email protected]
|
||||
|
||||
- name: Create test project
|
||||
run: |
|
||||
mkdir test-project
|
||||
cd test-project
|
||||
npm init -y
|
||||
${{ matrix.package_manager }} add react react-dom ../packages/thirdweb
|
||||
- name: Create test file
|
||||
run: |
|
||||
cd test-project
|
||||
echo "import { createThirdwebClient } from 'thirdweb'; console.log(createThirdwebClient({clientId: "foo_bar_baz"}));" > index.js
|
||||
|
||||
- name: Bundle with vite
|
||||
if: matrix.bundler == 'vite'
|
||||
run: |
|
||||
cd test-project
|
||||
${{matrix.package_manager}} add vite
|
||||
echo 'import { defineConfig } from "vite"; import {resolve} from "path"; export default defineConfig({ build: { lib: { entry: resolve(__dirname, "index.js"), name: "e2e_test" }, outDir: "dist" }});' > vite.config.js
|
||||
npx vite build
|
||||
|
||||
- name: Bundle with webpack
|
||||
if: matrix.bundler == 'webpack'
|
||||
run: |
|
||||
cd test-project
|
||||
${{matrix.package_manager}} add webpack webpack-cli
|
||||
echo 'const path = require("path"); module.exports = { mode: "production", entry: "./index.js", output: { path: path.resolve(__dirname, "dist"), filename: "bundle.js" }};' > webpack.config.js
|
||||
npx webpack
|
||||
|
||||
- name: Bundle with esbuild
|
||||
if: matrix.bundler == 'esbuild'
|
||||
run: |
|
||||
cd test-project
|
||||
${{matrix.package_manager}} add esbuild
|
||||
npx esbuild index.js --bundle --outdir=dist
|
||||
|
||||
- name: Verify bundle
|
||||
run: |
|
||||
cd test-project/dist
|
||||
file_count=$(find . -type f | wc -l)
|
||||
if [ "$file_count" -gt 0 ]; then
|
||||
echo "Bundling successful"
|
||||
else
|
||||
echo "Bundling failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
benchmark:
|
||||
# cannot run benchmarks on merge group
|
||||
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
id: validate_user
|
||||
if: ${{ steps.check.outputs.triggered == 'true' }}
|
||||
run: |
|
||||
if [[ "${AUTHOR_ASSOCIATION}" != 'MEMBER' && "${AUTHOR_ASSOCIATION}" != 'OWNER' && "${AUTHOR_ASSOCIATION}" != 'CONTRIBUTOR' ]]
|
||||
if [[ "${AUTHOR_ASSOCIATION}" != 'MEMBER' && "${AUTHOR_ASSOCIATION}" != 'OWNER' ]]
|
||||
then
|
||||
echo "User authorization failed"
|
||||
exit 1
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 551 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,158 @@
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { metadataBase } from "@/lib/constants";
|
||||
import type { Metadata } from "next";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import {
|
||||
ConnectSmartAccountCustomPreview,
|
||||
ConnectSmartAccountPreview,
|
||||
} from "../../../components/account-abstraction/connect-smart-account";
|
||||
import { SponsoredTxPreview } from "../../../components/account-abstraction/sponsored-tx";
|
||||
import { CodeExample } from "../../../components/code/code-example";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase,
|
||||
title: "Sign In, Account Abstraction and SIWE Auth | thirdweb Connect",
|
||||
description:
|
||||
"Let users sign up with their email, phone number, social media accounts or directly with a wallet. Seemlessly integrate account abstraction and SIWE auth.",
|
||||
};
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
|
||||
<section className="container px-4 md:px-6">
|
||||
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
|
||||
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
|
||||
<div className="space-y-2">
|
||||
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
|
||||
Account abstraction
|
||||
</h1>
|
||||
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
|
||||
Let users connect to their smart accounts with any wallet and
|
||||
unlock gas sponsorship, batched transactions, session keys and
|
||||
full wallet programmability.
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col gap-4 min-[400px]:flex-row">
|
||||
<Button asChild size="lg">
|
||||
<Link
|
||||
target="_blank"
|
||||
href="https://portal.thirdweb.com/connect/account-abstraction"
|
||||
>
|
||||
View docs
|
||||
</Link>
|
||||
</Button>
|
||||
<Button asChild variant="outline" size="lg">
|
||||
<Link target="_blank" href="https://thirdweb.com/contact-us">
|
||||
Book a Demo
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
|
||||
<div className="max-w-full sm:max-w-[500px] p-8">
|
||||
<Image
|
||||
src={"/account-abstraction.png"}
|
||||
width={600}
|
||||
height={400}
|
||||
objectFit={"contain"}
|
||||
alt=""
|
||||
priority={true}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<ConnectSmartAccount />
|
||||
</section>
|
||||
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<SponsoredTx />
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
function ConnectSmartAccount() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Connect smart accounts
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Enable smart accounts on the UI components or build your own UI.
|
||||
</p>
|
||||
</div>
|
||||
<CodeExample
|
||||
preview={<ConnectSmartAccountPreview />}
|
||||
code={`// Using UI components
|
||||
import { ConnectButton } from "thirdweb/react";
|
||||
|
||||
function App(){
|
||||
return (<>
|
||||
<ConnectButton client={client}
|
||||
// account abstraction options
|
||||
accountAbstraction={{ chain, sponsorGas: true }} />
|
||||
</>);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
<CodeExample
|
||||
preview={<ConnectSmartAccountCustomPreview />}
|
||||
code={`// Using your own UI
|
||||
import { useConnect } from "thirdweb/react";
|
||||
import { createWallet } from "thirdweb/wallets";
|
||||
|
||||
function App(){
|
||||
const { connect } = useConnect({ client,
|
||||
// account abstraction options
|
||||
accountAbstraction: { chain, sponsorGas: true }});
|
||||
|
||||
return (<>
|
||||
<button onClick={() => connect(async () => {
|
||||
// any wallet connected here will be
|
||||
// converted to a smart account
|
||||
const adminWallet = createWallet("io.metamask");
|
||||
await adminWallet.connect({ client });
|
||||
return adminWallet;
|
||||
})}>Connect (metamask)</button>
|
||||
</>);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function SponsoredTx() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Sponsored transactions
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Set `sponsorGas: true` to enable gas-free transactions for your users.
|
||||
<br />
|
||||
Free on testnets, billed at the end of the month on mainnets.
|
||||
</p>
|
||||
</div>
|
||||
<CodeExample
|
||||
preview={<SponsoredTxPreview />}
|
||||
code={`import { claimTo } from "thirdweb/extensions/erc1155";
|
||||
import { TransactionButton } from "thirdweb/react";
|
||||
|
||||
function App(){
|
||||
return (<>
|
||||
{/* transactions will be sponsored */}
|
||||
<TransactionButton transaction={() => claimTo({ contract, to: "0x123...", tokenId: 0n, quantity: 1n })}>Mint</TransactionButton>
|
||||
</>);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
import { CodeExample } from "@/components/code/code-example";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { metadataBase } from "@/lib/constants";
|
||||
import type { Metadata } from "next";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import { SponsoredInAppTxPreview } from "../../../components/in-app-wallet/sponsored-tx";
|
||||
import { StyledConnectEmbed } from "../../../components/styled-connect-embed";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase,
|
||||
title: "Sign In, Account Abstraction and SIWE Auth | thirdweb Connect",
|
||||
description:
|
||||
"Let users sign up with their email, phone number, social media accounts or directly with a wallet. Seemlessly integrate account abstraction and SIWE auth.",
|
||||
};
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
|
||||
<section className="container px-4 md:px-6">
|
||||
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
|
||||
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
|
||||
<div className="space-y-2">
|
||||
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
|
||||
Onboard users to web3
|
||||
</h1>
|
||||
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
|
||||
Onboard anyone with flexible auth options, secure account
|
||||
recovery, and smart account integration.
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col gap-4 min-[400px]:flex-row">
|
||||
<Button asChild size="lg">
|
||||
<Link
|
||||
target="_blank"
|
||||
href="https://portal.thirdweb.com/connect/in-app-wallet/overview"
|
||||
>
|
||||
View docs
|
||||
</Link>
|
||||
</Button>
|
||||
<Button asChild variant="outline" size="lg">
|
||||
<Link target="_blank" href="https://thirdweb.com/contact-us">
|
||||
Book a Demo
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
|
||||
<div className="max-w-full sm:max-w-[600px]">
|
||||
<Image
|
||||
src={"/in-app-wallet.png"}
|
||||
width={600}
|
||||
height={400}
|
||||
objectFit={"contain"}
|
||||
alt=""
|
||||
priority={true}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<AnyAuth />
|
||||
</section>
|
||||
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<SponsoredInAppTx />
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
function AnyAuth() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Any Auth Method
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Use any of the built-in auth methods or bring your own.
|
||||
<br />
|
||||
Supports custom auth endpoints to integrate with your existing user
|
||||
base.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<StyledConnectEmbed />}
|
||||
code={`import { inAppWallet } from "thirdweb/wallets";
|
||||
import { ConnectEmbed } from "thirdweb/react";
|
||||
|
||||
|
||||
const wallets = [
|
||||
inAppWallet(
|
||||
// built-in auth methods
|
||||
{ auth: {
|
||||
options: ["email", "phone", "passkey", "google", "apple", "facebook"]
|
||||
}
|
||||
}
|
||||
// or bring your own auth endpoint
|
||||
)
|
||||
];
|
||||
|
||||
function App(){
|
||||
return (
|
||||
<ConnectEmbed client={client} wallets={wallets} />);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function SponsoredInAppTx() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Signless Sponsored Transactions
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
With in-app wallets, users don't need to confirm every
|
||||
transaction.
|
||||
<br />
|
||||
Combine it with smart account flag to cover gas costs for the best UX.
|
||||
</p>
|
||||
</div>
|
||||
<CodeExample
|
||||
preview={<SponsoredInAppTxPreview />}
|
||||
code={`import { inAppWallet } from "thirdweb/wallets";
|
||||
import { claimTo } from "thirdweb/extensions/erc1155";
|
||||
import { ConnectButton, TransactionButton } from "thirdweb/react";
|
||||
|
||||
|
||||
const wallets = [
|
||||
inAppWallet(
|
||||
// turn on gas sponsorship for in-app wallets
|
||||
{ smartAccount: { chain, sponsorGas: true }}
|
||||
)
|
||||
];
|
||||
|
||||
function App(){
|
||||
return (<>
|
||||
<ConnectButton client={client} wallets={wallets} />
|
||||
|
||||
{/* signless, sponsored transactions */}
|
||||
<TransactionButton transaction={() => claimTo({ contract, to: "0x123...", tokenId: 0n, quantity: 1n })}>Mint</TransactionButton>
|
||||
</>);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -1,8 +1,11 @@
|
||||
import { StyledPayEmbed } from "@/components/styled-pay-embed";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { metadataBase } from "@/lib/constants";
|
||||
import type { Metadata } from "next";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import { CodeExample } from "../../../components/code/code-example";
|
||||
import { StyledPayEmbedPreview } from "../../../components/pay/embed";
|
||||
import { PayTransactionButtonPreview } from "../../../components/pay/transaction-button";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase,
|
||||
@@ -13,48 +16,133 @@ export const metadata: Metadata = {
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<main className="flex-1 content-center relative">
|
||||
<section className="w-full py-12 md:py-24 lg:py-32 xl:py-48 z-10">
|
||||
<div className="container px-4 md:px-6">
|
||||
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
|
||||
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
|
||||
<div className="space-y-2">
|
||||
<h1 className="text-3xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
|
||||
The easiest way for users to transact in your app
|
||||
</h1>
|
||||
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
|
||||
Onramp users in clicks with credit card & cross-chain
|
||||
crypto payments — and generate revenue for each user
|
||||
transaction. Integrate for free.
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col gap-4 min-[400px]:flex-row">
|
||||
<Button asChild size="lg">
|
||||
<Link
|
||||
target="_blank"
|
||||
href="https://portal.thirdweb.com/connect/pay/get-started"
|
||||
>
|
||||
Get Started
|
||||
</Link>
|
||||
</Button>
|
||||
<Button asChild variant="outline" size="lg">
|
||||
<Link target="_blank" href="https://thirdweb.com/contact-us">
|
||||
Book a Demo
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mx-auto my-auto sm:w-full lg:order-last relative flex flex-col space-y-2">
|
||||
<div className="shadow-xl md:w-[400px] md:mx-auto">
|
||||
<StyledPayEmbed />
|
||||
</div>
|
||||
<p className="md:text-xl text-center text-muted-foreground">
|
||||
<small>👆 This is live, try it out! 👆</small>
|
||||
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
|
||||
<section className="container px-4 md:px-6">
|
||||
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
|
||||
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
|
||||
<div className="space-y-2">
|
||||
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
|
||||
The easiest way for users to transact in your app
|
||||
</h1>
|
||||
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
|
||||
Onramp users with credit card & cross-chain crypto payments
|
||||
— and generate revenue for each user transaction.
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col gap-4 min-[400px]:flex-row">
|
||||
<Button asChild size="lg">
|
||||
<Link
|
||||
target="_blank"
|
||||
href="https://portal.thirdweb.com/connect/pay/get-started"
|
||||
>
|
||||
View docs
|
||||
</Link>
|
||||
</Button>
|
||||
<Button asChild variant="outline" size="lg">
|
||||
<Link target="_blank" href="https://thirdweb.com/contact-us">
|
||||
Book a Demo
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
|
||||
<div className="max-w-full sm:max-w-[600px]">
|
||||
<Image
|
||||
width={600}
|
||||
height={400}
|
||||
src={"/pay.png"}
|
||||
objectFit={"contain"}
|
||||
alt=""
|
||||
priority={true}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<StyledPayEmbed />
|
||||
</section>
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<PayTransactionButton />
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
function StyledPayEmbed() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Embed component
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Inline component that allows users to buy any currency.
|
||||
<br />
|
||||
Customize theme, currency, amounts, payment methods and more.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<StyledPayEmbedPreview />}
|
||||
code={`
|
||||
import { PayEmbed } from "thirdweb/react";
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<PayEmbed
|
||||
client={client}
|
||||
/>
|
||||
);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function PayTransactionButton() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Transaction Button
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Transaction Button is a handy component that handles transactions.
|
||||
<br />
|
||||
If your user doesn't have enough funds for that transaction, a
|
||||
pre-filled pay modal will appear with the exact amount needed.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<PayTransactionButtonPreview />}
|
||||
code={`import { claimTo } from "thirdweb/extensions/erc1155";
|
||||
import { TransactionButton, useActiveAccount } from "thirdweb/react";
|
||||
|
||||
|
||||
function App() {
|
||||
const account = useActiveAccount();
|
||||
|
||||
return (
|
||||
<TransactionButton
|
||||
transaction={() => {
|
||||
// any transaction works
|
||||
return claimTo({
|
||||
contract,
|
||||
quantity: 1n,
|
||||
tokenId: 0n,
|
||||
to: account.address,
|
||||
});
|
||||
}}
|
||||
>
|
||||
Buy for 10 MATIC
|
||||
</TransactionButton>
|
||||
);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import { CodeExample } from "@/components/code/code-example";
|
||||
import { StyledConnectButton } from "@/components/styled-connect-button";
|
||||
import { StyledConnectEmbed } from "@/components/styled-connect-embed";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { metadataBase } from "@/lib/constants";
|
||||
import type { Metadata } from "next";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import { CodeExample } from "../../../components/code/code-example";
|
||||
import { CustomizedConnect } from "../../../components/sign-in/custom";
|
||||
import { HooksPreview } from "../../../components/sign-in/hooks";
|
||||
import { StyledConnectButton } from "../../../components/styled-connect-button";
|
||||
import { StyledConnectEmbed } from "../../../components/styled-connect-embed";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
metadataBase,
|
||||
@@ -15,18 +18,18 @@ export const metadata: Metadata = {
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24 lg:space-y-32 xl:space-y-48">
|
||||
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
|
||||
<section className="container px-4 md:px-6">
|
||||
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
|
||||
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
|
||||
<div className="space-y-2">
|
||||
<h1 className="text-3xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
|
||||
The easiest way for users to sign in to your app
|
||||
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
|
||||
Sign in
|
||||
</h1>
|
||||
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
|
||||
Let users sign in with their email, phone number, social media
|
||||
accounts or directly with a wallet. Seemlessly integrate account
|
||||
abstraction and SIWE auth.
|
||||
Create a login experience tailor-made for your app. Add your
|
||||
wallets of choice, enable web2 sign-in options and create a
|
||||
modal that fits your brand.
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col gap-4 min-[400px]:flex-row">
|
||||
@@ -35,7 +38,7 @@ export default function Page() {
|
||||
target="_blank"
|
||||
href="https://portal.thirdweb.com/connect/sign-in"
|
||||
>
|
||||
Get Started
|
||||
View docs
|
||||
</Link>
|
||||
</Button>
|
||||
<Button asChild variant="outline" size="lg">
|
||||
@@ -45,78 +48,202 @@ export default function Page() {
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mx-auto my-auto sm:w-full lg:order-last relative flex flex-col space-y-2">
|
||||
<div className="mx-auto">
|
||||
<StyledConnectButton />
|
||||
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
|
||||
<div className="max-w-full sm:max-w-[600px]">
|
||||
<Image
|
||||
src={"/connectors.png"}
|
||||
width={600}
|
||||
height={400}
|
||||
objectFit={"contain"}
|
||||
alt=""
|
||||
priority={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<p className="md:text-xl text-center text-muted-foreground">
|
||||
<small>👆 This is live, try it out! 👆</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-4xl font-semibold tracking-tight">
|
||||
Connect Button
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
When clicked opens a modal and allows users to connect to various
|
||||
wallets.
|
||||
<br />
|
||||
It is extremely customizable and very easy to use.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<StyledConnectButton />}
|
||||
code={`import { createThirdwebClient } from "thirdweb";
|
||||
import { ConnectButton } from "thirdweb/react";
|
||||
|
||||
const THIRDWEB_CLIENT = createThirdwebClient({
|
||||
clientId: "<YOUR_CLIENT_ID>"
|
||||
});
|
||||
|
||||
function App(){
|
||||
return (
|
||||
<ConnectButton client={THIRDWEB_CLIENT} />
|
||||
);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
<ButtonComponent />
|
||||
</section>
|
||||
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-4xl font-semibold tracking-tight">
|
||||
Connect Embed
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
When clicked opens a modal and allows users to connect to various
|
||||
wallets.
|
||||
<br />
|
||||
It is extremely customizable and very easy to use.
|
||||
</p>
|
||||
</div>
|
||||
<CodeExample
|
||||
preview={<StyledConnectEmbed />}
|
||||
code={`import { createThirdwebClient } from "thirdweb";
|
||||
import { ConnectEmbed } from "thirdweb/react";
|
||||
<EmbedComponent />
|
||||
</section>
|
||||
|
||||
const THIRDWEB_CLIENT = createThirdwebClient({
|
||||
clientId: "<YOUR_CLIENT_ID>"
|
||||
});
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<CustomizedComponent />
|
||||
</section>
|
||||
|
||||
function App(){
|
||||
return (
|
||||
<ConnectEmbed client={THIRDWEB_CLIENT} />
|
||||
);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
<section className="container px-4 md:px-6 space-y-8">
|
||||
<Hooks />
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
|
||||
function ButtonComponent() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Button Component
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
When clicked opens a modal and allows users to connect to various
|
||||
wallets.
|
||||
<br />
|
||||
Extremely customizable and easy to use.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<StyledConnectButton />}
|
||||
code={`import { createThirdwebClient } from "thirdweb";
|
||||
import { ConnectButton } from "thirdweb/react";
|
||||
|
||||
const THIRDWEB_CLIENT = createThirdwebClient({
|
||||
clientId: "<YOUR_CLIENT_ID>"
|
||||
});
|
||||
|
||||
function App(){
|
||||
return (
|
||||
<ConnectButton client={THIRDWEB_CLIENT} />
|
||||
);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function EmbedComponent() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Embed Component
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Inline component to connect to various wallets.
|
||||
<br />
|
||||
Use this to create your own full screen login page.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<StyledConnectEmbed />}
|
||||
code={`import { createThirdwebClient } from "thirdweb";
|
||||
import { ConnectEmbed } from "thirdweb/react";
|
||||
|
||||
const THIRDWEB_CLIENT = createThirdwebClient({
|
||||
clientId: "<YOUR_CLIENT_ID>"
|
||||
});
|
||||
|
||||
function App(){
|
||||
return (
|
||||
<ConnectEmbed client={THIRDWEB_CLIENT} />
|
||||
);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function CustomizedComponent() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Customized Component
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Change the look and feel of the connect button without rewriting your
|
||||
own.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<CustomizedConnect />}
|
||||
code={`import { createThirdwebClient } from "thirdweb";
|
||||
import { ConnectEmbed } from "thirdweb/react";
|
||||
|
||||
const THIRDWEB_CLIENT = createThirdwebClient({
|
||||
clientId: "<YOUR_CLIENT_ID>"
|
||||
});
|
||||
|
||||
function App(){
|
||||
return (
|
||||
<ConnectButton
|
||||
client={THIRDWEB_CLIENT}
|
||||
connectButton={{
|
||||
label: "Custom Connect Button",
|
||||
}}
|
||||
showAllWallets={false}
|
||||
connectModal={{
|
||||
title: "Custom Connect Modal",
|
||||
size: "compact",
|
||||
}}
|
||||
theme={darkTheme({
|
||||
colors: {
|
||||
modalBg: "#281866",
|
||||
accentButtonBg: "#281866",
|
||||
connectedButtonBgHover: "#281866",
|
||||
borderColor: "rgba(256, 256,256, 0.1)",
|
||||
accentText: "rgba(256, 256,256, 0.1)",
|
||||
connectedButtonBg: "#281866",
|
||||
tertiaryBg: "rgba(256, 256,256, 0.1)",
|
||||
primaryButtonBg: "#281866",
|
||||
secondaryButtonBg: "rgba(256, 256,256, 0.1)",
|
||||
primaryButtonText: "#E7E8E9",
|
||||
primaryText: "#E7E8E9",
|
||||
separatorLine: "rgba(256, 256,256, 0.1)",
|
||||
},
|
||||
})}
|
||||
/>
|
||||
);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function Hooks() {
|
||||
return (
|
||||
<>
|
||||
<div className="space-y-2">
|
||||
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
|
||||
Custom UI
|
||||
</h2>
|
||||
<p className="max-w-[600px]">
|
||||
Build your own connect UI using react hooks.
|
||||
<br />
|
||||
Wallet state management is all handled for you.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CodeExample
|
||||
preview={<HooksPreview />}
|
||||
code={`// Using your own UI
|
||||
import { useConnect } from "thirdweb/react";
|
||||
import { createWallet } from "thirdweb/wallets";
|
||||
|
||||
function App(){
|
||||
const { connect } = useConnect();
|
||||
|
||||
return (<>
|
||||
<button onClick={() => connect(async () => {
|
||||
// 350+ wallets supported with id autocomplete
|
||||
const wallet = createWallet("io.metamask");
|
||||
await wallet.connect({ client });
|
||||
return wallet;
|
||||
})}>Connect with Metamask</button>
|
||||
</>);
|
||||
};`}
|
||||
lang="tsx"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ export function Header() {
|
||||
</div>
|
||||
|
||||
<div className="flex items-center gap-1">
|
||||
<ThemeSelector />
|
||||
{/* <ThemeSelector /> */}
|
||||
<Button asChild size="icon" variant="ghost">
|
||||
<Link href="https://github.com/thirdweb-dev" target="_blank">
|
||||
<GithubIcon strokeWidth={1} />
|
||||
|
||||
@@ -27,27 +27,22 @@ function WalletsSection() {
|
||||
<div className="my-4 grid gap-4 md:grid-cols-2 lg:grid-cols-3">
|
||||
<ArticleCardIndex
|
||||
href="/connect/sign-in"
|
||||
title="Sign-In"
|
||||
description="Flexible user sign-up flow with wallet and social sign-in methods"
|
||||
title="Sign In"
|
||||
description="Integrate 350+ web3 wallets, in-app wallets, and smart accounts"
|
||||
icon={WalletsConnectIcon}
|
||||
/>
|
||||
|
||||
<ComingSoonWrapper>
|
||||
<ArticleCardIndex
|
||||
href="/connect/account-abstraction"
|
||||
title="Account abstraction"
|
||||
description="Complete toolkit for Account Abstraction"
|
||||
icon={WalletsSmartIcon}
|
||||
/>
|
||||
</ComingSoonWrapper>
|
||||
<ComingSoonWrapper>
|
||||
<ArticleCardIndex
|
||||
title="In-App Wallet"
|
||||
description="Email & social login wallets for your customers"
|
||||
href="/connect/in-app-wallet"
|
||||
icon={WalletsInAppIcon}
|
||||
/>
|
||||
</ComingSoonWrapper>
|
||||
<ArticleCardIndex
|
||||
href="/connect/account-abstraction"
|
||||
title="Account abstraction"
|
||||
description="Complete toolkit for Account Abstraction"
|
||||
icon={WalletsSmartIcon}
|
||||
/>
|
||||
<ArticleCardIndex
|
||||
title="In-App Wallet"
|
||||
description="Onboard users with an email, social logins, passkey or your own auth system"
|
||||
href="/connect/in-app-wallet"
|
||||
icon={WalletsInAppIcon}
|
||||
/>
|
||||
<ComingSoonWrapper>
|
||||
<ArticleCardIndex
|
||||
href="/connect/auth"
|
||||
@@ -59,7 +54,7 @@ function WalletsSection() {
|
||||
<ArticleCardIndex
|
||||
href="/connect/pay"
|
||||
title="Pay"
|
||||
description="Easily integrate fiat onramps and cross-chain crypto purchases"
|
||||
description="Add fiat and cross-chain crypto payments in your apps"
|
||||
icon={PayIcon}
|
||||
/>
|
||||
<ComingSoonWrapper>
|
||||
@@ -87,7 +82,7 @@ function ArticleCardIndex(props: {
|
||||
return (
|
||||
<Link
|
||||
href={props.href}
|
||||
className="flex items-center gap-4 rounded-lg border p-4 transition-colors hover:border-ring hover:bg-ring/20 h-full"
|
||||
className="flex items-center gap-4 rounded-lg border p-4 transition-colors hover:border-ring hover:bg-ring/20 min-h-32"
|
||||
>
|
||||
{props.icon && <props.icon className="size-10 shrink-0" />}
|
||||
<div className="flex flex-col gap-1">
|
||||
|
||||
@@ -6,7 +6,7 @@ import { ThirdwebProvider } from "thirdweb/react";
|
||||
|
||||
export const Providers: React.FC<React.PropsWithChildren> = ({ children }) => {
|
||||
return (
|
||||
<ThemeProvider attribute="class" enableSystem>
|
||||
<ThemeProvider attribute="class" defaultTheme="dark">
|
||||
<ThirdwebProvider>{children}</ThirdwebProvider>
|
||||
</ThemeProvider>
|
||||
);
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect } from "react";
|
||||
import {
|
||||
useActiveAccount,
|
||||
useActiveWallet,
|
||||
useConnect,
|
||||
useDisconnect,
|
||||
} from "thirdweb/react";
|
||||
import { shortenAddress } from "thirdweb/utils";
|
||||
import { createWallet } from "thirdweb/wallets";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
import { StyledConnectButton } from "../styled-connect-button";
|
||||
import { Button } from "../ui/button";
|
||||
import { chain } from "./constants";
|
||||
|
||||
export function ConnectSmartAccountPreview() {
|
||||
// force disconnect if not smart wallet already
|
||||
const wallet = useActiveWallet();
|
||||
const { disconnect } = useDisconnect();
|
||||
useEffect(() => {
|
||||
if (wallet && wallet.id !== "smart") {
|
||||
disconnect(wallet);
|
||||
}
|
||||
}, [wallet, disconnect]);
|
||||
return (
|
||||
<div className="flex flex-col">
|
||||
<StyledConnectButton
|
||||
accountAbstraction={{
|
||||
chain,
|
||||
sponsorGas: true,
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export function ConnectSmartAccountCustomPreview() {
|
||||
const account = useActiveAccount();
|
||||
const wallet = useActiveWallet();
|
||||
const connectMutation = useConnect({
|
||||
client: THIRDWEB_CLIENT,
|
||||
accountAbstraction: { chain, sponsorGas: true },
|
||||
});
|
||||
const { disconnect } = useDisconnect();
|
||||
|
||||
const connect = async () => {
|
||||
const wallet = await connectMutation.connect(async () => {
|
||||
const adminWallet = createWallet("io.metamask");
|
||||
await adminWallet.connect({
|
||||
client: THIRDWEB_CLIENT,
|
||||
});
|
||||
return adminWallet;
|
||||
});
|
||||
return wallet;
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col">
|
||||
{account && wallet ? (
|
||||
<>
|
||||
<p className="py-4">Connected as {shortenAddress(account.address)}</p>
|
||||
<Button variant={"outline"} onClick={() => disconnect(wallet)}>
|
||||
Disconnect
|
||||
</Button>
|
||||
</>
|
||||
) : (
|
||||
<Button variant={"default"} onClick={connect}>
|
||||
Connect (metamask)
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { getContract } from "thirdweb";
|
||||
import { baseSepolia } from "thirdweb/chains";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
|
||||
export const chain = baseSepolia;
|
||||
export const editionDropAddress = "0x638263e3eAa3917a53630e61B1fBa685308024fa";
|
||||
export const editionDropTokenId = 0n;
|
||||
|
||||
export const editionDropContract = getContract({
|
||||
address: editionDropAddress,
|
||||
chain,
|
||||
client: THIRDWEB_CLIENT,
|
||||
});
|
||||
@@ -0,0 +1,91 @@
|
||||
"use client";
|
||||
|
||||
import { useTheme } from "next-themes";
|
||||
import { useEffect } from "react";
|
||||
import { claimTo, getNFT, getOwnedNFTs } from "thirdweb/extensions/erc1155";
|
||||
import {
|
||||
MediaRenderer,
|
||||
TransactionButton,
|
||||
useActiveAccount,
|
||||
useActiveWallet,
|
||||
useDisconnect,
|
||||
useReadContract,
|
||||
} from "thirdweb/react";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
import { editionDropContract, editionDropTokenId } from "./constants";
|
||||
|
||||
export function SponsoredTxPreview() {
|
||||
const wallet = useActiveWallet();
|
||||
const { disconnect } = useDisconnect();
|
||||
useEffect(() => {
|
||||
if (wallet && wallet.id !== "smart") {
|
||||
disconnect(wallet);
|
||||
}
|
||||
}, [wallet, disconnect]);
|
||||
const { theme } = useTheme();
|
||||
const smartAccount = useActiveAccount();
|
||||
const { data: nft, isLoading: isNftLoading } = useReadContract(getNFT, {
|
||||
contract: editionDropContract,
|
||||
tokenId: editionDropTokenId,
|
||||
});
|
||||
const { data: ownedNfts } = useReadContract(getOwnedNFTs, {
|
||||
contract: editionDropContract,
|
||||
// biome-ignore lint/style/noNonNullAssertion: handled by queryOptions
|
||||
address: smartAccount?.address!,
|
||||
queryOptions: { enabled: !!smartAccount },
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="flex flex-col">
|
||||
{isNftLoading ? (
|
||||
<div className="w-full mt-24">Loading...</div>
|
||||
) : (
|
||||
<>
|
||||
{nft ? (
|
||||
<MediaRenderer
|
||||
client={THIRDWEB_CLIENT}
|
||||
src={nft.metadata.image}
|
||||
style={{ width: "100%", marginTop: "10px" }}
|
||||
/>
|
||||
) : null}
|
||||
{smartAccount ? (
|
||||
<div className="flex flex-col justify-center p-8">
|
||||
<p className="font-semibold text-center mb-2">
|
||||
You own {ownedNfts?.[0]?.quantityOwned.toString() || "0"}{" "}
|
||||
Kittens
|
||||
</p>
|
||||
<TransactionButton
|
||||
transaction={() =>
|
||||
claimTo({
|
||||
contract: editionDropContract,
|
||||
tokenId: editionDropTokenId,
|
||||
to: smartAccount.address,
|
||||
quantity: 1n,
|
||||
})
|
||||
}
|
||||
onError={(error) => {
|
||||
alert(`Error: ${error.message}`);
|
||||
}}
|
||||
onTransactionConfirmed={async () => {
|
||||
alert("Minted successful!");
|
||||
}}
|
||||
>
|
||||
Mint
|
||||
</TransactionButton>
|
||||
</div>
|
||||
) : (
|
||||
<p
|
||||
style={{
|
||||
textAlign: "center",
|
||||
width: "100%",
|
||||
marginTop: "10px",
|
||||
}}
|
||||
>
|
||||
Login to mint this Kitten!
|
||||
</p>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,8 +1,3 @@
|
||||
// enforces this only gets rendered on the server
|
||||
import "server-only";
|
||||
|
||||
import { transformerTwoslash } from "@shikijs/twoslash";
|
||||
import "@shikijs/twoslash/style-rich.css";
|
||||
import * as parserBabel from "prettier/plugins/babel";
|
||||
import * as estree from "prettier/plugins/estree";
|
||||
import { format } from "prettier/standalone";
|
||||
@@ -14,22 +9,17 @@ export type CodeProps = {
|
||||
};
|
||||
|
||||
export const Code: React.FC<CodeProps> = async ({ code, lang }) => {
|
||||
const formattedCode = await format(
|
||||
`// @noErrors
|
||||
${code}`,
|
||||
{
|
||||
parser: "babel-ts",
|
||||
plugins: [parserBabel, estree],
|
||||
printWidth: 50,
|
||||
},
|
||||
);
|
||||
const formattedCode = await format(code, {
|
||||
parser: "babel-ts",
|
||||
plugins: [parserBabel, estree],
|
||||
printWidth: 50,
|
||||
});
|
||||
const html = await codeToHtml(formattedCode, {
|
||||
lang: lang,
|
||||
themes: {
|
||||
light: "github-light",
|
||||
dark: "github-dark-default",
|
||||
},
|
||||
transformers: [transformerTwoslash()],
|
||||
});
|
||||
|
||||
return (
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
"use client";
|
||||
|
||||
import { THIRDWEB_CLIENT } from "@/lib/client";
|
||||
import { useTheme } from "next-themes";
|
||||
import { ConnectButton } from "thirdweb/react";
|
||||
import type { ConnectButtonProps } from "thirdweb/react";
|
||||
import { inAppWallet } from "thirdweb/wallets/in-app";
|
||||
import { chain } from "./constants";
|
||||
|
||||
export function InAppConnectButton(
|
||||
props?: Omit<ConnectButtonProps, "client" | "theme">,
|
||||
) {
|
||||
const { theme } = useTheme();
|
||||
|
||||
return (
|
||||
<ConnectButton
|
||||
client={THIRDWEB_CLIENT}
|
||||
theme={theme === "light" ? "light" : "dark"}
|
||||
connectButton={{
|
||||
label: "Sign in",
|
||||
}}
|
||||
wallets={[
|
||||
inAppWallet({
|
||||
smartAccount: {
|
||||
chain,
|
||||
sponsorGas: true,
|
||||
},
|
||||
}),
|
||||
]}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { getContract } from "thirdweb";
|
||||
import { baseSepolia } from "thirdweb/chains";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
|
||||
export const chain = baseSepolia;
|
||||
export const tokenDropAddress = "0xd64A548A82c190083707CBEFD26958E5e6551D18";
|
||||
export const editionDropAddress = "0x638263e3eAa3917a53630e61B1fBa685308024fa";
|
||||
export const editionDropTokenId = 0n;
|
||||
|
||||
export const editionDropContract = getContract({
|
||||
address: editionDropAddress,
|
||||
chain,
|
||||
client: THIRDWEB_CLIENT,
|
||||
});
|
||||
|
||||
export const tokenDropContract = getContract({
|
||||
address: tokenDropAddress,
|
||||
chain,
|
||||
client: THIRDWEB_CLIENT,
|
||||
});
|
||||
@@ -0,0 +1,91 @@
|
||||
"use client";
|
||||
|
||||
import { useTheme } from "next-themes";
|
||||
import { useEffect } from "react";
|
||||
import { claimTo, getNFT, getOwnedNFTs } from "thirdweb/extensions/erc1155";
|
||||
import {
|
||||
MediaRenderer,
|
||||
TransactionButton,
|
||||
useActiveAccount,
|
||||
useActiveWallet,
|
||||
useDisconnect,
|
||||
useReadContract,
|
||||
} from "thirdweb/react";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
import { editionDropContract, editionDropTokenId } from "./constants";
|
||||
|
||||
export function SponsoredInAppTxPreview() {
|
||||
const wallet = useActiveWallet();
|
||||
const { disconnect } = useDisconnect();
|
||||
useEffect(() => {
|
||||
if (wallet && wallet.id !== "inApp") {
|
||||
disconnect(wallet);
|
||||
}
|
||||
}, [wallet, disconnect]);
|
||||
const { theme } = useTheme();
|
||||
const smartAccount = useActiveAccount();
|
||||
const { data: nft, isLoading: isNftLoading } = useReadContract(getNFT, {
|
||||
contract: editionDropContract,
|
||||
tokenId: editionDropTokenId,
|
||||
});
|
||||
const { data: ownedNfts } = useReadContract(getOwnedNFTs, {
|
||||
contract: editionDropContract,
|
||||
// biome-ignore lint/style/noNonNullAssertion: handled by queryOptions
|
||||
address: smartAccount?.address!,
|
||||
queryOptions: { enabled: !!smartAccount },
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="flex flex-col">
|
||||
{isNftLoading ? (
|
||||
<div className="w-full mt-24">Loading...</div>
|
||||
) : (
|
||||
<>
|
||||
{nft ? (
|
||||
<MediaRenderer
|
||||
client={THIRDWEB_CLIENT}
|
||||
src={nft.metadata.image}
|
||||
style={{ width: "100%", marginTop: "10px" }}
|
||||
/>
|
||||
) : null}
|
||||
{smartAccount ? (
|
||||
<>
|
||||
<p className="font-semibold text-center mb-2">
|
||||
You own {ownedNfts?.[0]?.quantityOwned.toString() || "0"}{" "}
|
||||
Kittens
|
||||
</p>
|
||||
<TransactionButton
|
||||
transaction={() =>
|
||||
claimTo({
|
||||
contract: editionDropContract,
|
||||
tokenId: editionDropTokenId,
|
||||
to: smartAccount.address,
|
||||
quantity: 1n,
|
||||
})
|
||||
}
|
||||
onError={(error) => {
|
||||
alert(`Error: ${error.message}`);
|
||||
}}
|
||||
onTransactionConfirmed={async () => {
|
||||
alert("Minted successful!");
|
||||
}}
|
||||
>
|
||||
Mint
|
||||
</TransactionButton>
|
||||
</>
|
||||
) : (
|
||||
<p
|
||||
style={{
|
||||
textAlign: "center",
|
||||
width: "100%",
|
||||
marginTop: "10px",
|
||||
}}
|
||||
>
|
||||
Login to mint this Kitten!
|
||||
</p>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
+2
-2
@@ -4,13 +4,13 @@ import { THIRDWEB_CLIENT } from "@/lib/client";
|
||||
import { useTheme } from "next-themes";
|
||||
import { PayEmbed } from "thirdweb/react";
|
||||
|
||||
export function StyledPayEmbed() {
|
||||
export function StyledPayEmbedPreview() {
|
||||
const { theme } = useTheme();
|
||||
|
||||
return (
|
||||
<PayEmbed
|
||||
client={THIRDWEB_CLIENT}
|
||||
theme={theme === "light" ? "dark" : "light"}
|
||||
theme={theme === "light" ? "light" : "dark"}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
"use client";
|
||||
|
||||
import { useTheme } from "next-themes";
|
||||
import { getContract } from "thirdweb";
|
||||
import { polygon } from "thirdweb/chains";
|
||||
import { claimTo } from "thirdweb/extensions/erc1155";
|
||||
import { TransactionButton, useActiveAccount } from "thirdweb/react";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
import { StyledConnectButton } from "../styled-connect-button";
|
||||
|
||||
const contract = getContract({
|
||||
address: "0x96B30d36f783c7BC68535De23147e2ce65788e93",
|
||||
chain: polygon,
|
||||
client: THIRDWEB_CLIENT,
|
||||
});
|
||||
|
||||
export function PayTransactionButtonPreview() {
|
||||
const account = useActiveAccount();
|
||||
const { theme } = useTheme();
|
||||
|
||||
return account ? (
|
||||
<TransactionButton
|
||||
transaction={() => {
|
||||
if (!account) throw new Error("No active account");
|
||||
return claimTo({
|
||||
contract,
|
||||
quantity: 1n,
|
||||
tokenId: 0n,
|
||||
to: account?.address,
|
||||
});
|
||||
}}
|
||||
payModal={{
|
||||
theme: theme === "light" ? "light" : "dark",
|
||||
}}
|
||||
>
|
||||
Buy for 10 MATIC
|
||||
</TransactionButton>
|
||||
) : (
|
||||
<StyledConnectButton />
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
"use client";
|
||||
import { ConnectButton } from "thirdweb/react";
|
||||
import { darkTheme, lightTheme } from "thirdweb/react";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
|
||||
export const CustomizedConnect = () => {
|
||||
return (
|
||||
<ConnectButton
|
||||
client={THIRDWEB_CLIENT}
|
||||
connectButton={{
|
||||
label: "Custom Connect Button",
|
||||
}}
|
||||
showAllWallets={false}
|
||||
connectModal={{
|
||||
title: "Custom Connect Modal",
|
||||
size: "compact",
|
||||
}}
|
||||
theme={darkTheme({
|
||||
colors: {
|
||||
modalBg: "#281866",
|
||||
accentButtonBg: "#281866",
|
||||
connectedButtonBgHover: "#281866",
|
||||
borderColor: "rgba(256, 256,256, 0.1)",
|
||||
accentText: "rgba(256, 256,256, 0.1)",
|
||||
connectedButtonBg: "#281866",
|
||||
tertiaryBg: "rgba(256, 256,256, 0.1)",
|
||||
primaryButtonBg: "#281866",
|
||||
secondaryButtonBg: "rgba(256, 256,256, 0.1)",
|
||||
primaryButtonText: "#E7E8E9",
|
||||
primaryText: "#E7E8E9",
|
||||
separatorLine: "rgba(256, 256,256, 0.1)",
|
||||
},
|
||||
})}
|
||||
/>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,47 @@
|
||||
"use client";
|
||||
|
||||
import {
|
||||
useActiveAccount,
|
||||
useActiveWallet,
|
||||
useConnect,
|
||||
useDisconnect,
|
||||
} from "thirdweb/react";
|
||||
import { shortenAddress } from "thirdweb/utils";
|
||||
import { createWallet } from "thirdweb/wallets";
|
||||
import { THIRDWEB_CLIENT } from "../../lib/client";
|
||||
import { Button } from "../ui/button";
|
||||
|
||||
export function HooksPreview() {
|
||||
const account = useActiveAccount();
|
||||
const wallet = useActiveWallet();
|
||||
const connectMutation = useConnect();
|
||||
const { disconnect } = useDisconnect();
|
||||
|
||||
const connect = async () => {
|
||||
const wallet = await connectMutation.connect(async () => {
|
||||
const adminWallet = createWallet("io.metamask");
|
||||
await adminWallet.connect({
|
||||
client: THIRDWEB_CLIENT,
|
||||
});
|
||||
return adminWallet;
|
||||
});
|
||||
return wallet;
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col">
|
||||
{account && wallet ? (
|
||||
<>
|
||||
<p className="py-4">Connected as {shortenAddress(account.address)}</p>
|
||||
<Button variant={"outline"} onClick={() => disconnect(wallet)}>
|
||||
Disconnect
|
||||
</Button>
|
||||
</>
|
||||
) : (
|
||||
<Button variant={"default"} onClick={connect}>
|
||||
Connect with Metamask
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -3,14 +3,18 @@
|
||||
import { THIRDWEB_CLIENT } from "@/lib/client";
|
||||
import { useTheme } from "next-themes";
|
||||
import { ConnectButton } from "thirdweb/react";
|
||||
import type { ConnectButtonProps } from "thirdweb/react";
|
||||
|
||||
export function StyledConnectButton() {
|
||||
export function StyledConnectButton(
|
||||
props?: Omit<ConnectButtonProps, "client" | "theme">,
|
||||
) {
|
||||
const { theme } = useTheme();
|
||||
|
||||
return (
|
||||
<ConnectButton
|
||||
client={THIRDWEB_CLIENT}
|
||||
theme={theme === "light" ? "light" : "dark"}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,15 +2,28 @@
|
||||
|
||||
import { THIRDWEB_CLIENT } from "@/lib/client";
|
||||
import { useTheme } from "next-themes";
|
||||
import { ConnectEmbed } from "thirdweb/react";
|
||||
import {
|
||||
ConnectEmbed,
|
||||
type ConnectEmbedProps,
|
||||
useActiveAccount,
|
||||
} from "thirdweb/react";
|
||||
import { StyledConnectButton } from "./styled-connect-button";
|
||||
|
||||
export function StyledConnectEmbed() {
|
||||
export function StyledConnectEmbed(
|
||||
props?: Omit<ConnectEmbedProps, "client" | "theme">,
|
||||
) {
|
||||
const { theme } = useTheme();
|
||||
const account = useActiveAccount();
|
||||
|
||||
return (
|
||||
return account ? (
|
||||
<div className="flex flex-col">
|
||||
<StyledConnectButton />
|
||||
</div>
|
||||
) : (
|
||||
<ConnectEmbed
|
||||
client={THIRDWEB_CLIENT}
|
||||
theme={theme === "light" ? "light" : "dark"}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
"use client";
|
||||
|
||||
import { THIRDWEB_CLIENT } from "@/lib/client";
|
||||
import { useTheme } from "next-themes";
|
||||
import { getContract } from "thirdweb";
|
||||
import { polygon } from "thirdweb/chains";
|
||||
import { claimTo } from "thirdweb/extensions/erc1155";
|
||||
import { TransactionButton, useActiveAccount } from "thirdweb/react";
|
||||
import { StyledConnectButton } from "./styled-connect-button";
|
||||
|
||||
const contract = getContract({
|
||||
address: "0x96B30d36f783c7BC68535De23147e2ce65788e93",
|
||||
chain: polygon,
|
||||
client: THIRDWEB_CLIENT,
|
||||
});
|
||||
|
||||
export function StyledPayTransaction() {
|
||||
const account = useActiveAccount();
|
||||
const { theme } = useTheme();
|
||||
|
||||
return account ? (
|
||||
<TransactionButton
|
||||
transaction={() => {
|
||||
if (!account) throw new Error("No active account");
|
||||
return claimTo({
|
||||
contract,
|
||||
quantity: 1n,
|
||||
tokenId: 0n,
|
||||
to: account?.address,
|
||||
});
|
||||
}}
|
||||
payModal={{
|
||||
theme: theme === "light" ? "light" : "dark",
|
||||
}}
|
||||
>
|
||||
Buy for 10 MATIC
|
||||
</TransactionButton>
|
||||
) : (
|
||||
<StyledConnectButton />
|
||||
);
|
||||
}
|
||||
@@ -1,10 +1,6 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"lib": [
|
||||
"dom",
|
||||
"dom.iterable",
|
||||
"esnext"
|
||||
],
|
||||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"strict": true,
|
||||
@@ -22,19 +18,10 @@
|
||||
}
|
||||
],
|
||||
"paths": {
|
||||
"@/*": [
|
||||
"./src/*"
|
||||
]
|
||||
"@/*": ["./src/*"]
|
||||
},
|
||||
"target": "ES2017"
|
||||
"target": "ES2020"
|
||||
},
|
||||
"include": [
|
||||
"next-env.d.ts",
|
||||
"**/*.ts",
|
||||
"**/*.tsx",
|
||||
".next/types/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
"packages/thirdweb/src/crypto/aes/lib/md5.ts",
|
||||
"packages/thirdweb/src/utils/promise/p-limit.ts",
|
||||
"packages/thirdweb/src/utils/bytecode/cbor-decode.ts",
|
||||
"packages/thirdweb/src/wallets/in-app/native/helpers/wallet/sss.ts",
|
||||
"packages/thirdweb/src/**/__generated__/**"
|
||||
]
|
||||
},
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/cli": "0.3.10",
|
||||
"@swc/core": "^1.4.12",
|
||||
"@swc/core": "^1.5.24",
|
||||
"ora": "^6.3.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,68 @@
|
||||
# @thirdweb-dev/auth
|
||||
|
||||
## 4.1.96
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.38
|
||||
|
||||
## 4.1.95
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.37
|
||||
|
||||
## 4.1.94
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.36
|
||||
|
||||
## 4.1.93
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.35
|
||||
|
||||
## 4.1.92
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.34
|
||||
|
||||
## 4.1.91
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`5698b0c`](https://github.com/thirdweb-dev/js/commit/5698b0c5a9779830fa2d2582e551d050427c6254), [`913f99a`](https://github.com/thirdweb-dev/js/commit/913f99a9a4d002b82fcd9e55db41c64aab99cf83), [`d2cbb1e`](https://github.com/thirdweb-dev/js/commit/d2cbb1ee7ebe5aea9021d5be57cd80abd1df7a1c)]:
|
||||
- @thirdweb-dev/wallets@2.5.33
|
||||
|
||||
## 4.1.90
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.32
|
||||
|
||||
## 4.1.89
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.31
|
||||
|
||||
## 4.1.88
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.30
|
||||
|
||||
## 4.1.87
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/auth",
|
||||
"version": "4.1.87",
|
||||
"version": "4.1.96",
|
||||
"main": "dist/thirdweb-dev-auth.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth.esm.js",
|
||||
"browser": {
|
||||
@@ -85,7 +85,7 @@
|
||||
"@microsoft/tsdoc": "^0.14.2",
|
||||
"@preconstruct/cli": "2.7.0",
|
||||
"@swc-node/register": "^1.9.0",
|
||||
"@swc/core": "^1.4.12",
|
||||
"@swc/core": "^1.5.24",
|
||||
"@thirdweb-dev/tsconfig": "workspace:*",
|
||||
"@types/cookie": "^0.6.0",
|
||||
"@types/cookie-parser": "^1.4.7",
|
||||
|
||||
@@ -1,5 +1,35 @@
|
||||
# @thirdweb-dev/chains
|
||||
|
||||
## 0.1.120
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#3348](https://github.com/thirdweb-dev/js/pull/3348) [`321cf26`](https://github.com/thirdweb-dev/js/commit/321cf26342d0755204aa465bc2390e052d5ed071) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.119
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#3311](https://github.com/thirdweb-dev/js/pull/3311) [`8b74602`](https://github.com/thirdweb-dev/js/commit/8b74602e3b7fbe011bf886b9d5ee0e2ea62f7447) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.118
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#3279](https://github.com/thirdweb-dev/js/pull/3279) [`9f42e4d`](https://github.com/thirdweb-dev/js/commit/9f42e4d2412df536d1b5f03a4e2a8b516911facb) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.117
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#3222](https://github.com/thirdweb-dev/js/pull/3222) [`efae2f3`](https://github.com/thirdweb-dev/js/commit/efae2f36b60e0bcade159608903c9b756843151c) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.116
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#3168](https://github.com/thirdweb-dev/js/pull/3168) [`f13a40b`](https://github.com/thirdweb-dev/js/commit/f13a40ba9905a05d02640aa6672557f53567b087) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.115
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "QuarkChain",
|
||||
"chainId": 100011,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"infoURL": "https://www.quarkchain.io",
|
||||
"name": "QuarkChain L2 Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QKC",
|
||||
"symbol": "QKC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 100011,
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-100000"
|
||||
},
|
||||
"rpc": [
|
||||
"https://100011.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-l2-ethapi.quarkchain.io"
|
||||
],
|
||||
"shortName": "qkc-l2",
|
||||
"slug": "quarkchain-l2",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -10,6 +10,12 @@ export default {
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreid3wd6ouu53r677q2z24a4eq5un5tlwbc4izfapcvvtrlhkmz43au",
|
||||
"width": 133,
|
||||
"height": 144,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://stabilityprotocol.com",
|
||||
"name": "Global Trust Network",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "GLC",
|
||||
"chainId": 10222,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "GLScan Explorer",
|
||||
"url": "https://glscan.io",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTw21p6UfXVH2BCU81G2Ck28ecoknz4v9mC35fF8Z987i",
|
||||
"width": 512,
|
||||
"height": 557,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmTw21p6UfXVH2BCU81G2Ck28ecoknz4v9mC35fF8Z987i",
|
||||
"width": 512,
|
||||
"height": 557,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://glscan.io/",
|
||||
"name": "GLScan",
|
||||
"nativeCurrency": {
|
||||
"name": "GLC",
|
||||
"symbol": "GLC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 10222,
|
||||
"rpc": [
|
||||
"https://10222.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://glc-dataseed.glscan.io/"
|
||||
],
|
||||
"shortName": "glc",
|
||||
"slip44": 1,
|
||||
"slug": "glscan",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -4,12 +4,6 @@ export default {
|
||||
"chainId": 107107114116,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmNTZ9nEomAXK6bLxUbMfTS1TvrsN22HU1zTtxHUpMkUhz",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://kakarot.org",
|
||||
"name": "Kakarot Sepolia Deprecated",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Oraichain",
|
||||
"chainId": 108160679,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"infoURL": "https://orai.io",
|
||||
"name": "Oraichain Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Oraichain Token",
|
||||
"symbol": "ORAI",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 108160679,
|
||||
"rpc": [
|
||||
"https://108160679.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evm.orai.io"
|
||||
],
|
||||
"shortName": "Oraichain",
|
||||
"slug": "oraichain",
|
||||
"testnet": false,
|
||||
"title": "Oraichain Mainnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -2,9 +2,19 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 10849,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Lamina1 Explorer",
|
||||
"url": "https://subnets.avax.network/lamina1",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
@@ -25,6 +35,7 @@ export default {
|
||||
"https://subnets.avax.network/lamina1/mainnet/rpc"
|
||||
],
|
||||
"shortName": "Lamina1",
|
||||
"slip44": 1,
|
||||
"slug": "lamina1",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -2,9 +2,19 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 10850,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Lamina1 Identity Explorer",
|
||||
"url": "https://subnets.avax.network/lamina1id",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
@@ -25,6 +35,7 @@ export default {
|
||||
"https://subnets.avax.network/lamina1id/mainnet/rpc"
|
||||
],
|
||||
"shortName": "Lamina1 Identity",
|
||||
"slip44": 1,
|
||||
"slug": "lamina1-identity",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -4,16 +4,23 @@ export default {
|
||||
"chainId": 109,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "shibariumscan",
|
||||
"name": "Shibariumscan",
|
||||
"url": "https://www.shibariumscan.io",
|
||||
"standard": "none"
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "https://www.shibariumscan.io/assets/configs/network_icon_dark.png",
|
||||
"width": 360,
|
||||
"height": 360,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmYNVkoZgRjDBQzJz6kog9mA2yPzQFW2oSKvhnkwuBhLQE",
|
||||
"width": 2000,
|
||||
"height": 2000,
|
||||
"url": "https://chewyswap.dog/images/chains/109.png",
|
||||
"width": 200,
|
||||
"height": 200,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://shibariumecosystem.com",
|
||||
@@ -24,8 +31,10 @@ export default {
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 109,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://109.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.shibrpc.com",
|
||||
"https://www.shibrpc.com"
|
||||
],
|
||||
"shortName": "shibariumecosystem",
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "QuarkChain",
|
||||
"chainId": 110011,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"infoURL": "https://www.quarkchain.io",
|
||||
"name": "QuarkChain L2 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QKC",
|
||||
"symbol": "QKC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 110011,
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-110000"
|
||||
},
|
||||
"rpc": [
|
||||
"https://110011.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-l2-ethapi.quarkchain.io"
|
||||
],
|
||||
"shortName": "qkc-l2-t",
|
||||
"slug": "quarkchain-l2-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -6,10 +6,22 @@ export default {
|
||||
{
|
||||
"name": "NetMind Testnet Explorer",
|
||||
"url": "https://testbrower.protago-dev.com",
|
||||
"standard": "EIP3091"
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmQNipd6uen7sm7HZXGbqhcSVkUXxu3Tp6c3BoeFpvmywp",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmQNipd6uen7sm7HZXGbqhcSVkUXxu3Tp6c3BoeFpvmywp",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://netmind.ai",
|
||||
"name": "Netmind Chain Testnet",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 111223,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://avacloud.io",
|
||||
"name": "Chennai Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Chennai Testnet Token",
|
||||
"symbol": "ZOD",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 111223,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://111223.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/chennai/testnet/rpc"
|
||||
],
|
||||
"shortName": "Chennai Testnet",
|
||||
"slug": "chennai-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -2,9 +2,19 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 11227,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "JIRITSUTES Explorer",
|
||||
"url": "https://subnets-test.avax.network/jiritsutes",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
|
||||
@@ -36,7 +36,9 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://1123.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://b2-testnet.alt.technology"
|
||||
"https://b2-testnet.alt.technology",
|
||||
"https://rpc.ankr.com/b2_testnet",
|
||||
"https://testnet-rpc.bsquared.network"
|
||||
],
|
||||
"shortName": "B2-testnet",
|
||||
"slug": "b2-testnet",
|
||||
|
||||
@@ -16,6 +16,12 @@ export default {
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmVTS8jmWD5e7jVEn86wLjJsuMnc6s8fym3JbtE4etzSKf",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://lisk.com",
|
||||
"name": "Lisk",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -6,10 +6,22 @@ export default {
|
||||
{
|
||||
"name": "CybEthExplorer",
|
||||
"url": "http://cybeth1.cyberdeck.eu:8000",
|
||||
"standard": "none"
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTvYMJXeZeWxYPuoQ15mHCS8K5EQzkMMCHQVs3GshooyR",
|
||||
"width": 193,
|
||||
"height": 214,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmTvYMJXeZeWxYPuoQ15mHCS8K5EQzkMMCHQVs3GshooyR",
|
||||
"width": 193,
|
||||
"height": 214,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://cyberdeck.eu",
|
||||
"name": "CyberdeckNet",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Flag",
|
||||
"chainId": 1147,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Flag Testnet Explorer",
|
||||
"url": "https://testnet-explorer.flagscan.xyz",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.flagscan.xyz"
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeibcrxeavdxpwwmj4mc6hhp232nkrfbpvfpngcqux2v5rmoshycj3u",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://testnet-explorer.flagscan.xyz",
|
||||
"name": "Flag Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Flag Testnet",
|
||||
"symbol": "FLAG",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1147,
|
||||
"rpc": [
|
||||
"https://1147.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.flagscan.xyz"
|
||||
],
|
||||
"shortName": "tFLAG",
|
||||
"slug": "flag-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Artela",
|
||||
"chainId": 11822,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ArtelaScan",
|
||||
"url": "https://betanet-scan.artela.network",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://artela.network/",
|
||||
"name": "Artela Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "ART",
|
||||
"symbol": "ART",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 11822,
|
||||
"rpc": [
|
||||
"https://11822.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://betanet-rpc1.artela.network"
|
||||
],
|
||||
"shortName": "Artela",
|
||||
"slug": "artela-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Santiment Intelligence Network",
|
||||
"chain": "Santiment Intelligence Network DEPRECATED",
|
||||
"chainId": 11888,
|
||||
"explorers": [
|
||||
{
|
||||
@@ -17,10 +17,10 @@ export default {
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://sanr.app",
|
||||
"name": "Santiment Intelligence Network",
|
||||
"name": "Santiment Intelligence Network DEPRECATED",
|
||||
"nativeCurrency": {
|
||||
"name": "SANR",
|
||||
"symbol": "SANR",
|
||||
"name": "SANold",
|
||||
"symbol": "SANold",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 11888,
|
||||
@@ -37,7 +37,8 @@ export default {
|
||||
"https://11888.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://sanrchain-node.santiment.net"
|
||||
],
|
||||
"shortName": "SAN",
|
||||
"slug": "santiment-intelligence-network",
|
||||
"shortName": "SANold",
|
||||
"slug": "santiment-intelligence-network-deprecated",
|
||||
"status": "deprecated",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "CuckooAI",
|
||||
"chainId": 1200,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Cuckoo Chain Explorer",
|
||||
"url": "https://mainnet-scan.cuckoo.network",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmZjVDfk56DjqkCPymaweJJaj9ASGjjgcwJ95XsFDzj9us",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://cuckoo.network",
|
||||
"name": "Cuckoo Chain",
|
||||
"nativeCurrency": {
|
||||
"name": "CuckooAI",
|
||||
"symbol": "CAI",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1200,
|
||||
"rpc": [
|
||||
"https://1200.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-rpc.cuckoo.network",
|
||||
"wss://mainnet-rpc.cuckoo.network"
|
||||
],
|
||||
"shortName": "cai",
|
||||
"slug": "cuckoo-chain",
|
||||
"testnet": false,
|
||||
"title": "Cuckoo Chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,38 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "CuckooAI",
|
||||
"chainId": 1210,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Cuckoo Sepolia Explorer",
|
||||
"url": "https://testnet-scan.cuckoo.network",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://cuckoo.network/portal/faucet/"
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmZjVDfk56DjqkCPymaweJJaj9ASGjjgcwJ95XsFDzj9us",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://cuckoo.network",
|
||||
"name": "Cuckoo Sepolia",
|
||||
"nativeCurrency": {
|
||||
"name": "CuckooAI",
|
||||
"symbol": "CAI",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1210,
|
||||
"rpc": [
|
||||
"https://1210.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.cuckoo.network",
|
||||
"wss://testnet-rpc.cuckoo.network"
|
||||
],
|
||||
"shortName": "caisepolia",
|
||||
"slug": "cuckoo-sepolia",
|
||||
"testnet": true,
|
||||
"title": "Cuckoo AI Testnet Sepolia"
|
||||
} as const satisfies Chain;
|
||||
@@ -25,6 +25,6 @@ export default {
|
||||
"https://testnet.flagscan.io"
|
||||
],
|
||||
"shortName": "Flag",
|
||||
"slug": "flag-testnet",
|
||||
"slug": "flag-testnet-flag",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -17,7 +17,7 @@ export default {
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://buildonhybrid.com",
|
||||
"name": "Hybrid Testnet",
|
||||
"name": "Hybrid Testnet (Deprecated)",
|
||||
"nativeCurrency": {
|
||||
"name": "Hybrid",
|
||||
"symbol": "HYB",
|
||||
@@ -28,7 +28,8 @@ export default {
|
||||
"https://1224.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.buildonhybrid.com"
|
||||
],
|
||||
"shortName": "hyb",
|
||||
"slug": "hybrid-testnet",
|
||||
"shortName": "hyb_deprecated",
|
||||
"slug": "hybrid-testnet-deprecated",
|
||||
"status": "deprecated",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "HYB",
|
||||
"chainId": 1225,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Hybrid Testnet",
|
||||
"url": "https://explorer.buildonhybrid.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmdGfvH9qfvbMXYKosS1nHbw3q5UtFJky4hdMDmmKDTx8Y",
|
||||
"width": 250,
|
||||
"height": 250,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://buildonhybrid.com",
|
||||
"name": "Hybrid Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Hybrid",
|
||||
"symbol": "HYB",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1225,
|
||||
"rpc": [
|
||||
"https://1225.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://hybrid-testnet.rpc.caldera.xyz/http",
|
||||
"wss://hybrid-testnet.rpc.caldera.xyz/ws"
|
||||
],
|
||||
"shortName": "hyb",
|
||||
"slug": "hybrid-testnet",
|
||||
"status": "active",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ITX",
|
||||
"chainId": 1235,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ITX Mainnet Explorer (Blockscout)",
|
||||
"url": "https://explorer.itxchain.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://explorer.itxchain.com",
|
||||
"name": "ITX Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "ITX",
|
||||
"symbol": "ITX",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1235,
|
||||
"rpc": [
|
||||
"https://1235.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.itxchain.com"
|
||||
],
|
||||
"shortName": "itx",
|
||||
"slug": "itx",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -15,12 +15,6 @@ export default {
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmRySLe3su59dE5x5JPm2b1GeZfz6DR9qUzcbp3rt4SD3A",
|
||||
"width": 300,
|
||||
"height": 300,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://astar.network",
|
||||
"name": "zKatana",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 12885,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://avacloud.io",
|
||||
"name": "QI0603I3",
|
||||
"nativeCurrency": {
|
||||
"name": "QI0603I3 Token",
|
||||
"symbol": "UQI",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 12885,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://12885.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QI0603I3",
|
||||
"slug": "qi0603i3",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,37 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Sei",
|
||||
"chainId": 1328,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Seitrace",
|
||||
"url": "https://seitrace.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://atlantic-2.app.sei.io/faucet"
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreih3l3iisplmikofkbfyimqlox7nmixzlkzhjoewmpi4jbqitwryoa",
|
||||
"width": 600,
|
||||
"height": 600,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.sei.io",
|
||||
"name": "Sei Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Sei",
|
||||
"symbol": "SEI",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1328,
|
||||
"rpc": [
|
||||
"https://1328.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evm-rpc-testnet.sei-apis.com",
|
||||
"wss://evm-ws-testnet.sei-apis.com"
|
||||
],
|
||||
"shortName": "sei-testnet",
|
||||
"slug": "sei-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,48 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Sei",
|
||||
"chainId": 1329,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Seitrace",
|
||||
"url": "https://seitrace.com",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "Sei Explorer",
|
||||
"url": "https://github.com/sei-protocol/sei-chain/blob/main/assets/SeiLogo.png",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "https://github.com/sei-protocol/sei-chain/blob/main/assets/SeiLogo.png",
|
||||
"width": 231,
|
||||
"height": 231,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://github.com/sei-protocol/sei-chain/blob/main/assets/SeiLogo.png",
|
||||
"width": 231,
|
||||
"height": 231,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.sei.io",
|
||||
"name": "Sei",
|
||||
"nativeCurrency": {
|
||||
"name": "Sei",
|
||||
"symbol": "Sei",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1329,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://1329.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evm-rpc.sei-apis.com",
|
||||
"wss://evm-ws.sei-apis.com"
|
||||
],
|
||||
"shortName": "sei",
|
||||
"slug": "sei",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -2,11 +2,24 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Form",
|
||||
"chainId": 132902,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Form Testnet explorer",
|
||||
"url": "https://testnet-explorer.form.network",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://info.form.network/faucet"
|
||||
],
|
||||
"features": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreif6anuffunp3le26jsyemdrg4ydf2abensokw4qnlgvg5nc43zqbi",
|
||||
"width": 3600,
|
||||
@@ -29,7 +42,9 @@ export default {
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://132902.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.form.network/http"
|
||||
"https://rpc.form.network/http",
|
||||
"https://testnet-rpc.form.network/http",
|
||||
"wss://testnet-rpc.form.network/ws"
|
||||
],
|
||||
"shortName": "Form",
|
||||
"slug": "form-testnet",
|
||||
|
||||
@@ -22,9 +22,9 @@ export default {
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmZR15YFtH3EyQp3V7vPkm8PFyevXs2w3y2Trf2k6ikVQL",
|
||||
"width": 480,
|
||||
"height": 480,
|
||||
"url": "ipfs://QmU5XU4S5oaGM5fj8oU1ovhWoXCzGWspwRj2zWRTuJrU4k",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://gravity.xyz",
|
||||
|
||||
@@ -6,7 +6,13 @@ export default {
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com",
|
||||
"standard": "EIP3091"
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmbYYCoU2G4LUfRr9ofGowF3eatfvWv9FiPVhqKndZeqwA",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Ramestta",
|
||||
"chainId": 1370,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ramascan",
|
||||
"url": "https://ramascan.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
|
||||
"width": 300,
|
||||
"height": 300,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
|
||||
"width": 300,
|
||||
"height": 300,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.ramestta.com",
|
||||
"name": "Ramestta Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Rama",
|
||||
"symbol": "RAMA",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1370,
|
||||
"rpc": [
|
||||
"https://1370.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://blockchain.ramestta.com",
|
||||
"https://blockchain2.ramestta.com"
|
||||
],
|
||||
"shortName": "RAMA",
|
||||
"slug": "ramestta",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Pingaksha",
|
||||
"chainId": 1377,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Pingaksha",
|
||||
"url": "https://pingaksha.ramascan.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
|
||||
"width": 300,
|
||||
"height": 300,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
|
||||
"width": 300,
|
||||
"height": 300,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.ramestta.com",
|
||||
"name": "Pingaksha testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Rama",
|
||||
"symbol": "tRAMA",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1377,
|
||||
"rpc": [
|
||||
"https://1377.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.ramestta.com"
|
||||
],
|
||||
"shortName": "tRAMA",
|
||||
"slug": "pingaksha-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -11,7 +11,7 @@ export default {
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://eternalcoin.io",
|
||||
"name": "EternalCoin Mainnet",
|
||||
"name": "Eternal Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Eternal",
|
||||
"symbol": "Eter",
|
||||
@@ -24,6 +24,6 @@ export default {
|
||||
"ws://mainnet.eternalcoin.io/v1/ws"
|
||||
],
|
||||
"shortName": "Eter",
|
||||
"slug": "eternalcoin",
|
||||
"slug": "eternal",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 14093,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://avacloud.io",
|
||||
"name": "QaUser6598",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser6598 Token",
|
||||
"symbol": "UQC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 14093,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://14093.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser6598",
|
||||
"slug": "qauser6598",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -6,13 +6,7 @@ export default {
|
||||
{
|
||||
"name": "etherscan",
|
||||
"url": "http://testnet-api.magape.io:81",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmPsxWMvnxnZ9dZcRJJMaE24o34dQsnsAMCJh3kVDrE1aB",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
}
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
@@ -21,12 +15,6 @@ export default {
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmPsxWMvnxnZ9dZcRJJMaE24o34dQsnsAMCJh3kVDrE1aB",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://magape.io",
|
||||
"name": "MagApe Testnet",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 14299,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://avacloud.io",
|
||||
"name": "Diego's",
|
||||
"nativeCurrency": {
|
||||
"name": "Diego's Token",
|
||||
"symbol": "VMF",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 14299,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://14299.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/diegos/testnet/rpc"
|
||||
],
|
||||
"shortName": "Diego's",
|
||||
"slug": "diego-s",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Flag",
|
||||
"chainId": 147,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Flag Mainnet Explorer",
|
||||
"url": "https://flagscan.xyz",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeibcrxeavdxpwwmj4mc6hhp232nkrfbpvfpngcqux2v5rmoshycj3u",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://flagscan.xyz",
|
||||
"name": "Flag Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Flag",
|
||||
"symbol": "FLAG",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 147,
|
||||
"rpc": [
|
||||
"https://147.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-rpc.flagscan.xyz"
|
||||
],
|
||||
"shortName": "FLAG",
|
||||
"slug": "flag",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Satori",
|
||||
"chainId": 14801,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "satoriscan",
|
||||
"url": "https://satori.vanascan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.vana.org"
|
||||
],
|
||||
"infoURL": "https://satori.vana.org",
|
||||
"name": "Vana Satori Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "DAT",
|
||||
"symbol": "DAT",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 14801,
|
||||
"rpc": [
|
||||
"https://14801.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://rpc.satori.vana.org"
|
||||
],
|
||||
"shortName": "satori",
|
||||
"slug": "vana-satori-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -14,6 +14,7 @@ export default {
|
||||
"networkId": 151,
|
||||
"rpc": [],
|
||||
"shortName": "rbn",
|
||||
"slip44": 824,
|
||||
"slug": "redbelly-network",
|
||||
"status": "incubating",
|
||||
"testnet": false
|
||||
|
||||
@@ -2,7 +2,13 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "RBN",
|
||||
"chainId": 153,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Redbelly Network Testnet Explorer",
|
||||
"url": "https://explorer.testnet.redbelly.network",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://redbelly.network",
|
||||
"name": "Redbelly Network Testnet",
|
||||
@@ -12,10 +18,13 @@ export default {
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 153,
|
||||
"rpc": [],
|
||||
"rpc": [
|
||||
"https://153.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://governors.testnet.redbelly.network"
|
||||
],
|
||||
"shortName": "rbn-testnet",
|
||||
"slip44": 1,
|
||||
"slug": "redbelly-network-testnet",
|
||||
"status": "incubating",
|
||||
"status": "active",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -22,9 +22,9 @@ export default {
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmZR15YFtH3EyQp3V7vPkm8PFyevXs2w3y2Trf2k6ikVQL",
|
||||
"width": 480,
|
||||
"height": 480,
|
||||
"url": "ipfs://QmU5XU4S5oaGM5fj8oU1ovhWoXCzGWspwRj2zWRTuJrU4k",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://gravity.xyz",
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 16316,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://avacloud.io",
|
||||
"name": "Stripe Test",
|
||||
"nativeCurrency": {
|
||||
"name": "Stripe Test Token",
|
||||
"symbol": "STR",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 16316,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://16316.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "Stripe Test",
|
||||
"slug": "stripe-test",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Xterio Testnet",
|
||||
"chainId": 1637450,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Xterio Testnet Explorer",
|
||||
"url": "https://testnet.xterscan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://xter.io",
|
||||
"name": "Xterio Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "tBNB",
|
||||
"symbol": "tBNB",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1637450,
|
||||
"rpc": [
|
||||
"https://1637450.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://xterio-testnet.alt.technology"
|
||||
],
|
||||
"shortName": "xteriotest",
|
||||
"slug": "xterio-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 16587,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://avacloud.io",
|
||||
"name": "QI0603I1",
|
||||
"nativeCurrency": {
|
||||
"name": "QI0603I1 Token",
|
||||
"symbol": "ODK",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 16587,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://16587.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QI0603I1",
|
||||
"slug": "qi0603i1",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -2,7 +2,13 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ETH",
|
||||
"chainId": 167000,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "etherscan",
|
||||
"url": "https://taikoscan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
@@ -25,11 +31,11 @@ export default {
|
||||
"https://rpc.mainnet.taiko.xyz/",
|
||||
"https://rpc.ankr.com/taiko/",
|
||||
"https://rpc.taiko.xyz/",
|
||||
"https://rpc.taiko.xyz",
|
||||
"wss://ws.taiko.xyz"
|
||||
"https://rpc.mainnet.taiko.xyz",
|
||||
"wss://ws.mainnet.taiko.xyz"
|
||||
],
|
||||
"shortName": "tko-mainnet",
|
||||
"slug": "taiko",
|
||||
"status": "incubating",
|
||||
"status": "active",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -28,13 +28,13 @@ export default {
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://167008.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://taiko-katla.drpc.org",
|
||||
"wss://taiko-katla.drpc.org",
|
||||
"https://rpc.katla.taiko.xyz",
|
||||
"wss://ws.katla.taiko.xyz"
|
||||
"wss://ws.katla.taiko.xyz",
|
||||
"https://taiko-katla.drpc.org",
|
||||
"wss://taiko-katla.drpc.org"
|
||||
],
|
||||
"shortName": "tko-katla",
|
||||
"slug": "taiko-katla-l2",
|
||||
"status": "active",
|
||||
"status": "deprecated",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -7,9 +7,15 @@ export default {
|
||||
"name": "konet-explorer",
|
||||
"url": "https://explorer.kon-wallet.com",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "Konetscan",
|
||||
"url": "https://konetexplorer.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmSszu2AhLPgcp8SZYiBYCQiRVwb9ueqbnGbcTx9H9CJjZ",
|
||||
"width": 1851,
|
||||
@@ -24,6 +30,7 @@ export default {
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 17217,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://17217.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.kon-wallet.com"
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ETH",
|
||||
"chainId": 1789,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ZKbase Block Explorer",
|
||||
"url": "https://sepolia-explorer.zkbase.app",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmRLtNvkVhC7rRDiLMHLckWbesaSU6sNYhQZgsAM1phTZx",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmRLtNvkVhC7rRDiLMHLckWbesaSU6sNYhQZgsAM1phTZx",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
},
|
||||
"infoURL": "https://zkbase.org/",
|
||||
"name": "ZKBase Sepolia Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1789,
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-1",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://portral.zkbase.app/"
|
||||
}
|
||||
]
|
||||
},
|
||||
"redFlags": [
|
||||
"reusedChainId"
|
||||
],
|
||||
"rpc": [
|
||||
"https://1789.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://sepolia-rpc.zkbase.app"
|
||||
],
|
||||
"shortName": "zkbase-sepolia",
|
||||
"slip44": 1,
|
||||
"slug": "zkbase-sepolia-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -15,12 +15,6 @@ export default {
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmNTZ9nEomAXK6bLxUbMfTS1TvrsN22HU1zTtxHUpMkUhz",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://kakarot.org",
|
||||
"name": "Kakarot Sepolia",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -6,12 +6,24 @@ export default {
|
||||
{
|
||||
"name": "Lite Explorer",
|
||||
"url": "https://ethereum-pocr.github.io/explorer/kerleano",
|
||||
"standard": "EIP3091"
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
|
||||
"width": 334,
|
||||
"height": 360,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://github.com/ethereum-pocr/kerleano/blob/main/docs/faucet.md"
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
|
||||
"width": 334,
|
||||
"height": 360,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://github.com/ethereum-pocr/kerleano",
|
||||
"name": "Kerleano",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Waterfall Network",
|
||||
"chainId": 181,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmSDJPBKh9cLVL8UZ5KYwdwPyhD8bRWNb33jjt48wtu5Uc",
|
||||
"width": 241,
|
||||
"height": 179,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://waterfall.network",
|
||||
"name": "Waterfall Network",
|
||||
"nativeCurrency": {
|
||||
"name": "WATER",
|
||||
"symbol": "WATER",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 181,
|
||||
"rpc": [
|
||||
"https://181.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.waterfall.network/"
|
||||
],
|
||||
"shortName": "water",
|
||||
"slug": "waterfall-network",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,38 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "TCC Network",
|
||||
"chainId": 181155,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Tcc Scan",
|
||||
"url": "https://scan.tccworld.org/",
|
||||
"standard": "181155",
|
||||
"icon": {
|
||||
"url": "ipfs://QmchZTtvuU7oRe3rSu1HNPELJQdnutV79NjcHxoybJ4SVo/tcc-coin.png",
|
||||
"width": 100,
|
||||
"height": 100,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmchZTtvuU7oRe3rSu1HNPELJQdnutV79NjcHxoybJ4SVo/tcc-coin.png",
|
||||
"width": 100,
|
||||
"height": 100,
|
||||
"format": "png"
|
||||
},
|
||||
"name": "TCC Network",
|
||||
"nativeCurrency": {
|
||||
"name": "The ChampCoin",
|
||||
"symbol": "TCC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 181155,
|
||||
"redFlags": [],
|
||||
"rpc": [],
|
||||
"shortName": "TCC",
|
||||
"slug": "tcc-network",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,41 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Gemuchain",
|
||||
"chainId": 1903648807,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Gemuchain Explorer",
|
||||
"url": "https://gemutest-explorer.gemuchain.io",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "https://explorer.gemuchain.io/assets/network_logo.svg",
|
||||
"width": 345,
|
||||
"height": 48,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://raw.githubusercontent.com/UrfinDeuce/logos/05725373b48fb7e3de75737f621b21a4a6557c76/GemuChain%20logo.svg",
|
||||
"width": 345,
|
||||
"height": 48,
|
||||
"format": "svg"
|
||||
},
|
||||
"name": "Gemuchain Lab",
|
||||
"nativeCurrency": {
|
||||
"name": "GEMU",
|
||||
"symbol": "GEMU",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1903648807,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://1903648807.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://gemutest-rpc.gemuchain.io"
|
||||
],
|
||||
"shortName": "GEMU",
|
||||
"slug": "gemuchain-lab",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "KYOTO",
|
||||
"chainId": 1997,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Kyotoscan",
|
||||
"url": "https://kyotoscan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"infoURL": "https://kyotoprotocol.io",
|
||||
"name": "Kyoto",
|
||||
"nativeCurrency": {
|
||||
"name": "Kyoto",
|
||||
"symbol": "KYOTO",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1997,
|
||||
"rpc": [
|
||||
"https://1997.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.kyotochain.io"
|
||||
],
|
||||
"shortName": "kyoto",
|
||||
"slip44": 1,
|
||||
"slug": "kyoto",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "MetaLink",
|
||||
"chainId": 2004,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "MetaScan",
|
||||
"url": "http://twoto3.com:3000",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmfSXRkDPSwt7heQ24pDtWKN6vvervEaTJHmueyRp1mpg1",
|
||||
"width": 800,
|
||||
"height": 800,
|
||||
"format": "jpg"
|
||||
},
|
||||
"infoURL": "http://totwo3.com:3000",
|
||||
"name": "MetaLink Network",
|
||||
"nativeCurrency": {
|
||||
"name": "MetaLink",
|
||||
"symbol": "MTL",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 2004,
|
||||
"rpc": [
|
||||
"https://2004.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://77.237.237.69:9933"
|
||||
],
|
||||
"shortName": "mtl",
|
||||
"slug": "metalink-network",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "NIZA",
|
||||
"chainId": 20041,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "NizaScan",
|
||||
"url": "https://nizascan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmPh2FdjoPWBaCKNrknv6HjruxdUCr8AvJYvhpgHZP6e2C",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://niza.io",
|
||||
"name": "Niza Chain Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Niza Global",
|
||||
"symbol": "NIZA",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 20041,
|
||||
"rpc": [
|
||||
"https://20041.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://nizascan.io/rpc"
|
||||
],
|
||||
"shortName": "niza",
|
||||
"slug": "niza-chain",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "NIZA",
|
||||
"chainId": 20073,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "NizaScan",
|
||||
"url": "https://testnet.nizascan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmPh2FdjoPWBaCKNrknv6HjruxdUCr8AvJYvhpgHZP6e2C",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://niza.io",
|
||||
"name": "Niza Chain Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Niza Global",
|
||||
"symbol": "NIZA",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 20073,
|
||||
"rpc": [
|
||||
"https://20073.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.nizascan.io/rpc"
|
||||
],
|
||||
"shortName": "niza_testnet",
|
||||
"slug": "niza-chain-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -5,8 +5,8 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "bitlayer testnet scan",
|
||||
"url": "https://testnet-scan.bitlayer.org",
|
||||
"standard": "none"
|
||||
"url": "https://testnet.btrscan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "GM Network Testnet",
|
||||
"chainId": 202402181627,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "gmnetwork-testnet",
|
||||
"url": "https://gmnetwork-testnet-explorer.alt.technology",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://gmnetwork.ai",
|
||||
"name": "GM Network Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 202402181627,
|
||||
"rpc": [
|
||||
"https://202402181627.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://gmnetwork-testnet.alt.technology/"
|
||||
],
|
||||
"shortName": "gmnetwork-testnet",
|
||||
"slug": "gm-network-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -10,8 +10,9 @@ export default {
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeib75gwytvblyvjpfminitr3i6mpat3a624udfsqsl5nysf5vuuvie",
|
||||
"url": "ipfs://QmXxTwwfYzagtJqvWreUDoq4pKz3A22YmAi7c3hcgZp5Rt/bnb-bnb-logo.png",
|
||||
"width": 96,
|
||||
"height": 96,
|
||||
"format": "png"
|
||||
@@ -24,6 +25,7 @@ export default {
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 204,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://204.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://opbnb-mainnet-rpc.bnbchain.org",
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "OTP",
|
||||
"chain": "NEUROWEB",
|
||||
"chainId": 2043,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"infoURL": "https://parachain.origintrail.io",
|
||||
"name": "OriginTrail Parachain",
|
||||
"infoURL": "https://neuroweb.ai",
|
||||
"name": "NeuroWeb",
|
||||
"nativeCurrency": {
|
||||
"name": "OriginTrail Parachain Token",
|
||||
"symbol": "OTP",
|
||||
"name": "NeuroWeb Token",
|
||||
"symbol": "NEURO",
|
||||
"decimals": 12
|
||||
},
|
||||
"networkId": 2043,
|
||||
@@ -17,7 +17,7 @@ export default {
|
||||
"https://astrosat.origintrail.network",
|
||||
"wss://parachain-rpc.origin-trail.network"
|
||||
],
|
||||
"shortName": "otp",
|
||||
"slug": "origintrail-parachain",
|
||||
"shortName": "NEURO",
|
||||
"slug": "neuroweb",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,29 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Parodychain",
|
||||
"chainId": 2078,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmR2ovc7zeM7gdzpL6FdvWBEhLyE8dL1w8GWnooHEk9uEZ/parodychain-logo.png",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"name": "Parody Network",
|
||||
"nativeCurrency": {
|
||||
"name": "Parody",
|
||||
"symbol": "PDY",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 2078,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://2078.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://fraa-flashbox-4392-rpc.a.stagenet.tanssi.network"
|
||||
],
|
||||
"shortName": "Parody",
|
||||
"slug": "parody-network",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -20,8 +20,8 @@ export default {
|
||||
"networkId": 2136,
|
||||
"rpc": [
|
||||
"https://2136.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://test-market.bigsb.io",
|
||||
"wss://test-market.bigsb.io"
|
||||
"https://test-market.bigsb.network",
|
||||
"wss://test-market.bigsb.network"
|
||||
],
|
||||
"shortName": "bigsb_testnet",
|
||||
"slug": "bigshortbets-testnet",
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 2144,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://avacloud.io",
|
||||
"name": "Test Subnet Resources",
|
||||
"nativeCurrency": {
|
||||
"name": "Test Subnet Resources Token",
|
||||
"symbol": "LNV",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 2144,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://2144.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/testsubnet/testnet/rpc"
|
||||
],
|
||||
"shortName": "Test Subnet Resources",
|
||||
"slug": "test-subnet-resources",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -31,6 +31,6 @@ export default {
|
||||
"https://mainnet.flagscan.io/"
|
||||
],
|
||||
"shortName": "Flag",
|
||||
"slug": "flag",
|
||||
"slug": "flag-flag",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user