Compare commits

..
Author SHA1 Message Date
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
1932d601c1 Version Packages (#2474)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-03-14 01:09:17 -07:00
Joaquim VergesandGitHub 846a3503fe [SDK] Enforce minimum for maxPriorityFeePerGas (#2483) 2024-03-14 07:44:14 +00:00
Jonas DanielsandGitHub 3e7f9cb946 feat(sdk): add support for overriding default admin (#2479) 2024-03-14 01:14:21 +00:00
iketwandGitHub 83526c519a Only pass bundleId if defined (#2472) 2024-03-13 20:13:11 +00:00
Joaquim VergesandGitHub 2e01627c99 [Chains] sync chains (#2464) 2024-03-13 19:11:06 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
7b52c6bba0 Version Packages (#2467)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-03-13 11:56:41 -07:00
Edward SunandGitHub e024d78ed0 Add pay to usageEventSchema (#2465) 2024-03-13 05:02:40 +00:00
Joaquim VergesandGitHub a2002d1637 [SDK] Better return type for getProofsForAllowListEntry (#2469) 2024-03-13 01:20:22 +00:00
FirekeeperandGitHub 607ab7e860 [Unity] Expose SW isDeployed (#2466) 2024-03-12 22:37:02 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
f27989741a Version Packages (#2461)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-03-12 12:55:05 -07:00
Joaquim VergesandGitHub b2be63ada4 handle l2 estimations when forcing gasLimit (#2457) 2024-03-12 19:37:02 +00:00
Winston YeoandGitHub eee200f8d4 chore: whitelist embedded-wallet.thirdweb.com in service utils (#2453) 2024-03-12 15:45:09 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
817ab2249f Version Packages (#2446)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-11 17:22:24 -07:00
Joaquim VergesandGitHub 173777ade4 [SDK] update OP SDK to fix pnpm preinstall script issue (#2455) 2024-03-11 23:53:16 +00:00
Manan TankandGitHub 838233075a [react] Fix onConnect called multiple times in EmbeddedWalletSocialLogin (#2447) 2024-03-11 19:03:32 +00:00
FirekeeperandGitHub cabfc29119 [Smart Wallet] Use bundler eth_getUserOperationReceipt instead of rpc eth_getLogs (#2443) 2024-03-11 17:12:35 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f02570db88 Version Packages (#2442)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-08 16:56:41 -08:00
Joaquim VergesandGitHub c6b025e844 [SDK] handle estimateGasCost for OP chains (#2441) 2024-03-08 16:49:28 -08:00
Joaquim VergesandGitHub 332a14552b [Wallets] make accountInfo/factoryInfo internal props optional in SmartWalletConfig (#2439) 2024-03-09 00:45:04 +00:00
FirekeeperandGitHub c894270401 [Smart Wallet] try fetch sw abi if deployed (#2440) 2024-03-09 00:02:46 +00:00
Joaquim VergesandGitHub 595815dc3e Update README.md (#2438)
Signed-off-by: Joaquim Verges <[email protected]>
2024-03-08 12:42:35 -08:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
b959cafccc Version Packages (#2435)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-03-08 09:21:46 -08:00
Edward SunandGitHub 4cf0aede0e Update service-utils change to patch (#2434) 2024-03-08 01:53:20 +00:00
Edward SunandGitHub 6cf298a29a Add pay to Services list (#2431) 2024-03-08 01:15:42 +00:00
84 changed files with 1880 additions and 884 deletions
+4 -11
View File
@@ -5,7 +5,7 @@
<br />
</p>
<h1 align="center"><a href='https://thirdweb.com/'>thirdweb</a> JavaScript/TypeScript SDK</h1>
<h1 align="center"><a href='https://thirdweb.com/'>thirdweb</a> TypeScript SDK</h1>
<p align="center">
<a href="https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml">
@@ -18,6 +18,9 @@
<p align="center"><strong>All-in-one web3 SDK for Browser, Node and Mobile apps</strong></p>
> [!IMPORTANT]
> We rewrote the thirdweb SDK from scratch for performance! Head over to the [Beta version unified SDK](https://github.com/thirdweb-dev/js/tree/beta/packages/thirdweb).
## Features
- Support for React & React-Native
@@ -29,16 +32,6 @@
- High level contract extensions for interacting with common standards
- Automatic ABI resolution
## Unified SDK (Beta)
We now have a new version of the SDK available in beta:
Please refer to the following resources to get started:
- [GitHub Branch](https://github.com/thirdweb-dev/js/tree/beta)
- [Engineering Blog](https://blog.thirdweb.com/changelog/introducing-the-unified-thirdweb-sdk/)
- [Documentation](https://portal.thirdweb.com/typescript/v5)
## Library Comparison
| | thirdweb | Wagmi | Viem | Ethers@6 |
+35
View File
@@ -1,5 +1,40 @@
# @thirdweb-dev/auth
## 4.1.43
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.21
## 4.1.42
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.20
## 4.1.41
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.19
## 4.1.40
### Patch Changes
- Updated dependencies [[`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d)]:
- @thirdweb-dev/wallets@2.4.18
## 4.1.39
### Patch Changes
- Updated dependencies [[`c894270`](https://github.com/thirdweb-dev/js/commit/c894270401850575d1a4df73e16198177b46477a), [`332a145`](https://github.com/thirdweb-dev/js/commit/332a14552bf95e13e5220b1bd73414f000088568)]:
- @thirdweb-dev/wallets@2.4.17
## 4.1.38
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "4.1.38",
"version": "4.1.43",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
@@ -61,7 +61,7 @@
"lint": "eslint src/ && bunx publint --strict --level warning",
"fix": "eslint src/ --fix",
"clean": "rm -rf dist/ && rm -rf node_modules/",
"test": "mocha --config './test/.mocharc.json' --timeout 30000 --parallel './test/**/*.test.ts'",
"test": "mocha --config './test/.mocharc.json' --timeout 240000 --parallel './test/**/*.test.ts'",
"push": "yalc push"
},
"preconstruct": {
+6
View File
@@ -1,5 +1,11 @@
# @thirdweb-dev/chains
## 0.1.79
### Patch Changes
- [#2464](https://github.com/thirdweb-dev/js/pull/2464) [`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Sync chains
## 0.1.78
### Patch Changes
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 20519,
"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": "QaUser4113 Testnet",
"nativeCurrency": {
"name": "QaUser4113 Testnet Token",
"symbol": "FYP",
"decimals": 18
},
"networkId": 20519,
"redFlags": [],
"rpc": [
"https://20519.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser4113 Testnet",
"slug": "qauser4113-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 29645,
"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": "QaUser6355 Testnet",
"nativeCurrency": {
"name": "QaUser6355 Testnet Token",
"symbol": "MQO",
"decimals": 18
},
"networkId": 29645,
"redFlags": [],
"rpc": [
"https://29645.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser6355 Testnet",
"slug": "qauser6355-testnet",
"testnet": true
} as const satisfies Chain;
+3 -1
View File
@@ -11,6 +11,7 @@ export default {
],
"faucets": [],
"features": [],
"infoURL": "https://crossfi.org/",
"name": "CrossFi Testnet",
"nativeCurrency": {
"name": "XFI",
@@ -21,9 +22,10 @@ export default {
"redFlags": [],
"rpc": [
"https://4157.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.testnet.ms/"
"https://rpc.testnet.ms"
],
"shortName": "XFI",
"slip44": 1,
"slug": "crossfi-testnet",
"testnet": true,
"title": "https://scan.testnet.ms/"
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 45544,
"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": "QaUser6609 Testnet",
"nativeCurrency": {
"name": "QaUser6609 Testnet Token",
"symbol": "NHU",
"decimals": 18
},
"networkId": 45544,
"redFlags": [],
"rpc": [
"https://45544.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser6609 Testnet",
"slug": "qauser6609-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 50528,
"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": "QaUser9606 Testnet",
"nativeCurrency": {
"name": "QaUser9606 Testnet Token",
"symbol": "JTW",
"decimals": 18
},
"networkId": 50528,
"redFlags": [],
"rpc": [
"https://50528.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser9606 Testnet",
"slug": "qauser9606-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 59944,
"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": "QaUser7920 Testnet",
"nativeCurrency": {
"name": "QaUser7920 Testnet Token",
"symbol": "USH",
"decimals": 18
},
"networkId": 59944,
"redFlags": [],
"rpc": [
"https://59944.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser7920 Testnet",
"slug": "qauser7920-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 61258,
"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": "QaUser7821 Testnet",
"nativeCurrency": {
"name": "QaUser7821 Testnet Token",
"symbol": "WND",
"decimals": 18
},
"networkId": 61258,
"redFlags": [],
"rpc": [
"https://61258.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser7821 Testnet",
"slug": "qauser7821-testnet",
"testnet": true
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"chain": "KEC",
"chainId": 61406,
"explorers": [
{
"name": "KEC SCAN",
"url": "https://explorer.kaichain.net/",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmbfRP2Ugo66pw6Mn8m9ChP4UE6Rn5nobtDo7Vy7ej93qA/kaichain%20icon.png",
"width": 512,
"height": 512,
"format": "png"
}
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmbfRP2Ugo66pw6Mn8m9ChP4UE6Rn5nobtDo7Vy7ej93qA/kaichain%20icon.png",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "http://kaichain.net/",
"name": "Kaichain Mainnet",
"nativeCurrency": {
"name": "Kaichain",
"symbol": "KEC",
"decimals": 18
},
"networkId": 61406,
"redFlags": [],
"rpc": [
"https://61406.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.kaichain.net"
],
"shortName": "Kaichain",
"slug": "kaichain",
"testnet": false
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 64361,
"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": "QaUser8734 Testnet",
"nativeCurrency": {
"name": "QaUser8734 Testnet Token",
"symbol": "XPI",
"decimals": 18
},
"networkId": 64361,
"redFlags": [],
"rpc": [
"https://64361.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser8734 Testnet",
"slug": "qauser8734-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 65842,
"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": "QaUser4143 Testnet",
"nativeCurrency": {
"name": "QaUser4143 Testnet Token",
"symbol": "NHU",
"decimals": 18
},
"networkId": 65842,
"redFlags": [],
"rpc": [
"https://65842.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser4143 Testnet",
"slug": "qauser4143-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 66904,
"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": "QaUser1335 Testnet",
"nativeCurrency": {
"name": "QaUser1335 Testnet Token",
"symbol": "KFZ",
"decimals": 18
},
"networkId": 66904,
"redFlags": [],
"rpc": [
"https://66904.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser1335 Testnet",
"slug": "qauser1335-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 67451,
"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": "QaUser6097 Testnet",
"nativeCurrency": {
"name": "QaUser6097 Testnet Token",
"symbol": "NHU",
"decimals": 18
},
"networkId": 67451,
"redFlags": [],
"rpc": [
"https://67451.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser6097 Testnet",
"slug": "qauser6097-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 70341,
"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": "QaUser1957 Testnet",
"nativeCurrency": {
"name": "QaUser1957 Testnet Token",
"symbol": "AKI",
"decimals": 18
},
"networkId": 70341,
"redFlags": [],
"rpc": [
"https://70341.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser1957 Testnet",
"slug": "qauser1957-testnet",
"testnet": true
} as const satisfies Chain;
+13 -1
View File
@@ -6,10 +6,22 @@ export default {
{
"name": "GuapcoinX Explorer",
"url": "http://explorer.guapcoinx.com",
"standard": "none"
"standard": "none",
"icon": {
"url": "ipfs://QmcDTR7982VQKDDz2Mh4fZbnE9hn67MuFPWQv1MimCqPvB",
"width": 800,
"height": 800,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmcDTR7982VQKDDz2Mh4fZbnE9hn67MuFPWQv1MimCqPvB",
"width": 800,
"height": 800,
"format": "png"
},
"infoURL": "https://guapcoin.org/",
"name": "GuapcoinX",
"nativeCurrency": {
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 73677,
"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": "QaUser9318 Testnet",
"nativeCurrency": {
"name": "QaUser9318 Testnet Token",
"symbol": "XUK",
"decimals": 18
},
"networkId": 73677,
"redFlags": [],
"rpc": [
"https://73677.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser9318 Testnet",
"slug": "qauser9318-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 77552,
"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": "QaUser3673 Testnet",
"nativeCurrency": {
"name": "QaUser3673 Testnet Token",
"symbol": "YSI",
"decimals": 18
},
"networkId": 77552,
"redFlags": [],
"rpc": [
"https://77552.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser3673 Testnet",
"slug": "qauser3673-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 80719,
"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": "QaUser4301 Testnet",
"nativeCurrency": {
"name": "QaUser4301 Testnet Token",
"symbol": "NHU",
"decimals": 18
},
"networkId": 80719,
"redFlags": [],
"rpc": [
"https://80719.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser4301 Testnet",
"slug": "qauser4301-testnet",
"testnet": true
} as const satisfies Chain;
+51
View File
@@ -0,0 +1,51 @@
import type { Chain } from "../src/types";
export default {
"chain": "ETH",
"chainId": 810180,
"explorers": [
{
"name": "zkLink Nova Block Explorer",
"url": "https://explorer.zklink.io",
"standard": "EIP3091",
"icon": {
"url": "ipfs://bafkreiaj7b6pdekv3rjuta5wsdvmfdcsat2jftjgozape7wvmyj6d3vjcm",
"width": 512,
"height": 512,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://bafkreiaj7b6pdekv3rjuta5wsdvmfdcsat2jftjgozape7wvmyj6d3vjcm",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://zklink.io",
"name": "zkLink Nova Mainnet",
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"networkId": 810180,
"parent": {
"type": "L2",
"chain": "eip155-59144",
"bridges": [
{
"url": "https://portal.zklink.io"
}
]
},
"rpc": [
"https://810180.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.zklink.io",
"wss://rpc.zklink.io"
],
"shortName": "zklink-nova",
"slip44": 1,
"slug": "zklink-nova",
"testnet": false
} as const satisfies Chain;
+51
View File
@@ -0,0 +1,51 @@
import type { Chain } from "../src/types";
export default {
"chain": "ETH",
"chainId": 810182,
"explorers": [
{
"name": "zkLink Nova Block Explorer",
"url": "https://goerli.explorer.zklink.io",
"standard": "EIP3091",
"icon": {
"url": "ipfs://bafkreiaj7b6pdekv3rjuta5wsdvmfdcsat2jftjgozape7wvmyj6d3vjcm",
"width": 512,
"height": 512,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://bafkreiaj7b6pdekv3rjuta5wsdvmfdcsat2jftjgozape7wvmyj6d3vjcm",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://zklink.io",
"name": "zkLink Nova Goerli Testnet",
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"networkId": 810182,
"parent": {
"type": "L2",
"chain": "eip155-59140",
"bridges": [
{
"url": "https://goerli.portal.zklink.io"
}
]
},
"rpc": [
"https://810182.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://goerli.rpc.zklink.io",
"wss://goerli.rpc.zklink.io"
],
"shortName": "zklink-nova-goerli",
"slip44": 1,
"slug": "zklink-nova-goerli-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 81573,
"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": "QIS0311 Testnet",
"nativeCurrency": {
"name": "QIS0311 Testnet Token",
"symbol": "MVD",
"decimals": 18
},
"networkId": 81573,
"redFlags": [],
"rpc": [
"https://81573.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QIS0311 Testnet",
"slug": "qis0311-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 9872,
"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": "QaUser0507 Testnet",
"nativeCurrency": {
"name": "QaUser0507 Testnet Token",
"symbol": "KQA",
"decimals": 18
},
"networkId": 9872,
"redFlags": [],
"rpc": [
"https://9872.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser0507 Testnet",
"slug": "qauser0507-testnet",
"testnet": true
} as const satisfies Chain;
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/chains",
"version": "0.1.78",
"version": "0.1.79",
"main": "dist/thirdweb-dev-chains.cjs.js",
"module": "dist/thirdweb-dev-chains.esm.js",
"exports": {
+1 -1
View File
@@ -96,7 +96,7 @@ ${exports.join("\n")}
export * from "./types";
export * from "./utils";
export * from "./async";
export const defaultChains = [c1, c5, c8453, c84531, c137, c80001, c42161, c421613, c10, c420, c56, c97, c250, c4002, c43114, c43113, c1337];
export const defaultChains = [c1, c11155111, c8453, c84532, c137, c80001, c42161, c421614, c10, c11155420, c56, c97, c250, c4002, c43114, c43113, c1337];
\/**
* @deprecated use \`fetchChains()\` instead
File diff suppressed because one or more lines are too long
+46
View File
@@ -1,5 +1,51 @@
# thirdweb
## 0.13.51
### Patch Changes
- Updated dependencies [[`846a350`](https://github.com/thirdweb-dev/js/commit/846a3503fe4a8d39e92dd318470cefefd3b94c69), [`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697)]:
- @thirdweb-dev/sdk@4.0.46
- @thirdweb-dev/chains@0.1.79
- @thirdweb-dev/wallets@2.4.21
- @thirdweb-dev/auth@4.1.43
## 0.13.50
### Patch Changes
- Updated dependencies [[`a2002d1`](https://github.com/thirdweb-dev/js/commit/a2002d16376c41fffa59daccfd98856aba90a627)]:
- @thirdweb-dev/sdk@4.0.45
- @thirdweb-dev/wallets@2.4.20
- @thirdweb-dev/auth@4.1.42
## 0.13.49
### Patch Changes
- Updated dependencies [[`b2be63a`](https://github.com/thirdweb-dev/js/commit/b2be63ada466ea1784d680ae6244ac047a190103)]:
- @thirdweb-dev/sdk@4.0.44
- @thirdweb-dev/wallets@2.4.19
- @thirdweb-dev/auth@4.1.41
## 0.13.48
### Patch Changes
- Updated dependencies [[`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d), [`173777a`](https://github.com/thirdweb-dev/js/commit/173777ade4ea59cde1c6f25a4654d48b277be9ad)]:
- @thirdweb-dev/wallets@2.4.18
- @thirdweb-dev/sdk@4.0.43
- @thirdweb-dev/auth@4.1.40
## 0.13.47
### Patch Changes
- Updated dependencies [[`c894270`](https://github.com/thirdweb-dev/js/commit/c894270401850575d1a4df73e16198177b46477a), [`332a145`](https://github.com/thirdweb-dev/js/commit/332a14552bf95e13e5220b1bd73414f000088568), [`c6b025e`](https://github.com/thirdweb-dev/js/commit/c6b025e84451341f6f48c0a7c4b5f06b8e49d792)]:
- @thirdweb-dev/wallets@2.4.17
- @thirdweb-dev/sdk@4.0.42
- @thirdweb-dev/auth@4.1.39
## 0.13.46
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "thirdweb",
"main": "dist/cli/index.js",
"version": "0.13.46",
"version": "0.13.51",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
+46
View File
@@ -1,5 +1,51 @@
# @thirdweb-dev/react-core
## 4.4.19
### Patch Changes
- Updated dependencies [[`846a350`](https://github.com/thirdweb-dev/js/commit/846a3503fe4a8d39e92dd318470cefefd3b94c69), [`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697)]:
- @thirdweb-dev/sdk@4.0.46
- @thirdweb-dev/chains@0.1.79
- @thirdweb-dev/wallets@2.4.21
- @thirdweb-dev/auth@4.1.43
## 4.4.18
### Patch Changes
- Updated dependencies [[`a2002d1`](https://github.com/thirdweb-dev/js/commit/a2002d16376c41fffa59daccfd98856aba90a627)]:
- @thirdweb-dev/sdk@4.0.45
- @thirdweb-dev/wallets@2.4.20
- @thirdweb-dev/auth@4.1.42
## 4.4.17
### Patch Changes
- Updated dependencies [[`b2be63a`](https://github.com/thirdweb-dev/js/commit/b2be63ada466ea1784d680ae6244ac047a190103)]:
- @thirdweb-dev/sdk@4.0.44
- @thirdweb-dev/wallets@2.4.19
- @thirdweb-dev/auth@4.1.41
## 4.4.16
### Patch Changes
- Updated dependencies [[`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d), [`173777a`](https://github.com/thirdweb-dev/js/commit/173777ade4ea59cde1c6f25a4654d48b277be9ad)]:
- @thirdweb-dev/wallets@2.4.18
- @thirdweb-dev/sdk@4.0.43
- @thirdweb-dev/auth@4.1.40
## 4.4.15
### Patch Changes
- Updated dependencies [[`c894270`](https://github.com/thirdweb-dev/js/commit/c894270401850575d1a4df73e16198177b46477a), [`332a145`](https://github.com/thirdweb-dev/js/commit/332a14552bf95e13e5220b1bd73414f000088568), [`c6b025e`](https://github.com/thirdweb-dev/js/commit/c6b025e84451341f6f48c0a7c4b5f06b8e49d792)]:
- @thirdweb-dev/wallets@2.4.17
- @thirdweb-dev/sdk@4.0.42
- @thirdweb-dev/auth@4.1.39
## 4.4.14
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-core",
"version": "4.4.14",
"version": "4.4.19",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-core",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
Binary file not shown.
+10
View File
@@ -1,5 +1,15 @@
# @thirdweb-dev/react-native-compat
## 0.7.16
## 0.7.15
## 0.7.14
## 0.7.13
## 0.7.12
## 0.7.11
## 0.7.10
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@thirdweb-dev/react-native-compat",
"description": "Shims for Thirdweb in React Native Projects",
"version": "0.7.11",
"version": "0.7.16",
"author": "thirdweb eng <[email protected]>",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native-compat",
"license": "Apache-2.0",
+46
View File
@@ -1,5 +1,51 @@
# @thirdweb-dev/react-native
## 0.7.16
### Patch Changes
- Updated dependencies [[`846a350`](https://github.com/thirdweb-dev/js/commit/846a3503fe4a8d39e92dd318470cefefd3b94c69), [`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697)]:
- @thirdweb-dev/sdk@4.0.46
- @thirdweb-dev/chains@0.1.79
- @thirdweb-dev/react-core@4.4.19
- @thirdweb-dev/wallets@2.4.21
## 0.7.15
### Patch Changes
- Updated dependencies [[`a2002d1`](https://github.com/thirdweb-dev/js/commit/a2002d16376c41fffa59daccfd98856aba90a627)]:
- @thirdweb-dev/sdk@4.0.45
- @thirdweb-dev/react-core@4.4.18
- @thirdweb-dev/wallets@2.4.20
## 0.7.14
### Patch Changes
- Updated dependencies [[`b2be63a`](https://github.com/thirdweb-dev/js/commit/b2be63ada466ea1784d680ae6244ac047a190103)]:
- @thirdweb-dev/sdk@4.0.44
- @thirdweb-dev/react-core@4.4.17
- @thirdweb-dev/wallets@2.4.19
## 0.7.13
### Patch Changes
- Updated dependencies [[`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d), [`173777a`](https://github.com/thirdweb-dev/js/commit/173777ade4ea59cde1c6f25a4654d48b277be9ad)]:
- @thirdweb-dev/wallets@2.4.18
- @thirdweb-dev/sdk@4.0.43
- @thirdweb-dev/react-core@4.4.16
## 0.7.12
### Patch Changes
- Updated dependencies [[`c894270`](https://github.com/thirdweb-dev/js/commit/c894270401850575d1a4df73e16198177b46477a), [`332a145`](https://github.com/thirdweb-dev/js/commit/332a14552bf95e13e5220b1bd73414f000088568), [`c6b025e`](https://github.com/thirdweb-dev/js/commit/c6b025e84451341f6f48c0a7c4b5f06b8e49d792)]:
- @thirdweb-dev/wallets@2.4.17
- @thirdweb-dev/sdk@4.0.42
- @thirdweb-dev/react-core@4.4.15
## 0.7.11
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-native",
"version": "0.7.11",
"version": "0.7.16",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
Binary file not shown.
+48
View File
@@ -1,5 +1,53 @@
# @thirdweb-dev/react
## 4.4.19
### Patch Changes
- Updated dependencies [[`846a350`](https://github.com/thirdweb-dev/js/commit/846a3503fe4a8d39e92dd318470cefefd3b94c69), [`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697)]:
- @thirdweb-dev/sdk@4.0.46
- @thirdweb-dev/chains@0.1.79
- @thirdweb-dev/react-core@4.4.19
- @thirdweb-dev/wallets@2.4.21
## 4.4.18
### Patch Changes
- Updated dependencies [[`a2002d1`](https://github.com/thirdweb-dev/js/commit/a2002d16376c41fffa59daccfd98856aba90a627)]:
- @thirdweb-dev/sdk@4.0.45
- @thirdweb-dev/react-core@4.4.18
- @thirdweb-dev/wallets@2.4.20
## 4.4.17
### Patch Changes
- Updated dependencies [[`b2be63a`](https://github.com/thirdweb-dev/js/commit/b2be63ada466ea1784d680ae6244ac047a190103)]:
- @thirdweb-dev/sdk@4.0.44
- @thirdweb-dev/react-core@4.4.17
- @thirdweb-dev/wallets@2.4.19
## 4.4.16
### Patch Changes
- [#2447](https://github.com/thirdweb-dev/js/pull/2447) [`8382330`](https://github.com/thirdweb-dev/js/commit/838233075a4d0897f57570f0f5eb041464838973) Thanks [@MananTank](https://github.com/MananTank)! - Fix multiple renders of EmbeddedWallet social Login screen after connection
- Updated dependencies [[`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d), [`173777a`](https://github.com/thirdweb-dev/js/commit/173777ade4ea59cde1c6f25a4654d48b277be9ad)]:
- @thirdweb-dev/wallets@2.4.18
- @thirdweb-dev/sdk@4.0.43
- @thirdweb-dev/react-core@4.4.16
## 4.4.15
### Patch Changes
- Updated dependencies [[`c894270`](https://github.com/thirdweb-dev/js/commit/c894270401850575d1a4df73e16198177b46477a), [`332a145`](https://github.com/thirdweb-dev/js/commit/332a14552bf95e13e5220b1bd73414f000088568), [`c6b025e`](https://github.com/thirdweb-dev/js/commit/c6b025e84451341f6f48c0a7c4b5f06b8e49d792)]:
- @thirdweb-dev/wallets@2.4.17
- @thirdweb-dev/sdk@4.0.42
- @thirdweb-dev/react-core@4.4.15
## 4.4.14
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react",
"version": "4.4.14",
"version": "4.4.19",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -3,7 +3,7 @@ import {
EmbeddedWallet,
EmbeddedWalletOauthStrategy,
} from "@thirdweb-dev/wallets";
import { useEffect, useState } from "react";
import { useEffect, useRef, useState } from "react";
import { Spacer } from "../../../components/Spacer";
import { Spinner } from "../../../components/Spinner";
import { Container, ModalHeader } from "../../../components/basic";
@@ -33,7 +33,6 @@ export const EmbeddedWalletSocialLogin = (
const socialLogin = async () => {
try {
console.log("socialLogin");
const embeddedWallet = createWalletInstance();
setConnectionStatus("connecting");
const socialWindow = openOauthSignInWindow(props.strategy, themeObj);
@@ -63,13 +62,19 @@ export const EmbeddedWalletSocialLogin = (
}
};
const closeModal = props.connected;
const onConnect = props.connected;
const onConnectCalled = useRef(false);
useEffect(() => {
if (connectionStatus === "connected") {
closeModal();
if (onConnectCalled.current) {
return;
}
}, [connectionStatus, closeModal]);
if (connectionStatus === "connected") {
onConnect();
onConnectCalled.current = true;
}
}, [connectionStatus, onConnect]);
return (
<Container animate="fadein" flex="column" fullHeight>
Binary file not shown.
+35
View File
@@ -1,5 +1,40 @@
# @thirdweb-dev/sdk
## 4.0.46
### Patch Changes
- [#2483](https://github.com/thirdweb-dev/js/pull/2483) [`846a350`](https://github.com/thirdweb-dev/js/commit/846a3503fe4a8d39e92dd318470cefefd3b94c69) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Min maxPriorityFeePerGas enforcement
- Updated dependencies [[`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697)]:
- @thirdweb-dev/chains@0.1.79
## 4.0.45
### Patch Changes
- [#2469](https://github.com/thirdweb-dev/js/pull/2469) [`a2002d1`](https://github.com/thirdweb-dev/js/commit/a2002d16376c41fffa59daccfd98856aba90a627) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Better return type for getProofsForAllowListEntry
## 4.0.44
### Patch Changes
- [#2457](https://github.com/thirdweb-dev/js/pull/2457) [`b2be63a`](https://github.com/thirdweb-dev/js/commit/b2be63ada466ea1784d680ae6244ac047a190103) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Handle l2 gas estimations when forcing gasLimit
## 4.0.43
### Patch Changes
- [#2443](https://github.com/thirdweb-dev/js/pull/2443) [`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d) Thanks [@0xFirekeeper](https://github.com/0xFirekeeper)! - [Smart Wallet] Use bundler eth_getUserOperationReceipt instead of rpc eth_getLogs, remove polygon gas station error logs
- [#2455](https://github.com/thirdweb-dev/js/pull/2455) [`173777a`](https://github.com/thirdweb-dev/js/commit/173777ade4ea59cde1c6f25a4654d48b277be9ad) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Update optimism SDK to fix the pnpm preinstall issue
## 4.0.42
### Patch Changes
- [#2441](https://github.com/thirdweb-dev/js/pull/2441) [`c6b025e`](https://github.com/thirdweb-dev/js/commit/c6b025e84451341f6f48c0a7c4b5f06b8e49d792) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Handle L1 fees for OP chains in `estimateGasCost()`
## 4.0.41
### Patch Changes
+2 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/sdk",
"version": "4.0.41",
"version": "4.0.46",
"description": "The main thirdweb SDK.",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/sdk",
"license": "Apache-2.0",
@@ -134,6 +134,7 @@
}
},
"dependencies": {
"@eth-optimism/sdk": "3.2.2",
"@thirdweb-dev/chains": "workspace:*",
"@thirdweb-dev/contracts-js": "workspace:*",
"@thirdweb-dev/crypto": "workspace:*",
+1 -1
View File
@@ -27,7 +27,7 @@ export function getAnalyticsHeaders() {
"x-sdk-os": globals.x_sdk_os,
"x-sdk-name": globals.x_sdk_name,
"x-sdk-platform": globals.x_sdk_platform,
"x-bundle-id": globals.app_bundle_id,
...(globals.app_bundle_id ? { "x-bundle-id": globals.app_bundle_id } : {}),
};
}
+1 -4
View File
@@ -33,8 +33,6 @@ import { overrideRecipientAddress } from "./override-recipient-address";
* @returns
* @internal
*/
/* eslint-disable @typescript-eslint/no-unused-vars */
// TODO: Update function interface: Remove unused param
export async function getDeployArguments<
TContractType extends PrebuiltContractType,
>(
@@ -42,9 +40,8 @@ export async function getDeployArguments<
metadata: z.input<DeploySchemaForPrebuiltContractType<TContractType>>,
contractURI: string,
signer: Signer,
storage: ThirdwebStorage,
): Promise<any[]> {
const signerAddress = await signer.getAddress();
const signerAddress = metadata.defaultAdmin || (await signer.getAddress());
const trustedForwarders: string[] = [];
// add any custom forwarders passed in
+48 -3
View File
@@ -1,6 +1,17 @@
import { ChainId } from "../constants/chains/ChainId";
import { BigNumber, utils, providers } from "ethers";
import { Mumbai, Polygon, Flag, FlagTestnet } from "@thirdweb-dev/chains";
import {
Mumbai,
Polygon,
Flag,
FlagTestnet,
Optimism,
OpSepoliaTestnet,
Base,
BaseSepoliaTestnet,
Zora,
ZoraSepoliaTestnet,
} from "@thirdweb-dev/chains";
type FeeData = {
maxFeePerGas: null | BigNumber;
@@ -68,6 +79,12 @@ export async function getDynamicFeeData(
// add 10% tip to maxPriorityFeePerGas for faster processing
maxPriorityFeePerGas = getPreferredPriorityFee(maxPriorityFeePerGas);
// ensure maxPriorityFeePerGas is at least 0.001 gwei
// the value seems to be rejected by some nodes otherwise
if (maxPriorityFeePerGas.lt(1000000)) {
maxPriorityFeePerGas = BigNumber.from(1000000);
}
// eip-1559 formula, doubling the base fee ensures that the tx can be included in the next 6 blocks no matter how busy the network is
// good article on the subject: https://www.blocknative.com/blog/eip-1559-fees
maxFeePerGas = baseBlockFee.mul(2).add(maxPriorityFeePerGas);
@@ -99,6 +116,34 @@ export async function getGasPrice(
return txGasPrice;
}
export async function estimateTransactionCost(
provider: providers.Provider,
tx: providers.TransactionRequest,
) {
const chainId = (await provider.getNetwork()).chainId;
let l1GasCost = BigNumber.from(0);
if (isOpStackChain(chainId)) {
const { asL2Provider } = await import("@eth-optimism/sdk");
const l2RpcProvider = asL2Provider(provider);
l1GasCost = await l2RpcProvider.estimateL1GasCost(tx);
}
const gasLimit = tx.gasLimit || (await provider.estimateGas(tx));
const gasPrice = await getGasPrice(provider);
const gasCost = BigNumber.from(gasLimit).mul(gasPrice);
return gasCost.add(l1GasCost);
}
function isOpStackChain(chainId: number) {
return (
chainId === Optimism.chainId ||
chainId === OpSepoliaTestnet.chainId ||
chainId === Base.chainId ||
chainId === BaseSepoliaTestnet.chainId ||
chainId === Zora.chainId ||
chainId === ZoraSepoliaTestnet.chainId
);
}
/**
* @internal
*/
@@ -148,8 +193,8 @@ export async function getPolygonGasPriorityFee(
const fixedFee = parseFloat(priorityFee).toFixed(9);
return utils.parseUnits(fixedFee, "gwei");
}
} catch (e) {
console.error("failed to fetch gas", e);
} catch {
// if the gas station is down, return the default gas fee
}
return getDefaultGasFee(chainId);
}
+3 -3
View File
@@ -91,9 +91,9 @@ export async function getProofsForAllowListEntry(
tokenDecimals: number = 18,
version: SnapshotFormatVersion = SnapshotFormatVersion.V1,
) {
return merkleTree.getProof(
hashAllowListEntry(snapshotEntry, tokenDecimals, version),
);
return merkleTree
.getProof(hashAllowListEntry(snapshotEntry, tokenDecimals, version))
.map((value) => "0x" + value.data.toString("hex"));
}
/**
+1 -1
View File
@@ -257,7 +257,7 @@ export function getProviderFromRpcUrl(
typeof globalThis !== "undefined" && "APP_BUNDLE_ID" in globalThis
? ((globalThis as any).APP_BUNDLE_ID as string)
: undefined;
if (!rpcUrl.includes("bundleId")) {
if (!rpcUrl.includes("bundleId") && bundleId) {
rpcUrl = rpcUrl + (bundleId ? `?bundleId=${bundleId}` : "");
}
}
@@ -1,3 +1,5 @@
import { toEther } from "../../common/currency/toEther";
import { estimateTransactionCost } from "../../common/gas-price";
import { ContractWrapper } from "./internal/contract-wrapper";
import { BaseContract, BigNumber, utils } from "ethers";
@@ -35,11 +37,11 @@ export class GasCostEstimator<TContract extends BaseContract> {
fn: keyof TContract["functions"] | (string & {}),
args: Parameters<TContract["functions"][typeof fn]> | any[],
): Promise<string> {
const [price, gasUnits] = await Promise.all([
this.contractWrapper.getProvider().getGasPrice(),
this.contractWrapper.estimateGas(fn, args),
]);
return utils.formatEther(gasUnits.mul(price));
const gasCost = await estimateTransactionCost(
this.contractWrapper.getProvider(),
await this.contractWrapper.populateTransaction(fn, args),
);
return toEther(gasCost);
}
/**
@@ -192,6 +192,13 @@ export class ContractWrapper<
return this.writeContract.estimateGas[fn as string](...args);
}
public async populateTransaction(
fn: keyof TContract["functions"],
args: any[],
): Promise<providers.TransactionRequest> {
return this.writeContract.populateTransaction[fn as string](...args);
}
/**
* @internal
*/
@@ -88,9 +88,8 @@ export class ContractFactory extends ContractWrapper<TWFactory> {
onExecute?: () => void,
): Promise<Transaction<Address>> => {
const contract = PREBUILT_CONTRACTS_MAP[contractType];
const metadata = await contract.schema.deploy.parseAsync(
contractMetadata,
);
const metadata =
await contract.schema.deploy.parseAsync(contractMetadata);
// TODO: is there any special pre-processing we need to do before uploading?
const contractURI = await this.storage.upload(metadata);
@@ -119,7 +118,6 @@ export class ContractFactory extends ContractWrapper<TWFactory> {
metadata,
contractURI,
signer,
this.storage,
);
const encodedFunc = Contract.getInterface(ABI).encodeFunctionData(
@@ -311,9 +309,8 @@ export class ContractFactory extends ContractWrapper<TWFactory> {
];
case TokenDropInitializer.contractType:
case TokenInitializer.contractType:
const erc20metadata = await TokenInitializer.schema.deploy.parseAsync(
metadata,
);
const erc20metadata =
await TokenInitializer.schema.deploy.parseAsync(metadata);
return [
signerAddress,
erc20metadata.name,
@@ -331,9 +328,8 @@ export class ContractFactory extends ContractWrapper<TWFactory> {
erc20metadata.platform_fee_basis_points,
];
case VoteInitializer.contractType:
const voteMetadata = await VoteInitializer.schema.deploy.parseAsync(
metadata,
);
const voteMetadata =
await VoteInitializer.schema.deploy.parseAsync(metadata);
return [
voteMetadata.name,
contractURI,
@@ -345,9 +341,8 @@ export class ContractFactory extends ContractWrapper<TWFactory> {
voteMetadata.voting_quorum_fraction,
];
case SplitInitializer.contractType:
const splitsMetadata = await SplitInitializer.schema.deploy.parseAsync(
metadata,
);
const splitsMetadata =
await SplitInitializer.schema.deploy.parseAsync(metadata);
return [
signerAddress,
contractURI,
@@ -382,9 +377,8 @@ export class ContractFactory extends ContractWrapper<TWFactory> {
marketplaceV3Metadata.platform_fee_basis_points,
];
case PackInitializer.contractType:
const packsMetadata = await PackInitializer.schema.deploy.parseAsync(
metadata,
);
const packsMetadata =
await PackInitializer.schema.deploy.parseAsync(metadata);
return [
signerAddress,
packsMetadata.name,
@@ -1,11 +1,13 @@
import { TransactionError, parseRevertReason } from "../../common/error";
import { getDefaultGasOverrides, getGasPrice } from "../../common/gas-price";
import {
estimateTransactionCost,
getDefaultGasOverrides,
getGasPrice,
} from "../../common/gas-price";
import {
fetchContractMetadataFromAddress,
getContractMetadataFromCache,
} from "../../common/metadata-resolver";
import { fetchSourceFilesFromMetadata } from "../../common/fetchSourceFilesFromMetadata";
import { ContractSource } from "../../schema/contracts/custom";
import { SDKOptionsOutput } from "../../schema/sdk-options";
import type {
DeployTransactionOptions,
@@ -165,6 +167,10 @@ abstract class TransactionContext {
}
public abstract estimateGasLimit(): Promise<BigNumber>;
public abstract estimateGasCost(): Promise<{
ether: string;
wei: BigNumber;
}>;
/**
* Set a multiple to multiply the gas limit by
@@ -187,22 +193,6 @@ abstract class TransactionContext {
}
}
/**
* Estimate the total gas cost of this transaction (in both ether and wei)
*/
public async estimateGasCost() {
const [gasLimit, gasPrice] = await Promise.all([
this.estimateGasLimit(),
this.getGasPrice(),
]);
const gasCost = gasLimit.mul(gasPrice);
return {
ether: utils.formatEther(gasCost),
wei: gasCost,
};
}
/**
* Calculates the gas price for transactions (adding a 10% tip buffer)
*/
@@ -427,6 +417,20 @@ export class Transaction<
}
}
/**
* Estimate the total gas cost of this transaction (in both ether and wei)
*/
public async estimateGasCost() {
const gasCost = await estimateTransactionCost(
this.provider,
await this.populateTransaction(),
);
return {
ether: utils.formatEther(gasCost),
wei: gasCost,
};
}
/**
* Send the transaction without waiting for it to be mined.
*/
@@ -660,7 +664,6 @@ export class Transaction<
const reason = parseRevertReason(error);
// Get contract sources for stack trace
let sources: ContractSource[] | undefined = undefined;
let contractName: string | undefined = undefined;
try {
const chainId = (await provider.getNetwork()).chainId;
@@ -672,10 +675,6 @@ export class Transaction<
if (metadata?.name) {
contractName = metadata.name;
}
if (metadata?.metadata.sources) {
sources = await fetchSourceFilesFromMetadata(metadata, this.storage);
}
} catch (err) {
// no-op
}
@@ -692,7 +691,6 @@ export class Transaction<
value,
hash,
contractName,
sources,
},
error,
);
@@ -755,6 +753,20 @@ export class DeployTransaction extends TransactionContext {
}
}
async estimateGasCost() {
const gasOverrides = await this.getGasOverrides();
const overrides: CallOverrides = { ...gasOverrides, ...this.overrides };
const populatedTx = this.factory.getDeployTransaction(
...this.args,
overrides,
);
const gasCost = await estimateTransactionCost(this.provider, populatedTx);
return {
ether: utils.formatEther(gasCost),
wei: gasCost,
};
}
async send(): Promise<ContractTransaction> {
try {
const populatedTx = await this.populateTransaction();
+3 -4
View File
@@ -1604,7 +1604,6 @@ export class ContractDeployer extends RPCConnectionHandler {
parsedMetadata,
contractURI,
signer,
this.storage,
);
// fetch the publish URI from the ContractPublisher contract
@@ -1650,7 +1649,7 @@ export class ContractDeployer extends RPCConnectionHandler {
publisherAddress: AddressOrEns,
contractName: string,
constructorParams: any[],
version: string = "latest",
version = "latest",
options?: DeployOptions,
): Promise<DeployTransaction> => {
const publishedContract = await this.fetchPublishedContractFromPolygon(
@@ -1688,7 +1687,7 @@ export class ContractDeployer extends RPCConnectionHandler {
contractName: string,
constructorParams: any[],
publisherAddress: string = THIRDWEB_DEPLOYER,
contractVersion: string = "latest",
contractVersion = "latest",
saltForCreate2?: string,
): Promise<string> {
const signer = this.getSigner();
@@ -1719,7 +1718,7 @@ export class ContractDeployer extends RPCConnectionHandler {
contractName: string,
constructorParams: any[],
publisherAddress: string = THIRDWEB_DEPLOYER,
contractVersion: string = "latest",
contractVersion = "latest",
saltForCreate2?: string,
): Promise<string> {
const provider = this.getProvider();
@@ -18,6 +18,7 @@ export const CommonContractSchema = /* @__PURE__ */ (() =>
external_link: z.string().optional(),
app_uri: z.string().optional(),
social_urls: z.record(z.string()).optional(),
defaultAdmin: AddressOrEnsSchema.optional(),
})
.catchall(z.unknown()))();
@@ -57,6 +57,11 @@ export interface NFTContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -104,6 +109,10 @@ export interface OpenEditionContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -152,6 +161,10 @@ export interface TokenContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -192,6 +205,10 @@ export interface MarketplaceContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -231,6 +248,10 @@ export interface MarketplaceV3ContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -284,6 +305,10 @@ export interface VoteContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -333,6 +358,10 @@ export interface SplitContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -376,6 +405,10 @@ export interface MultiwrapContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
@@ -407,6 +440,10 @@ export interface AirdropContractDeployMetadata {
* The default app for this contract
*/
app_uri?: string;
/**
* The default admin for this contract
*/
defaultAdmin?: AddressOrEns;
}
/**
+23
View File
@@ -368,4 +368,27 @@ describe("NFT Contract", async () => {
});
expect(nfts).to.be.an("array").length(_tokenIds.length);
});
it("allows overriding the default admin", async () => {
const address = await sdk.deployer.deployBuiltInContract(
NFTCollectionInitializer.contractType,
{
name: "NFT Contract",
description: "Test NFT contract from tests",
image:
"https://pbs.twimg.com/profile_images/1433508973215367176/XBCfBn3g_400x400.jpg",
primary_sale_recipient: adminWallet.address,
seller_fee_basis_points: 1000,
fee_recipient: AddressZero,
platform_fee_basis_points: 10,
platform_fee_recipient: AddressZero,
defaultAdmin: samWallet.address,
},
);
const contract = await sdk.getNFTCollection(address);
const admins = await contract.roles.get("admin");
expect(admins[0]).to.eq(samWallet.address);
});
});
+15 -13
View File
@@ -1,5 +1,5 @@
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
import { Fncy, Goerli } from "@thirdweb-dev/chains";
import { Fncy, Goerli, Sepolia } from "@thirdweb-dev/chains";
import { ThirdwebStorage } from "@thirdweb-dev/storage";
import { expect } from "chai";
import { Signer, ethers } from "ethers";
@@ -26,25 +26,27 @@ describe("SDK Initialization", async () => {
});
it("should be able to be initialized with a chainId", async () => {
const sdk = new ThirdwebSDK(5, { secretKey: process.env.TW_SECRET_KEY });
const sdk = new ThirdwebSDK(11155111, {
secretKey: process.env.TW_SECRET_KEY,
});
const network = await sdk.getProvider().getNetwork();
expect(network.chainId).to.equal(5);
expect(network.chainId).to.equal(11155111);
});
it("should be able to be initialized with a chain name", async () => {
const sdk = new ThirdwebSDK("goerli", {
const sdk = new ThirdwebSDK("sepolia", {
secretKey: process.env.TW_SECRET_KEY,
});
const network = await sdk.getProvider().getNetwork();
expect(network.chainId).to.equal(5);
expect(network.chainId).to.equal(11155111);
});
it("should be able to be initialized with a default chain", async () => {
const sdk = new ThirdwebSDK(Goerli, {
const sdk = new ThirdwebSDK(Sepolia, {
secretKey: process.env.TW_SECRET_KEY,
});
const network = await sdk.getProvider().getNetwork();
expect(network.chainId).to.equal(5);
expect(network.chainId).to.equal(11155111);
});
it("should be able to be initialized with a custom chain", async () => {
@@ -81,30 +83,30 @@ describe("SDK Initialization", async () => {
it("Should be able to be initialized with a private key", async () => {
const privateKey = ethers.Wallet.createRandom().privateKey;
const sdk = ThirdwebSDK.fromPrivateKey(privateKey, "goerli", {
const sdk = ThirdwebSDK.fromPrivateKey(privateKey, "sepolia", {
secretKey: process.env.TW_SECRET_KEY,
});
const network = await sdk.getProvider().getNetwork();
expect(network.chainId).to.equal(5);
expect(network.chainId).to.equal(11155111);
});
it("Should be able to be initialized with a signer", async () => {
const emptySigner = ethers.Wallet.createRandom();
const sdk = ThirdwebSDK.fromSigner(emptySigner, "goerli", {
const sdk = ThirdwebSDK.fromSigner(emptySigner, "sepolia", {
secretKey: process.env.TW_SECRET_KEY,
});
const network = await sdk.getProvider().getNetwork();
expect(network.chainId).to.equal(5);
expect(network.chainId).to.equal(11155111);
});
it("Should be able to be initialized with a wallet", async () => {
const emptySigner = ethers.Wallet.createRandom();
const wallet = new EthersWallet(emptySigner);
const sdk = await ThirdwebSDK.fromWallet(wallet, "goerli", {
const sdk = await ThirdwebSDK.fromWallet(wallet, "sepolia", {
secretKey: process.env.TW_SECRET_KEY,
});
const network = await sdk.getProvider().getNetwork();
expect(network.chainId).to.equal(5);
expect(network.chainId).to.equal(11155111);
});
it("Should be able to connect directly via http RPC URL", async () => {
Binary file not shown.
+18
View File
@@ -1,5 +1,23 @@
# @thirdweb-dev/service-utils
## 0.4.21
### Patch Changes
- [#2465](https://github.com/thirdweb-dev/js/pull/2465) [`e024d78`](https://github.com/thirdweb-dev/js/commit/e024d78ed03fb2f2a618908e87af80799cb79298) Thanks [@edwardysun](https://github.com/edwardysun)! - Add pay to usageEventSchema
## 0.4.20
### Patch Changes
- [#2453](https://github.com/thirdweb-dev/js/pull/2453) [`eee200f`](https://github.com/thirdweb-dev/js/commit/eee200f8d4c4d4cb954b4a8dfcd5ac433f7d2988) Thanks [@ElasticBottle](https://github.com/ElasticBottle)! - chore: allow embedded-wallet.thirdweb.com to use a given client ID for rpc request
## 0.4.19
### Patch Changes
- [#2431](https://github.com/thirdweb-dev/js/pull/2431) [`6cf298a`](https://github.com/thirdweb-dev/js/commit/6cf298a29a29e37cecb88953aab195db8934a740) Thanks [@edwardysun](https://github.com/edwardysun)! - Add pay to Services list
## 0.4.18
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/service-utils",
"version": "0.4.18",
"version": "0.4.21",
"main": "dist/thirdweb-dev-service-utils.cjs.js",
"module": "dist/thirdweb-dev-service-utils.esm.js",
"exports": {
@@ -24,6 +24,7 @@ const usageEventSchema = z.object({
"connectWallet",
"checkout",
"engine",
"pay",
]),
action: z.string(),
@@ -65,6 +66,10 @@ const usageEventSchema = z.object({
msSinceQueue: z.number().nonnegative().optional(),
msSinceSend: z.number().nonnegative().optional(),
msTotalDuration: z.number().nonnegative().optional(),
swapId: z.string().optional(),
tokenAddress: z.string().optional(),
amountWei: z.string().optional(),
amountUSDCents: z.number().nonnegative().optional(),
});
export type UsageEvent = z.infer<typeof usageEventSchema>;
@@ -52,7 +52,14 @@ export function authorizeClient(
if (origin) {
if (
// find matching domain, or if all domains allowed
domains.find((d) => {
// embedded-wallet.thirdweb(-dev).com is automatically allowed
// because the rpc is passed from user's domain to embedded-wallet.thirdweb.com iframe for use.
// Note this doesn't allow embedded-wallets from being used if it's disabled. The service check that runs after enforces that.
[
...domains,
"embedded-wallet.thirdweb.com",
"embedded-wallet.thirdweb-dev.com",
].find((d) => {
// if any domain is allowed, we'll return true
if (d === "*") {
return true;
+8 -1
View File
@@ -47,10 +47,17 @@ export const SERVICE_DEFINITIONS = {
checkout: {
name: "checkout",
title: "Checkouts",
description: "Payments for easy web3 onboarding",
description: "NFT Checkouts for easy web3 onboarding",
// all actions allowed
actions: [],
},
pay: {
name: "pay",
title: "Pay",
description: "Pay for a blockchain transaction with any currency",
// all actions allowed
actions: [],
}
} as const;
export const SERVICE_NAMES = Object.keys(
@@ -90,7 +90,7 @@ export class StorageDownloader implements IStorageDownloader {
if (this.secretKey) {
headers = { "x-secret-key": this.secretKey };
} else if (this.clientId) {
if (!resolvedUri.includes("bundleId")) {
if (!resolvedUri.includes("bundleId") && bundleId) {
resolvedUri = resolvedUri + (bundleId ? `?bundleId=${bundleId}` : "");
}
headers["x-client-Id"] = this.clientId;
+7 -2
View File
@@ -8,6 +8,9 @@ export function setAnalyticsHeaders(headers: Record<string, string>) {
headers["x-sdk-name"] = globals.x_sdk_name;
headers["x-sdk-platform"] = globals.x_sdk_platform;
headers["x-sdk-os"] = globals.x_sdk_os;
if (globals.app_bundle_id) {
headers["x-bundle-id"] = globals.app_bundle_id;
}
}
export function setAnalyticsHeadersForXhr(xhr: XMLHttpRequest) {
@@ -17,7 +20,9 @@ export function setAnalyticsHeadersForXhr(xhr: XMLHttpRequest) {
xhr.setRequestHeader("x-sdk-os", globals.x_sdk_os);
xhr.setRequestHeader("x-sdk-name", globals.x_sdk_name);
xhr.setRequestHeader("x-sdk-platform", globals.x_sdk_platform);
xhr.setRequestHeader("x-bundle-id", globals.app_bundle_id);
if (globals.app_bundle_id) {
xhr.setRequestHeader("x-bundle-id", globals.app_bundle_id);
}
}
export function getAnalyticsHeaders() {
@@ -27,7 +32,7 @@ export function getAnalyticsHeaders() {
"x-sdk-os": globals.x_sdk_os,
"x-sdk-name": globals.x_sdk_name,
"x-sdk-platform": globals.x_sdk_platform,
"x-bundle-id": globals.app_bundle_id,
...(globals.app_bundle_id ? { "x-bundle-id": globals.app_bundle_id } : {}),
};
}
Binary file not shown.
+50
View File
@@ -1,5 +1,55 @@
# @thirdweb-dev/unity-js-bridge
## 0.4.9
### Patch Changes
- Updated dependencies [[`846a350`](https://github.com/thirdweb-dev/js/commit/846a3503fe4a8d39e92dd318470cefefd3b94c69), [`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697)]:
- @thirdweb-dev/sdk@4.0.46
- @thirdweb-dev/chains@0.1.79
- @thirdweb-dev/wallets@2.4.21
- @thirdweb-dev/auth@4.1.43
## 0.4.8
### Patch Changes
- [#2466](https://github.com/thirdweb-dev/js/pull/2466) [`607ab7e`](https://github.com/thirdweb-dev/js/commit/607ab7e8600f7637f7e74f0990ddd2f4fb9a2730) Thanks [@0xFirekeeper](https://github.com/0xFirekeeper)! - [unity] expose sw isdeployed
- Updated dependencies [[`a2002d1`](https://github.com/thirdweb-dev/js/commit/a2002d16376c41fffa59daccfd98856aba90a627)]:
- @thirdweb-dev/sdk@4.0.45
- @thirdweb-dev/wallets@2.4.20
- @thirdweb-dev/auth@4.1.42
## 0.4.7
### Patch Changes
- Updated dependencies [[`b2be63a`](https://github.com/thirdweb-dev/js/commit/b2be63ada466ea1784d680ae6244ac047a190103)]:
- @thirdweb-dev/sdk@4.0.44
- @thirdweb-dev/wallets@2.4.19
- @thirdweb-dev/auth@4.1.41
## 0.4.6
### Patch Changes
- [#2443](https://github.com/thirdweb-dev/js/pull/2443) [`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d) Thanks [@0xFirekeeper](https://github.com/0xFirekeeper)! - [Smart Wallet] Use bundler eth_getUserOperationReceipt instead of rpc eth_getLogs, remove polygon gas station error logs
- Updated dependencies [[`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d), [`173777a`](https://github.com/thirdweb-dev/js/commit/173777ade4ea59cde1c6f25a4654d48b277be9ad)]:
- @thirdweb-dev/wallets@2.4.18
- @thirdweb-dev/sdk@4.0.43
- @thirdweb-dev/auth@4.1.40
## 0.4.5
### Patch Changes
- Updated dependencies [[`c894270`](https://github.com/thirdweb-dev/js/commit/c894270401850575d1a4df73e16198177b46477a), [`332a145`](https://github.com/thirdweb-dev/js/commit/332a14552bf95e13e5220b1bd73414f000088568), [`c6b025e`](https://github.com/thirdweb-dev/js/commit/c6b025e84451341f6f48c0a7c4b5f06b8e49d792)]:
- @thirdweb-dev/wallets@2.4.17
- @thirdweb-dev/sdk@4.0.42
- @thirdweb-dev/auth@4.1.39
## 0.4.4
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/unity-js-bridge",
"version": "0.4.4",
"version": "0.4.9",
"main": "dist/thirdweb-unity-bridge.js",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/unity-js-bridge",
"license": "Apache-2.0",
@@ -101,6 +101,7 @@ interface TWBridge {
getBlockWithTransactions: (blockNumber: string) => Promise<string>;
getEmail: () => Promise<string>;
getSignerAddress: () => Promise<string>;
smartWalletIsDeployed: () => Promise<string>;
}
const w = window;
@@ -144,7 +145,7 @@ class ThirdwebBridge implements TWBridge {
}
(globalThis as any).X_SDK_NAME = "UnitySDK_WebGL";
(globalThis as any).X_SDK_PLATFORM = "unity";
(globalThis as any).X_SDK_VERSION = "4.7.6";
(globalThis as any).X_SDK_VERSION = "4.7.8";
(globalThis as any).X_SDK_OS = browser?.os ?? "unknown";
}
this.initializedChain = chain;
@@ -817,6 +818,15 @@ class ThirdwebBridge implements TWBridge {
}
}
public async smartWalletIsDeployed() {
if (!this.activeWallet) {
throw new Error("No wallet connected");
}
const smartWallet = this.activeWallet as SmartWallet;
const res = await smartWallet.isDeployed();
return JSON.stringify({ result: res }, bigNumberReplacer);
}
public openPopupWindow() {
const win = window.open("", undefined, "width=350, height=500");
if (win) {
+42
View File
@@ -1,5 +1,47 @@
# @thirdweb-dev/wallets
## 2.4.21
### Patch Changes
- Updated dependencies [[`846a350`](https://github.com/thirdweb-dev/js/commit/846a3503fe4a8d39e92dd318470cefefd3b94c69), [`2e01627`](https://github.com/thirdweb-dev/js/commit/2e01627c998a49a1dd41041f3743a28488c92697)]:
- @thirdweb-dev/sdk@4.0.46
- @thirdweb-dev/chains@0.1.79
## 2.4.20
### Patch Changes
- Updated dependencies [[`a2002d1`](https://github.com/thirdweb-dev/js/commit/a2002d16376c41fffa59daccfd98856aba90a627)]:
- @thirdweb-dev/sdk@4.0.45
## 2.4.19
### Patch Changes
- Updated dependencies [[`b2be63a`](https://github.com/thirdweb-dev/js/commit/b2be63ada466ea1784d680ae6244ac047a190103)]:
- @thirdweb-dev/sdk@4.0.44
## 2.4.18
### Patch Changes
- [#2443](https://github.com/thirdweb-dev/js/pull/2443) [`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d) Thanks [@0xFirekeeper](https://github.com/0xFirekeeper)! - [Smart Wallet] Use bundler eth_getUserOperationReceipt instead of rpc eth_getLogs, remove polygon gas station error logs
- Updated dependencies [[`cabfc29`](https://github.com/thirdweb-dev/js/commit/cabfc29119f25a78010f59f766bdcb8c392afa2d), [`173777a`](https://github.com/thirdweb-dev/js/commit/173777ade4ea59cde1c6f25a4654d48b277be9ad)]:
- @thirdweb-dev/sdk@4.0.43
## 2.4.17
### Patch Changes
- [#2440](https://github.com/thirdweb-dev/js/pull/2440) [`c894270`](https://github.com/thirdweb-dev/js/commit/c894270401850575d1a4df73e16198177b46477a) Thanks [@0xFirekeeper](https://github.com/0xFirekeeper)! - [Smart Wallet] Update Account Core ABI
- [#2439](https://github.com/thirdweb-dev/js/pull/2439) [`332a145`](https://github.com/thirdweb-dev/js/commit/332a14552bf95e13e5220b1bd73414f000088568) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Make accountInfo/factoryInfo internal props optional in SmartWalletConfig
- Updated dependencies [[`c6b025e`](https://github.com/thirdweb-dev/js/commit/c6b025e84451341f6f48c0a7c4b5f06b8e49d792)]:
- @thirdweb-dev/sdk@4.0.42
## 2.4.16
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/wallets",
"version": "2.4.16",
"version": "2.4.21",
"main": "dist/thirdweb-dev-wallets.cjs.js",
"module": "dist/thirdweb-dev-wallets.esm.js",
"browser": {
@@ -4,8 +4,8 @@ import { ERC4337EthersProvider } from "./lib/erc4337-provider";
import { getVerifyingPaymaster } from "./lib/paymaster";
import { create4337Provider } from "./lib/provider-utils";
import {
AccountContractInfo,
FactoryContractInfo,
AccountContractInfoInternal,
FactoryContractInfoInternal,
ProviderConfig,
SmartWalletConfig,
SmartWalletConnectionArgs,
@@ -71,8 +71,22 @@ export class SmartWalletConnector extends Connector<SmartWalletConnectionArgs> {
gasless: config.gasless,
factoryAddress: config.factoryAddress,
accountAddress: params.accountAddress,
factoryInfo: config.factoryInfo || this.defaultFactoryInfo(),
accountInfo: config.accountInfo || this.defaultAccountInfo(),
factoryInfo: {
createAccount:
config.factoryInfo?.createAccount ||
this.defaultFactoryInfo().createAccount,
getAccountAddress:
config.factoryInfo?.getAccountAddress ||
this.defaultFactoryInfo().getAccountAddress,
abi: config.factoryInfo?.abi,
},
accountInfo: {
execute:
config.accountInfo?.execute || this.defaultAccountInfo().execute,
getNonce:
config.accountInfo?.getNonce || this.defaultAccountInfo().getNonce,
abi: config.accountInfo?.abi,
},
clientId: config.clientId,
secretKey: config.secretKey,
erc20PaymasterAddress: config.erc20PaymasterAddress,
@@ -541,7 +555,7 @@ export class SmartWalletConnector extends Connector<SmartWalletConnectionArgs> {
return sdk.getContract(this.config.factoryAddress);
}
protected defaultFactoryInfo(): FactoryContractInfo {
protected defaultFactoryInfo(): FactoryContractInfoInternal {
return {
createAccount: async (factory, owner) => {
return factory.prepare("createAccount", [
@@ -558,7 +572,7 @@ export class SmartWalletConnector extends Connector<SmartWalletConnectionArgs> {
};
}
protected defaultAccountInfo(): AccountContractInfo {
protected defaultAccountInfo(): AccountContractInfoInternal {
return {
execute: async (account, target, value, data) => {
return account.prepare("execute", [target, value, data]);
@@ -342,28 +342,31 @@ export abstract class BaseAccountAPI {
}
/**
* get the transaction that has this userOpHash mined, or null if not found
* get the transaction that has this userOpHash mined, or throws if not found
* @param userOpHash - returned by sendUserOpToBundler (or by getUserOpHash..)
* @param timeout - stop waiting after this timeout
* @param interval - time to wait between polls.
* @returns The transactionHash this userOp was mined, or null if not found.
* @returns The transaction receipt, or an error if timed out.
*/
async getUserOpReceipt(
httpRpcClient: HttpRpcClient,
userOpHash: string,
timeout = 30000,
interval = 2000,
): Promise<string | null> {
timeout = 120000,
interval = 1000,
): Promise<providers.TransactionReceipt> {
const endtime = Date.now() + timeout;
while (Date.now() < endtime) {
const events = await this.entryPointView.queryFilter(
this.entryPointView.filters.UserOperationEvent(userOpHash),
);
if (events[0]) {
return events[0].transactionHash;
const userOpReceipt =
await httpRpcClient.getUserOperationReceipt(userOpHash);
if (userOpReceipt) {
// avoid desync with current provider state
return await this.provider.waitForTransaction(
userOpReceipt.receipt.transactionHash,
);
}
await new Promise((resolve) => setTimeout(resolve, interval));
}
return null;
throw new Error("Timeout waiting for userOp to be mined");
}
private unwrapBundlerError(error: any) {
File diff suppressed because it is too large Load Diff
@@ -110,17 +110,6 @@ export class ERC4337EthersProvider extends providers.BaseProvider {
): Promise<providers.TransactionResponse> {
const userOp = await utils.resolveProperties(userOp1);
const userOpHash = await this.smartAccountAPI.getUserOpHash(userOp);
const waitForUserOp = async (): Promise<providers.TransactionReceipt> =>
await new Promise((resolve, reject) => {
new UserOperationEventListener(
resolve,
reject,
this.entryPoint,
userOp.sender,
userOpHash,
userOp.nonce,
).start();
});
return {
hash: userOpHash,
confirmations: 0,
@@ -134,7 +123,7 @@ export class ERC4337EthersProvider extends providers.BaseProvider {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
confirmations?: number,
): Promise<providers.TransactionReceipt> => {
const transactionReceipt = await waitForUserOp();
const transactionReceipt = await this.smartAccountAPI.getUserOpReceipt(this.httpRpcClient, userOpHash)
if (userOp.initCode.length !== 0) {
// checking if the wallet has been deployed by the transaction; it must be if we are here
await this.smartAccountAPI.checkAccountPhantom();
@@ -134,6 +134,14 @@ export class HttpRpcClient {
);
}
async getUserOperationReceipt(userOpHash: string): Promise<any> {
await this.initializing;
return await this.userOpJsonRpcProvider.send(
"eth_getUserOperationReceipt",
[userOpHash],
);
}
private async printUserOperation(
method: string,
[userOp1, entryPointAddress]: [UserOperationStruct, string],
@@ -46,11 +46,12 @@ class VerifyingPaymasterAPI extends PaymasterAPI {
} else if (this.clientId) {
headers["x-client-id"] = this.clientId;
if (
typeof globalThis !== "undefined" &&
"APP_BUNDLE_ID" in globalThis
) {
headers["x-bundle-id"] = (globalThis as any).APP_BUNDLE_ID as string;
const bundleId =
typeof globalThis !== "undefined" && "APP_BUNDLE_ID" in globalThis
? ((globalThis as any).APP_BUNDLE_ID as string)
: undefined;
if (bundleId) {
headers["x-bundle-id"] = bundleId;
}
}
@@ -54,11 +54,14 @@ export type ContractInfoInput = {
};
export type ContractInfo = {
factoryInfo: FactoryContractInfo;
accountInfo: AccountContractInfo;
factoryInfo: FactoryContractInfoInternal;
accountInfo: AccountContractInfoInternal;
};
export type AccountContractInfo = {
/**
* @internal
*/
export type AccountContractInfoInternal = {
abi?: ContractInterface;
getNonce: (account: SmartContract) => Promise<BigNumber>;
execute: (
@@ -69,7 +72,10 @@ export type AccountContractInfo = {
) => Promise<Transaction>;
};
export type FactoryContractInfo = {
/**
* @internal
*/
export type FactoryContractInfoInternal = {
abi?: ContractInterface;
createAccount: (
factory: SmartContract,
@@ -78,6 +84,29 @@ export type FactoryContractInfo = {
getAccountAddress: (factory: SmartContract, owner: string) => Promise<string>;
};
export type AccountContractInfo = {
abi?: ContractInterface;
getNonce?: (account: SmartContract) => Promise<BigNumber>;
execute?: (
account: SmartContract,
target: string,
value: BigNumberish,
data: string,
) => Promise<Transaction>;
};
export type FactoryContractInfo = {
abi?: ContractInterface;
createAccount?: (
factory: SmartContract,
owner: string,
) => Promise<Transaction>;
getAccountAddress?: (
factory: SmartContract,
owner: string,
) => Promise<string>;
};
export type PaymasterResult = {
paymasterAndData: string;
preVerificationGas?: BigNumber;
@@ -1,7 +1,7 @@
import { TokenBoundSmartWalletConfig } from "./types";
import { ethers } from "ethers";
import { SmartWalletConnector } from "../smart-wallet";
import { FactoryContractInfo } from "../smart-wallet/types";
import { FactoryContractInfoInternal } from "../smart-wallet/types";
import { ERC6551_REGISTRY } from "../smart-wallet/lib/constants";
export class TokenBoundSmartWalletConnector extends SmartWalletConnector {
@@ -16,7 +16,7 @@ export class TokenBoundSmartWalletConnector extends SmartWalletConnector {
// TODO default account implementation address
}
protected defaultFactoryInfo(): FactoryContractInfo {
protected defaultFactoryInfo(): FactoryContractInfoInternal {
return {
createAccount: async (factory) => {
return factory.prepare("createAccount", [
+7 -2
View File
@@ -15,6 +15,9 @@ export function setAnalyticsHeaders(headers: Record<string, string>) {
headers["x-sdk-name"] = globals.x_sdk_name;
headers["x-sdk-platform"] = globals.x_sdk_platform;
headers["x-sdk-os"] = globals.x_sdk_os;
if (globals.app_bundle_id) {
headers["x-bundle-id"] = globals.app_bundle_id;
}
}
export function setAnalyticsHeadersForXhr(xhr: XMLHttpRequest) {
@@ -24,7 +27,9 @@ export function setAnalyticsHeadersForXhr(xhr: XMLHttpRequest) {
xhr.setRequestHeader("x-sdk-os", globals.x_sdk_os);
xhr.setRequestHeader("x-sdk-name", globals.x_sdk_name);
xhr.setRequestHeader("x-sdk-platform", globals.x_sdk_platform);
xhr.setRequestHeader("x-bundle-id", globals.app_bundle_id);
if (globals.app_bundle_id) {
xhr.setRequestHeader("x-bundle-id", globals.app_bundle_id);
}
}
export function getAnalyticsHeaders() {
@@ -34,7 +39,7 @@ export function getAnalyticsHeaders() {
"x-sdk-os": globals.x_sdk_os,
"x-sdk-name": globals.x_sdk_name,
"x-sdk-platform": globals.x_sdk_platform,
"x-bundle-id": globals.app_bundle_id,
...(globals.app_bundle_id ? { "x-bundle-id": globals.app_bundle_id } : {}),
};
}
@@ -56,7 +56,7 @@ describeIf(!!SECRET_KEY)("SmartWallet core tests", () => {
it("can estimate a tx", async () => {
const preparedTx = await contract.erc1155.claim.prepare(0, 1);
const estimates = await smartWallet.estimate(preparedTx);
expect(estimates.wei.toNumber()).toBeGreaterThan(0);
expect(estimates.wei.toString()).not.toBe("0");
});
it("can execute a tx", async () => {
Binary file not shown.
+160 -53
View File
@@ -1090,6 +1090,9 @@ importers:
packages/sdk:
dependencies:
'@eth-optimism/sdk':
specifier: 3.2.2
version: 3.2.2([email protected])
'@thirdweb-dev/chains':
specifier: workspace:*
version: link:../chains
@@ -5089,7 +5092,7 @@ packages:
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
eslint: 8.56.0
eslint-visitor-keys: 2.1.0
semver: 7.5.4
semver: 7.6.0
/@babel/[email protected]:
resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==}
@@ -5139,7 +5142,7 @@ packages:
'@babel/helper-validator-option': 7.23.5
browserslist: 4.22.2
lru-cache: 5.1.1
semver: 7.5.4
semver: 7.6.0
/@babel/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==}
@@ -5156,7 +5159,7 @@ packages:
'@babel/helper-replace-supers': 7.22.20(@babel/[email protected])
'@babel/helper-skip-transparent-expression-wrappers': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
semver: 7.5.4
semver: 7.6.0
/@babel/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==}
@@ -5167,7 +5170,7 @@ packages:
'@babel/core': 7.23.7
'@babel/helper-annotate-as-pure': 7.22.5
regexpu-core: 5.3.2
semver: 7.5.4
semver: 7.6.0
/@babel/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==}
@@ -5178,7 +5181,7 @@ packages:
'@babel/core': 7.23.7
'@babel/helper-annotate-as-pure': 7.22.5
regexpu-core: 5.3.2
semver: 7.5.4
semver: 7.6.0
/@babel/[email protected](@babel/[email protected]):
resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==}
@@ -5191,7 +5194,7 @@ packages:
debug: 4.3.4([email protected])
lodash.debounce: 4.0.8
resolve: 1.22.8
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
@@ -6298,7 +6301,7 @@ packages:
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: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
@@ -7536,6 +7539,11 @@ packages:
resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
/@eth-optimism/[email protected]:
resolution: {integrity: sha512-Hc5peN5PM8kzl9dzqSD5jv6ED3QliO1DF0dXLRJxfrXR7/rmEeyuAYESUwUM0gdJZjkwRYiS5m230BI6bQmnlw==}
requiresBuild: true
dev: false
/@eth-optimism/[email protected]([email protected]):
resolution: {integrity: sha512-MrzV0nvsymfO/fursTB7m/KunkPsCndltVgfdHaT1Aj5Vi6R/doKIGGkOofHX+8B6VMZpuZosKCMQ5lQuqjt8w==}
peerDependencies:
@@ -7550,6 +7558,20 @@ packages:
- utf-8-validate
dev: false
/@eth-optimism/[email protected]([email protected]):
resolution: {integrity: sha512-vQ04wfG9kMf1Fwy3FEMqH2QZbgS0gldKhcBeBUPfO8zu68L61VI97UDXmsMQXzTsEAxK8HnokW3/gosl4/NW3w==}
peerDependencies:
ethers: ^5
dependencies:
'@eth-optimism/core-utils': 0.12.0
'@ethersproject/abstract-provider': 5.7.0
'@ethersproject/abstract-signer': 5.7.0
ethers: 5.7.2
transitivePeerDependencies:
- bufferutil
- utf-8-validate
dev: false
/@eth-optimism/[email protected]:
resolution: {integrity: sha512-qW+7LZYCz7i8dRa7SRlUKIo1VBU8lvN0HeXCxJR+z+xtMzMQpPds20XJNCMclszxYQHkXY00fOT6GvFw9ZL6nw==}
dependencies:
@@ -7568,12 +7590,55 @@ packages:
'@ethersproject/transactions': 5.7.0
'@ethersproject/web': 5.7.1
bufio: 1.2.0
chai: 4.3.7
chai: 4.4.1
transitivePeerDependencies:
- bufferutil
- utf-8-validate
dev: false
/@eth-optimism/[email protected]:
resolution: {integrity: sha512-1FvzbUmCEy9zSKPG1QWg2VfA2Cy90xBA9Wkp11lXXrz91zUPCNCNSRTujXWYIC86ketNsZp7p4njSf6lTycHCw==}
requiresBuild: true
dependencies:
'@ethersproject/abi': 5.7.0
'@ethersproject/abstract-provider': 5.7.0
'@ethersproject/address': 5.7.0
'@ethersproject/bignumber': 5.7.0
'@ethersproject/bytes': 5.7.0
'@ethersproject/constants': 5.7.0
'@ethersproject/contracts': 5.7.0
'@ethersproject/keccak256': 5.7.0
'@ethersproject/properties': 5.7.0
'@ethersproject/rlp': 5.7.0
'@ethersproject/web': 5.7.1
chai: 4.4.1
ethers: 5.7.2
node-fetch: 2.6.12
transitivePeerDependencies:
- bufferutil
- encoding
- utf-8-validate
dev: false
/@eth-optimism/[email protected]([email protected]):
resolution: {integrity: sha512-P8YXAlh2lun0KZlwrw4FqmK4kNIoOOzI816XXhfkW3nMVADGRAru3TKSM74MgmEuyGiHrA9EoPRq1WLqUX4B0w==}
peerDependencies:
ethers: ^5
dependencies:
'@eth-optimism/contracts': 0.6.0([email protected])
'@eth-optimism/contracts-bedrock': 0.17.1
'@eth-optimism/core-utils': 0.13.1
ethers: 5.7.2
lodash: 4.17.21
merkletreejs: 0.3.11
rlp: 2.2.7
semver: 7.6.0
transitivePeerDependencies:
- bufferutil
- encoding
- utf-8-validate
dev: false
/@ethereumjs/[email protected]:
resolution: {integrity: sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==}
dependencies:
@@ -7934,7 +7999,7 @@ packages:
qrcode-terminal: 0.11.0
requireg: 0.2.2
resolve-from: 5.0.0
semver: 7.5.4
semver: 7.6.0
send: 0.18.0
slugify: 1.6.5
structured-headers: 0.4.1
@@ -7973,7 +8038,7 @@ packages:
getenv: 1.0.0
glob: 7.1.6
resolve-from: 5.0.0
semver: 7.5.4
semver: 7.6.0
slash: 3.0.0
xcode: 3.0.1
xml2js: 0.6.0
@@ -7996,7 +8061,7 @@ packages:
glob: 7.1.6
require-from-string: 2.0.2
resolve-from: 5.0.0
semver: 7.5.4
semver: 7.6.0
slugify: 1.6.5
sucrase: 3.29.0
transitivePeerDependencies:
@@ -8019,7 +8084,7 @@ packages:
node-fetch: 2.6.12
open: 8.4.2
resolve-from: 5.0.0
semver: 7.5.4
semver: 7.6.0
serialize-error: 6.0.0
temp-dir: 2.0.0
transitivePeerDependencies:
@@ -8059,7 +8124,7 @@ packages:
node-fetch: 2.6.12
parse-png: 2.1.0
resolve-from: 5.0.0
semver: 7.5.4
semver: 7.6.0
tempy: 0.3.0
transitivePeerDependencies:
- encoding
@@ -8141,7 +8206,7 @@ packages:
expo-modules-autolinking: 1.0.2
fs-extra: 9.1.0
resolve-from: 5.0.0
semver: 7.5.4
semver: 7.6.0
xml2js: 0.6.0
transitivePeerDependencies:
- encoding
@@ -9071,7 +9136,7 @@ packages:
dependencies:
'@types/debug': 4.1.7
debug: 4.3.4([email protected])
semver: 7.5.4
semver: 7.6.0
superstruct: 1.0.3
transitivePeerDependencies:
- supports-color
@@ -9632,7 +9697,7 @@ packages:
resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==}
dependencies:
'@gar/promisify': 1.1.3
semver: 7.5.4
semver: 7.6.0
dev: false
/@npmcli/[email protected]:
@@ -10684,7 +10749,7 @@ packages:
node-stream-zip: 1.15.0
ora: 5.4.1
prompts: 2.4.2
semver: 7.5.4
semver: 7.6.0
strip-ansi: 5.2.0
sudo-prompt: 9.2.1
wcwidth: 1.0.1
@@ -10786,7 +10851,7 @@ packages:
node-fetch: 2.6.12
open: 6.4.0
ora: 5.4.1
semver: 7.5.4
semver: 7.6.0
shell-quote: 1.8.0
transitivePeerDependencies:
- encoding
@@ -10817,7 +10882,7 @@ packages:
fs-extra: 8.1.0
graceful-fs: 4.2.11
prompts: 2.4.2
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- '@babel/core'
- bufferutil
@@ -11033,7 +11098,7 @@ packages:
resolution: {integrity: sha512-ITocwSWlFUA1K9VMP/eJiMfgbP/I9qDxAaFz7ukj5N5NZD3ihVQZkmqML6hjse5UhrfjCnfIEcLkNZhtB2XC2Q==}
dependencies:
'@safe-global/safe-core-sdk-types': 1.9.2
semver: 7.5.4
semver: 7.6.0
web3-utils: 1.8.2
transitivePeerDependencies:
- encoding
@@ -11058,7 +11123,7 @@ packages:
/@safe-global/[email protected]:
resolution: {integrity: sha512-j7Ml1MVZw73XMTLbyIjo+Gvohwg5HYi8WM6b3vo+AkYEO/X4TNY8eJ0T0Awip5PO9MNyZymF3QY065uccQP53A==}
dependencies:
semver: 7.5.4
semver: 7.6.0
dev: false
/@safe-global/[email protected](@ethersproject/[email protected])(@ethersproject/[email protected])(@ethersproject/[email protected])(@ethersproject/[email protected]):
@@ -12896,7 +12961,7 @@ packages:
grapheme-splitter: 1.0.4
ignore: 5.3.0
natural-compare-lite: 1.4.0
semver: 7.5.4
semver: 7.6.0
tsutils: 3.21.0([email protected])
typescript: 5.3.3
transitivePeerDependencies:
@@ -13081,7 +13146,7 @@ packages:
debug: 4.3.4([email protected])
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
semver: 7.6.0
tsutils: 3.21.0([email protected])
typescript: 5.3.3
transitivePeerDependencies:
@@ -13102,7 +13167,7 @@ packages:
debug: 4.3.4([email protected])
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
semver: 7.6.0
tsutils: 3.21.0([email protected])
typescript: 5.3.3
transitivePeerDependencies:
@@ -13123,7 +13188,7 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.5.4
semver: 7.6.0
ts-api-utils: 1.0.1([email protected])
typescript: 5.3.3
transitivePeerDependencies:
@@ -13143,7 +13208,7 @@ packages:
debug: 4.3.4([email protected])
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
semver: 7.6.0
ts-api-utils: 1.0.1([email protected])
typescript: 5.3.3
transitivePeerDependencies:
@@ -13163,7 +13228,7 @@ packages:
'@typescript-eslint/typescript-estree': 5.55.0([email protected])
eslint: 8.56.0
eslint-scope: 5.1.1
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -13183,7 +13248,7 @@ packages:
'@typescript-eslint/typescript-estree': 5.60.1([email protected])
eslint: 8.56.0
eslint-scope: 5.1.1
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -13201,7 +13266,7 @@ packages:
'@typescript-eslint/types': 6.2.0
'@typescript-eslint/typescript-estree': 6.2.0([email protected])
eslint: 8.56.0
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -14780,7 +14845,7 @@ packages:
'@babel/compat-data': 7.23.5
'@babel/core': 7.23.7
'@babel/helper-define-polyfill-provider': 0.3.3(@babel/[email protected])
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
@@ -14792,7 +14857,7 @@ packages:
'@babel/compat-data': 7.23.5
'@babel/core': 7.23.7
'@babel/helper-define-polyfill-provider': 0.4.4(@babel/[email protected])
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
@@ -15080,7 +15145,7 @@ packages:
engines: {node: '>=12'}
dependencies:
bin-version: 6.0.0
semver: 7.5.4
semver: 7.6.0
semver-truncate: 3.0.0
dev: true
@@ -15538,7 +15603,7 @@ packages:
/[email protected]:
resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
dependencies:
semver: 7.5.4
semver: 7.6.0
dev: false
/[email protected]([email protected]):
@@ -15774,6 +15839,20 @@ packages:
loupe: 2.3.6
pathval: 1.1.1
type-detect: 4.0.8
dev: true
/[email protected]:
resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==}
engines: {node: '>=4'}
dependencies:
assertion-error: 1.1.0
check-error: 1.0.3
deep-eql: 4.1.3
get-func-name: 2.0.2
loupe: 2.3.6
pathval: 1.1.1
type-detect: 4.0.8
dev: false
/[email protected]:
resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==}
@@ -15845,6 +15924,13 @@ packages:
/[email protected]:
resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
dev: true
/[email protected]:
resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
dependencies:
get-func-name: 2.0.2
dev: false
/[email protected]:
resolution: {integrity: sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==}
@@ -16443,7 +16529,7 @@ packages:
dependencies:
nice-try: 1.0.5
path-key: 2.0.1
semver: 7.5.4
semver: 7.6.0
shebang-command: 1.2.0
which: 1.3.1
@@ -16480,7 +16566,6 @@ packages:
/[email protected]:
resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
dev: true
/[email protected]:
resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==}
@@ -16543,7 +16628,7 @@ packages:
postcss-modules-scope: 3.0.0([email protected])
postcss-modules-values: 4.0.0([email protected])
postcss-value-parser: 4.2.0
semver: 7.5.4
semver: 7.6.0
webpack: 5.76.2
dev: false
@@ -18205,7 +18290,7 @@ packages:
minimatch: 3.1.2
object.values: 1.1.6
resolve: 1.22.1
semver: 7.5.4
semver: 7.6.0
tsconfig-paths: 3.14.2
transitivePeerDependencies:
- eslint-import-resolver-typescript
@@ -18317,7 +18402,7 @@ packages:
minimatch: 3.1.2
object.entries: 1.1.6
object.fromentries: 2.0.6
semver: 7.5.4
semver: 7.6.0
/[email protected]([email protected])([email protected])([email protected]):
resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
@@ -19724,7 +19809,7 @@ packages:
memfs: 3.4.13
minimatch: 3.1.2
schema-utils: 2.7.0
semver: 7.5.4
semver: 7.6.0
tapable: 1.1.3
typescript: 5.3.3
webpack: 5.76.2
@@ -19939,6 +20024,10 @@ packages:
/[email protected]:
resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
/[email protected]:
resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
dev: false
/[email protected]:
resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
dependencies:
@@ -21517,7 +21606,7 @@ packages:
'@babel/core': 7.23.7
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -21530,7 +21619,7 @@ packages:
'@babel/parser': 7.23.6
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
@@ -22335,7 +22424,7 @@ packages:
jest-util: 27.5.1
natural-compare: 1.4.0
pretty-format: 27.5.1
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
dev: false
@@ -22363,7 +22452,7 @@ packages:
jest-util: 29.6.2
natural-compare: 1.4.0
pretty-format: 29.6.2
semver: 7.5.4
semver: 7.6.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -23402,13 +23491,13 @@ packages:
engines: {node: '>=6'}
dependencies:
pify: 4.0.1
semver: 7.5.4
semver: 7.6.0
/[email protected]:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
dependencies:
semver: 7.5.4
semver: 7.6.0
/[email protected]:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
@@ -23604,6 +23693,17 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
/[email protected]:
resolution: {integrity: sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==}
engines: {node: '>= 7.6.0'}
dependencies:
bignumber.js: 9.1.1
buffer-reverse: 1.0.1
crypto-js: 4.2.0
treeify: 1.1.0
web3-utils: 1.8.2
dev: false
/[email protected]:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
@@ -24554,7 +24654,7 @@ packages:
dependencies:
hosted-git-info: 2.8.9
resolve: 1.22.8
semver: 7.5.4
semver: 7.6.0
validate-npm-package-license: 3.0.4
/[email protected]:
@@ -24588,7 +24688,7 @@ packages:
dependencies:
hosted-git-info: 3.0.8
osenv: 0.1.5
semver: 7.5.4
semver: 7.6.0
validate-npm-package-name: 3.0.0
dev: false
@@ -25130,7 +25230,7 @@ packages:
got: 12.6.1
registry-auth-token: 5.0.2
registry-url: 6.0.1
semver: 7.5.4
semver: 7.6.0
dev: false
/[email protected]:
@@ -25823,7 +25923,7 @@ packages:
cosmiconfig: 7.1.0
klona: 2.0.6
postcss: 8.4.21
semver: 7.5.4
semver: 7.6.0
webpack: 5.76.2
dev: false
@@ -26481,7 +26581,7 @@ packages:
jsdoc: 4.0.2
minimist: 1.2.8
protobufjs: 7.2.4
semver: 7.5.4
semver: 7.6.0
tmp: 0.2.1
uglify-js: 3.17.4
dev: false
@@ -27946,7 +28046,7 @@ packages:
resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==}
engines: {node: '>=12'}
dependencies:
semver: 7.5.4
semver: 7.6.0
dev: false
/[email protected]:
@@ -27958,7 +28058,7 @@ packages:
resolution: {integrity: sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==}
engines: {node: '>=12'}
dependencies:
semver: 7.5.4
semver: 7.6.0
dev: true
/[email protected]:
@@ -27975,6 +28075,13 @@ packages:
dependencies:
lru-cache: 6.0.0
/[email protected]:
resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
/[email protected]:
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
engines: {node: '>= 0.8.0'}
@@ -28312,7 +28419,7 @@ packages:
js-sha3: 0.8.0
memorystream: 0.3.1
require-from-string: 2.0.2
semver: 7.5.4
semver: 7.6.0
tmp: 0.0.33
transitivePeerDependencies:
- debug