Compare commits

..
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
33a78e68d1 Version Packages (#865)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-04 17:50:09 -07:00
Jonas DanielsandGitHub 235eb0460a [react-core, wallets] - fix window undefined error during SSR (#870) 2023-04-05 00:41:12 +00:00
Adam MajmudarandGitHub 3bb846adf0 [CLI] Generate detects contracts in project (#867) 2023-04-05 00:19:56 +00:00
b5648aee83 [React] Make tokenId optional one useNFTBalance (#862)
Co-authored-by: Adam Majmudar <[email protected]>
2023-04-04 23:51:28 +00:00
ciaranightingaleandGitHub 1b8f812fb8 [SDK] contract portal links (#863) 2023-04-04 21:47:53 +00:00
Adam MajmudarandGitHub 1547d76cce [SDK] Add unix timestamp dates (#861) 2023-04-04 00:54:48 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7c78d1c6e8 Version Packages (#858)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-03 16:41:59 -07:00
iketwandGitHub 058e4357c7 [CLI] Only run react-native ios specific tasks on macOS envs (#860) 2023-04-03 23:14:19 +00:00
Adam MajmudarandGitHub 3a0e904fc2 [CLI] Add skip intro flag to generate and update regex (#857) 2023-04-02 22:08:59 +00:00
46 changed files with 918 additions and 223 deletions
+7
View File
@@ -1,5 +1,12 @@
# @thirdweb-dev/auth
## 3.0.13
### Patch Changes
- Updated dependencies [[`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
- @thirdweb-dev/wallets@0.2.14
## 3.0.12
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "3.0.12",
"version": "3.0.13",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
+6
View File
@@ -1,5 +1,11 @@
# @thirdweb-dev/chains
## 0.1.11
### Patch Changes
- [#870](https://github.com/thirdweb-dev/js/pull/870) [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains
## 0.1.10
### Patch Changes
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"name": "ShimmerEVM Testnet",
"title": "ShimmerEVM Testnet",
"chain": "ShimmerEVM",
"icon": {
"url": "ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di",
"width": 720,
"height": 720,
"format": "png"
},
"rpc": [
"https://shimmerevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://json-rpc.evm.testnet.shimmer.network"
],
"faucets": [
"https://evm-toolkit.evm.testnet.shimmer.network",
"https://evm-faucet.testnet.shimmer.network"
],
"nativeCurrency": {
"name": "SMR",
"symbol": "SMR",
"decimals": 18
},
"infoURL": "https://shimmer.network",
"shortName": "shimmerevm-testnet",
"chainId": 1071,
"networkId": 1071,
"explorers": [
{
"name": "explorer",
"url": "https://explorer.evm.testnet.shimmer.network",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "shimmerevm-testnet"
} as const satisfies Chain;
+47
View File
@@ -0,0 +1,47 @@
import type { Chain } from "../src/types";
export default {
"name": "Defi Oracle Meta Mainnet",
"chain": "dfiometa",
"icon": {
"url": "ipfs://QmYrMRnjQJcNkYq9AvZ2FQ9kzYj9szzP4YDmyNA1ybd8xE",
"width": 1000,
"height": 1043,
"format": "png"
},
"rpc": [
"https://defi-oracle-meta.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.public-0138.defi-oracle.io",
"wss://rpc.public-0138.defi-oracle.io"
],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://defi-oracle.io/",
"shortName": "dfio-meta-main",
"chainId": 138,
"networkId": 1,
"slip44": 60,
"ens": {
"registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"
},
"explorers": [
{
"name": "Quorum Explorer",
"url": "https://public-0138.defi-oracle.io",
"standard": "none"
}
],
"testnet": false,
"slug": "defi-oracle-meta"
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"name": "Neutrinos TestNet",
"chain": "NEUTR",
"rpc": [
"https://neutrinos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.neutrinoschain.com"
],
"faucets": [
"https://neutrinoschain.com/faucet"
],
"nativeCurrency": {
"name": "Neutrinos",
"symbol": "NEUTR",
"decimals": 18
},
"infoURL": "https://docs.neutrinoschain.com",
"shortName": "NEUTR",
"chainId": 197,
"networkId": 197,
"explorers": [
{
"name": "blockscout",
"url": "https://testnet.neutrinoschain.com",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "neutrinos-testnet"
} as const satisfies Chain;
+47
View File
@@ -0,0 +1,47 @@
import type { Chain } from "../src/types";
export default {
"name": "Defi Oracle Meta Testnet",
"chain": "dfiometatest",
"icon": {
"url": "ipfs://QmYrMRnjQJcNkYq9AvZ2FQ9kzYj9szzP4YDmyNA1ybd8xE",
"width": 1000,
"height": 1043,
"format": "png"
},
"rpc": [
"https://defi-oracle-meta-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.public-2138.defi-oracle.io",
"wss://rpc.public-2138.defi-oracle.io"
],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "testEther",
"symbol": "tETH",
"decimals": 18
},
"infoURL": "https://defi-oracle.io/",
"shortName": "dfio-meta-test",
"chainId": 2138,
"networkId": 21,
"slip44": 60,
"ens": {
"registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"
},
"explorers": [
{
"name": "Quorum Explorer",
"url": "https://public-2138.defi-oracle.io",
"standard": "none"
}
],
"testnet": true,
"slug": "defi-oracle-meta-testnet"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "Taf ECO Chain Mainnet",
"chain": "Taf ECO Chain",
"icon": {
"url": "ipfs://bafkreigpxhu7glccsislhjqpl5fnsfmj2io4cy33blhky642uiuyojossy",
"width": 400,
"height": 400,
"format": "png"
},
"rpc": [
"https://taf-eco-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.tafchain.com/v1"
],
"faucets": [],
"nativeCurrency": {
"name": "Taf ECO Chain Mainnet",
"symbol": "TAFECO",
"decimals": 18
},
"infoURL": "https://www.tafchain.com",
"shortName": "TAFECO",
"chainId": 224168,
"networkId": 224168,
"explorers": [
{
"name": "Taf ECO Chain Mainnet",
"url": "https://ecoscan.tafchain.com",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "taf-eco-chain"
} as const satisfies Chain;
+50
View File
@@ -0,0 +1,50 @@
import type { Chain } from "../src/types";
export default {
"name": "WEMIX Kanvas Sepolia",
"title": "WEMIX Kanvas Testnet Sepolia",
"chainId": 2357,
"shortName": "kanvas-aqua",
"chain": "ETH",
"networkId": 2357,
"nativeCurrency": {
"name": "Sepolia Ether",
"symbol": "ETH",
"decimals": 18
},
"rpc": [
"https://wemix-kanvas-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.aqua.wemixkanvas.io"
],
"faucets": [],
"infoURL": "https://wemixkanvas.io",
"icon": {
"url": "ipfs://QmVcVxsHsVg5BMii3EJ1MUSnLBZkQicpjmXjSmW66bCEUF",
"width": 320,
"height": 320,
"format": "svg"
},
"explorers": [
{
"name": "blockscout",
"url": "https://blockscout.aqua.wemixkanvas.io",
"icon": {
"url": "ipfs://QmVcVxsHsVg5BMii3EJ1MUSnLBZkQicpjmXjSmW66bCEUF",
"width": 320,
"height": 320,
"format": "svg"
},
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-11155111",
"bridges": [
{
"url": "https://wemixkanvas.io/bridge"
}
]
},
"testnet": true,
"slug": "wemix-kanvas-sepolia"
} as const satisfies Chain;
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"name": "Acria IntelliChain",
"chain": "AIC",
"rpc": [
"https://acria-intellichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://aic.acria.ai"
],
"faucets": [],
"nativeCurrency": {
"name": "ACRIA",
"symbol": "ACRIA",
"decimals": 18
},
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"infoURL": "https://acria.ai",
"shortName": "aic",
"chainId": 47,
"networkId": 47,
"explorers": [
{
"name": "Acria IntelliChain-Explorer",
"url": "https://explorer.acria.ai",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "acria-intellichain"
} as const satisfies Chain;
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"name": "Canto Tesnet",
"chain": "Canto",
"rpc": [
"https://canto-tesnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-archive.plexnode.wtf"
],
"faucets": [],
"nativeCurrency": {
"name": "Testnet Canto",
"symbol": "CANTO",
"decimals": 18
},
"infoURL": "https://canto.io",
"shortName": "TestnetCanto",
"chainId": 7701,
"networkId": 7701,
"explorers": [
{
"name": "Canto Testnet EVM Explorer (Blockscout)",
"url": "https://testnet.tuber.build",
"standard": "none"
}
],
"testnet": true,
"slug": "canto-tesnet"
} as const satisfies Chain;
+21
View File
@@ -0,0 +1,21 @@
import type { Chain } from "../src/types";
export default {
"name": "DecentraBone Layer1 Testnet",
"chain": "DBONE",
"rpc": [
"https://decentrabone-layer1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://layer1test.decentrabone.com"
],
"faucets": [],
"nativeCurrency": {
"name": "DecentraBone",
"symbol": "DBONE",
"decimals": 18
},
"infoURL": "https://decentrabone.com",
"shortName": "DBONE",
"chainId": 910,
"networkId": 910,
"testnet": true,
"slug": "decentrabone-layer1-testnet"
} as const satisfies Chain;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/chains",
"version": "0.1.10",
"version": "0.1.11",
"main": "dist/thirdweb-dev-chains.cjs.js",
"module": "dist/thirdweb-dev-chains.esm.js",
"browser": {
File diff suppressed because one or more lines are too long
+18
View File
@@ -1,5 +1,23 @@
# thirdweb
## 0.10.9
### Patch Changes
- [#867](https://github.com/thirdweb-dev/js/pull/867) [`3bb846ad`](https://github.com/thirdweb-dev/js/commit/3bb846adf0484e8b7dc7dfeba9f9c0ee26f4ef35) Thanks [@adam-maj](https://github.com/adam-maj)! - Generate auto detects smart contracts in project
- Updated dependencies [[`1547d76c`](https://github.com/thirdweb-dev/js/commit/1547d76cce52265076c347599014f578c1de6152), [`1b8f812f`](https://github.com/thirdweb-dev/js/commit/1b8f812fb8c910d91fb7535d6446a0b6fc6b2310), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
- @thirdweb-dev/sdk@3.10.8
- @thirdweb-dev/chains@0.1.11
## 0.10.8
### Patch Changes
- [#857](https://github.com/thirdweb-dev/js/pull/857) [`3a0e904f`](https://github.com/thirdweb-dev/js/commit/3a0e904fc2bae5134ba3bf65ba666c3360e4fced) Thanks [@adam-maj](https://github.com/adam-maj)! - Add skip intro flag to generate command and fix ABI cache regex
- [#860](https://github.com/thirdweb-dev/js/pull/860) [`058e4357`](https://github.com/thirdweb-dev/js/commit/058e4357c783911a6cab6b38c6eebbb3277dfe93) Thanks [@iketw](https://github.com/iketw)! - [CLI] Only checks ruby version and attempts to run pod install if the platform is macOS
## 0.10.7
### Patch Changes
+1 -1
View File
@@ -11,7 +11,7 @@ export const CREATE_MESSAGES = {
} as const;
export const GENERATE_MESSAGES = {
deployerAddress: "What is your deployer wallet address?",
chains: "What chains are you using in your project?",
};
export const ERROR_MESSAGES = {
+2 -1
View File
@@ -1,7 +1,7 @@
{
"name": "thirdweb",
"main": "dist/cli/index.js",
"version": "0.10.7",
"version": "0.10.9",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -34,6 +34,7 @@
"typescript": "^4.7.4"
},
"dependencies": {
"@thirdweb-dev/chains": "workspace:*",
"@thirdweb-dev/sdk": "workspace:*",
"@thirdweb-dev/storage": "workspace:*",
"async-retry": "^1.3.3",
+36 -1
View File
@@ -1,5 +1,5 @@
import { logger } from "../core/helpers/logger";
import { existsSync, readdirSync, statSync } from "fs";
import { existsSync, readFileSync, readdirSync, statSync } from "fs";
import { basename, join } from "path";
export function findFiles(
@@ -38,3 +38,38 @@ export function findFiles(
}
}
}
export function findMatches(
startPath: string,
filter: RegExp,
results: string[],
) {
if (!existsSync(startPath)) {
console.log("no dir ", startPath);
return;
}
const files = readdirSync(startPath);
for (let i = 0; i < files.length; i++) {
const filename = join(startPath, files[i]);
const stat = statSync(filename);
if (stat.isDirectory() && basename(filename) === "node_modules") {
continue;
}
if (stat.isDirectory() && filename.startsWith(".")) {
continue;
}
if (stat.isDirectory()) {
findMatches(filename, filter, results);
} else {
const fileContents = readFileSync(filename, "utf-8");
const matches = fileContents.match(filter);
if (matches) {
results.push(...matches);
}
}
}
}
+19 -15
View File
@@ -62,6 +62,24 @@ export async function createApp({
}
}
const isReactNative =
template?.includes("react-native") || framework === "react-native";
function isReactNativeCLI() {
return (
isReactNative &&
(language === "typescript" || (template && !template.includes("expo")))
);
}
function isMacOS() {
return process.platform === "darwin";
}
if (isReactNativeCLI() && isMacOS()) {
// fail early if the user doesn't have the right version of Ruby installed on macOS
await checkRubyVersion();
}
const root = path.resolve(appPath);
if (!(await isWriteable(path.dirname(root)))) {
@@ -98,20 +116,6 @@ export async function createApp({
);
}
const isReactNative =
template?.includes("react-native") || framework === "react-native";
function isReactNativeCLI() {
return (
isReactNative &&
(language === "typescript" || (template && !template.includes("expo")))
);
}
if (isReactNativeCLI()) {
// fail early if the user doesn't have the right version of Ruby installed
await checkRubyVersion();
}
if (template) {
/**
* If a template repository is provided, clone it.
@@ -199,7 +203,7 @@ export async function createApp({
console.log();
}
if (isReactNativeCLI()) {
if (isReactNativeCLI() && isMacOS()) {
await podInstall(root, isOnline);
}
+91 -33
View File
@@ -3,54 +3,101 @@ import {
DeployedContract,
fetchContractMetadataFromAddress,
getChainProvider,
ThirdwebSDK,
} from "@thirdweb-dev/sdk";
import { ThirdwebStorage } from "@thirdweb-dev/storage";
import { spinner, info } from "../core/helpers/logger";
import { allChains } from "@thirdweb-dev/chains";
import fs from "fs";
import prompts from "prompts";
type GenerateOptions = {
path: string;
deployer?: string;
};
import { findMatches } from "../common/file-helper";
import ora from "ora";
import { GenerateOptions, ThirdwebConfig } from "./types";
import { CHAIN_OPTIONS, getContractsForAddresses } from "./utils";
export async function generate(options: GenerateOptions) {
let projectPath: string = options.path?.replace(/\/$/, "") || ".";
let contracts: DeployedContract[] = [];
// Find all addresses in this project
let addresses: string[] = [];
findMatches(projectPath, /(0x[a-fA-F0-9]{40})/g, addresses);
// We check if there's a thirdweb.json config file present
if (fs.existsSync(`${projectPath}/thirdweb.json`)) {
// First we check if there's a thirdweb.json config file present
const thirdwebConfig = JSON.parse(
// Read the current thirdweb config file
const thirdwebConfig: ThirdwebConfig = JSON.parse(
fs.readFileSync(`${projectPath}/thirdweb.json`, "utf-8"),
);
contracts = thirdwebConfig.contracts as DeployedContract[];
} else {
// Otherwise, we get contracts by deployer address (and generate a thirdweb.json)
let deployerAddress: string;
if (options.deployer) {
deployerAddress = options.deployer;
} else {
const res = await prompts({
type: "text",
name: "deployer",
message: GENERATE_MESSAGES.deployerAddress,
});
deployerAddress = res.deployer.trim();
}
const sdk = new ThirdwebSDK("polygon");
contracts = await sdk.multiChainRegistry.getContractAddresses(
deployerAddress,
// Check if there are any addresses in the project that aren't yet in the config
const configAddresses = thirdwebConfig.contracts.map((contract) =>
contract.address.toLowerCase(),
);
const newAddresses = addresses.filter(
(address) => !configAddresses.includes(address.toLowerCase()),
);
// Initialize contracts to the contracts in thirdweb.json file
contracts = [...thirdwebConfig.contracts];
// If we have new contracts that aren't yet stored in config
// get full contract objects
if (newAddresses.length) {
const chainIds = thirdwebConfig.chainIds;
await getContractsForAddresses(newAddresses, chainIds, contracts);
if (contracts.length > thirdwebConfig.contracts.length) {
fs.writeFileSync(
`${projectPath}/thirdweb.json`,
JSON.stringify({ chainIds, contracts }, undefined, 2),
);
const numberOfNewContracts =
contracts.length - thirdwebConfig.contracts.length;
info(
`Updated thirdweb.json with ${numberOfNewContracts} new contract${
numberOfNewContracts === 1 ? "" : "s"
}`,
);
}
}
} else {
// If there is no configuration file present, we need to generate one...
// First we ask the user what chains are used in their project
const res = await prompts({
type: "autocompleteMultiselect",
name: "chains",
message: GENERATE_MESSAGES.chains,
choices: CHAIN_OPTIONS,
});
const chainIds: number[] = res.chains.map(
(index: number) => allChains[index].chainId,
);
// Then we check for the chainId of each address
await getContractsForAddresses(addresses, chainIds, contracts);
// Create a thirdweb.json file with the specific contracts and chain ids
fs.writeFileSync(
`${projectPath}/thirdweb.json`,
JSON.stringify({ contracts }, undefined, 2),
JSON.stringify({ chainIds, contracts }, undefined, 2),
);
info(
`Created a thirdweb.json file with configuration for ${
contracts.length
} contract${
contracts.length === 1 ? "" : "s"
} detected in your project.\n\n - You can also update this configuration manually by editing the file.\n`,
);
}
// Attempt to download the ABI for the contract
// Attempt to download the ABI for each contract
const abiSpinner = spinner(
`Downloading ABIs for contracts configured in 'thirdweb.json'`,
);
const storage = new ThirdwebStorage();
const metadata: {
address: string;
@@ -97,7 +144,7 @@ export async function generate(options: GenerateOptions) {
}
const file = fs.readFileSync(filePath, "utf-8");
const abiRegex = /GENERATED_ABI = \{.*\}/s;
const abiRegex = /GENERATED_ABI = \{.*\};\n\n/s;
const contractAbis = metadata.reduce((acc, contract) => {
acc[contract.address] = contract.metadata.abi;
return acc;
@@ -105,8 +152,9 @@ export async function generate(options: GenerateOptions) {
const updatedAbis = JSON.stringify(contractAbis, null, 2);
const updatedFile = file.replace(
abiRegex,
`GENERATED_ABI = ${updatedAbis}`,
`GENERATED_ABI = ${updatedAbis};\n\n`,
);
fs.writeFileSync(filePath, updatedFile);
});
@@ -128,6 +176,12 @@ export async function generate(options: GenerateOptions) {
fs.writeFileSync(typeFilePath, updatedFile);
}
abiSpinner.succeed(
`Downloaded and cached ABIs for ${contracts.length} smart contract${
contracts.length === 1 ? "" : "s"
}`,
);
// Add generate command to postinstall
const packageJsonPath = `${projectPath}/package.json`;
if (!fs.existsSync(packageJsonPath)) {
@@ -141,8 +195,8 @@ export async function generate(options: GenerateOptions) {
const postinstall = packageJson.scripts?.postinstall
? packageJson.scripts.postinstall +
` && npx thirdweb generate --skip-update-check`
: `npx thirdweb generate --skip-update-check`;
` && export THIRDWEB_CLI_SKIP_INTRO=true && npx thirdweb generate --skip-update-check`
: `export THIRDWEB_CLI_SKIP_INTRO=true && npx thirdweb generate --skip-update-check`;
fs.writeFileSync(
packageJsonPath,
@@ -158,4 +212,8 @@ export async function generate(options: GenerateOptions) {
2,
),
);
ora(
"Added 'npx thirdweb generate' to postinstall in package.json.\n\n - This is necessary to use 'thirdweb generate' in production.\n",
).info();
}
+19
View File
@@ -0,0 +1,19 @@
import { DeployedContract } from "@thirdweb-dev/sdk";
export type ThirdwebConfig = {
chainIds: number[];
contracts: DeployedContract[];
};
export type GenerateOptions = {
path: string;
deployer?: string;
};
export type ContractChainPrompt = {
address: string;
chains: {
slug: string;
chainId: number;
}[];
};
+87
View File
@@ -0,0 +1,87 @@
import { DeployedContract, getChainProvider } from "@thirdweb-dev/sdk";
import prompts from "prompts";
import { ContractChainPrompt } from "./types";
import { allChains } from "@thirdweb-dev/chains";
export const CHAIN_OPTIONS = allChains.map((chain) => ({ title: chain.slug }));
export async function getContractsForAddresses(
addresses: string[],
chainIds: number[],
contracts: DeployedContract[],
) {
let contractChainPrompts: ContractChainPrompt[] = [];
await Promise.all(
addresses.map(async (address) => {
// Check which chainIds of the provided chains have a contract at this address
let chainIdsWithContract: number[] = [];
await Promise.all(
chainIds.map(async (chainId) => {
// Handles cacheing of provider by chain
const provider = getChainProvider(chainId, {});
try {
const code = await provider.getCode(address);
if (!code || code === "0x") {
return;
}
chainIdsWithContract.push(chainId);
} catch {
return;
}
}),
);
// If no chainId has this contract, we assume it's an EOA and move on
if (!chainIdsWithContract.length) {
return;
}
// If only one chain has this contract address, add it to our contracts list
if (chainIdsWithContract.length === 1) {
contracts.push({
address,
chainId: chainIdsWithContract[0],
});
return;
}
// Otherwise, add our contract to the list of contracts
// where we need to prompt the user to select the chain
contractChainPrompts.push({
address,
chains: chainIdsWithContract.map((chainId) => ({
slug: allChains[chainId].slug,
chainId,
})),
});
}),
);
// TODO: Long term, smart contracts in the generated-abis cache should be cached by
// both smart contract and chain id because people may want to use the same contract address
// on different chains
// For all addresses that have smart contracts deployed on multiple selected chains
// allow the user to specify which chain they want to use for their smart contract
for (const prompt of contractChainPrompts) {
const res = await prompts({
type: "select",
name: "chainId",
message: `What chain is smart contract '${prompt.address}' on?`,
choices: prompt.chains.map((chain) => ({
title: chain.slug,
value: chain.chainId,
})),
});
contracts.push({
address: prompt.address,
chainId: res.chainId,
});
}
}
+13
View File
@@ -1,5 +1,18 @@
# @thirdweb-dev/react-core
## 3.11.5
### Patch Changes
- [#870](https://github.com/thirdweb-dev/js/pull/870) [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d) Thanks [@jnsdls](https://github.com/jnsdls)! - fix crash during SSR when "window" is undefined
- [#862](https://github.com/thirdweb-dev/js/pull/862) [`b5648aee`](https://github.com/thirdweb-dev/js/commit/b5648aee83b299d07a8eed7773bd32bcceef9657) Thanks [@nachoiacovino](https://github.com/nachoiacovino)! - Make tokenId optional one useNFTBalance
- Updated dependencies [[`1547d76c`](https://github.com/thirdweb-dev/js/commit/1547d76cce52265076c347599014f578c1de6152), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d), [`1b8f812f`](https://github.com/thirdweb-dev/js/commit/1b8f812fb8c910d91fb7535d6446a0b6fc6b2310), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
- @thirdweb-dev/sdk@3.10.8
- @thirdweb-dev/wallets@0.2.14
- @thirdweb-dev/chains@0.1.11
## 3.11.4
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-core",
"version": "3.11.4",
"version": "3.11.5",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-core",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -61,12 +61,12 @@ export function useNetwork(): [NetworkMetadata, SwitchNetwork | undefined] {
const supportedChains = useSupportedChains();
const wallet = useWallet();
const isMetamaskInstalled = assertWindowEthereum(window)
? window.ethereum.isMetaMask
const isMetamaskInstalled = assertWindowEthereum(globalThis.window)
? globalThis.window.ethereum.isMetaMask
: false;
const isCoinbaseInstalled = assertWindowEthereum(window)
? window.ethereum.isCoinbaseWallet
const isCoinbaseInstalled = assertWindowEthereum(globalThis.window)
? globalThis.window.ethereum.isCoinbaseWallet
: false;
// switch not supported if connected to a mobile wallet
@@ -275,7 +275,7 @@ export function useOwnedNFTs<TContract extends NFTContract>(
export function useNFTBalance(
contract: RequiredParam<NFTContract>,
ownerWalletAddress: RequiredParam<WalletAddress>,
tokenId: RequiredParam<BigNumberish>,
tokenId?: RequiredParam<BigNumberish>,
) {
const contractAddress = contract?.getAddress();
const { erc721, erc1155 } = getErcs(contract);
@@ -1,5 +1,7 @@
# @thirdweb-dev/react-native-compat
## 0.2.5
## 0.2.4
## 0.2.3
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@thirdweb-dev/react-native-compat",
"description": "Shims for Thirdweb in React Native Projects",
"version": "0.2.4",
"version": "0.2.5",
"author": "thirdweb eng <[email protected]>",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native-compat",
"license": "Apache-2.0",
+10
View File
@@ -1,5 +1,15 @@
# @thirdweb-dev/react-native
## 0.2.5
### Patch Changes
- Updated dependencies [[`1547d76c`](https://github.com/thirdweb-dev/js/commit/1547d76cce52265076c347599014f578c1de6152), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d), [`b5648aee`](https://github.com/thirdweb-dev/js/commit/b5648aee83b299d07a8eed7773bd32bcceef9657), [`1b8f812f`](https://github.com/thirdweb-dev/js/commit/1b8f812fb8c910d91fb7535d6446a0b6fc6b2310), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
- @thirdweb-dev/sdk@3.10.8
- @thirdweb-dev/react-core@3.11.5
- @thirdweb-dev/wallets@0.2.14
- @thirdweb-dev/chains@0.1.11
## 0.2.4
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-native",
"version": "0.2.4",
"version": "0.2.5",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
+10
View File
@@ -1,5 +1,15 @@
# @thirdweb-dev/react
## 3.11.5
### Patch Changes
- Updated dependencies [[`1547d76c`](https://github.com/thirdweb-dev/js/commit/1547d76cce52265076c347599014f578c1de6152), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d), [`b5648aee`](https://github.com/thirdweb-dev/js/commit/b5648aee83b299d07a8eed7773bd32bcceef9657), [`1b8f812f`](https://github.com/thirdweb-dev/js/commit/1b8f812fb8c910d91fb7535d6446a0b6fc6b2310), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
- @thirdweb-dev/sdk@3.10.8
- @thirdweb-dev/react-core@3.11.5
- @thirdweb-dev/wallets@0.2.14
- @thirdweb-dev/chains@0.1.11
## 3.11.4
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react",
"version": "3.11.4",
"version": "3.11.5",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
+11
View File
@@ -1,5 +1,16 @@
# @thirdweb-dev/sdk
## 3.10.8
### Patch Changes
- [#861](https://github.com/thirdweb-dev/js/pull/861) [`1547d76c`](https://github.com/thirdweb-dev/js/commit/1547d76cce52265076c347599014f578c1de6152) Thanks [@adam-maj](https://github.com/adam-maj)! - Add option to pass timestamps for dates
- [#863](https://github.com/thirdweb-dev/js/pull/863) [`1b8f812f`](https://github.com/thirdweb-dev/js/commit/1b8f812fb8c910d91fb7535d6446a0b6fc6b2310) Thanks [@ciaranightingale](https://github.com/ciaranightingale)! - Update Solidity SDK detected extension portal links
- Updated dependencies [[`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
- @thirdweb-dev/chains@0.1.11
## 3.10.7
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/sdk",
"version": "3.10.7",
"version": "3.10.8",
"description": "The main thirdweb SDK.",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/sdk",
"license": "Apache-2.0",
@@ -17,7 +17,7 @@ export const FEATURE_EDITION_BURNABLE = {
namespace: "edition.burn",
docLinks: {
sdk: "sdk.erc1155burnable",
contracts: "IBurnableERC1155",
contracts: "erc1155burnable",
},
abis: [Erc1155Abi, IBurnableERC1155Abi],
features: {},
@@ -28,7 +28,7 @@ export const FEATURE_EDITION_CLAIM_CONDITIONS_V1 = {
namespace: "edition.drop.claim",
docLinks: {
sdk: "sdk.erc1155claimable",
contracts: "DropSinglePhase1155",
contracts: "erc1155dropsinglephase",
},
abis: [Erc1155Abi, ILazyMintAbi, IDropSinglePhase1155_V1],
features: {},
@@ -39,7 +39,7 @@ export const FEATURE_EDITION_CLAIM_CONDITIONS_V2 = {
namespace: "edition.drop.claim",
docLinks: {
sdk: "sdk.erc1155claimable",
contracts: "DropSinglePhase1155",
contracts: "erc1155claimconditions",
},
abis: [Erc1155Abi, ILazyMintAbi, IDropSinglePhase1155],
features: {},
@@ -50,7 +50,7 @@ export const FEATURE_EDITION_CLAIM_PHASES_V2 = {
namespace: "edition.drop.claim",
docLinks: {
sdk: "sdk.erc1155claimable",
contracts: "Drop1155",
contracts: "erc1155claimphases",
},
abis: [Erc1155Abi, ILazyMintAbi, IDropMultiPhase1155],
features: {},
@@ -61,7 +61,7 @@ export const FEATURE_EDITION_CLAIM_PHASES_V1 = {
namespace: "edition.drop.claim",
docLinks: {
sdk: "sdk.erc1155claimable",
contracts: "Drop1155",
contracts: "erc1155claimphases",
},
abis: [DropERC1155_V2Abi],
features: {},
@@ -72,7 +72,7 @@ export const FEATURE_EDITION_CLAIM_CUSTOM = {
namespace: "edition.drop.claim",
docLinks: {
sdk: "sdk.erc1155claimable",
contracts: "IClaimableERC1155",
contracts: "erc1155claimcustom",
},
abis: [Erc1155Abi, ILazyMintAbi, IClaimableERC1155],
features: {},
@@ -83,7 +83,7 @@ export const FEATURE_EDITION_REVEALABLE = {
namespace: "edition.drop.revealer",
docLinks: {
sdk: "sdk.drop.delayedreveal",
contracts: "DelayedReveal",
contracts: "erc1155revealable",
},
abis: [Erc1155Abi, ILazyMintAbi, DelayedRevealAbi],
features: {},
@@ -94,7 +94,7 @@ export const FEATURE_EDITION_LAZY_MINTABLE_V2 = {
namespace: "edition.drop",
docLinks: {
sdk: "sdk.erc1155droppable",
contracts: "LazyMint",
contracts: "lazymint",
},
abis: [Erc1155Abi, ILazyMintAbi],
features: {
@@ -113,7 +113,7 @@ export const FEATURE_EDITION_LAZY_MINTABLE_V1 = {
namespace: "edition.drop",
docLinks: {
sdk: "sdk.erc1155droppable",
contracts: "LazyMint",
contracts: "lazymint",
},
abis: [DropERC1155_V2Abi],
features: {
@@ -126,7 +126,7 @@ export const FEATURE_EDITION_SIGNATURE_MINTABLE = {
namespace: "edition.signature",
docLinks: {
sdk: "sdk.erc1155signaturemintable",
contracts: "ISignatureMintERC1155",
contracts: "erc1155signaturemint",
},
abis: [Erc1155Abi, ISignatureMintERC1155Abi],
features: {},
@@ -137,7 +137,7 @@ export const FEATURE_EDITION_BATCH_TRASNFERABLE = {
namespace: "",
docLinks: {
sdk: "sdk.erc1155",
contracts: "IMulticall",
contracts: "multicall",
},
abis: [Erc1155Abi, MulticallAbi],
features: {},
@@ -148,7 +148,7 @@ export const FEATURE_EDITION_BATCH_MINTABLE = {
namespace: "edition.mint.batch",
docLinks: {
sdk: "sdk.erc1155batchmintable",
contracts: "IMulticall",
contracts: "erc1155batchmintable",
},
abis: [Erc1155Abi, IMintableERC1155Abi, MulticallAbi],
features: {},
@@ -159,7 +159,7 @@ export const FEATURE_EDITION_MINTABLE = {
namespace: "edition.mint",
docLinks: {
sdk: "sdk.erc1155mintable",
contracts: "IMintableERC1155",
contracts: "erc1155mintable",
},
abis: [Erc1155Abi, IMintableERC1155Abi],
features: {
@@ -172,7 +172,7 @@ export const FEATURE_EDITION_ENUMERABLE = {
namespace: "edition.query",
docLinks: {
sdk: "sdk.erc1155",
contracts: "IERC1155",
contracts: "erc1155enumerable",
},
abis: [Erc1155Abi, Erc1155EnumerableAbi],
features: {},
@@ -183,7 +183,7 @@ export const FEATURE_EDITION = {
namespace: "edition",
docLinks: {
sdk: "sdk.erc1155enumerable",
contracts: "IERC1155Enumerable",
contracts: "erc1155",
},
abis: [Erc1155Abi],
features: {
@@ -14,7 +14,7 @@ export const FEATURE_TOKEN_CLAIM_CONDITIONS_V1 = {
namespace: "token.drop.claim",
docLinks: {
sdk: "sdk.erc20dclaimable",
contracts: "DropSinglePhase_V1",
contracts: "erc20claimconditions",
},
abis: [ERC20Abi, IDropSinglePhaseV1],
features: {},
@@ -25,7 +25,7 @@ export const FEATURE_TOKEN_CLAIM_CONDITIONS_V2 = {
namespace: "token.drop.claim",
docLinks: {
sdk: "sdk.erc20dclaimable",
contracts: "DropSinglePhase",
contracts: "erc20claimconditions",
},
abis: [ERC20Abi, IDropSinglePhase],
features: {},
@@ -36,7 +36,7 @@ export const FEATURE_TOKEN_CLAIM_PHASES_V2 = {
namespace: "token.drop.claim",
docLinks: {
sdk: "sdk.erc20dclaimable",
contracts: "Drop",
contracts: "erc20claimphases",
},
abis: [ERC20Abi, IDrop],
features: {},
@@ -47,7 +47,7 @@ export const FEATURE_TOKEN_CLAIM_PHASES_V1 = {
namespace: "token.drop.claim",
docLinks: {
sdk: "sdk.erc20dclaimable",
contracts: "Drop",
contracts: "erc20claimphases",
},
abis: [DropERC20_V2Abi],
features: {},
@@ -58,7 +58,7 @@ export const FEATURE_TOKEN_BURNABLE = {
namespace: "token.burn",
docLinks: {
sdk: "sdk.erc20burnable",
contracts: "IBurnableERC20",
contracts: "erc20burnable",
},
abis: [ERC20Abi, IBurnableERC20Abi],
features: {},
@@ -69,7 +69,7 @@ export const FEATURE_TOKEN_SIGNATURE_MINTABLE = {
namespace: "token.signature",
docLinks: {
sdk: "sdk.erc20signaturemintable",
contracts: "ISignatureMintERC20",
contracts: "erc20signaturemint",
},
abis: [ERC20Abi, ISignatureMintERC20Abi],
features: {},
@@ -80,7 +80,7 @@ export const FEATURE_TOKEN_BATCH_MINTABLE = {
namespace: "token.mint.batch",
docLinks: {
sdk: "sdk.erc20batchmintable",
contracts: "IMulticall",
contracts: "erc20batchmintable",
},
abis: [ERC20Abi, IMintableERC20Abi, MulticallAbi],
features: {},
@@ -91,7 +91,7 @@ export const FEATURE_TOKEN_MINTABLE = {
namespace: "token.mint",
docLinks: {
sdk: "sdk.erc20mintable",
contracts: "IMintableERC20",
contracts: "erc20mintable",
},
abis: [ERC20Abi, IMintableERC20Abi],
features: {
@@ -104,7 +104,7 @@ export const FEATURE_TOKEN_PERMIT = {
namespace: "token.permit",
docLinks: {
sdk: "sdk.erc20permit",
contracts: "IERC20Permit",
contracts: "erc20permit",
},
abis: [ERC20Abi, IERC20PermitAbi],
features: {},
@@ -115,7 +115,7 @@ export const FEATURE_TOKEN = {
namespace: "token",
docLinks: {
sdk: "sdk.erc20",
contracts: "IERC20",
contracts: "erc20",
},
abis: [ERC20Abi],
features: {
@@ -20,7 +20,7 @@ export const FEATURE_NFT_BURNABLE = {
namespace: "nft.burn",
docLinks: {
sdk: "sdk.erc721burnable",
contracts: "IBurnableERC721",
contracts: "erc721burnable",
},
abis: [Erc721Abi, IBurnableERC721Abi],
features: {},
@@ -31,7 +31,7 @@ export const FEATURE_NFT_REVEALABLE = {
namespace: "nft.drop.revealer",
docLinks: {
sdk: "sdk.delayedreveal",
contracts: "DelayedReveal",
contracts: "erc721revealable",
},
abis: [Erc721Abi, ILazyMintAbi, DelayedRevealAbi],
features: {},
@@ -42,7 +42,8 @@ export const FEATURE_NFT_TIERED_DROP = {
namespace: "nft.tieredDrop",
docLinks: {
sdk: "sdk.erc721tiereddrop",
contracts: "TieredDrop",
//TODO
contracts: "",
},
abis: [Erc721Abi, TieredDropAbi],
features: {},
@@ -53,7 +54,7 @@ export const FEATURE_NFT_CLAIM_CONDITIONS_V1 = {
namespace: "nft.drop.claim",
docLinks: {
sdk: "sdk.erc721claimable",
contracts: "DropSinglePhase_V1",
contracts: "erc721claimconditions",
},
abis: [Erc721Abi, ILazyMintAbi, IDropSinglePhaseV1],
features: {},
@@ -64,7 +65,7 @@ export const FEATURE_NFT_CLAIM_CONDITIONS_V2 = {
namespace: "nft.drop.claim",
docLinks: {
sdk: "sdk.erc721claimable",
contracts: "DropSinglePhase",
contracts: "erc721claimconditions",
},
abis: [Erc721Abi, ILazyMintAbi, IDropSinglePhase],
features: {},
@@ -75,7 +76,7 @@ export const FEATURE_NFT_CLAIM_PHASES_V1 = {
namespace: "nft.drop.claim",
docLinks: {
sdk: "sdk.erc721claimable",
contracts: "Drop",
contracts: "erc721claimphases",
},
abis: [DropERC721_V3Abi],
features: {},
@@ -86,7 +87,7 @@ export const FEATURE_NFT_CLAIM_PHASES_V2 = {
namespace: "nft.drop.claim",
docLinks: {
sdk: "sdk.erc721claimable",
contracts: "Drop",
contracts: "erc721claimphases",
},
abis: [Erc721Abi, ILazyMintAbi, IDrop],
features: {},
@@ -97,7 +98,7 @@ export const FEATURE_NFT_CLAIM_CUSTOM = {
namespace: "nft.drop.claim",
docLinks: {
sdk: "sdk.erc721claimable",
contracts: "IClaimableERC721",
contracts: "erc721claimcustom",
},
abis: [Erc721Abi, ILazyMintAbi, IClaimableERC721],
features: {},
@@ -108,7 +109,7 @@ export const FEATURE_NFT_LAZY_MINTABLE = {
namespace: "nft.drop",
docLinks: {
sdk: "sdk.erc721lazymintable",
contracts: "LazyMint",
contracts: "lazymint",
},
abis: [Erc721Abi, ILazyMintAbi],
features: {
@@ -126,7 +127,7 @@ export const FEATURE_NFT_BATCH_MINTABLE = {
namespace: "nft.mint.batch",
docLinks: {
sdk: "sdk.erc721batchmintable",
contracts: "IMulticall",
contracts: "erc721batchmintable",
},
abis: [Erc721Abi, IMintableERC721Abi, MulticallAbi],
features: {},
@@ -137,7 +138,7 @@ export const FEATURE_NFT_MINTABLE = {
namespace: "nft.mint",
docLinks: {
sdk: "sdk.erc721mintable",
contracts: "IMintableERC721",
contracts: "erc721mintable",
},
abis: [Erc721Abi, IMintableERC721Abi],
features: {
@@ -150,7 +151,7 @@ export const FEATURE_NFT_SIGNATURE_MINTABLE_V2 = {
namespace: "nft.signature",
docLinks: {
sdk: "sdk.erc721signaturemint",
contracts: "ISignatureMintERC721",
contracts: "erc721signaturemint",
},
abis: [Erc721Abi, SignatureMintERC721Abi],
features: {},
@@ -161,7 +162,7 @@ export const FEATURE_NFT_SIGNATURE_MINTABLE_V1 = {
namespace: "nft.signature",
docLinks: {
sdk: "sdk.erc721signaturemint",
contracts: "ISignatureMintERC721",
contracts: "erc721signaturemint",
},
abis: [SignatureMintERC721_V1Abi],
features: {},
@@ -172,7 +173,7 @@ export const FEATURE_NFT_ENUMERABLE = {
namespace: "nft.query.owned",
docLinks: {
sdk: "sdk.erc721enumerable",
contracts: "IERC721Enumerable",
contracts: "erc721enumerable",
},
abis: [Erc721Abi, Erc721EnumerableAbi],
features: {},
@@ -183,7 +184,7 @@ export const FEATURE_NFT_SUPPLY = {
namespace: "nft.query",
docLinks: {
sdk: "sdk.erc721supply",
contracts: "IERC721Supply",
contracts: "erc721supply",
},
abis: [Erc721Abi, Erc721SupplyAbi],
features: {
@@ -196,7 +197,7 @@ export const FEATURE_NFT = {
namespace: "nft",
docLinks: {
sdk: "sdk.erc721",
contracts: "IERC721",
contracts: "erc721",
},
abis: [Erc721Abi],
features: {
@@ -107,7 +107,7 @@ export const FEATURE_ROYALTY = {
namespace: "royalty",
docLinks: {
sdk: "sdk.contractroyalty",
contracts: "Royalty",
contracts: "royalty",
},
abis: [IThirdwebRoyaltyAbi],
features: {},
@@ -118,7 +118,7 @@ export const FEATURE_PRIMARY_SALE = {
namespace: "sales",
docLinks: {
sdk: "sdk.contractprimarysale",
contracts: "PrimarySale",
contracts: "primarysale",
},
abis: [IThirdwebPrimarySaleAbi],
features: {},
@@ -129,7 +129,7 @@ export const FEATURE_PLATFORM_FEE = {
namespace: "platformFee",
docLinks: {
sdk: "sdk.platformfee",
contracts: "PlatformFee",
contracts: "platformfee",
},
abis: [IThirdwebPlatformFeeAbi],
features: {},
@@ -140,7 +140,7 @@ export const FEATURE_PERMISSIONS_ENUMERABLE = {
namespace: "roles",
docLinks: {
sdk: "sdk.contractroles",
contracts: "PermissionsEnumerable",
contracts: "permissionsenumerable",
},
abis: [IPermissionsEnumerableAbi],
features: {},
@@ -151,7 +151,7 @@ export const FEATURE_PERMISSIONS = {
namespace: "roles",
docLinks: {
sdk: "sdk.contractroles",
contracts: "Permissions",
contracts: "permissions",
},
abis: [IPermissionsAbi],
features: {
@@ -164,7 +164,7 @@ export const FEATURE_METADATA = {
namespace: "metadata",
docLinks: {
sdk: "sdk.contractmetadata",
contracts: "ContractMetadata",
contracts: "contractmetadata",
},
abis: [IContractMetadataAbi],
features: {},
@@ -175,7 +175,8 @@ export const FEATURE_APPURI = {
namespace: "appURI",
docLinks: {
sdk: "sdk.appURI",
contracts: "AppURI",
//TODO
contracts: "",
},
abis: [IAppURI],
features: {},
@@ -186,7 +187,7 @@ export const FEATURE_OWNER = {
namespace: "owner",
docLinks: {
sdk: "sdk.owner",
contracts: "Ownable",
contracts: "ownable",
},
abis: [IOwnableAbi],
features: {},
@@ -209,7 +210,8 @@ export const FEATURE_PACK_VRF = {
namespace: "pack.vrf",
docLinks: {
sdk: "sdk.packvrf",
contracts: "IPackVRFDirect",
//TODO
contracts: "",
},
abis: [IPackVRFAbi],
features: {},
@@ -220,7 +222,8 @@ export const FEATURE_PLUGIN_ROUTER = {
namespace: "plugin.router",
docLinks: {
sdk: "sdk.pluginrouter",
contracts: "IRouter",
//TODO
contracts: "",
},
abis: [getAllPluginsAbi],
features: {},
@@ -231,6 +234,7 @@ export const FEATURE_EXTENSION_ROUTER = {
namespace: "extension.router",
docLinks: {
sdk: "",
//TODO
contracts: "",
},
abis: [getAllExtensionsAbi],
+8 -3
View File
@@ -42,9 +42,14 @@ export const AddressOrEnsSchema = z.union([AddressSchema, EnsSchema], {
invalid_type_error: "Provided value was not a valid address or ENS name",
});
export const RawDateSchema = z.date().transform((i) => {
return BigNumber.from(Math.floor(i.getTime() / 1000));
});
export const RawDateSchema = z.union([
z.date().transform((i) => {
return BigNumber.from(Math.floor(i.getTime() / 1000));
}),
z.number().transform((i) => {
return BigNumber.from(i);
}),
]);
/**
* Default to now
+1 -1
View File
@@ -247,7 +247,7 @@ describe("Custom Contracts", async () => {
try {
c.roles.get("admin");
} catch (e) {
expectError(e, "contract does not implement the 'Permissions' Extension");
expectError(e, "contract does not implement the 'permissions' Extension");
}
});
+9
View File
@@ -1,5 +1,14 @@
# @thirdweb-dev/unity-js-bridge
## 0.2.23
### Patch Changes
- Updated dependencies [[`1547d76c`](https://github.com/thirdweb-dev/js/commit/1547d76cce52265076c347599014f578c1de6152), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d), [`1b8f812f`](https://github.com/thirdweb-dev/js/commit/1b8f812fb8c910d91fb7535d6446a0b6fc6b2310)]:
- @thirdweb-dev/sdk@3.10.8
- @thirdweb-dev/wallets@0.2.14
- @thirdweb-dev/auth@3.0.13
## 0.2.22
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/unity-js-bridge",
"version": "0.2.22",
"version": "0.2.23",
"main": "dist/thirdweb-unity-bridge.js",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/unity-js-bridge",
"license": "Apache-2.0",
+9
View File
@@ -1,5 +1,14 @@
# @thirdweb-dev/wallets
## 0.2.14
### Patch Changes
- [#870](https://github.com/thirdweb-dev/js/pull/870) [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d) Thanks [@jnsdls](https://github.com/jnsdls)! - fix crash during SSR when "window" is undefined
- Updated dependencies [[`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
- @thirdweb-dev/chains@0.1.11
## 0.2.13
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/wallets",
"version": "0.2.13",
"version": "0.2.14",
"main": "dist/thirdweb-dev-wallets.cjs.js",
"module": "dist/thirdweb-dev-wallets.esm.js",
"types": "dist/thirdweb-dev-wallets.cjs.d.ts",
@@ -79,8 +79,8 @@ export class InjectedConnector extends Connector<
shimDisconnect: true,
shimChainChangedDisconnect: true,
getProvider: () => {
if (assertWindowEthereum(window)) {
return window.ethereum;
if (assertWindowEthereum(globalThis.window)) {
return globalThis.window.ethereum;
}
},
};
+123 -96
View File
@@ -212,6 +212,9 @@ importers:
packages/cli:
dependencies:
'@thirdweb-dev/chains':
specifier: workspace:*
version: link:../chains
'@thirdweb-dev/sdk':
specifier: workspace:*
version: link:../sdk
@@ -381,13 +384,13 @@ importers:
dependencies:
'@typescript-eslint/eslint-plugin':
specifier: ^5.33.0
version: 5.55.0(@typescript-eslint/[email protected])([email protected])(typescript@5.0.3)
version: 5.55.0(@typescript-eslint/[email protected])([email protected])(typescript@4.9.5)
'@typescript-eslint/parser':
specifier: ^5.33.0
version: 5.55.0([email protected])(typescript@5.0.3)
version: 5.55.0([email protected])(typescript@4.9.5)
eslint-config-next:
specifier: 13.2.4
version: 13.2.4([email protected])(typescript@5.0.3)
version: 13.2.4([email protected])(typescript@4.9.5)
eslint-config-prettier:
specifier: ^8.3.0
version: 8.7.0([email protected])
@@ -1258,7 +1261,7 @@ importers:
version: 18.2.0([email protected])
react-scripts:
specifier: ^5
version: 5.0.1(@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@5.0.3)
version: 5.0.1(@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@4.9.5)
devDependencies:
'@playwright/test':
specifier: 1.31.2
@@ -2441,7 +2444,7 @@ packages:
'@babel/helper-annotate-as-pure': 7.18.6
'@babel/helper-environment-visitor': 7.18.9
'@babel/helper-wrap-function': 7.20.5
'@babel/types': 7.21.4
'@babel/types': 7.21.3
transitivePeerDependencies:
- supports-color
@@ -3109,7 +3112,6 @@ packages:
dependencies:
'@babel/core': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
dev: false
/@babel/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==}
@@ -4041,6 +4043,22 @@ packages:
transitivePeerDependencies:
- supports-color
/@babel/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-1J4dhrw1h1PqnNNpzwxQ2UBymJUF8KuPjAAnlLwZcGhHAIqUigFW7cdK6GHoB64ubY4qXQNYknoUeks4Wz7CUA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.21.4
'@babel/helper-module-imports': 7.21.4
'@babel/helper-plugin-utils': 7.20.2
babel-plugin-polyfill-corejs2: 0.3.3(@babel/[email protected])
babel-plugin-polyfill-corejs3: 0.6.0(@babel/[email protected])
babel-plugin-polyfill-regenerator: 0.4.1(@babel/[email protected])
semver: 6.3.0
transitivePeerDependencies:
- supports-color
/@babel/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==}
engines: {node: '>=6.9.0'}
@@ -6737,7 +6755,7 @@ packages:
chalk: 4.1.2
convert-source-map: 1.9.0
fast-json-stable-stringify: 2.1.0
graceful-fs: 4.2.10
graceful-fs: 4.2.11
jest-haste-map: 27.5.1
jest-regex-util: 27.5.1
jest-util: 27.5.1
@@ -11657,7 +11675,7 @@ packages:
- supports-color
dev: true
/@typescript-eslint/[email protected](@typescript-eslint/[email protected])([email protected])(typescript@5.0.3):
/@typescript-eslint/[email protected](@typescript-eslint/[email protected])([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-IZGc50rtbjk+xp5YQoJvmMPmJEYoC53SiKPXyqWfv15XoD2Y5Kju6zN0DwlmaGJp1Iw33JsWJcQ7nw0lGCGjVg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -11669,29 +11687,29 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.4.0
'@typescript-eslint/parser': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/parser': 5.55.0([email protected])(typescript@4.9.5)
'@typescript-eslint/scope-manager': 5.55.0
'@typescript-eslint/type-utils': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/type-utils': 5.55.0([email protected])(typescript@4.9.5)
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@4.9.5)
debug: 4.3.4([email protected])
eslint: 8.37.0
grapheme-splitter: 1.0.4
ignore: 5.2.4
natural-compare-lite: 1.4.0
semver: 7.3.8
tsutils: 3.21.0(typescript@5.0.3)
typescript: 5.0.3
tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: false
/@typescript-eslint/[email protected]([email protected])(typescript@5.0.3):
/@typescript-eslint/[email protected]([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-3ZqXIZhdGyGQAIIGATeMtg7prA6VlyxGtcy5hYIR/3qUqp3t18pWWUYhL9mpsDm7y8F9mr3ISMt83TiqCt7OPQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@4.9.5)
eslint: 8.37.0
transitivePeerDependencies:
- supports-color
@@ -11717,7 +11735,7 @@ packages:
transitivePeerDependencies:
- supports-color
/@typescript-eslint/[email protected]([email protected])(typescript@5.0.3):
/@typescript-eslint/[email protected]([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-ppvmeF7hvdhUUZWSd2EEWfzcFkjJzgNQzVST22nzg958CR+sphy8A6K7LXQZd6V75m1VKjp+J4g/PCEfSCmzhw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -11729,10 +11747,10 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.55.0
'@typescript-eslint/types': 5.55.0
'@typescript-eslint/typescript-estree': 5.55.0(typescript@5.0.3)
'@typescript-eslint/typescript-estree': 5.55.0(typescript@4.9.5)
debug: 4.3.4([email protected])
eslint: 8.37.0
typescript: 5.0.3
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: false
@@ -11764,7 +11782,7 @@ packages:
- supports-color
dev: true
/@typescript-eslint/[email protected]([email protected])(typescript@5.0.3):
/@typescript-eslint/[email protected]([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-ObqxBgHIXj8rBNm0yh8oORFrICcJuZPZTqtAFh0oZQyr5DnAHZWfyw54RwpEEH+fD8suZaI0YxvWu5tYE/WswA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -11774,12 +11792,12 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 5.55.0(typescript@5.0.3)
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/typescript-estree': 5.55.0(typescript@4.9.5)
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@4.9.5)
debug: 4.3.4([email protected])
eslint: 8.37.0
tsutils: 3.21.0(typescript@5.0.3)
typescript: 5.0.3
tsutils: 3.21.0(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
dev: false
@@ -11808,27 +11826,6 @@ packages:
transitivePeerDependencies:
- supports-color
/@typescript-eslint/[email protected]([email protected]):
resolution: {integrity: sha512-I7X4A9ovA8gdpWMpr7b1BN9eEbvlEtWhQvpxp/yogt48fy9Lj3iE3ild/1H3jKBBIYj5YYJmS2+9ystVhC7eaQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 5.55.0
'@typescript-eslint/visitor-keys': 5.55.0
debug: 4.3.4([email protected])
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.8
tsutils: 3.21.0([email protected])
typescript: 5.0.3
transitivePeerDependencies:
- supports-color
dev: false
/@typescript-eslint/[email protected]([email protected])([email protected]):
resolution: {integrity: sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -11849,7 +11846,7 @@ packages:
- typescript
dev: true
/@typescript-eslint/[email protected]([email protected])(typescript@5.0.3):
/@typescript-eslint/[email protected]([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-FkW+i2pQKcpDC3AY6DU54yl8Lfl14FVGYDgBTyGKB75cCwV3KpkpTMFi9d9j2WAJ4271LR2HeC5SEWF/CZmmfw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -11860,7 +11857,7 @@ packages:
'@types/semver': 7.3.13
'@typescript-eslint/scope-manager': 5.55.0
'@typescript-eslint/types': 5.55.0
'@typescript-eslint/typescript-estree': 5.55.0(typescript@5.0.3)
'@typescript-eslint/typescript-estree': 5.55.0(typescript@4.9.5)
eslint: 8.37.0
eslint-scope: 5.1.1
semver: 7.3.8
@@ -16768,7 +16765,7 @@ packages:
- supports-color
dev: true
/[email protected]([email protected])(typescript@5.0.3):
/[email protected]([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-lunIBhsoeqw6/Lfkd6zPt25w1bn0znLA/JCL+au1HoEpSb4/PpsOYsYtgV/q+YPsoKIOzFyU5xnb04iZnXjUvg==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
@@ -16779,7 +16776,7 @@ packages:
dependencies:
'@next/eslint-plugin-next': 13.2.4
'@rushstack/eslint-patch': 1.2.0
'@typescript-eslint/parser': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/parser': 5.55.0([email protected])(typescript@4.9.5)
eslint: 8.37.0
eslint-import-resolver-node: 0.3.7
eslint-import-resolver-typescript: 3.5.3([email protected])([email protected])
@@ -16787,7 +16784,7 @@ packages:
eslint-plugin-jsx-a11y: 6.7.1([email protected])
eslint-plugin-react: 7.32.2([email protected])
eslint-plugin-react-hooks: 4.6.0([email protected])
typescript: 5.0.3
typescript: 4.9.5
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
@@ -16811,7 +16808,7 @@ packages:
eslint: 8.37.0
dev: false
/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@5.0.3):
/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -16824,19 +16821,19 @@ packages:
'@babel/core': 7.21.3
'@babel/eslint-parser': 7.21.3(@babel/[email protected])([email protected])
'@rushstack/eslint-patch': 1.2.0
'@typescript-eslint/eslint-plugin': 5.55.0(@typescript-eslint/[email protected])([email protected])(typescript@5.0.3)
'@typescript-eslint/parser': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/eslint-plugin': 5.55.0(@typescript-eslint/[email protected])([email protected])(typescript@4.9.5)
'@typescript-eslint/parser': 5.55.0([email protected])(typescript@4.9.5)
babel-preset-react-app: 10.0.1
confusing-browser-globals: 1.0.11
eslint: 8.37.0
eslint-plugin-flowtype: 8.0.3(@babel/[email protected])(@babel/[email protected])([email protected])
eslint-plugin-import: 2.27.5(@typescript-eslint/[email protected])([email protected])([email protected])
eslint-plugin-jest: 25.7.0(@typescript-eslint/[email protected])([email protected])([email protected])(typescript@5.0.3)
eslint-plugin-jest: 25.7.0(@typescript-eslint/[email protected])([email protected])([email protected])(typescript@4.9.5)
eslint-plugin-jsx-a11y: 6.7.1([email protected])
eslint-plugin-react: 7.32.2([email protected])
eslint-plugin-react-hooks: 4.6.0([email protected])
eslint-plugin-testing-library: 5.10.2([email protected])(typescript@5.0.3)
typescript: 5.0.3
eslint-plugin-testing-library: 5.10.2([email protected])(typescript@4.9.5)
typescript: 4.9.5
transitivePeerDependencies:
- '@babel/plugin-syntax-flow'
- '@babel/plugin-transform-react-jsx'
@@ -17009,7 +17006,7 @@ packages:
humps: 2.0.1
dev: true
/[email protected](@typescript-eslint/[email protected])([email protected])([email protected])(typescript@5.0.3):
/[email protected](@typescript-eslint/[email protected])([email protected])([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
peerDependencies:
@@ -17022,8 +17019,8 @@ packages:
jest:
optional: true
dependencies:
'@typescript-eslint/eslint-plugin': 5.55.0(@typescript-eslint/[email protected])([email protected])(typescript@5.0.3)
'@typescript-eslint/experimental-utils': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/eslint-plugin': 5.55.0(@typescript-eslint/[email protected])([email protected])(typescript@4.9.5)
'@typescript-eslint/experimental-utils': 5.55.0([email protected])(typescript@4.9.5)
eslint: 8.37.0
jest: 27.5.1
transitivePeerDependencies:
@@ -17202,13 +17199,13 @@ packages:
string.prototype.matchall: 4.0.8
dev: false
/[email protected]([email protected])(typescript@5.0.3):
/[email protected]([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-f1DmDWcz5SDM+IpCkEX0lbFqrrTs8HRsEElzDEqN/EBI0hpRj8Cns5+IVANXswE8/LeybIJqPAOQIFu2j5Y5sw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'}
peerDependencies:
eslint: ^7.5.0 || ^8.0.0
dependencies:
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@5.0.3)
'@typescript-eslint/utils': 5.55.0([email protected])(typescript@4.9.5)
eslint: 8.37.0
transitivePeerDependencies:
- supports-color
@@ -18306,7 +18303,7 @@ packages:
signal-exit: 3.0.7
dev: true
/[email protected]([email protected])(typescript@5.0.3)([email protected]):
/[email protected]([email protected])(typescript@4.9.5)([email protected]):
resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
engines: {node: '>=10', yarn: '>=1.0.0'}
peerDependencies:
@@ -18334,7 +18331,7 @@ packages:
schema-utils: 2.7.0
semver: 7.3.8
tapable: 1.1.3
typescript: 5.0.3
typescript: 4.9.5
webpack: 5.76.2
dev: false
@@ -20489,7 +20486,7 @@ packages:
'@types/node': 18.15.11
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.10
graceful-fs: 4.2.11
jest-regex-util: 27.5.1
jest-serializer: 27.5.1
jest-util: 27.5.1
@@ -20856,7 +20853,7 @@ packages:
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
'@types/node': 18.15.11
graceful-fs: 4.2.10
graceful-fs: 4.2.11
/[email protected]:
resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==}
@@ -20927,7 +20924,7 @@ packages:
'@types/node': 18.15.11
chalk: 4.1.2
ci-info: 3.8.0
graceful-fs: 4.2.10
graceful-fs: 4.2.11
picomatch: 2.3.1
/[email protected]:
@@ -21408,7 +21405,7 @@ packages:
dependencies:
universalify: 2.0.0
optionalDependencies:
graceful-fs: 4.2.10
graceful-fs: 4.2.11
/[email protected]:
resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==}
@@ -22029,7 +22026,7 @@ packages:
/[email protected]:
resolution: {integrity: sha512-DlYwg9wwYIZTHtic7dyD4BP0SDftoltZ3clma76nHu43blMWsCnrImHeHsAVne3XsQ+RJaSRxhN5nkG2VyVHwA==}
dependencies:
'@babel/core': 7.21.3
'@babel/core': 7.21.4
hermes-parser: 0.8.0
metro-source-map: 0.73.9
nullthrows: 1.1.1
@@ -22375,6 +22372,52 @@ packages:
transitivePeerDependencies:
- supports-color
/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw==}
peerDependencies:
'@babel/core': '*'
dependencies:
'@babel/core': 7.21.4
'@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/[email protected])
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/[email protected])
'@babel/plugin-proposal-export-default-from': 7.18.10(@babel/[email protected])
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/[email protected])
'@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/[email protected])
'@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/[email protected])
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/[email protected])
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/[email protected])
'@babel/plugin-syntax-export-default-from': 7.18.6(@babel/[email protected])
'@babel/plugin-syntax-flow': 7.21.4(@babel/[email protected])
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/[email protected])
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/[email protected])
'@babel/plugin-transform-arrow-functions': 7.20.7(@babel/[email protected])
'@babel/plugin-transform-async-to-generator': 7.20.7(@babel/[email protected])
'@babel/plugin-transform-block-scoping': 7.21.0(@babel/[email protected])
'@babel/plugin-transform-classes': 7.21.0(@babel/[email protected])
'@babel/plugin-transform-computed-properties': 7.20.7(@babel/[email protected])
'@babel/plugin-transform-destructuring': 7.21.3(@babel/[email protected])
'@babel/plugin-transform-flow-strip-types': 7.21.0(@babel/[email protected])
'@babel/plugin-transform-function-name': 7.18.9(@babel/[email protected])
'@babel/plugin-transform-literals': 7.18.9(@babel/[email protected])
'@babel/plugin-transform-modules-commonjs': 7.21.2(@babel/[email protected])
'@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/[email protected])
'@babel/plugin-transform-parameters': 7.21.3(@babel/[email protected])
'@babel/plugin-transform-react-display-name': 7.18.6(@babel/[email protected])
'@babel/plugin-transform-react-jsx': 7.21.0(@babel/[email protected])
'@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/[email protected])
'@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/[email protected])
'@babel/plugin-transform-runtime': 7.21.4(@babel/[email protected])
'@babel/plugin-transform-shorthand-properties': 7.18.6(@babel/[email protected])
'@babel/plugin-transform-spread': 7.20.7(@babel/[email protected])
'@babel/plugin-transform-sticky-regex': 7.18.6(@babel/[email protected])
'@babel/plugin-transform-template-literals': 7.18.9(@babel/[email protected])
'@babel/plugin-transform-typescript': 7.21.3(@babel/[email protected])
'@babel/plugin-transform-unicode-regex': 7.18.6(@babel/[email protected])
'@babel/template': 7.20.7
react-refresh: 0.4.3
transitivePeerDependencies:
- supports-color
/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-oH/LCCJPauteAE28c0KJAiSrkV+1VJbU0PwA9UwaWnle+qevs/clpKQ8LrIr33YbBj4CiI1kFoVRuNRt5h4NFg==}
peerDependencies:
@@ -22512,7 +22555,7 @@ packages:
/[email protected]:
resolution: {integrity: sha512-r9NeiqMngmooX2VOKLJVQrMuV7PAydbqst5bFhdVBPcFpZkxxqyzjzo+kzrszGy2UpSQBZr2P1L6OMjLHwQwfQ==}
dependencies:
'@babel/core': 7.21.3
'@babel/core': 7.21.4
'@babel/generator': 7.21.4
'@babel/template': 7.20.7
'@babel/traverse': 7.21.4
@@ -22545,11 +22588,11 @@ packages:
/[email protected]:
resolution: {integrity: sha512-Rq4b489sIaTUENA+WCvtu9yvlT/C6zFMWhU4sq+97W29Zj0mPBjdk+qGT5n1ZBgtBIJzZWt1KxeYuc17f4aYtQ==}
dependencies:
'@babel/core': 7.21.3
'@babel/core': 7.21.4
'@babel/generator': 7.21.4
'@babel/parser': 7.21.4
'@babel/types': 7.21.4
babel-preset-fbjs: 3.4.0(@babel/[email protected].3)
babel-preset-fbjs: 3.4.0(@babel/[email protected].4)
metro: 0.73.9
metro-babel-transformer: 0.73.9
metro-cache: 0.73.9
@@ -22629,7 +22672,7 @@ packages:
hasBin: true
dependencies:
'@babel/code-frame': 7.21.4
'@babel/core': 7.21.3
'@babel/core': 7.21.4
'@babel/generator': 7.21.4
'@babel/parser': 7.21.4
'@babel/template': 7.20.7
@@ -22660,7 +22703,7 @@ packages:
metro-inspector-proxy: 0.73.9
metro-minify-terser: 0.73.9
metro-minify-uglify: 0.73.9
metro-react-native-babel-preset: 0.73.9(@babel/[email protected].3)
metro-react-native-babel-preset: 0.73.9(@babel/[email protected].4)
metro-resolver: 0.73.9
metro-runtime: 0.73.9
metro-source-map: 0.73.9
@@ -25516,7 +25559,7 @@ packages:
whatwg-fetch: 3.6.2
dev: false
/[email protected]([email protected])(typescript@5.0.3)([email protected]):
/[email protected]([email protected])(typescript@4.9.5)([email protected]):
resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
engines: {node: '>=14'}
peerDependencies:
@@ -25535,7 +25578,7 @@ packages:
escape-string-regexp: 4.0.0
filesize: 8.0.7
find-up: 5.0.0
fork-ts-checker-webpack-plugin: 6.5.3([email protected])(typescript@5.0.3)([email protected])
fork-ts-checker-webpack-plugin: 6.5.3([email protected])(typescript@4.9.5)([email protected])
global-modules: 2.0.0
globby: 11.1.0
gzip-size: 6.0.0
@@ -25550,7 +25593,7 @@ packages:
shell-quote: 1.8.0
strip-ansi: 6.0.1
text-table: 0.2.0
typescript: 5.0.3
typescript: 4.9.5
webpack: 5.76.2
transitivePeerDependencies:
- eslint
@@ -25942,7 +25985,7 @@ packages:
use-sidecar: 1.1.2(@types/[email protected])([email protected])
dev: false
/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@5.0.3):
/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@4.9.5):
resolution: {integrity: sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==}
engines: {node: '>=14.0.0'}
hasBin: true
@@ -25970,7 +26013,7 @@ packages:
dotenv: 10.0.0
dotenv-expand: 5.1.0
eslint: 8.37.0
eslint-config-react-app: 7.0.1(@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@5.0.3)
eslint-config-react-app: 7.0.1(@babel/[email protected])(@babel/[email protected])([email protected])([email protected])(typescript@4.9.5)
eslint-webpack-plugin: 3.2.0([email protected])([email protected])
file-loader: 6.2.0([email protected])
fs-extra: 10.1.0
@@ -25988,7 +26031,7 @@ packages:
prompts: 2.4.2
react: 18.2.0
react-app-polyfill: 3.0.0
react-dev-utils: 12.0.1([email protected])(typescript@5.0.3)([email protected])
react-dev-utils: 12.0.1([email protected])(typescript@4.9.5)([email protected])
react-refresh: 0.11.0
resolve: 1.22.1
resolve-url-loader: 4.0.0
@@ -25998,7 +26041,7 @@ packages:
style-loader: 3.3.2([email protected])
tailwindcss: 3.2.7([email protected])
terser-webpack-plugin: 5.3.7([email protected])
typescript: 5.0.3
typescript: 4.9.5
webpack: 5.76.2
webpack-dev-server: 4.12.0([email protected])
webpack-manifest-plugin: 4.1.1([email protected])
@@ -28361,16 +28404,6 @@ packages:
tslib: 1.14.1
typescript: 4.9.5
/[email protected]([email protected]):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
typescript: 5.0.3
dev: false
/[email protected]:
resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==}
dev: true
@@ -28580,12 +28613,6 @@ packages:
engines: {node: '>=4.2.0'}
hasBin: true
/[email protected]:
resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==}
engines: {node: '>=12.20'}
hasBin: true
dev: false
/[email protected]:
resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==}
engines: {node: '>=8'}
@@ -29143,7 +29170,7 @@ packages:
engines: {node: '>=10.13.0'}
dependencies:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.10
graceful-fs: 4.2.11
dev: false
/[email protected]: