Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1cd07c3e0 | ||
|
|
8683449abb | ||
|
|
cfff7e838a | ||
|
|
948f155e7c | ||
|
|
d7e6671c0a | ||
|
|
560d8adafa | ||
|
|
3be61ddc52 | ||
|
|
a0e26a8c4f | ||
|
|
2c8bdfd493 | ||
|
|
3810df57aa | ||
|
|
45677ad620 | ||
|
|
0b5bb015f9 | ||
|
|
20d73bf0eb | ||
|
|
773b70aa1c | ||
|
|
e77488217b | ||
|
|
b62dc4abb3 | ||
|
|
be8541054e | ||
|
|
38f3b2eb21 | ||
|
|
493bf8d2db | ||
|
|
a919b27c7a | ||
|
|
0ca69a9234 | ||
|
|
6d6e0ac694 | ||
|
|
8516fc11f9 | ||
|
|
b4e7c74ce5 | ||
|
|
d6646475e2 | ||
|
|
4dbcbd13db |
+1
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
# Platform team owns everything by default
|
||||
|
||||
- @jnsdls @joaquim-verges @MananTank
|
||||
- @jnsdls @joaquim-verges @MananTank @gregfromstl
|
||||
|
||||
# legacy packages
|
||||
|
||||
|
||||
+50
-40
@@ -1,9 +1,5 @@
|
||||
# Contributing to thirdweb
|
||||
|
||||
You can find a full video tutorial on how to contribute to thirdweb below:
|
||||
|
||||
https://www.youtube.com/watch?v=TXsQ3qok3B0
|
||||
|
||||
## Getting Started
|
||||
|
||||
To get started, read the [How this repo works](#how-this-repo-works) section below to learn about the structure of this repo.
|
||||
@@ -12,23 +8,19 @@ From there, you can take a look at our [Good First Issues](https://github.com/th
|
||||
|
||||
If you have any questions about the issue, feel free to ask on our [Discord server](https://discord.gg/thirdweb) in the `#contributors` channel; where you'll be able to get help from our team and other contributors.
|
||||
|
||||
<br/>
|
||||
<br />
|
||||
|
||||
## How this repo works
|
||||
|
||||
[@thirdweb-dev/js](https://github.com/thirdweb-dev/js) is a monorepo, meaning it contains many projects within it.
|
||||
We use [Turborepo](https://turbo.build/repo/docs) to manage the repository, and help speed up the [CI/CD](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment) pipeline to ship to production faster 🚢. Turborepo is a project dependency, and doesn't need to be installed separately.
|
||||
|
||||
We use [Turborepo](https://turborepo.org/docs/getting-started) to manage the monorepo, and help speed up the [CI/CD](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment) pipeline to ship to production faster 🚢.
|
||||
We use [pnpm](https://pnpm.io) for package management across the repo. `pnpm` is similar to `npm` or `yarn` but with more efficient disk space usage.
|
||||
|
||||
You can see a quick outline of each of the projects within this repo below, each living within the [/packages](/packages) directory:
|
||||
**With the v5 SDK, we've consolidated everything into a single project at [/packages/thirdweb](./packages/thirdweb). You can still find the legacy packages at [/legacy_packages](./legacy_packages).**
|
||||
|
||||
| Package | Description | Latest Version |
|
||||
| ------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [/sdk](./legacy_packages/sdk) | Best in class web3 SDK for Browser, Node and Mobile apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/sdk"><img src="https://img.shields.io/npm/v/@thirdweb-dev/sdk?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/react](./legacy_packages/react) | Ultimate collection of React hooks for your web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/auth](./legacy_packages/auth) | Best in class wallet authentication for Node backends | <a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/storage](./legacy_packages/storage) | Best in class decentralized storage SDK for Browser and Node | <a href="https://www.npmjs.com/package/@thirdweb-dev/storage"><img src="https://img.shields.io/npm/v/@thirdweb-dev/storage?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/cli](./legacy_packages/cli) | Publish and deploy smart contracts without dealing with private keys | <a href="https://www.npmjs.com/package/thirdweb"><img src="https://img.shields.io/npm/v/thirdweb?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
This single package provides a performant & lightweight SDK to interact with any EVM chain across Node, React, and React Native. Learn more about how to use the thirdweb SDK in our [documentation](https://portal.thirdweb.com/typescript/v5).
|
||||
|
||||
<br />
|
||||
|
||||
## How to contribute
|
||||
|
||||
@@ -36,7 +28,7 @@ Let's explore how you can set up the repo on your local machine and start contri
|
||||
|
||||
This section requires some existing knowledge of [Git](https://git-scm.com/), [Node.js](https://nodejs.org/en/) and [pnpm](https://pnpm.io/).
|
||||
|
||||
<br/>
|
||||
<br />
|
||||
|
||||
### Getting the repo
|
||||
|
||||
@@ -50,26 +42,50 @@ To begin:
|
||||
|
||||
3. Create a new branch on your fork to start working on your changes:
|
||||
|
||||
```
|
||||
git checkout -b MY_BRANCH_NAME
|
||||
```bash
|
||||
git checkout -b <YOUR BRANCH NAME>
|
||||
```
|
||||
|
||||
4. Install the dependencies:
|
||||
```
|
||||
```bash
|
||||
pnpm install
|
||||
```
|
||||
If you are on windows, use the `--ignore-scripts` flag
|
||||
```
|
||||
```bash
|
||||
pnpm install --ignore-scripts
|
||||
```
|
||||
|
||||
Now you have got the repo on your local machine, and you're ready to start making your changes!
|
||||
Now you have the repo on your local machine, and you're ready to start making your changes!
|
||||
|
||||
<br/>
|
||||
|
||||
### Test Your Changes
|
||||
|
||||
We use [yalc](https://github.com/wclr/yalc) to test changes locally.
|
||||
#### Writing Unit Tests
|
||||
|
||||
Try to include unit test coverage with your changes where appropriate. We use `vitest` for testing, look for files with the `.test.ts` extension for examples of how to structure your unit tests.
|
||||
|
||||
To run your tests, run the following from the package directory (most likely /packages/thirdweb):
|
||||
|
||||
```bash
|
||||
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.
|
||||
|
||||
#### 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:
|
||||
|
||||
```bash
|
||||
pnpm lint
|
||||
```
|
||||
|
||||
If there are errors, try running `pnpm fix` to auto-fix any basic errors. Other linter errors, like missing documentation, will need to be fixed manually. See existing files for examples of inline documentation.
|
||||
|
||||
#### Creating a Local Test Project
|
||||
|
||||
You can use [yalc](https://github.com/wclr/yalc) to test changes on a local project.
|
||||
|
||||
Install the yalc CLI globally:
|
||||
|
||||
@@ -77,40 +93,35 @@ Install the yalc CLI globally:
|
||||
pnpm add yalc -g
|
||||
```
|
||||
|
||||
First, create a test project where you can experiment with your changes:
|
||||
First, create a test project where you can experiment with your changes. This can be any node project that uses your changes.
|
||||
|
||||
You can create a basic starter project with the `sdk` and `react` packages installed using the CLI:
|
||||
|
||||
Push your local version to your `yalc` store with:
|
||||
|
||||
```bash
|
||||
npx thirdweb create --app
|
||||
pnpm build && pnpm push
|
||||
```
|
||||
|
||||
Use `yalc` to link your local changes in the monorepo to the test project, by running the following command from your test repo:
|
||||
Link your local changes in the monorepo to the test project by running the following command from your test repo:
|
||||
|
||||
```bash
|
||||
yalc add @thirdweb-dev/react # Link the react package
|
||||
yalc add @thirdweb-dev/sdk # Link the sdk package
|
||||
# etc...
|
||||
yalc add thirdweb
|
||||
```
|
||||
|
||||
From the monorepo, run the following command to publish your local changes to the test project:
|
||||
Now, each time you make a change to the monorepo, you can run `pnpm push` from the monorepo then `yalc update thirdweb` from your test project to publish your latest changes to the test project.
|
||||
|
||||
```bash
|
||||
pnpm push
|
||||
```
|
||||
If your changes modify dependencies, you may need to reinstall dependencies on your test project with `pnpm install`
|
||||
|
||||
Now, each time you make a change to the monorepo, you can run `pnpm push` to publish your changes to the test project.
|
||||
To make sure your latest changes are used, in your test project you may need to:
|
||||
|
||||
In your test project, you need to:
|
||||
|
||||
1. Delete the dependencies cache. If you're using Next.js, that is the `.next` directory, and if you're using CRA, that is the `node_modules/.cache` directory.
|
||||
1. Delete the dependencies cache. If you're using Next.js, that's the `.next` directory, and if you're using CRA, that's the `node_modules/.cache` directory.
|
||||
2. Restart the development server.
|
||||
|
||||
#### Testing from npm
|
||||
|
||||
You can also test your changes by publishing a dev package to npm and adding your package as you normally do in your projects.
|
||||
|
||||
Once you have your PR up you can add a comment with the text: `/release-pr`. This will trigger a GitHub action that will publish a dev version to npm.
|
||||
**Once you have your PR up** you can add a comment with the text: `/release-pr`. This will trigger a GitHub action that will publish a dev version to npm.
|
||||
|
||||
You can see the action progress in GitHub's `Actions` tab, look for the workflow: `release-pr`.
|
||||
|
||||
@@ -154,9 +165,8 @@ git commit -am "My commit message"
|
||||
3. Push your changes to the SDK:
|
||||
|
||||
```
|
||||
git push origin MY_BRANCH_NAME
|
||||
git push origin <YOUR BRANCH NAME>
|
||||
```
|
||||
|
||||
4. Create a [pull request](https://www.atlassian.com/git/tutorials/making-a-pull-request) to the `main` branch of the official (not your fork) SDK repo.
|
||||
|
||||
It's helpful to tag PRs with `[SDK]`, `[REACT]`, `[AUTH]`, (the name of the package you're modifying) to indicate the package that you are engaging with.
|
||||
|
||||
Vendored
+3
@@ -8,5 +8,8 @@
|
||||
"typescript.preferences.importModuleSpecifier": "relative",
|
||||
"[typescriptreact]": {
|
||||
"editor.defaultFormatter": "biomejs.biome"
|
||||
},
|
||||
"[markdown]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
# @thirdweb-dev/auth
|
||||
|
||||
## 4.1.67
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.9
|
||||
|
||||
## 4.1.66
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.8
|
||||
|
||||
## 4.1.65
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.7
|
||||
|
||||
## 4.1.64
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.5.6
|
||||
|
||||
## 4.1.63
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/auth",
|
||||
"version": "4.1.63",
|
||||
"version": "4.1.67",
|
||||
"main": "dist/thirdweb-dev-auth.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth.esm.js",
|
||||
"browser": {
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
# @thirdweb-dev/chains
|
||||
|
||||
## 0.1.99
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2821](https://github.com/thirdweb-dev/js/pull/2821) [`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.98
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2819](https://github.com/thirdweb-dev/js/pull/2819) [`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.97
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2812](https://github.com/thirdweb-dev/js/pull/2812) [`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
|
||||
|
||||
## 0.1.96
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -17,7 +17,7 @@ export default {
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://worldland.foundation",
|
||||
"name": "Worldland Mainnet",
|
||||
"name": "WorldLand Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Worldland",
|
||||
"symbol": "WLC",
|
||||
@@ -26,7 +26,8 @@ export default {
|
||||
"networkId": 103,
|
||||
"rpc": [
|
||||
"https://103.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://seoul.worldland.foundation"
|
||||
"https://seoul.worldland.foundation",
|
||||
"https://seoul2.worldland.foundation"
|
||||
],
|
||||
"shortName": "WLC",
|
||||
"slug": "worldland",
|
||||
|
||||
@@ -17,7 +17,7 @@ export default {
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://worldland.foundation",
|
||||
"name": "Worldland Testnet",
|
||||
"name": "WorldLand Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Worldland",
|
||||
"symbol": "WLC",
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "IOTA EVM",
|
||||
"chainId": 1075,
|
||||
"explorers": [],
|
||||
"faucets": [
|
||||
"https://evm-toolkit.evm.testnet.iotaledger.net"
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di",
|
||||
"width": 720,
|
||||
"height": 720,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.iota.org",
|
||||
"name": "IOTA EVM Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "IOTA",
|
||||
"symbol": "IOTA",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1075,
|
||||
"rpc": [
|
||||
"https://1075.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://json-rpc.evm.testnet.iotaledger.net"
|
||||
],
|
||||
"shortName": "iotaevm-testnet",
|
||||
"slug": "iota-evm-testnet",
|
||||
"testnet": true,
|
||||
"title": "IOTA EVM Testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "MOS",
|
||||
"chainId": 1188,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "mosscan",
|
||||
"url": "https://www.mosscan.com",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmczQf61mZmg3NmmGnwseDxzH1AqapA252KCTT85GuNG96",
|
||||
"width": 51,
|
||||
"height": 50,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmczQf61mZmg3NmmGnwseDxzH1AqapA252KCTT85GuNG96",
|
||||
"width": 51,
|
||||
"height": 50,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.mosscan.com",
|
||||
"name": "ClubMos Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "ClubMos",
|
||||
"symbol": "MOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1188,
|
||||
"rpc": [
|
||||
"https://1188.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet.mosscan.com"
|
||||
],
|
||||
"shortName": "MOS",
|
||||
"slug": "clubmos",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "SaitaBlockChain(SBC)",
|
||||
"chainId": 1209,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Saitascan explorer",
|
||||
"url": "https://saitascan.io",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmVFWTqfqnMXbiPKpDFucE9QSQ1SVsUWs4HxBqRGjgQCbu",
|
||||
"width": 974,
|
||||
"height": 263,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmVFWTqfqnMXbiPKpDFucE9QSQ1SVsUWs4HxBqRGjgQCbu",
|
||||
"width": 974,
|
||||
"height": 263,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://saitachain.com",
|
||||
"name": "SaitaBlockChain(SBC)",
|
||||
"nativeCurrency": {
|
||||
"name": "SaitaBlockChain(SBC)",
|
||||
"symbol": "STC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1209,
|
||||
"rpc": [
|
||||
"https://1209.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-nodes.saitascan.io"
|
||||
],
|
||||
"shortName": "SBC",
|
||||
"slug": "saitablockchain-sbc",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,22 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ETH",
|
||||
"chainId": 1221,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"infoURL": "https://www.cyclenetwork.io/",
|
||||
"name": "Cycle Network Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1221,
|
||||
"rpc": [
|
||||
"https://1221.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-testnet.cyclenetwork.io"
|
||||
],
|
||||
"shortName": "Cycle",
|
||||
"slug": "cycle-network-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,46 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "MagApe",
|
||||
"chainId": 141319,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "etherscan",
|
||||
"url": "http://testnet-api.magape.io:81",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmPsxWMvnxnZ9dZcRJJMaE24o34dQsnsAMCJh3kVDrE1aB",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmPsxWMvnxnZ9dZcRJJMaE24o34dQsnsAMCJh3kVDrE1aB",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://magape.io",
|
||||
"name": "MagApe Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "MagApe",
|
||||
"symbol": "MAG",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 141319,
|
||||
"rpc": [
|
||||
"https://141319.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-api.magape.io/chain/"
|
||||
],
|
||||
"shortName": "mag",
|
||||
"slug": "magape-testnet",
|
||||
"testnet": true,
|
||||
"title": "MagApeChain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "IGC",
|
||||
"chainId": 1499,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "IGC-Scan",
|
||||
"url": "https://igcscan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmeXuzaYXCDwHgQdpuE9L55JfEChzj11P73Ngrn8vDTE9T",
|
||||
"width": 1024,
|
||||
"height": 1024,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://idosgames.com/",
|
||||
"name": "iDos Games Chain Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "iDos Games Coin",
|
||||
"symbol": "IGC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1499,
|
||||
"rpc": [
|
||||
"https://1499.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-testnet.idos.games"
|
||||
],
|
||||
"shortName": "IGC",
|
||||
"slug": "idos-games-chain-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ETH",
|
||||
"chainId": 167000,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui",
|
||||
"width": 288,
|
||||
"height": 258,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://taiko.xyz",
|
||||
"name": "Taiko Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 167000,
|
||||
"rpc": [
|
||||
"https://167000.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.taiko.xyz",
|
||||
"wss://ws.taiko.xyz"
|
||||
],
|
||||
"shortName": "tko-mainnet",
|
||||
"slug": "taiko",
|
||||
"status": "incubating",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -29,7 +29,7 @@ export default {
|
||||
"rpc": [
|
||||
"https://167008.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.katla.taiko.xyz",
|
||||
"wss://rpc.katla.taiko.xyz",
|
||||
"wss://ws.katla.taiko.xyz",
|
||||
"https://taiko-katla.drpc.org",
|
||||
"wss://taiko-katla.drpc.org"
|
||||
],
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "UPBEth",
|
||||
"chainId": 1918,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"infoURL": "https://mobylab.docs.crescdi.pub.ro/blog/UPB-CRESCDI-Testnet",
|
||||
"name": "UPB CRESCDI Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "UPBEth",
|
||||
"symbol": "UPBEth",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 1918,
|
||||
"rpc": [
|
||||
"https://1918.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.crescdi.pub.ro"
|
||||
],
|
||||
"shortName": "UPBEth",
|
||||
"slug": "upb-crescdi-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -13,6 +13,12 @@ export default {
|
||||
"https://www.okx.com/xlayer/faucet"
|
||||
],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmSLkiAAr6VtJ6jEqEzz3QdZtVEHzR6Az7E4XD8qXwjuio",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.okx.com/xlayer",
|
||||
"name": "X Layer Testnet",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -11,6 +11,12 @@ export default {
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmSLkiAAr6VtJ6jEqEzz3QdZtVEHzR6Az7E4XD8qXwjuio",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.okx.com/xlayer",
|
||||
"name": "X Layer Mainnet",
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -4,19 +4,19 @@ export default {
|
||||
"chainId": 2021,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Edgscan by Bharathcoorg",
|
||||
"name": "Edgscan EdgeEVM explorer by Bharathcoorg",
|
||||
"url": "https://edgscan.live",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "Subscan",
|
||||
"url": "https://edgeware.subscan.io",
|
||||
"name": "Edgscan EdgeWASM explorer by Bharathcoorg",
|
||||
"url": "https://edgscan.ink",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://Qma2GfW5nQHuA7nGqdEfwaXPL63G9oTwRTQKaGTfjNtM2W",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
"url": "ipfs://QmVV7ibcq8pS44Nt77jWSLNY2RkfQooHBCZMBPSMdAfZ3d",
|
||||
"width": 88,
|
||||
"height": 88,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -30,10 +30,10 @@ export default {
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmS3ERgAKYTmV7bSWcUPSvrrCC9wHQYxtZqEQYx9Rw4RGA",
|
||||
"width": 352,
|
||||
"height": 304,
|
||||
"format": "png"
|
||||
"url": "ipfs://QmWCSXYLigYE6qEiese4cso2icgKQyosV3x1adtxJnRyJ9",
|
||||
"width": 88,
|
||||
"height": 76,
|
||||
"format": "svg"
|
||||
},
|
||||
"infoURL": "https://edgeware.io",
|
||||
"name": "Edgeware EdgeEVM Mainnet",
|
||||
@@ -46,15 +46,15 @@ export default {
|
||||
"rpc": [
|
||||
"https://2021.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://edgeware-evm.jelliedowl.net",
|
||||
"https://mainnet2.edgewa.re/evm",
|
||||
"https://mainnet3.edgewa.re/evm",
|
||||
"https://mainnet4.edgewa.re/evm",
|
||||
"https://mainnet5.edgewa.re/evm",
|
||||
"https://edgeware-evm0.jelliedowl.net",
|
||||
"https://edgeware-evm1.jelliedowl.net",
|
||||
"https://edgeware-evm2.jelliedowl.net",
|
||||
"https://edgeware-evm3.jelliedowl.net",
|
||||
"wss://edgeware.jelliedowl.net",
|
||||
"wss://mainnet2.edgewa.re",
|
||||
"wss://mainnet3.edgewa.re",
|
||||
"wss://mainnet4.edgewa.re",
|
||||
"wss://mainnet5.edgewa.re"
|
||||
"wss://edgeware-rpc0.jelliedowl.net",
|
||||
"wss://edgeware-rpc1.jelliedowl.net",
|
||||
"wss://edgeware-rpc2.jelliedowl.net",
|
||||
"wss://edgeware-rpc3.jelliedowl.net"
|
||||
],
|
||||
"shortName": "edg",
|
||||
"slip44": 523,
|
||||
|
||||
@@ -2,7 +2,19 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "VANAR",
|
||||
"chainId": 2040,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Vanar Explorer",
|
||||
"url": "https://explorer.vanarchain.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://Qmbx25iq4Vn4zLooPit9bbguXJzdiogwtVQWtSseyQPuSC",
|
||||
"width": 1000,
|
||||
"height": 1628,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [
|
||||
{
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "GitAGI",
|
||||
"chainId": 210049,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"infoURL": "https://gitagi.org/",
|
||||
"name": "GitAGI Atlas Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "GitAGI",
|
||||
"symbol": "tGAGI",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 210049,
|
||||
"rpc": [
|
||||
"https://210049.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.gitagi.org"
|
||||
],
|
||||
"shortName": "atlas",
|
||||
"slug": "gitagi-atlas-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 25968,
|
||||
"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": "QaUser5275",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser5275 Token",
|
||||
"symbol": "EZL",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 25968,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://25968.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser5275",
|
||||
"slug": "qauser5275",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -16,8 +16,8 @@ export default {
|
||||
},
|
||||
{
|
||||
"name": "ankrscan-neura",
|
||||
"url": "https://testnet.neuraprotocol.io/explorer",
|
||||
"standard": "none",
|
||||
"url": "https://testnet.explorer.neuraprotocol.io",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmWdpK5WFKrosaCSpJRCvU7uXeKk2qVeCckTxh6Zw2JrK8",
|
||||
"width": 600,
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "MiYou Chain",
|
||||
"chainId": 30088,
|
||||
"ens": {
|
||||
"registry": "0xFEfa9B3061435977424DD947E756566cFB60473E"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "MiYou block explorer",
|
||||
"url": "https://myscan.miyou.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmfP1QDK42B7EzYWsYN2PGfjkZUQtSjm1k5gNNT52ixsKL",
|
||||
"width": 216,
|
||||
"height": 216,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://www.miyou.io",
|
||||
"name": "MiYou Mainnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Miyou",
|
||||
"symbol": "MY",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 30088,
|
||||
"rpc": [
|
||||
"https://30088.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://blockchain.miyou.io",
|
||||
"https://blockchain.miyoulab.com"
|
||||
],
|
||||
"shortName": "MiYou",
|
||||
"slip44": 60,
|
||||
"slug": "miyou",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 313311,
|
||||
"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": "LT11",
|
||||
"nativeCurrency": {
|
||||
"name": "LT11 Token",
|
||||
"symbol": "LT",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 313311,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://313311.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/lt11/testnet/rpc"
|
||||
],
|
||||
"shortName": "LT11",
|
||||
"slug": "lt11",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 32366,
|
||||
"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": "QaUser4578 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser4578 Testnet Token",
|
||||
"symbol": "EXP",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 32366,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://32366.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser4578 Testnet",
|
||||
"slug": "qauser4578-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 33795,
|
||||
"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": "QaUser9260",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser9260 Token",
|
||||
"symbol": "SBM",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 33795,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://33795.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser9260",
|
||||
"slug": "qauser9260",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 33841,
|
||||
"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": "QI0422s2 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QI0422s2 Testnet Token",
|
||||
"symbol": "HOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 33841,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://33841.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QI0422s2 Testnet",
|
||||
"slug": "qi0422s2-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 40100,
|
||||
"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": "QaUser4426",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser4426 Token",
|
||||
"symbol": "PMC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 40100,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://40100.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser4426",
|
||||
"slug": "qauser4426",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -4,7 +4,7 @@ export default {
|
||||
"chainId": 4200,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"name": "L2scan",
|
||||
"url": "https://scan.merlinchain.io",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
@@ -32,7 +32,8 @@ export default {
|
||||
"networkId": 4200,
|
||||
"rpc": [
|
||||
"https://4200.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.merlinchain.io"
|
||||
"https://rpc.merlinchain.io",
|
||||
"https://merlin-mainnet-enterprise.unifra.io"
|
||||
],
|
||||
"shortName": "Merlin-Mainnet",
|
||||
"slug": "merlin",
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 47992,
|
||||
"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": "QaUser2555",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser2555 Token",
|
||||
"symbol": "PRY",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 47992,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://47992.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser2555",
|
||||
"slug": "qauser2555",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 5041,
|
||||
"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": "OMOCHI",
|
||||
"nativeCurrency": {
|
||||
"name": "OMOCHI Token",
|
||||
"symbol": "OMCH",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 5041,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://5041.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/omochi/mainnet/rpc"
|
||||
],
|
||||
"shortName": "OMOCHI",
|
||||
"slug": "omochi",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -25,6 +25,6 @@ export default {
|
||||
"https://subnets.avax.network/omochi/testnet/rpc"
|
||||
],
|
||||
"shortName": "OMOCHI",
|
||||
"slug": "omochi",
|
||||
"slug": "omochi-omochi",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 55246,
|
||||
"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": "QaUser6469",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser6469 Token",
|
||||
"symbol": "ZZX",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 55246,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://55246.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser6469",
|
||||
"slug": "qauser6469",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -1,11 +1,17 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "EVMCC",
|
||||
"chain": "TANGO",
|
||||
"chainId": 5678,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "BlockScout",
|
||||
"url": "https://3001-blockscout.a.dancebox.tanssi.network",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://tanssi.network",
|
||||
"name": "Tanssi EVM ContainerChain",
|
||||
"infoURL": "https://docs.tanssi.network/builders/tanssi-network/networks/dancebox/demo-evm-containerchain",
|
||||
"name": "Tanssi Demo",
|
||||
"nativeCurrency": {
|
||||
"name": "TANGO",
|
||||
"symbol": "TANGO",
|
||||
@@ -17,7 +23,7 @@ export default {
|
||||
"https://fraa-dancebox-3001-rpc.a.dancebox.tanssi.network",
|
||||
"wss://fraa-dancebox-3001-rpc.a.dancebox.tanssi.network"
|
||||
],
|
||||
"shortName": "TanssiCC",
|
||||
"slug": "tanssi-evm-containerchain",
|
||||
"shortName": "tango",
|
||||
"slug": "tanssi-demo",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 58316,
|
||||
"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": "QaUser1943 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser1943 Testnet Token",
|
||||
"symbol": "JAI",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 58316,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://58316.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser1943 Testnet",
|
||||
"slug": "qauser1943-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 64643,
|
||||
"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": "qasim Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "qasim Testnet Token",
|
||||
"symbol": "SQJ",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 64643,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://64643.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "qasim Testnet",
|
||||
"slug": "qasim-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "UltronSmartchain",
|
||||
"chainId": 662,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ultronsmartchain explorer",
|
||||
"url": "https://scan.ultronsmartchain.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmTns2FXAqDCq1QJsocUBGjhxsgWYK7pFfD4UrRZ9JBsF1",
|
||||
"width": 50,
|
||||
"height": 50,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://ultronsmartchain.io",
|
||||
"name": "UltronSmartchain",
|
||||
"nativeCurrency": {
|
||||
"name": "ulc",
|
||||
"symbol": "ULC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 662,
|
||||
"rpc": [
|
||||
"https://662.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.ultronsmartchain.io"
|
||||
],
|
||||
"shortName": "ultronsmartchain",
|
||||
"slug": "ultronsmartchain",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 68064,
|
||||
"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": "QaUser3451 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser3451 Testnet Token",
|
||||
"symbol": "NKL",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 68064,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://68064.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser3451 Testnet",
|
||||
"slug": "qauser3451-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Planq",
|
||||
"chainId": 7077,
|
||||
"explorers": [],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmWEy9xK5BoqxPuVs7T48WM4exJrxzkEFt45iHcxWqUy8D",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://planq.network",
|
||||
"name": "Planq Atlas Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Planq",
|
||||
"symbol": "tPLQ",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 7077,
|
||||
"rpc": [
|
||||
"https://7077.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evm-rpc-atlas.planq.network"
|
||||
],
|
||||
"shortName": "planq-atlas-testnet",
|
||||
"slug": "planq-atlas-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -2,7 +2,19 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Cyber",
|
||||
"chainId": 7560,
|
||||
"explorers": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Cyber Mainnet Explorer",
|
||||
"url": "https://cyberscan.co",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmP61yDNPv7fxY9ZzPs4CjQDbZLoKtF8eWWjszVYbwkabd",
|
||||
@@ -20,11 +32,19 @@ export default {
|
||||
"networkId": 7560,
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-1"
|
||||
"chain": "eip155-1",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://cyber-bridge.alt.technology/deposit"
|
||||
}
|
||||
]
|
||||
},
|
||||
"rpc": [],
|
||||
"rpc": [
|
||||
"https://7560.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://cyber.alt.technology/",
|
||||
"wss://cyber-ws.alt.technology/"
|
||||
],
|
||||
"shortName": "cyeth",
|
||||
"slug": "cyber",
|
||||
"status": "incubating",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 82261,
|
||||
"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": "QI0423s1 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QI0423s1 Testnet Token",
|
||||
"symbol": "PUU",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 82261,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://82261.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QI0423s1 Testnet",
|
||||
"slug": "qi0423s1-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 84860,
|
||||
"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": "QI0422I1 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QI0422I1 Testnet Token",
|
||||
"symbol": "LLV",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 84860,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://84860.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QI0422I1 Testnet",
|
||||
"slug": "qi0422i1-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -2,9 +2,6 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ETH",
|
||||
"chainId": 90354,
|
||||
"ens": {
|
||||
"registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Block Explorer",
|
||||
@@ -26,7 +23,7 @@ export default {
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
},
|
||||
"name": "Camp Network Testnet",
|
||||
"name": "Camp Network",
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
@@ -38,7 +35,7 @@ export default {
|
||||
"https://90354.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-camp-network-4xje7wy105.t.conduit.xyz/"
|
||||
],
|
||||
"shortName": "campaign-l2-test",
|
||||
"slug": "camp-network-testnet",
|
||||
"testnet": true
|
||||
"shortName": "campaign-l2",
|
||||
"slug": "camp-network",
|
||||
"testnet": false
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 933039,
|
||||
"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": "QR0422T1TS Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QR0422T1TS Testnet Token",
|
||||
"symbol": "DIF",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 933039,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://933039.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/qr0422t1ts/testnet/rpc"
|
||||
],
|
||||
"shortName": "QR0422T1TS Testnet",
|
||||
"slug": "qr0422t1ts-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 93797,
|
||||
"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": "QaUser8328",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser8328 Token",
|
||||
"symbol": "CPY",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 93797,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://93797.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser8328",
|
||||
"slug": "qauser8328",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 9543,
|
||||
"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": "QaUser4523",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser4523 Token",
|
||||
"symbol": "NBW",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 9543,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://9543.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser4523",
|
||||
"slug": "qauser4523",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 95549,
|
||||
"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": "Borne Testnet Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Borne Testnet Testnet Token",
|
||||
"symbol": "BORNE",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 95549,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://95549.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/borne/testnet/rpc"
|
||||
],
|
||||
"shortName": "Borne Testnet Testnet",
|
||||
"slug": "borne-testnet-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 96081,
|
||||
"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": "QaUser2213 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QaUser2213 Testnet Token",
|
||||
"symbol": "QLV",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 96081,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://96081.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QaUser2213 Testnet",
|
||||
"slug": "qauser2213-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/chains",
|
||||
"version": "0.1.96",
|
||||
"version": "0.1.99",
|
||||
"main": "dist/thirdweb-dev-chains.cjs.js",
|
||||
"module": "dist/thirdweb-dev-chains.esm.js",
|
||||
"exports": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,44 @@
|
||||
# thirdweb
|
||||
|
||||
## 0.13.75
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/sdk@4.0.69
|
||||
- @thirdweb-dev/wallets@2.5.9
|
||||
- @thirdweb-dev/auth@4.1.67
|
||||
|
||||
## 0.13.74
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094)]:
|
||||
- @thirdweb-dev/chains@0.1.99
|
||||
- @thirdweb-dev/sdk@4.0.68
|
||||
- @thirdweb-dev/wallets@2.5.8
|
||||
- @thirdweb-dev/auth@4.1.66
|
||||
|
||||
## 0.13.73
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab)]:
|
||||
- @thirdweb-dev/chains@0.1.98
|
||||
- @thirdweb-dev/sdk@4.0.67
|
||||
- @thirdweb-dev/wallets@2.5.7
|
||||
- @thirdweb-dev/auth@4.1.65
|
||||
|
||||
## 0.13.72
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648)]:
|
||||
- @thirdweb-dev/chains@0.1.97
|
||||
- @thirdweb-dev/sdk@4.0.66
|
||||
- @thirdweb-dev/wallets@2.5.6
|
||||
- @thirdweb-dev/auth@4.1.64
|
||||
|
||||
## 0.13.71
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/cli",
|
||||
"main": "dist/cli/index.js",
|
||||
"version": "0.13.71",
|
||||
"version": "0.13.75",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/legacy_packages/cli",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -424,7 +424,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/legacy_packages/contracts-js",
|
||||
"dependencies": {
|
||||
"@thirdweb-dev/contracts": "3.13.0"
|
||||
"@thirdweb-dev/contracts": "3.14.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ethersproject/abi": "^5.7.0",
|
||||
|
||||
@@ -1,5 +1,44 @@
|
||||
# @thirdweb-dev/react-core
|
||||
|
||||
## 4.6.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/sdk@4.0.69
|
||||
- @thirdweb-dev/wallets@2.5.9
|
||||
- @thirdweb-dev/auth@4.1.67
|
||||
|
||||
## 4.6.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094)]:
|
||||
- @thirdweb-dev/chains@0.1.99
|
||||
- @thirdweb-dev/sdk@4.0.68
|
||||
- @thirdweb-dev/wallets@2.5.8
|
||||
- @thirdweb-dev/auth@4.1.66
|
||||
|
||||
## 4.6.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab)]:
|
||||
- @thirdweb-dev/chains@0.1.98
|
||||
- @thirdweb-dev/sdk@4.0.67
|
||||
- @thirdweb-dev/wallets@2.5.7
|
||||
- @thirdweb-dev/auth@4.1.65
|
||||
|
||||
## 4.6.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648)]:
|
||||
- @thirdweb-dev/chains@0.1.97
|
||||
- @thirdweb-dev/sdk@4.0.66
|
||||
- @thirdweb-dev/wallets@2.5.6
|
||||
- @thirdweb-dev/auth@4.1.64
|
||||
|
||||
## 4.6.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/react-core",
|
||||
"version": "4.6.4",
|
||||
"version": "4.6.8",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/legacy_packages/react-core",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,13 @@
|
||||
# @thirdweb-dev/react-native-compat
|
||||
|
||||
## 0.7.40
|
||||
|
||||
## 0.7.39
|
||||
|
||||
## 0.7.38
|
||||
|
||||
## 0.7.37
|
||||
|
||||
## 0.7.36
|
||||
|
||||
## 0.7.35
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/react-native-compat",
|
||||
"description": "Shims for Thirdweb in React Native Projects",
|
||||
"version": "0.7.36",
|
||||
"version": "0.7.40",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/legacy_packages/react-native-compat",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,44 @@
|
||||
# @thirdweb-dev/react-native
|
||||
|
||||
## 0.7.40
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/sdk@4.0.69
|
||||
- @thirdweb-dev/react-core@4.6.8
|
||||
- @thirdweb-dev/wallets@2.5.9
|
||||
|
||||
## 0.7.39
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094)]:
|
||||
- @thirdweb-dev/chains@0.1.99
|
||||
- @thirdweb-dev/sdk@4.0.68
|
||||
- @thirdweb-dev/react-core@4.6.7
|
||||
- @thirdweb-dev/wallets@2.5.8
|
||||
|
||||
## 0.7.38
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab)]:
|
||||
- @thirdweb-dev/chains@0.1.98
|
||||
- @thirdweb-dev/sdk@4.0.67
|
||||
- @thirdweb-dev/react-core@4.6.6
|
||||
- @thirdweb-dev/wallets@2.5.7
|
||||
|
||||
## 0.7.37
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648)]:
|
||||
- @thirdweb-dev/chains@0.1.97
|
||||
- @thirdweb-dev/sdk@4.0.66
|
||||
- @thirdweb-dev/react-core@4.6.5
|
||||
- @thirdweb-dev/wallets@2.5.6
|
||||
|
||||
## 0.7.36
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/react-native",
|
||||
"version": "0.7.36",
|
||||
"version": "0.7.40",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/legacy_packages/react-native",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,46 @@
|
||||
# @thirdweb-dev/react
|
||||
|
||||
## 4.6.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2679](https://github.com/thirdweb-dev/js/pull/2679) [`560d8ad`](https://github.com/thirdweb-dev/js/commit/560d8adafa011dc48e48e73d7eb6a36170d38cef) Thanks [@ElasticBottle](https://github.com/ElasticBottle)! - Fix In-App wallet country selector styles on windows
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/sdk@4.0.69
|
||||
- @thirdweb-dev/react-core@4.6.8
|
||||
- @thirdweb-dev/wallets@2.5.9
|
||||
|
||||
## 4.6.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094)]:
|
||||
- @thirdweb-dev/chains@0.1.99
|
||||
- @thirdweb-dev/sdk@4.0.68
|
||||
- @thirdweb-dev/react-core@4.6.7
|
||||
- @thirdweb-dev/wallets@2.5.8
|
||||
|
||||
## 4.6.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab)]:
|
||||
- @thirdweb-dev/chains@0.1.98
|
||||
- @thirdweb-dev/sdk@4.0.67
|
||||
- @thirdweb-dev/react-core@4.6.6
|
||||
- @thirdweb-dev/wallets@2.5.7
|
||||
|
||||
## 4.6.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648)]:
|
||||
- @thirdweb-dev/chains@0.1.97
|
||||
- @thirdweb-dev/sdk@4.0.66
|
||||
- @thirdweb-dev/react-core@4.6.5
|
||||
- @thirdweb-dev/wallets@2.5.6
|
||||
|
||||
## 4.6.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/react",
|
||||
"version": "4.6.4",
|
||||
"version": "4.6.8",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/legacy_packages/react",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -12,3 +12,4 @@ export const StyledH2 = /* @__PURE__ */ styled.h2;
|
||||
export const StyledP = /* @__PURE__ */ styled.p;
|
||||
export const StyledUl = /* @__PURE__ */ styled.ul;
|
||||
export const StyledSelect = /* @__PURE__ */ styled.select;
|
||||
export const StyledOption = /* @__PURE__ */ styled.option;
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useQuery } from "@tanstack/react-query";
|
||||
import React, { useRef } from "react";
|
||||
import { fontSize, spacing } from "../../../design-system";
|
||||
import { useCustomTheme } from "../../../design-system/CustomThemeProvider";
|
||||
import { StyledSelect } from "../../../design-system/elements";
|
||||
import { StyledOption, StyledSelect } from "../../../design-system/elements";
|
||||
|
||||
export function CountrySelector({
|
||||
countryCode,
|
||||
@@ -52,12 +52,12 @@ export function CountrySelector({
|
||||
</option>
|
||||
{supportedCountriesForSms.map((country) => {
|
||||
return (
|
||||
<option
|
||||
<Option
|
||||
key={country.countryIsoCode}
|
||||
value={`${country.countryIsoCode} +${country.phoneNumberCode}`}
|
||||
>
|
||||
{country.countryName} +{country.phoneNumberCode}{" "}
|
||||
</option>
|
||||
</Option>
|
||||
);
|
||||
})}
|
||||
</Select>
|
||||
@@ -65,7 +65,20 @@ export function CountrySelector({
|
||||
);
|
||||
}
|
||||
|
||||
export const Select = /* @__PURE__ */ StyledSelect(() => {
|
||||
|
||||
const Option = /* @__PURE__ */ StyledOption(() => {
|
||||
const theme = useCustomTheme();
|
||||
return {
|
||||
color: theme.colors.primaryText,
|
||||
background: theme.colors.modalBg,
|
||||
transition: "background 0.3s ease",
|
||||
"&:hover": {
|
||||
background: theme.colors.walletSelectorButtonHoverBg,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
const Select = /* @__PURE__ */ StyledSelect(() => {
|
||||
const theme = useCustomTheme();
|
||||
return {
|
||||
fontSize: fontSize.sm,
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,36 @@
|
||||
# @thirdweb-dev/sdk
|
||||
|
||||
## 4.0.69
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`560d8ad`](https://github.com/thirdweb-dev/js/commit/560d8adafa011dc48e48e73d7eb6a36170d38cef), [`d7e6671`](https://github.com/thirdweb-dev/js/commit/d7e6671c0a34cc8a3523f397a45d754617c9fbb0), [`948f155`](https://github.com/thirdweb-dev/js/commit/948f155e7c2406cc5a172a6c5abe18ba8da89e2a), [`3be61dd`](https://github.com/thirdweb-dev/js/commit/3be61ddc52cef168cda0bee13e93a926dedf479a), [`cfff7e8`](https://github.com/thirdweb-dev/js/commit/cfff7e838af1c464c9b5fbb547153eaae41e2c66)]:
|
||||
- thirdweb@5.11.0
|
||||
|
||||
## 4.0.68
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`3810df5`](https://github.com/thirdweb-dev/js/commit/3810df57aa9590b0a2fa14071a5c061bd94b1ec6), [`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094)]:
|
||||
- thirdweb@5.10.1
|
||||
- @thirdweb-dev/chains@0.1.99
|
||||
|
||||
## 4.0.67
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`be85410`](https://github.com/thirdweb-dev/js/commit/be8541054e392a12678ffee534284e7d1b203ad4), [`a919b27`](https://github.com/thirdweb-dev/js/commit/a919b27c7af41dc003ddb643eb0641eaa8aefc07), [`38f3b2e`](https://github.com/thirdweb-dev/js/commit/38f3b2eb21e74e5947f03cc594dee22c96099f8b), [`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab)]:
|
||||
- thirdweb@5.10.0
|
||||
- @thirdweb-dev/chains@0.1.98
|
||||
|
||||
## 4.0.66
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`4dbcbd1`](https://github.com/thirdweb-dev/js/commit/4dbcbd13dbd388454993aee7e67b43bb9d9249aa), [`d664647`](https://github.com/thirdweb-dev/js/commit/d6646475e2715c666316174e1c035a035a075ab1), [`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648)]:
|
||||
- thirdweb@5.9.0
|
||||
- @thirdweb-dev/chains@0.1.97
|
||||
|
||||
## 4.0.65
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/sdk",
|
||||
"version": "4.0.65",
|
||||
"version": "4.0.69",
|
||||
"description": "The main thirdweb SDK.",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/legacy_packages/sdk",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,46 @@
|
||||
# @thirdweb-dev/unity-js-bridge
|
||||
|
||||
## 0.6.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/sdk@4.0.69
|
||||
- @thirdweb-dev/wallets@2.5.9
|
||||
- @thirdweb-dev/auth@4.1.67
|
||||
|
||||
## 0.6.17
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094)]:
|
||||
- @thirdweb-dev/chains@0.1.99
|
||||
- @thirdweb-dev/sdk@4.0.68
|
||||
- @thirdweb-dev/wallets@2.5.8
|
||||
- @thirdweb-dev/auth@4.1.66
|
||||
|
||||
## 0.6.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2824](https://github.com/thirdweb-dev/js/pull/2824) [`0ca69a9`](https://github.com/thirdweb-dev/js/commit/0ca69a92341d6711991ca7462d2dbbd7eca261a9) Thanks [@0xFirekeeper](https://github.com/0xFirekeeper)! - Unity 4.12.2
|
||||
|
||||
- Updated dependencies [[`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab)]:
|
||||
- @thirdweb-dev/chains@0.1.98
|
||||
- @thirdweb-dev/sdk@4.0.67
|
||||
- @thirdweb-dev/wallets@2.5.7
|
||||
- @thirdweb-dev/auth@4.1.65
|
||||
|
||||
## 0.6.15
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648)]:
|
||||
- @thirdweb-dev/chains@0.1.97
|
||||
- @thirdweb-dev/sdk@4.0.66
|
||||
- @thirdweb-dev/wallets@2.5.6
|
||||
- @thirdweb-dev/auth@4.1.64
|
||||
|
||||
## 0.6.14
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/unity-js-bridge",
|
||||
"version": "0.6.14",
|
||||
"version": "0.6.18",
|
||||
"main": "dist/thirdweb-unity-bridge.js",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/unity-js-bridge",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -171,7 +171,7 @@ class ThirdwebBridge implements TWBridge {
|
||||
// biome-ignore lint/suspicious/noExplicitAny: TODO: fix use of any
|
||||
(globalThis as any).X_SDK_PLATFORM = "unity";
|
||||
// biome-ignore lint/suspicious/noExplicitAny: TODO: fix use of any
|
||||
(globalThis as any).X_SDK_VERSION = "4.12.1";
|
||||
(globalThis as any).X_SDK_VERSION = "4.12.2";
|
||||
// biome-ignore lint/suspicious/noExplicitAny: TODO: fix use of any
|
||||
(globalThis as any).X_SDK_OS = browser?.os ?? "unknown";
|
||||
}
|
||||
|
||||
@@ -1,5 +1,36 @@
|
||||
# @thirdweb-dev/wallets
|
||||
|
||||
## 2.5.9
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/sdk@4.0.69
|
||||
|
||||
## 2.5.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`45677ad`](https://github.com/thirdweb-dev/js/commit/45677ad62012c63e3443f2e236311eb9a2bad094)]:
|
||||
- @thirdweb-dev/chains@0.1.99
|
||||
- @thirdweb-dev/sdk@4.0.68
|
||||
|
||||
## 2.5.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`6d6e0ac`](https://github.com/thirdweb-dev/js/commit/6d6e0ac69453d5a448ab771084976928313662ab)]:
|
||||
- @thirdweb-dev/chains@0.1.98
|
||||
- @thirdweb-dev/sdk@4.0.67
|
||||
|
||||
## 2.5.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b4e7c74`](https://github.com/thirdweb-dev/js/commit/b4e7c74ce5ddc88a1aa3169ea89ff139d185a648)]:
|
||||
- @thirdweb-dev/chains@0.1.97
|
||||
- @thirdweb-dev/sdk@4.0.66
|
||||
|
||||
## 2.5.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/wallets",
|
||||
"version": "2.5.5",
|
||||
"version": "2.5.9",
|
||||
"main": "dist/thirdweb-dev-wallets.cjs.js",
|
||||
"module": "dist/thirdweb-dev-wallets.esm.js",
|
||||
"browser": {
|
||||
@@ -537,7 +537,7 @@
|
||||
"@thirdweb-dev/crypto": "workspace:*",
|
||||
"@thirdweb-dev/sdk": "workspace:*",
|
||||
"@walletconnect/core": "^2.12.1",
|
||||
"@walletconnect/ethereum-provider": "2.12.1",
|
||||
"@walletconnect/ethereum-provider": "2.12.2",
|
||||
"@walletconnect/jsonrpc-utils": "^1.0.8",
|
||||
"@walletconnect/modal": "^2.6.2",
|
||||
"@walletconnect/types": "^2.12.1",
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,11 @@
|
||||
# @thirdweb-dev/service-utils
|
||||
|
||||
## 0.4.28
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2832](https://github.com/thirdweb-dev/js/pull/2832) [`773b70a`](https://github.com/thirdweb-dev/js/commit/773b70aa1c113c775a1c44f3262b5de0547b5359) Thanks [@farhanW3](https://github.com/farhanW3)! - added httpMethod to usage-tracker
|
||||
|
||||
## 0.4.27
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/service-utils",
|
||||
"version": "0.4.27",
|
||||
"version": "0.4.28",
|
||||
"main": "dist/thirdweb-dev-service-utils.cjs.js",
|
||||
"module": "dist/thirdweb-dev-service-utils.esm.js",
|
||||
"exports": {
|
||||
|
||||
@@ -70,6 +70,19 @@ const usageEventSchema = z.object({
|
||||
tokenAddress: z.string().optional(),
|
||||
amountWei: z.string().optional(),
|
||||
amountUSDCents: z.number().nonnegative().optional(),
|
||||
httpMethod: z
|
||||
.enum([
|
||||
"GET",
|
||||
"POST",
|
||||
"PUT",
|
||||
"DELETE",
|
||||
"PATCH",
|
||||
"HEAD",
|
||||
"CONNECT",
|
||||
"OPTIONS",
|
||||
"TRACE",
|
||||
])
|
||||
.optional(),
|
||||
});
|
||||
export type UsageEvent = z.infer<typeof usageEventSchema>;
|
||||
|
||||
|
||||
@@ -1,5 +1,189 @@
|
||||
# thirdweb
|
||||
|
||||
## 5.11.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- [#2679](https://github.com/thirdweb-dev/js/pull/2679) [`560d8ad`](https://github.com/thirdweb-dev/js/commit/560d8adafa011dc48e48e73d7eb6a36170d38cef) Thanks [@ElasticBottle](https://github.com/ElasticBottle)! - Add support for connecting in-app wallet using phone number
|
||||
|
||||
## Usage in TypeScript
|
||||
|
||||
```ts
|
||||
import { createThirdwebClient, createWallet } from "thirdweb";
|
||||
import { preAuthenticate } from "thirdweb/wallets/in-app";
|
||||
|
||||
const client = createThirdwebClient({ clientId: "..." });
|
||||
|
||||
const phoneNumber = '+123456789';
|
||||
|
||||
// Send OTP to given phone number
|
||||
async function sendOTP() {
|
||||
await preAuthenticate({
|
||||
strategy: "phone",
|
||||
phoneNumber,
|
||||
client,
|
||||
});
|
||||
}
|
||||
|
||||
async function connect() {
|
||||
// create a in-app wallet instance
|
||||
const wallet = createWallet('inApp');
|
||||
// if the OTP is correct, the wallet will be connected else an error will be thrown
|
||||
const account = await wallet.connect({
|
||||
client,
|
||||
strategy: "phone";
|
||||
phoneNumber,
|
||||
verificationCode: '...' // Pass the OTP entered by the user
|
||||
});
|
||||
|
||||
console.log('connected to', account);
|
||||
}
|
||||
```
|
||||
|
||||
## Usage in React
|
||||
|
||||
```tsx
|
||||
import { createThirdwebClient } from "thirdweb";
|
||||
import { preAuthenticate } from "thirdweb/wallets/in-app";
|
||||
import { useConnect } from "thirdweb/react";
|
||||
|
||||
const client = createThirdwebClient({ clientId: "..." });
|
||||
|
||||
function Component() {
|
||||
const { connect } = useConnect();
|
||||
const [phoneNumber, setPhoneNumber] = useState(''); // get phone number from user
|
||||
const [otp, setOtp] = useState(''); // get OTP from user
|
||||
|
||||
// Send OTP to given phone number
|
||||
async function sendOTP() {
|
||||
await preAuthenticate({
|
||||
strategy: "phone",
|
||||
phoneNumber,
|
||||
client,
|
||||
});
|
||||
}
|
||||
|
||||
async function connect() {
|
||||
// create a in-app wallet instance
|
||||
const wallet = createWallet('inApp');
|
||||
// if the OTP is correct, the wallet will be connected else an error will be thrown
|
||||
await wallet.connect({
|
||||
client,
|
||||
strategy: "phone";
|
||||
phoneNumber,
|
||||
verificationCode: otp
|
||||
});
|
||||
|
||||
// set the wallet as active
|
||||
connect(wallet)
|
||||
}
|
||||
|
||||
// render UI to get OTP and phone number from user
|
||||
return <div> ... </div>
|
||||
}
|
||||
```
|
||||
|
||||
- [#2818](https://github.com/thirdweb-dev/js/pull/2818) [`948f155`](https://github.com/thirdweb-dev/js/commit/948f155e7c2406cc5a172a6c5abe18ba8da89e2a) Thanks [@jnsdls](https://github.com/jnsdls)! - **Gasless transactions in Typescript**
|
||||
|
||||
```ts
|
||||
import { sendTransaction } from "thirdweb";
|
||||
|
||||
const result = sendTransaction({
|
||||
transaction,
|
||||
account,
|
||||
gasless: {
|
||||
provider: "engine",
|
||||
relayerUrl: "https://...",
|
||||
relayerForwarderAddress: "0x...",
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
**Gasless transactions in React**
|
||||
|
||||
```jsx
|
||||
import { useSendTransaction } from "thirdweb/react";
|
||||
|
||||
const { mutate } = useSendTransaction({
|
||||
gasless: {
|
||||
provider: "engine",
|
||||
relayerUrl: "https://...",
|
||||
relayerForwarderAddress: "0x...",
|
||||
},
|
||||
});
|
||||
|
||||
// Call mutate with the transaction object
|
||||
mutate(transaction);
|
||||
```
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2842](https://github.com/thirdweb-dev/js/pull/2842) [`d7e6671`](https://github.com/thirdweb-dev/js/commit/d7e6671c0a34cc8a3523f397a45d754617c9fbb0) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - fix: handle signature minting with price and currency
|
||||
|
||||
- [#2839](https://github.com/thirdweb-dev/js/pull/2839) [`3be61dd`](https://github.com/thirdweb-dev/js/commit/3be61ddc52cef168cda0bee13e93a926dedf479a) Thanks [@MananTank](https://github.com/MananTank)! - Enable Buy Modal by default with useSendTransaction hook
|
||||
|
||||
- [#2768](https://github.com/thirdweb-dev/js/pull/2768) [`cfff7e8`](https://github.com/thirdweb-dev/js/commit/cfff7e838af1c464c9b5fbb547153eaae41e2c66) Thanks [@MananTank](https://github.com/MananTank)! - Fix custom chain not being used
|
||||
|
||||
## 5.10.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2836](https://github.com/thirdweb-dev/js/pull/2836) [`3810df5`](https://github.com/thirdweb-dev/js/commit/3810df57aa9590b0a2fa14071a5c061bd94b1ec6) Thanks [@jnsdls](https://github.com/jnsdls)! - add missing events for `erc721`, `erc1155` and `erc20`
|
||||
|
||||
## 5.10.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- [#2822](https://github.com/thirdweb-dev/js/pull/2822) [`a919b27`](https://github.com/thirdweb-dev/js/commit/a919b27c7af41dc003ddb643eb0641eaa8aefc07) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add multicall3 extension
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2834](https://github.com/thirdweb-dev/js/pull/2834) [`be85410`](https://github.com/thirdweb-dev/js/commit/be8541054e392a12678ffee534284e7d1b203ad4) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - fix: erc1155 sigmint with additional supply
|
||||
|
||||
- [#2831](https://github.com/thirdweb-dev/js/pull/2831) [`38f3b2e`](https://github.com/thirdweb-dev/js/commit/38f3b2eb21e74e5947f03cc594dee22c96099f8b) Thanks [@MananTank](https://github.com/MananTank)! - Fix In-App + Smart wallet Connection issue
|
||||
|
||||
## 5.9.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
- [#2793](https://github.com/thirdweb-dev/js/pull/2793) [`4dbcbd1`](https://github.com/thirdweb-dev/js/commit/4dbcbd13dbd388454993aee7e67b43bb9d9249aa) Thanks [@jnsdls](https://github.com/jnsdls)! - **thirdweb/react**
|
||||
|
||||
Add a new optional `auth` prop to `<ConnectButton />` to allow specifying a SIWE auth flow after users connect their wallets.
|
||||
|
||||
```jsx
|
||||
<ConnectButton
|
||||
client={client}
|
||||
auth={{
|
||||
isLoggedIn: async (address) => {
|
||||
// check if the user is logged in by calling your server, etc.
|
||||
// then return a boolean value
|
||||
return true || false;
|
||||
},
|
||||
getLoginPayload: async ({ address, chainId }) => {
|
||||
// send the address (and optional chainId) to your server to generate the login payload for the user to sign
|
||||
// you can use the `generatePayload` function from `thirdweb/auth` to generate the payload
|
||||
// once you have retrieved the payload return it from this function
|
||||
|
||||
return; // <the login payload here>
|
||||
},
|
||||
doLogin: async (loginParams) => {
|
||||
// send the login params to your server where you can validate them using the `verifyPayload` function
|
||||
// from `thirdweb/auth`
|
||||
// you can then set a cookie or return a token to save in local storage, etc
|
||||
// `isLoggedIn` will automatically get called again after this function resolves
|
||||
},
|
||||
doLogout: async () => {
|
||||
// do anything you need to do such as clearing cookies, etc when the user should be logged out
|
||||
// `isLoggedIn` will automatically get called again after this function resolves
|
||||
},
|
||||
}}
|
||||
/>
|
||||
```
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2816](https://github.com/thirdweb-dev/js/pull/2816) [`d664647`](https://github.com/thirdweb-dev/js/commit/d6646475e2715c666316174e1c035a035a075ab1) Thanks [@jnsdls](https://github.com/jnsdls)! - adapters(viem): explicitly type walletClient return type
|
||||
|
||||
## 5.8.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "thirdweb",
|
||||
"version": "5.8.0",
|
||||
"version": "5.11.0",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
||||
|
||||
@@ -0,0 +1,440 @@
|
||||
[
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "target",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "callData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Call[]",
|
||||
"name": "calls",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "aggregate",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "blockNumber",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes[]",
|
||||
"name": "returnData",
|
||||
"type": "bytes[]"
|
||||
}
|
||||
],
|
||||
"stateMutability": "payable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "target",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "allowFailure",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "callData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Call3[]",
|
||||
"name": "calls",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "aggregate3",
|
||||
"outputs": [
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "success",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "returnData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Result[]",
|
||||
"name": "returnData",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"stateMutability": "payable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "target",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "allowFailure",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "value",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "callData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Call3Value[]",
|
||||
"name": "calls",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "aggregate3Value",
|
||||
"outputs": [
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "success",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "returnData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Result[]",
|
||||
"name": "returnData",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"stateMutability": "payable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "target",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "callData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Call[]",
|
||||
"name": "calls",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "blockAndAggregate",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "blockNumber",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes32",
|
||||
"name": "blockHash",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "success",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "returnData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Result[]",
|
||||
"name": "returnData",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"stateMutability": "payable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getBasefee",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "basefee",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "blockNumber",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "getBlockHash",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "bytes32",
|
||||
"name": "blockHash",
|
||||
"type": "bytes32"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getBlockNumber",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "blockNumber",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getChainId",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "chainid",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getCurrentBlockCoinbase",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "coinbase",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getCurrentBlockDifficulty",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "difficulty",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getCurrentBlockGasLimit",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "gaslimit",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getCurrentBlockTimestamp",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "timestamp",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "addr",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "getEthBalance",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "balance",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
"name": "getLastBlockHash",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "bytes32",
|
||||
"name": "blockHash",
|
||||
"type": "bytes32"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "requireSuccess",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "target",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "callData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Call[]",
|
||||
"name": "calls",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "tryAggregate",
|
||||
"outputs": [
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "success",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "returnData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Result[]",
|
||||
"name": "returnData",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"stateMutability": "payable",
|
||||
"type": "function"
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "requireSuccess",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "target",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "callData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Call[]",
|
||||
"name": "calls",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "tryBlockAndAggregate",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "blockNumber",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes32",
|
||||
"name": "blockHash",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "bool",
|
||||
"name": "success",
|
||||
"type": "bool"
|
||||
},
|
||||
{
|
||||
"internalType": "bytes",
|
||||
"name": "returnData",
|
||||
"type": "bytes"
|
||||
}
|
||||
],
|
||||
"internalType": "struct Multicall3.Result[]",
|
||||
"name": "returnData",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"stateMutability": "payable",
|
||||
"type": "function"
|
||||
}
|
||||
]
|
||||
@@ -55,6 +55,19 @@ describe("walletClient.toViem", () => {
|
||||
throw new Error("Account not found");
|
||||
}
|
||||
const txHash = await walletClient.sendTransaction({
|
||||
account: walletClient.account,
|
||||
chain: {
|
||||
id: ANVIL_CHAIN.id,
|
||||
name: ANVIL_CHAIN.name || "",
|
||||
rpcUrls: {
|
||||
default: { http: [ANVIL_CHAIN.rpc] },
|
||||
},
|
||||
nativeCurrency: {
|
||||
name: ANVIL_CHAIN.nativeCurrency?.name || "Ether",
|
||||
symbol: ANVIL_CHAIN.nativeCurrency?.symbol || "ETH",
|
||||
decimals: ANVIL_CHAIN.nativeCurrency?.decimals || 18,
|
||||
},
|
||||
},
|
||||
to: zeroAddress,
|
||||
value: 0n,
|
||||
});
|
||||
|
||||
@@ -170,7 +170,7 @@ type ToViemWalletClientOptions = {
|
||||
chain: Chain;
|
||||
};
|
||||
|
||||
function toViemWalletClient(options: ToViemWalletClientOptions) {
|
||||
function toViemWalletClient(options: ToViemWalletClientOptions): WalletClient {
|
||||
const { account, chain, client } = options;
|
||||
if (!account) {
|
||||
throw new Error("Wallet not connected.");
|
||||
|
||||
@@ -74,24 +74,6 @@ export {
|
||||
} from "../../extensions/erc1155/__generated__/INFTMetadata/write/setTokenURI.js";
|
||||
export { freezeMetadata } from "../../extensions/erc1155/__generated__/INFTMetadata/write/freezeMetadata.js";
|
||||
|
||||
// EVENTS
|
||||
|
||||
export {
|
||||
transferSingleEvent,
|
||||
type TransferSingleEventFilters,
|
||||
} from "../../extensions/erc1155/__generated__/IERC1155/events/TransferSingle.js";
|
||||
export {
|
||||
transferBatchEvent,
|
||||
type TransferBatchEventFilters,
|
||||
} from "../../extensions/erc1155/__generated__/IERC1155/events/TransferBatch.js";
|
||||
export {
|
||||
approvalForAllEvent,
|
||||
type ApprovalForAllEventFilters,
|
||||
} from "../../extensions/erc1155/__generated__/IERC1155/events/ApprovalForAll.js";
|
||||
export { metadataUpdateEvent } from "../../extensions/erc1155/__generated__/INFTMetadata/events/MetadataUpdate.js";
|
||||
export { metadataFrozenEvent } from "../../extensions/erc1155/__generated__/INFTMetadata/events/MetadataFrozen.js";
|
||||
export { batchMetadataUpdateEvent } from "../../extensions/erc1155/__generated__/INFTMetadata/events/BatchMetadataUpdate.js";
|
||||
|
||||
/**
|
||||
* DROPS extension for ERC1155
|
||||
*/
|
||||
@@ -123,3 +105,22 @@ export {
|
||||
// EVENTS
|
||||
export { tokensLazyMintedEvent } from "../../extensions/erc1155/__generated__/ILazyMint/events/TokensLazyMinted.js";
|
||||
export { tokensClaimedEvent } from "../../extensions/erc1155/__generated__/IDrop1155/events/TokensClaimed.js";
|
||||
export {
|
||||
transferSingleEvent,
|
||||
type TransferSingleEventFilters,
|
||||
} from "../../extensions/erc1155/__generated__/IERC1155/events/TransferSingle.js";
|
||||
export {
|
||||
transferBatchEvent,
|
||||
type TransferBatchEventFilters,
|
||||
} from "../../extensions/erc1155/__generated__/IERC1155/events/TransferBatch.js";
|
||||
export {
|
||||
approvalForAllEvent,
|
||||
type ApprovalForAllEventFilters,
|
||||
} from "../../extensions/erc1155/__generated__/IERC1155/events/ApprovalForAll.js";
|
||||
export { metadataUpdateEvent } from "../../extensions/erc1155/__generated__/INFTMetadata/events/MetadataUpdate.js";
|
||||
export { metadataFrozenEvent } from "../../extensions/erc1155/__generated__/INFTMetadata/events/MetadataFrozen.js";
|
||||
export { batchMetadataUpdateEvent } from "../../extensions/erc1155/__generated__/INFTMetadata/events/BatchMetadataUpdate.js";
|
||||
export {
|
||||
tokensMintedWithSignatureEvent,
|
||||
type TokensMintedWithSignatureEventFilters,
|
||||
} from "../../extensions/erc1155/__generated__/ISignatureMintERC1155/events/TokensMintedWithSignature.js";
|
||||
|
||||
@@ -45,25 +45,6 @@ export {
|
||||
type BurnFromParams,
|
||||
} from "../../extensions/erc20/__generated__/IBurnableERC20/write/burnFrom.js";
|
||||
|
||||
// EVENTS
|
||||
export {
|
||||
transferEvent,
|
||||
type TransferEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IERC20/events/Transfer.js";
|
||||
export {
|
||||
approvalEvent,
|
||||
type ApprovalEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IERC20/events/Approval.js";
|
||||
export {
|
||||
tokensMintedEvent,
|
||||
type TokensMintedEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IMintableERC20/events/TokensMinted.js";
|
||||
export {
|
||||
tokensClaimedEvent,
|
||||
type TokensClaimedEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IDropERC20/events/TokensClaimed.js";
|
||||
export { claimConditionsUpdatedEvent } from "../../extensions/erc20/__generated__/IDropERC20/events/ClaimConditionsUpdated.js";
|
||||
|
||||
/**
|
||||
* DROPS extension for ERC20
|
||||
*/
|
||||
@@ -98,3 +79,26 @@ export {
|
||||
withdraw,
|
||||
type WithdrawParams,
|
||||
} from "../../extensions/erc20/__generated__/IWETH/write/withdraw.js";
|
||||
|
||||
// EVENTS
|
||||
export {
|
||||
transferEvent,
|
||||
type TransferEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IERC20/events/Transfer.js";
|
||||
export {
|
||||
approvalEvent,
|
||||
type ApprovalEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IERC20/events/Approval.js";
|
||||
export {
|
||||
tokensMintedEvent,
|
||||
type TokensMintedEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IMintableERC20/events/TokensMinted.js";
|
||||
export {
|
||||
tokensClaimedEvent,
|
||||
type TokensClaimedEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/IDropERC20/events/TokensClaimed.js";
|
||||
export { claimConditionsUpdatedEvent } from "../../extensions/erc20/__generated__/IDropERC20/events/ClaimConditionsUpdated.js";
|
||||
export {
|
||||
tokensMintedWithSignatureEvent,
|
||||
type TokensMintedWithSignatureEventFilters,
|
||||
} from "../../extensions/erc20/__generated__/ISignatureMintERC20/events/TokensMintedWithSignature.js";
|
||||
|
||||
@@ -79,18 +79,6 @@ export {
|
||||
type SetTokenURIParams,
|
||||
} from "../../extensions/erc721/__generated__/INFTMetadata/write/setTokenURI.js";
|
||||
|
||||
/**
|
||||
* EVENTS extension for ERC721
|
||||
*/
|
||||
export {
|
||||
transferEvent,
|
||||
type TransferEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/IERC721A/events/Transfer.js";
|
||||
export {
|
||||
tokensLazyMintedEvent,
|
||||
type TokensLazyMintedEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/ILazyMint/events/TokensLazyMinted.js";
|
||||
|
||||
/**
|
||||
* DROPS extension for ERC721
|
||||
*/
|
||||
@@ -126,3 +114,37 @@ export {
|
||||
setSharedMetadata,
|
||||
type SetSharedMetadataParams,
|
||||
} from "../../extensions/erc721/write/setSharedMetadata.js";
|
||||
|
||||
/**
|
||||
* EVENTS extension for ERC721
|
||||
*/
|
||||
export {
|
||||
transferEvent,
|
||||
type TransferEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/IERC721A/events/Transfer.js";
|
||||
export {
|
||||
tokensLazyMintedEvent,
|
||||
type TokensLazyMintedEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/ILazyMint/events/TokensLazyMinted.js";
|
||||
export {
|
||||
approvalEvent,
|
||||
type ApprovalEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/IERC721A/events/Approval.js";
|
||||
export {
|
||||
approvalForAllEvent,
|
||||
type ApprovalForAllEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/IERC721A/events/ApprovalForAll.js";
|
||||
export {
|
||||
tokensMintedWithSignatureEvent,
|
||||
type TokensMintedWithSignatureEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/ISignatureMintERC721/events/TokensMintedWithSignature.js";
|
||||
export { claimConditionsUpdatedEvent } from "../../extensions/erc721/__generated__/IDrop/events/ClaimConditionsUpdated.js";
|
||||
export {
|
||||
tokensClaimedEvent,
|
||||
type TokensClaimedEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/IDrop/events/TokensClaimed.js";
|
||||
export { sharedMetadataUpdatedEvent } from "../../extensions/erc721/__generated__/ISharedMetadata/events/SharedMetadataUpdated.js";
|
||||
export {
|
||||
tokenURIRevealedEvent,
|
||||
type TokenURIRevealedEventFilters,
|
||||
} from "../../extensions/erc721/__generated__/IDelayedReveal/events/TokenURIRevealed.js";
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
// READ
|
||||
export { getBasefee } from "../../extensions/multicall3/__generated__/IMulticall3/read/getBasefee.js";
|
||||
export {
|
||||
getBlockHash,
|
||||
type GetBlockHashParams,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/read/getBlockHash.js";
|
||||
export { getBlockNumber } from "../../extensions/multicall3/__generated__/IMulticall3/read/getBlockNumber.js";
|
||||
export { getChainId } from "../../extensions/multicall3/__generated__/IMulticall3/read/getChainId.js";
|
||||
export { getCurrentBlockCoinbase } from "../../extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockCoinbase.js";
|
||||
export { getCurrentBlockDifficulty } from "../../extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockDifficulty.js";
|
||||
export { getCurrentBlockGasLimit } from "../../extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockGasLimit.js";
|
||||
export { getCurrentBlockTimestamp } from "../../extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockTimestamp.js";
|
||||
export {
|
||||
getEthBalance,
|
||||
type GetEthBalanceParams,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/read/getEthBalance.js";
|
||||
export { getLastBlockHash } from "../../extensions/multicall3/__generated__/IMulticall3/read/getLastBlockHash.js";
|
||||
|
||||
// WRITE
|
||||
export {
|
||||
aggregate,
|
||||
type AggregateParams,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/write/aggregate.js";
|
||||
export {
|
||||
aggregate3,
|
||||
type Aggregate3Params,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/write/aggregate3.js";
|
||||
export {
|
||||
aggregate3Value,
|
||||
type Aggregate3ValueParams,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/write/aggregate3Value.js";
|
||||
export {
|
||||
blockAndAggregate,
|
||||
type BlockAndAggregateParams,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/write/blockAndAggregate.js";
|
||||
export {
|
||||
tryAggregate,
|
||||
type TryAggregateParams,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/write/tryAggregate.js";
|
||||
export {
|
||||
tryBlockAndAggregate,
|
||||
type TryBlockAndAggregateParams,
|
||||
} from "../../extensions/multicall3/__generated__/IMulticall3/write/tryBlockAndAggregate.js";
|
||||
@@ -96,3 +96,6 @@ export {
|
||||
AutoConnect,
|
||||
type AutoConnectProps,
|
||||
} from "../react/core/hooks/connection/useAutoConnect.js";
|
||||
|
||||
// auth
|
||||
export { type SiweAuthOptions } from "../react/core/hooks/auth/useSiweAuth.js";
|
||||
|
||||
@@ -18,7 +18,7 @@ export type SetClaimConditionsParams = {
|
||||
* ```ts
|
||||
* import { setClaimConditions } from "thirdweb/extensions/erc1155";
|
||||
*
|
||||
* const tx = await setClaimConditions({
|
||||
* const tx = setClaimConditions({
|
||||
* contract,
|
||||
* tokenId: 0n,
|
||||
* phases: [
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
import type { AbiParameterToPrimitiveType, Address } from "abitype";
|
||||
import { maxUint256 } from "viem";
|
||||
import { NATIVE_TOKEN_ADDRESS } from "../../../constants/addresses.js";
|
||||
import {
|
||||
NATIVE_TOKEN_ADDRESS,
|
||||
isNativeTokenAddress,
|
||||
} from "../../../constants/addresses.js";
|
||||
import type { ThirdwebContract } from "../../../contract/contract.js";
|
||||
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
||||
import { toBigInt } from "../../../utils/bigint.js";
|
||||
import { dateToSeconds, tenYearsFromNow } from "../../../utils/date.js";
|
||||
import type { Hex } from "../../../utils/encoding/hex.js";
|
||||
import type { NFTInput } from "../../../utils/nft/parseNft.js";
|
||||
import { randomBytes32 } from "../../../utils/uuid.js";
|
||||
import type { Account } from "../../../wallets/interfaces/wallet.js";
|
||||
import { mintWithSignature as generatedMintWithSignature } from "../__generated__/ISignatureMintERC1155/write/mintWithSignature.js";
|
||||
import {
|
||||
type MintWithSignatureParams,
|
||||
mintWithSignature as generatedMintWithSignature,
|
||||
} from "../__generated__/ISignatureMintERC1155/write/mintWithSignature.js";
|
||||
|
||||
/**
|
||||
* Mints a new ERC1155 token with the given minter signature
|
||||
@@ -29,7 +36,19 @@ import { mintWithSignature as generatedMintWithSignature } from "../__generated_
|
||||
* @extension ERC1155
|
||||
* @returns A promise that resolves to the transaction result.
|
||||
*/
|
||||
export const mintWithSignature = generatedMintWithSignature;
|
||||
export function mintWithSignature(
|
||||
options: BaseTransactionOptions<MintWithSignatureParams>,
|
||||
) {
|
||||
const value = isNativeTokenAddress(options.payload.currency)
|
||||
? options.payload.pricePerToken * options.payload.quantity
|
||||
: 0n;
|
||||
return generatedMintWithSignature({
|
||||
...options,
|
||||
overrides: {
|
||||
value,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export type GenerateMintSignatureOptions = {
|
||||
account: Account;
|
||||
@@ -123,7 +142,9 @@ export async function generateMintSignature(
|
||||
uid,
|
||||
pricePerToken,
|
||||
tokenId:
|
||||
"tokenId" in mintRequest ? mintRequest.tokenId || maxUint256 : maxUint256,
|
||||
"tokenId" in mintRequest && mintRequest.tokenId !== undefined
|
||||
? mintRequest.tokenId
|
||||
: maxUint256,
|
||||
quantity: mintRequest.quantity,
|
||||
to: mintRequest.to,
|
||||
royaltyRecipient: mintRequest.royaltyRecipient || account.address,
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { maxUint256 } from "viem";
|
||||
import { beforeAll, describe, expect, it } from "vitest";
|
||||
import { ANVIL_CHAIN } from "../../../../test/src/chains.js";
|
||||
import { TEST_CLIENT } from "../../../../test/src/test-clients.js";
|
||||
@@ -14,6 +15,7 @@ import { sendTransaction } from "../../../transaction/actions/send-transaction.j
|
||||
import { toHex } from "../../../utils/encoding/hex.js";
|
||||
import { deployERC20Contract } from "../../prebuilts/deploy-erc20.js";
|
||||
import { deployERC1155Contract } from "../../prebuilts/deploy-erc1155.js";
|
||||
import { getNFT } from "../read/getNFT.js";
|
||||
import { generateMintSignature, mintWithSignature } from "./sigMint.js";
|
||||
|
||||
// skip this test suite if there is no secret key available to test with
|
||||
@@ -59,6 +61,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("generateMintSignature1155", () => {
|
||||
mintRequest: {
|
||||
to: TEST_ACCOUNT_B.address,
|
||||
quantity: 10n,
|
||||
pricePerToken: "0.1",
|
||||
metadata: {
|
||||
name: "My NFT",
|
||||
description: "This is my NFT",
|
||||
@@ -78,6 +81,46 @@ describe.runIf(process.env.TW_SECRET_KEY)("generateMintSignature1155", () => {
|
||||
account: TEST_ACCOUNT_A,
|
||||
});
|
||||
expect(transactionHash.length).toBe(66);
|
||||
const nft = await getNFT({
|
||||
contract: erc1155Contract,
|
||||
tokenId: 0n,
|
||||
});
|
||||
if (nft.type !== "ERC1155") throw new Error("Expected ERC1155 NFT");
|
||||
expect(nft.id).toBe(0n);
|
||||
expect(nft.supply).toBe(10n);
|
||||
expect(nft.metadata.name).toBe("My NFT");
|
||||
expect(nft.metadata.description).toBe("This is my NFT");
|
||||
});
|
||||
|
||||
it("should mint additional supply", async () => {
|
||||
const { payload, signature } = await generateMintSignature({
|
||||
mintRequest: {
|
||||
to: TEST_ACCOUNT_B.address,
|
||||
quantity: 5n,
|
||||
tokenId: 0n,
|
||||
},
|
||||
account: TEST_ACCOUNT_A,
|
||||
contract: erc1155Contract,
|
||||
});
|
||||
const transaction = mintWithSignature({
|
||||
contract: erc1155Contract,
|
||||
payload,
|
||||
signature,
|
||||
});
|
||||
const { transactionHash } = await sendTransaction({
|
||||
transaction,
|
||||
account: TEST_ACCOUNT_A,
|
||||
});
|
||||
expect(transactionHash.length).toBe(66);
|
||||
const nft = await getNFT({
|
||||
contract: erc1155Contract,
|
||||
tokenId: 0n,
|
||||
});
|
||||
if (nft.type !== "ERC1155") throw new Error("Expected ERC1155 NFT");
|
||||
expect(nft.id).toBe(0n);
|
||||
expect(nft.supply).toBe(15n);
|
||||
expect(nft.metadata.name).toBe("My NFT");
|
||||
expect(nft.metadata.description).toBe("This is my NFT");
|
||||
});
|
||||
|
||||
it("should generate a mint signature with default values", async () => {
|
||||
@@ -92,6 +135,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("generateMintSignature1155", () => {
|
||||
});
|
||||
|
||||
expect(payload.to).toBe(TEST_ACCOUNT_B.address);
|
||||
expect(payload.tokenId).toBe(maxUint256);
|
||||
expect(payload.royaltyRecipient).toBe(TEST_ACCOUNT_A.address);
|
||||
expect(payload.royaltyBps).toBe(0n);
|
||||
expect(payload.primarySaleRecipient).toBe(TEST_ACCOUNT_A.address);
|
||||
@@ -125,7 +169,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("generateMintSignature1155", () => {
|
||||
royaltyRecipient: TEST_ACCOUNT_B.address,
|
||||
royaltyBps: 500,
|
||||
primarySaleRecipient: TEST_ACCOUNT_A.address,
|
||||
metadata: "https://example.com/token",
|
||||
tokenId: 0n,
|
||||
pricePerToken: "0.2",
|
||||
currency: erc20TokenContract.address,
|
||||
validityStartTimestamp: new Date(1635724800),
|
||||
@@ -137,10 +181,11 @@ describe.runIf(process.env.TW_SECRET_KEY)("generateMintSignature1155", () => {
|
||||
});
|
||||
|
||||
expect(payload.to).toBe(TEST_ACCOUNT_B.address);
|
||||
expect(payload.tokenId).toBe(0n);
|
||||
expect(payload.royaltyRecipient).toBe(TEST_ACCOUNT_B.address);
|
||||
expect(payload.royaltyBps).toBe(500n);
|
||||
expect(payload.primarySaleRecipient).toBe(TEST_ACCOUNT_A.address);
|
||||
expect(payload.uri).toBe("https://example.com/token");
|
||||
expect(payload.uri).toBe("");
|
||||
expect(payload.pricePerToken).toBe(200000000000000000n);
|
||||
expect(payload.quantity).toBe(10n);
|
||||
expect(payload.currency).toBe(erc20TokenContract.address);
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
import type { AbiParameterToPrimitiveType, Address } from "abitype";
|
||||
import { NATIVE_TOKEN_ADDRESS } from "../../../constants/addresses.js";
|
||||
import {
|
||||
NATIVE_TOKEN_ADDRESS,
|
||||
isNativeTokenAddress,
|
||||
} from "../../../constants/addresses.js";
|
||||
import type { ThirdwebContract } from "../../../contract/contract.js";
|
||||
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
||||
import { dateToSeconds, tenYearsFromNow } from "../../../utils/date.js";
|
||||
import type { Hex } from "../../../utils/encoding/hex.js";
|
||||
import { randomBytes32 } from "../../../utils/uuid.js";
|
||||
import type { Account } from "../../../wallets/interfaces/wallet.js";
|
||||
import { name } from "../../common/read/name.js";
|
||||
import { mintWithSignature as generatedMintWithSignature } from "../__generated__/ISignatureMintERC20/write/mintWithSignature.js";
|
||||
import {
|
||||
type MintWithSignatureParams,
|
||||
mintWithSignature as generatedMintWithSignature,
|
||||
} from "../__generated__/ISignatureMintERC20/write/mintWithSignature.js";
|
||||
|
||||
/**
|
||||
* Mints a new ERC20 token with the given minter signature
|
||||
@@ -27,7 +34,19 @@ import { mintWithSignature as generatedMintWithSignature } from "../__generated_
|
||||
* @extension ERC20
|
||||
* @returns A promise that resolves to the transaction result.
|
||||
*/
|
||||
export const mintWithSignature = generatedMintWithSignature;
|
||||
export function mintWithSignature(
|
||||
options: BaseTransactionOptions<MintWithSignatureParams>,
|
||||
) {
|
||||
const value = isNativeTokenAddress(options.payload.currency)
|
||||
? options.payload.price
|
||||
: 0n;
|
||||
return generatedMintWithSignature({
|
||||
...options,
|
||||
overrides: {
|
||||
value,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export type GenerateMintSignatureOptions = {
|
||||
account: Account;
|
||||
|
||||
@@ -1,13 +1,20 @@
|
||||
import type { AbiParameterToPrimitiveType, Address } from "abitype";
|
||||
import type { Hex } from "viem";
|
||||
import { NATIVE_TOKEN_ADDRESS } from "../../../constants/addresses.js";
|
||||
import {
|
||||
NATIVE_TOKEN_ADDRESS,
|
||||
isNativeTokenAddress,
|
||||
} from "../../../constants/addresses.js";
|
||||
import type { ThirdwebContract } from "../../../contract/contract.js";
|
||||
import type { BaseTransactionOptions } from "../../../transaction/types.js";
|
||||
import { toBigInt } from "../../../utils/bigint.js";
|
||||
import { dateToSeconds, tenYearsFromNow } from "../../../utils/date.js";
|
||||
import type { NFTInput } from "../../../utils/nft/parseNft.js";
|
||||
import { randomBytes32 } from "../../../utils/uuid.js";
|
||||
import type { Account } from "../../../wallets/interfaces/wallet.js";
|
||||
import { mintWithSignature as generatedMintWithSignature } from "../__generated__/ISignatureMintERC721/write/mintWithSignature.js";
|
||||
import {
|
||||
type MintWithSignatureParams,
|
||||
mintWithSignature as generatedMintWithSignature,
|
||||
} from "../__generated__/ISignatureMintERC721/write/mintWithSignature.js";
|
||||
|
||||
/**
|
||||
* Mints a new ERC721 token with the given minter signature
|
||||
@@ -28,7 +35,19 @@ import { mintWithSignature as generatedMintWithSignature } from "../__generated_
|
||||
* @extension ERC721
|
||||
* @returns A promise that resolves to the transaction result.
|
||||
*/
|
||||
export const mintWithSignature = generatedMintWithSignature;
|
||||
export function mintWithSignature(
|
||||
options: BaseTransactionOptions<MintWithSignatureParams>,
|
||||
) {
|
||||
const value = isNativeTokenAddress(options.payload.currency)
|
||||
? options.payload.price
|
||||
: 0n;
|
||||
return generatedMintWithSignature({
|
||||
...options,
|
||||
overrides: {
|
||||
value,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export type GenerateMintSignatureOptions = {
|
||||
account: Account;
|
||||
|
||||
@@ -35,7 +35,6 @@ export function executeSale(
|
||||
contract: options.contract,
|
||||
auctionId: options.auctionId,
|
||||
});
|
||||
console.log("*** winning bid", winningBid);
|
||||
if (!winningBid) {
|
||||
throw new Error("Auction is still active");
|
||||
}
|
||||
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
import { readContract } from "../../../../../transaction/read-contract.js";
|
||||
import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
|
||||
|
||||
import { decodeAbiParameters } from "viem";
|
||||
import type { Hex } from "../../../../../utils/encoding/hex.js";
|
||||
import type { ThirdwebContract } from "../../../../../contract/contract.js";
|
||||
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
||||
|
||||
export const FN_SELECTOR = "0x3e64a696" as const;
|
||||
const FN_INPUTS = [] as const;
|
||||
const FN_OUTPUTS = [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "basefee",
|
||||
type: "uint256",
|
||||
},
|
||||
] as const;
|
||||
|
||||
/**
|
||||
* Checks if the `getBasefee` method is supported by the given contract.
|
||||
* @param contract The ThirdwebContract.
|
||||
* @returns A promise that resolves to a boolean indicating if the `getBasefee` method is supported.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { isGetBasefeeSupported } from "thirdweb/extensions/multicall3";
|
||||
*
|
||||
* const supported = await isGetBasefeeSupported(contract);
|
||||
* ```
|
||||
*/
|
||||
export async function isGetBasefeeSupported(contract: ThirdwebContract<any>) {
|
||||
return detectMethod({
|
||||
contract,
|
||||
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Decodes the result of the getBasefee function call.
|
||||
* @param result - The hexadecimal result to decode.
|
||||
* @returns The decoded result as per the FN_OUTPUTS definition.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { decodeGetBasefeeResult } from "thirdweb/extensions/multicall3";
|
||||
* const result = decodeGetBasefeeResult("...");
|
||||
* ```
|
||||
*/
|
||||
export function decodeGetBasefeeResult(result: Hex) {
|
||||
return decodeAbiParameters(FN_OUTPUTS, result)[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the "getBasefee" function on the contract.
|
||||
* @param options - The options for the getBasefee function.
|
||||
* @returns The parsed result of the function call.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { getBasefee } from "thirdweb/extensions/multicall3";
|
||||
*
|
||||
* const result = await getBasefee();
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
export async function getBasefee(options: BaseTransactionOptions) {
|
||||
return readContract({
|
||||
contract: options.contract,
|
||||
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
||||
params: [],
|
||||
});
|
||||
}
|
||||
Generated
+133
@@ -0,0 +1,133 @@
|
||||
import type { AbiParameterToPrimitiveType } from "abitype";
|
||||
import { readContract } from "../../../../../transaction/read-contract.js";
|
||||
import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
|
||||
import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
|
||||
import { decodeAbiParameters } from "viem";
|
||||
import type { Hex } from "../../../../../utils/encoding/hex.js";
|
||||
import type { ThirdwebContract } from "../../../../../contract/contract.js";
|
||||
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
||||
|
||||
/**
|
||||
* Represents the parameters for the "getBlockHash" function.
|
||||
*/
|
||||
export type GetBlockHashParams = {
|
||||
blockNumber: AbiParameterToPrimitiveType<{
|
||||
internalType: "uint256";
|
||||
name: "blockNumber";
|
||||
type: "uint256";
|
||||
}>;
|
||||
};
|
||||
|
||||
export const FN_SELECTOR = "0xee82ac5e" as const;
|
||||
const FN_INPUTS = [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "blockNumber",
|
||||
type: "uint256",
|
||||
},
|
||||
] as const;
|
||||
const FN_OUTPUTS = [
|
||||
{
|
||||
internalType: "bytes32",
|
||||
name: "blockHash",
|
||||
type: "bytes32",
|
||||
},
|
||||
] as const;
|
||||
|
||||
/**
|
||||
* Checks if the `getBlockHash` method is supported by the given contract.
|
||||
* @param contract The ThirdwebContract.
|
||||
* @returns A promise that resolves to a boolean indicating if the `getBlockHash` method is supported.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { isGetBlockHashSupported } from "thirdweb/extensions/multicall3";
|
||||
*
|
||||
* const supported = await isGetBlockHashSupported(contract);
|
||||
* ```
|
||||
*/
|
||||
export async function isGetBlockHashSupported(contract: ThirdwebContract<any>) {
|
||||
return detectMethod({
|
||||
contract,
|
||||
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Encodes the parameters for the "getBlockHash" function.
|
||||
* @param options - The options for the getBlockHash function.
|
||||
* @returns The encoded ABI parameters.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { encodeGetBlockHashParams } "thirdweb/extensions/multicall3";
|
||||
* const result = encodeGetBlockHashParams({
|
||||
* blockNumber: ...,
|
||||
* });
|
||||
* ```
|
||||
*/
|
||||
export function encodeGetBlockHashParams(options: GetBlockHashParams) {
|
||||
return encodeAbiParameters(FN_INPUTS, [options.blockNumber]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Encodes the "getBlockHash" function into a Hex string with its parameters.
|
||||
* @param options - The options for the getBlockHash function.
|
||||
* @returns The encoded hexadecimal string.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { encodeGetBlockHash } "thirdweb/extensions/multicall3";
|
||||
* const result = encodeGetBlockHash({
|
||||
* blockNumber: ...,
|
||||
* });
|
||||
* ```
|
||||
*/
|
||||
export function encodeGetBlockHash(options: GetBlockHashParams) {
|
||||
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
||||
// we can do this because we know the specific formats of the values
|
||||
return (FN_SELECTOR +
|
||||
encodeGetBlockHashParams(options).slice(
|
||||
2,
|
||||
)) as `${typeof FN_SELECTOR}${string}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decodes the result of the getBlockHash function call.
|
||||
* @param result - The hexadecimal result to decode.
|
||||
* @returns The decoded result as per the FN_OUTPUTS definition.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { decodeGetBlockHashResult } from "thirdweb/extensions/multicall3";
|
||||
* const result = decodeGetBlockHashResult("...");
|
||||
* ```
|
||||
*/
|
||||
export function decodeGetBlockHashResult(result: Hex) {
|
||||
return decodeAbiParameters(FN_OUTPUTS, result)[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the "getBlockHash" function on the contract.
|
||||
* @param options - The options for the getBlockHash function.
|
||||
* @returns The parsed result of the function call.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { getBlockHash } from "thirdweb/extensions/multicall3";
|
||||
*
|
||||
* const result = await getBlockHash({
|
||||
* blockNumber: ...,
|
||||
* });
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
export async function getBlockHash(
|
||||
options: BaseTransactionOptions<GetBlockHashParams>,
|
||||
) {
|
||||
return readContract({
|
||||
contract: options.contract,
|
||||
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
||||
params: [options.blockNumber],
|
||||
});
|
||||
}
|
||||
Generated
+74
@@ -0,0 +1,74 @@
|
||||
import { readContract } from "../../../../../transaction/read-contract.js";
|
||||
import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
|
||||
|
||||
import { decodeAbiParameters } from "viem";
|
||||
import type { Hex } from "../../../../../utils/encoding/hex.js";
|
||||
import type { ThirdwebContract } from "../../../../../contract/contract.js";
|
||||
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
||||
|
||||
export const FN_SELECTOR = "0x42cbb15c" as const;
|
||||
const FN_INPUTS = [] as const;
|
||||
const FN_OUTPUTS = [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "blockNumber",
|
||||
type: "uint256",
|
||||
},
|
||||
] as const;
|
||||
|
||||
/**
|
||||
* Checks if the `getBlockNumber` method is supported by the given contract.
|
||||
* @param contract The ThirdwebContract.
|
||||
* @returns A promise that resolves to a boolean indicating if the `getBlockNumber` method is supported.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { isGetBlockNumberSupported } from "thirdweb/extensions/multicall3";
|
||||
*
|
||||
* const supported = await isGetBlockNumberSupported(contract);
|
||||
* ```
|
||||
*/
|
||||
export async function isGetBlockNumberSupported(
|
||||
contract: ThirdwebContract<any>,
|
||||
) {
|
||||
return detectMethod({
|
||||
contract,
|
||||
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Decodes the result of the getBlockNumber function call.
|
||||
* @param result - The hexadecimal result to decode.
|
||||
* @returns The decoded result as per the FN_OUTPUTS definition.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { decodeGetBlockNumberResult } from "thirdweb/extensions/multicall3";
|
||||
* const result = decodeGetBlockNumberResult("...");
|
||||
* ```
|
||||
*/
|
||||
export function decodeGetBlockNumberResult(result: Hex) {
|
||||
return decodeAbiParameters(FN_OUTPUTS, result)[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls the "getBlockNumber" function on the contract.
|
||||
* @param options - The options for the getBlockNumber function.
|
||||
* @returns The parsed result of the function call.
|
||||
* @extension MULTICALL3
|
||||
* @example
|
||||
* ```ts
|
||||
* import { getBlockNumber } from "thirdweb/extensions/multicall3";
|
||||
*
|
||||
* const result = await getBlockNumber();
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
export async function getBlockNumber(options: BaseTransactionOptions) {
|
||||
return readContract({
|
||||
contract: options.contract,
|
||||
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
||||
params: [],
|
||||
});
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user