Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c52e3beac1 | ||
|
|
f0250a77cd | ||
|
|
d4be6479db | ||
|
|
c67b287764 | ||
|
|
7ac4e6ba4e | ||
|
|
c494db87cb | ||
|
|
1932d601c1 | ||
|
|
846a3503fe | ||
|
|
3e7f9cb946 | ||
|
|
83526c519a | ||
|
|
2e01627c99 | ||
|
|
7b52c6bba0 | ||
|
|
e024d78ed0 | ||
|
|
a2002d1637 | ||
|
|
607ab7e860 | ||
|
|
f27989741a | ||
|
|
b2be63ada4 | ||
|
|
eee200f8d4 | ||
|
|
817ab2249f | ||
|
|
173777ade4 | ||
|
|
838233075a | ||
|
|
cabfc29119 | ||
|
|
f02570db88 | ||
|
|
c6b025e844 | ||
|
|
332a14552b | ||
|
|
c894270401 | ||
|
|
595815dc3e | ||
|
|
b959cafccc | ||
|
|
4cf0aede0e | ||
|
|
6cf298a29a |
@@ -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 |
|
||||
|
||||
@@ -1,5 +1,47 @@
|
||||
# @thirdweb-dev/auth
|
||||
|
||||
## 4.1.44
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@2.4.22
|
||||
|
||||
## 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/auth",
|
||||
"version": "4.1.38",
|
||||
"version": "4.1.44",
|
||||
"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": {
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @thirdweb-dev/chains
|
||||
|
||||
## 0.1.80
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2484](https://github.com/thirdweb-dev/js/pull/2484) [`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Update 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
|
||||
|
||||
@@ -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;
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ETH",
|
||||
"chainId": 22985,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "beyond-sepolia-3wng1zu3j3 explorer",
|
||||
"url": "https://explorerl2new-beyond-sepolia-3wng1zu3j3.t.conduit.xyz",
|
||||
"standard": "standard",
|
||||
"icon": {
|
||||
"url": "ipfs://QmbLxRVZ27Yy6RE9xAdYgSxGPB1TjPtcxahy6uNnp2Pt6T/Beyond.jpg",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "jpg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmbLxRVZ27Yy6RE9xAdYgSxGPB1TjPtcxahy6uNnp2Pt6T/Beyond.jpg",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "jpg"
|
||||
},
|
||||
"infoURL": "https://explorerl2new-beyond-sepolia-3wng1zu3j3.t.conduit.xyz",
|
||||
"name": "Beyond Sepolia",
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 22985,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://22985.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-beyond-sepolia-3wng1zu3j3.t.conduit.xyz"
|
||||
],
|
||||
"shortName": "beyond-sepolia",
|
||||
"slug": "beyond-sepolia",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,51 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "2911",
|
||||
"chainId": 2911,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.hychain.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcSJmAfk3iay6uCGJxgUPd9pTsRxbtF4BrNnC5txE9cg8",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmcSJmAfk3iay6uCGJxgUPd9pTsRxbtF4BrNnC5txE9cg8",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
},
|
||||
"infoURL": "https://www.hychain.com",
|
||||
"name": "HYCHAIN",
|
||||
"nativeCurrency": {
|
||||
"name": "TOPIA",
|
||||
"symbol": "TOPIA",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 2911,
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-1",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://bridge.hychain.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://2911.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.hychain.com/http"
|
||||
],
|
||||
"shortName": "hychain",
|
||||
"slug": "hychain",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,47 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "ETH",
|
||||
"chainId": 29112,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://testnet.explorer.hychain.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcSJmAfk3iay6uCGJxgUPd9pTsRxbtF4BrNnC5txE9cg8",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmcSJmAfk3iay6uCGJxgUPd9pTsRxbtF4BrNnC5txE9cg8",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
},
|
||||
"infoURL": "https://www.hychain.com",
|
||||
"name": "HYCHAIN Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "TOPIA",
|
||||
"symbol": "TOPIA",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 29112,
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-58008",
|
||||
"bridges": []
|
||||
},
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://29112.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.hychain.com/http"
|
||||
],
|
||||
"shortName": "hychain-testnet",
|
||||
"slug": "hychain-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -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;
|
||||
@@ -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/"
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "SIC Testnet",
|
||||
"chainId": 5102,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://explorerl2new-sic-testnet-zvr7tlkzsi.t.conduit.xyz",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://www.fwb.help/",
|
||||
"name": "SIC Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "ETH",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 5102,
|
||||
"rpc": [
|
||||
"https://5102.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-sic-testnet-zvr7tlkzsi.t.conduit.xyz"
|
||||
],
|
||||
"shortName": "sic-testnet",
|
||||
"slug": "sic-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -40,7 +40,7 @@ export default {
|
||||
"networkId": 52014,
|
||||
"rpc": [
|
||||
"https://52014.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.electroneum.com"
|
||||
"https://rpc.electroneum.com"
|
||||
],
|
||||
"shortName": "etn-mainnet",
|
||||
"slug": "electroneum",
|
||||
|
||||
@@ -40,7 +40,7 @@ export default {
|
||||
"networkId": 5201420,
|
||||
"rpc": [
|
||||
"https://5201420.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.electroneum.com"
|
||||
"https://testnet-rpc.electroneum.com"
|
||||
],
|
||||
"shortName": "etn-testnet",
|
||||
"slip44": 1,
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Galadriel",
|
||||
"chainId": 696969,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Galadriel Explorer",
|
||||
"url": "https://explorer.galadriel.com",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://docs.galadriel.com/faucet"
|
||||
],
|
||||
"infoURL": "https://galadriel.com",
|
||||
"name": "Galadriel Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "Galadriel Testnet token",
|
||||
"symbol": "GAL",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 696969,
|
||||
"rpc": [
|
||||
"https://696969.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.galadriel.com"
|
||||
],
|
||||
"shortName": "galadriel-testnet",
|
||||
"slug": "galadriel-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -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;
|
||||
@@ -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": {
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -0,0 +1,38 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Polygon",
|
||||
"chainId": 80002,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "polygonamoy",
|
||||
"url": "https://www.oklink.com/amoy",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.polygon.technology/"
|
||||
],
|
||||
"features": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/polygon/512.png",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://polygon.technology/",
|
||||
"name": "Polygon Amoy Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "MATIC",
|
||||
"symbol": "MATIC",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 80002,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://80002.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-amoy.polygon.technology"
|
||||
],
|
||||
"shortName": "polygonamoy",
|
||||
"slug": "polygon-amoy-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -3,10 +3,21 @@ export default {
|
||||
"chain": "MEER",
|
||||
"chainId": 813,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "meerscan",
|
||||
"url": "https://qng.qitmeer.io",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "meerscan",
|
||||
"url": "https://qng.meerscan.io",
|
||||
"standard": "none",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm",
|
||||
"width": 512,
|
||||
@@ -36,8 +47,6 @@ export default {
|
||||
"https://evm-dataseed2.meerscan.io",
|
||||
"https://evm-dataseed3.meerscan.io",
|
||||
"https://evm-dataseed.meerscan.com",
|
||||
"https://evm-dataseed1.meerscan.com",
|
||||
"https://evm-dataseed2.meerscan.com",
|
||||
"https://qng.rpc.qitmeer.io",
|
||||
"https://mainnet.meerlabs.com",
|
||||
"https://rpc.dimai.ai",
|
||||
|
||||
@@ -5,8 +5,8 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "meerscan testnet",
|
||||
"url": "https://qng-testnet.meerscan.io",
|
||||
"standard": "none",
|
||||
"url": "https://testnet-qng.qitmeer.io",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmWSbMuCwQzhBB6GRLYqZ87n5cnpzpYCehCAMMQmUXj4mm",
|
||||
"width": 512,
|
||||
|
||||
@@ -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;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"chain": "Avalanche",
|
||||
"chainId": 93017,
|
||||
"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": "QIS0313 Testnet",
|
||||
"nativeCurrency": {
|
||||
"name": "QIS0313 Testnet Token",
|
||||
"symbol": "NCG",
|
||||
"decimals": 18
|
||||
},
|
||||
"networkId": 93017,
|
||||
"redFlags": [],
|
||||
"rpc": [
|
||||
"https://93017.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
|
||||
],
|
||||
"shortName": "QIS0313 Testnet",
|
||||
"slug": "qis0313-testnet",
|
||||
"testnet": true
|
||||
} as const satisfies Chain;
|
||||
@@ -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,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/chains",
|
||||
"version": "0.1.78",
|
||||
"version": "0.1.80",
|
||||
"main": "dist/thirdweb-dev-chains.cjs.js",
|
||||
"module": "dist/thirdweb-dev-chains.esm.js",
|
||||
"exports": {
|
||||
|
||||
@@ -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
@@ -1,5 +1,61 @@
|
||||
# thirdweb
|
||||
|
||||
## 0.13.52
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8), [`f0250a7`](https://github.com/thirdweb-dev/js/commit/f0250a77cdbfa3b72e8dbf0ff345219a032e42b0), [`c67b287`](https://github.com/thirdweb-dev/js/commit/c67b2877643afdfb503b41a2b5d21e18dbff15f2), [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454), [`d4be647`](https://github.com/thirdweb-dev/js/commit/d4be6479db3fec6b4891e5ca89487b4e703eb9cf)]:
|
||||
- @thirdweb-dev/chains@0.1.80
|
||||
- @thirdweb-dev/sdk@4.0.47
|
||||
- @thirdweb-dev/wallets@2.4.22
|
||||
- @thirdweb-dev/auth@4.1.44
|
||||
|
||||
## 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,7 +1,7 @@
|
||||
{
|
||||
"name": "thirdweb",
|
||||
"main": "dist/cli/index.js",
|
||||
"version": "0.13.46",
|
||||
"version": "0.13.52",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
# @thirdweb-dev/contracts-js
|
||||
|
||||
## 1.3.17
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2459](https://github.com/thirdweb-dev/js/pull/2459) [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454) Thanks [@kumaryash90](https://github.com/kumaryash90)! - Contracts version 3.11.1
|
||||
|
||||
## 1.3.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/contracts-js",
|
||||
"version": "1.3.16",
|
||||
"version": "1.3.17",
|
||||
"main": "dist/thirdweb-dev-contracts-js.cjs.js",
|
||||
"module": "dist/thirdweb-dev-contracts-js.esm.js",
|
||||
"exports": {
|
||||
@@ -95,7 +95,6 @@
|
||||
"./dist/abis/IClaimCondition_V1.json": "./dist/abis/IClaimCondition_V1.json",
|
||||
"./dist/abis/IERC1155.json": "./dist/abis/IERC1155.json",
|
||||
"./dist/abis/IStaking1155.json": "./dist/abis/IStaking1155.json",
|
||||
"./dist/abis/Math.json": "./dist/abis/Math.json",
|
||||
"./dist/abis/IRoyaltyEngineV1.json": "./dist/abis/IRoyaltyEngineV1.json",
|
||||
"./dist/abis/DelayedRevealStorage.json": "./dist/abis/DelayedRevealStorage.json",
|
||||
"./dist/abis/ISignatureMintERC1155.json": "./dist/abis/ISignatureMintERC1155.json",
|
||||
@@ -106,7 +105,6 @@
|
||||
"./dist/abis/IERC1155Receiver.json": "./dist/abis/IERC1155Receiver.json",
|
||||
"./dist/abis/IERC4906.json": "./dist/abis/IERC4906.json",
|
||||
"./dist/abis/ERC2771ContextLogic.json": "./dist/abis/ERC2771ContextLogic.json",
|
||||
"./dist/abis/TWBitMaps.json": "./dist/abis/TWBitMaps.json",
|
||||
"./dist/abis/IERC2981.json": "./dist/abis/IERC2981.json",
|
||||
"./dist/abis/ILazyMintWithTier.json": "./dist/abis/ILazyMintWithTier.json",
|
||||
"./dist/abis/ERC721SignatureMint.json": "./dist/abis/ERC721SignatureMint.json",
|
||||
@@ -129,11 +127,9 @@
|
||||
"./dist/abis/AirdropERC721.json": "./dist/abis/AirdropERC721.json",
|
||||
"./dist/abis/IDropSinglePhase.json": "./dist/abis/IDropSinglePhase.json",
|
||||
"./dist/abis/zora_IERC721Drop.json": "./dist/abis/zora_IERC721Drop.json",
|
||||
"./dist/abis/TWStringSet.json": "./dist/abis/TWStringSet.json",
|
||||
"./dist/abis/InitStorage.json": "./dist/abis/InitStorage.json",
|
||||
"./dist/abis/IDropSinglePhase1155.json": "./dist/abis/IDropSinglePhase1155.json",
|
||||
"./dist/abis/AccountCore.json": "./dist/abis/AccountCore.json",
|
||||
"./dist/abis/TWStorageSlot.json": "./dist/abis/TWStorageSlot.json",
|
||||
"./dist/abis/TWMinimalFactory.json": "./dist/abis/TWMinimalFactory.json",
|
||||
"./dist/abis/TWRegistry.json": "./dist/abis/TWRegistry.json",
|
||||
"./dist/abis/OpenEditionERC721.json": "./dist/abis/OpenEditionERC721.json",
|
||||
@@ -155,8 +151,8 @@
|
||||
"./dist/abis/Proxy.json": "./dist/abis/Proxy.json",
|
||||
"./dist/abis/ERC1967Proxy.json": "./dist/abis/ERC1967Proxy.json",
|
||||
"./dist/abis/IRoyaltyPayments.json": "./dist/abis/IRoyaltyPayments.json",
|
||||
"./dist/abis/IERC721AQueryable.json": "./dist/abis/IERC721AQueryable.json",
|
||||
"./dist/abis/BaseRouter.json": "./dist/abis/BaseRouter.json",
|
||||
"./dist/abis/TWAddress.json": "./dist/abis/TWAddress.json",
|
||||
"./dist/abis/EvolvingNFT.json": "./dist/abis/EvolvingNFT.json",
|
||||
"./dist/abis/ContractMetadata.json": "./dist/abis/ContractMetadata.json",
|
||||
"./dist/abis/IOffers.json": "./dist/abis/IOffers.json",
|
||||
@@ -200,7 +196,6 @@
|
||||
"./dist/abis/IEntryPoint.json": "./dist/abis/IEntryPoint.json",
|
||||
"./dist/abis/EnglishAuctionsStorage.json": "./dist/abis/EnglishAuctionsStorage.json",
|
||||
"./dist/abis/IDropERC721_V3.json": "./dist/abis/IDropERC721_V3.json",
|
||||
"./dist/abis/EIP712.json": "./dist/abis/EIP712.json",
|
||||
"./dist/abis/DelayedReveal.json": "./dist/abis/DelayedReveal.json",
|
||||
"./dist/abis/IAccount.json": "./dist/abis/IAccount.json",
|
||||
"./dist/abis/OffersStorage.json": "./dist/abis/OffersStorage.json",
|
||||
@@ -218,6 +213,7 @@
|
||||
"./dist/abis/DynamicAccount.json": "./dist/abis/DynamicAccount.json",
|
||||
"./dist/abis/LoyaltyCard.json": "./dist/abis/LoyaltyCard.json",
|
||||
"./dist/abis/IClaimCondition.json": "./dist/abis/IClaimCondition.json",
|
||||
"./dist/abis/StorageSlot.json": "./dist/abis/StorageSlot.json",
|
||||
"./dist/abis/IStaking721.json": "./dist/abis/IStaking721.json",
|
||||
"./dist/abis/IEnglishAuctions.json": "./dist/abis/IEnglishAuctions.json",
|
||||
"./dist/abis/TWMultichainRegistry.json": "./dist/abis/TWMultichainRegistry.json",
|
||||
@@ -234,7 +230,6 @@
|
||||
"./dist/abis/IAirdropERC1155.json": "./dist/abis/IAirdropERC1155.json",
|
||||
"./dist/abis/OffersLogic.json": "./dist/abis/OffersLogic.json",
|
||||
"./dist/abis/Marketplace.json": "./dist/abis/Marketplace.json",
|
||||
"./dist/abis/TWStrings.json": "./dist/abis/TWStrings.json",
|
||||
"./dist/abis/DirectListingsStorage.json": "./dist/abis/DirectListingsStorage.json",
|
||||
"./dist/abis/TieredDrop.json": "./dist/abis/TieredDrop.json",
|
||||
"./dist/abis/ERC1155Receiver.json": "./dist/abis/ERC1155Receiver.json",
|
||||
@@ -245,6 +240,7 @@
|
||||
"./dist/abis/PermissionsInit.json": "./dist/abis/PermissionsInit.json",
|
||||
"./dist/abis/Account.json": "./dist/abis/Account.json",
|
||||
"./dist/abis/ERC20Base.json": "./dist/abis/ERC20Base.json",
|
||||
"./dist/abis/Address.json": "./dist/abis/Address.json",
|
||||
"./dist/abis/INFTStake.json": "./dist/abis/INFTStake.json",
|
||||
"./dist/abis/BytesLib.json": "./dist/abis/BytesLib.json",
|
||||
"./dist/abis/LazyMintStorage.json": "./dist/abis/LazyMintStorage.json",
|
||||
@@ -309,6 +305,7 @@
|
||||
"./dist/abis/ERC6551BytecodeLib.json": "./dist/abis/ERC6551BytecodeLib.json",
|
||||
"./dist/abis/TWMultichainRegistryStorage.json": "./dist/abis/TWMultichainRegistryStorage.json",
|
||||
"./dist/abis/ForwarderEOAOnly.json": "./dist/abis/ForwarderEOAOnly.json",
|
||||
"./dist/abis/Strings.json": "./dist/abis/Strings.json",
|
||||
"./dist/abis/TokenStore.json": "./dist/abis/TokenStore.json",
|
||||
"./dist/abis/TokenBundle.json": "./dist/abis/TokenBundle.json",
|
||||
"./dist/abis/IPaymaster.json": "./dist/abis/IPaymaster.json",
|
||||
@@ -336,8 +333,10 @@
|
||||
"./dist/abis/IMultiwrap.json": "./dist/abis/IMultiwrap.json",
|
||||
"./dist/abis/BurnToClaimDrop721Storage.json": "./dist/abis/BurnToClaimDrop721Storage.json",
|
||||
"./dist/abis/IBurnableERC721.json": "./dist/abis/IBurnableERC721.json",
|
||||
"./dist/abis/OpenEditionERC721FlatFee.json": "./dist/abis/OpenEditionERC721FlatFee.json",
|
||||
"./dist/abis/AccountPermissionsStorage.json": "./dist/abis/AccountPermissionsStorage.json",
|
||||
"./dist/abis/FeeType.json": "./dist/abis/FeeType.json",
|
||||
"./dist/abis/ERC721AQueryable.json": "./dist/abis/ERC721AQueryable.json",
|
||||
"./dist/abis/Split.json": "./dist/abis/Split.json",
|
||||
"./dist/abis/IERC20Metadata.json": "./dist/abis/IERC20Metadata.json",
|
||||
"./dist/abis/EditionStake.json": "./dist/abis/EditionStake.json",
|
||||
@@ -354,12 +353,11 @@
|
||||
"./dist/abis/IPlatformFee.json": "./dist/abis/IPlatformFee.json",
|
||||
"./dist/abis/Base64.json": "./dist/abis/Base64.json",
|
||||
"./dist/abis/ProxyForUpgradeable.json": "./dist/abis/ProxyForUpgradeable.json",
|
||||
"./dist/abis/Helpers.json": "./dist/abis/Helpers.json",
|
||||
"./dist/abis/StringSet.json": "./dist/abis/StringSet.json",
|
||||
"./dist/abis/VRFV2WrapperConsumerBase.json": "./dist/abis/VRFV2WrapperConsumerBase.json",
|
||||
"./dist/abis/ITokenERC1155.json": "./dist/abis/ITokenERC1155.json",
|
||||
"./dist/abis/BatchMintMetadata.json": "./dist/abis/BatchMintMetadata.json",
|
||||
"./dist/abis/NFTMetadata.json": "./dist/abis/NFTMetadata.json",
|
||||
"./dist/abis/ERC20Permit.json": "./dist/abis/ERC20Permit.json",
|
||||
"./dist/abis/IAppURI.json": "./dist/abis/IAppURI.json",
|
||||
"./dist/abis/ERC1155DelayedReveal.json": "./dist/abis/ERC1155DelayedReveal.json",
|
||||
"./dist/abis/BatchMintMetadata_V1.json": "./dist/abis/BatchMintMetadata_V1.json",
|
||||
@@ -386,6 +384,7 @@
|
||||
"./dist/abis/Ownable.json": "./dist/abis/Ownable.json",
|
||||
"./dist/abis/ERC721Base.json": "./dist/abis/ERC721Base.json",
|
||||
"./dist/abis/OperatorFilterToggleStorage.json": "./dist/abis/OperatorFilterToggleStorage.json",
|
||||
"./dist/abis/BitMaps.json": "./dist/abis/BitMaps.json",
|
||||
"./dist/abis/NFTStake.json": "./dist/abis/NFTStake.json",
|
||||
"./dist/abis/ContractMetadataStorage.json": "./dist/abis/ContractMetadataStorage.json",
|
||||
"./dist/abis/DropERC20_V2.json": "./dist/abis/DropERC20_V2.json",
|
||||
@@ -423,7 +422,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/contracts-js",
|
||||
"dependencies": {
|
||||
"@thirdweb-dev/contracts": "3.10.3"
|
||||
"@thirdweb-dev/contracts": "3.11.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.23.8",
|
||||
|
||||
@@ -1,5 +1,61 @@
|
||||
# @thirdweb-dev/react-core
|
||||
|
||||
## 4.4.20
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8), [`f0250a7`](https://github.com/thirdweb-dev/js/commit/f0250a77cdbfa3b72e8dbf0ff345219a032e42b0), [`c67b287`](https://github.com/thirdweb-dev/js/commit/c67b2877643afdfb503b41a2b5d21e18dbff15f2), [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454), [`d4be647`](https://github.com/thirdweb-dev/js/commit/d4be6479db3fec6b4891e5ca89487b4e703eb9cf)]:
|
||||
- @thirdweb-dev/chains@0.1.80
|
||||
- @thirdweb-dev/sdk@4.0.47
|
||||
- @thirdweb-dev/wallets@2.4.22
|
||||
- @thirdweb-dev/auth@4.1.44
|
||||
|
||||
## 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,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/react-core",
|
||||
"version": "4.4.14",
|
||||
"version": "4.4.20",
|
||||
"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.
@@ -1,5 +1,17 @@
|
||||
# @thirdweb-dev/react-native-compat
|
||||
|
||||
## 0.7.17
|
||||
|
||||
## 0.7.16
|
||||
|
||||
## 0.7.15
|
||||
|
||||
## 0.7.14
|
||||
|
||||
## 0.7.13
|
||||
|
||||
## 0.7.12
|
||||
|
||||
## 0.7.11
|
||||
|
||||
## 0.7.10
|
||||
|
||||
@@ -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.17",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native-compat",
|
||||
"license": "Apache-2.0",
|
||||
|
||||
@@ -1,5 +1,61 @@
|
||||
# @thirdweb-dev/react-native
|
||||
|
||||
## 0.7.17
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8), [`f0250a7`](https://github.com/thirdweb-dev/js/commit/f0250a77cdbfa3b72e8dbf0ff345219a032e42b0), [`c67b287`](https://github.com/thirdweb-dev/js/commit/c67b2877643afdfb503b41a2b5d21e18dbff15f2), [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454), [`d4be647`](https://github.com/thirdweb-dev/js/commit/d4be6479db3fec6b4891e5ca89487b4e703eb9cf)]:
|
||||
- @thirdweb-dev/chains@0.1.80
|
||||
- @thirdweb-dev/sdk@4.0.47
|
||||
- @thirdweb-dev/react-core@4.4.20
|
||||
- @thirdweb-dev/wallets@2.4.22
|
||||
|
||||
## 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,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/react-native",
|
||||
"version": "0.7.11",
|
||||
"version": "0.7.17",
|
||||
"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.
@@ -1,5 +1,63 @@
|
||||
# @thirdweb-dev/react
|
||||
|
||||
## 4.4.20
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8), [`f0250a7`](https://github.com/thirdweb-dev/js/commit/f0250a77cdbfa3b72e8dbf0ff345219a032e42b0), [`c67b287`](https://github.com/thirdweb-dev/js/commit/c67b2877643afdfb503b41a2b5d21e18dbff15f2), [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454), [`d4be647`](https://github.com/thirdweb-dev/js/commit/d4be6479db3fec6b4891e5ca89487b4e703eb9cf)]:
|
||||
- @thirdweb-dev/chains@0.1.80
|
||||
- @thirdweb-dev/sdk@4.0.47
|
||||
- @thirdweb-dev/react-core@4.4.20
|
||||
- @thirdweb-dev/wallets@2.4.22
|
||||
|
||||
## 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,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/react",
|
||||
"version": "4.4.14",
|
||||
"version": "4.4.20",
|
||||
"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.
@@ -1,5 +1,56 @@
|
||||
# @thirdweb-dev/sdk
|
||||
|
||||
## 4.0.47
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#2490](https://github.com/thirdweb-dev/js/pull/2490) [`f0250a7`](https://github.com/thirdweb-dev/js/commit/f0250a77cdbfa3b72e8dbf0ff345219a032e42b0) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Remove maxPriorityPerGas minimum
|
||||
|
||||
- [#2481](https://github.com/thirdweb-dev/js/pull/2481) [`c67b287`](https://github.com/thirdweb-dev/js/commit/c67b2877643afdfb503b41a2b5d21e18dbff15f2) Thanks [@kumaryash90](https://github.com/kumaryash90)! - ZkSync contract verification
|
||||
|
||||
- [#2459](https://github.com/thirdweb-dev/js/pull/2459) [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454) Thanks [@kumaryash90](https://github.com/kumaryash90)! - Contracts version 3.11.1
|
||||
|
||||
- [#2332](https://github.com/thirdweb-dev/js/pull/2332) [`d4be647`](https://github.com/thirdweb-dev/js/commit/d4be6479db3fec6b4891e5ca89487b4e703eb9cf) Thanks [@farhanW3](https://github.com/farhanW3)! - added domainSeparatorVersion SDK Options for relayers
|
||||
|
||||
- Updated dependencies [[`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8), [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454)]:
|
||||
- @thirdweb-dev/chains@0.1.80
|
||||
- @thirdweb-dev/contracts-js@1.3.17
|
||||
|
||||
## 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/sdk",
|
||||
"version": "4.0.41",
|
||||
"version": "4.0.47",
|
||||
"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:*",
|
||||
|
||||
@@ -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 } : {}),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
@@ -99,6 +110,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 +187,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);
|
||||
}
|
||||
|
||||
@@ -130,6 +130,7 @@ export async function signDAIPermit(
|
||||
allowed = true,
|
||||
deadline?: BigNumberish,
|
||||
nonce?: BigNumberish,
|
||||
domainSeparatorVersion?: string,
|
||||
) {
|
||||
const [name, chainId, signerNonce] = await Promise.all([
|
||||
getTokenName(signer, currencyAddress),
|
||||
@@ -138,7 +139,7 @@ export async function signDAIPermit(
|
||||
]);
|
||||
const domain = await getChainDomainSeperator(signer, {
|
||||
name,
|
||||
version: "1",
|
||||
version: domainSeparatorVersion || "1",
|
||||
chainId,
|
||||
verifyingContract: currencyAddress,
|
||||
});
|
||||
@@ -190,6 +191,7 @@ export async function signEIP2612Permit(
|
||||
value: BigNumberish,
|
||||
deadline?: BigNumberish,
|
||||
nonce?: BigNumberish,
|
||||
domainSeparatorVersion?: string,
|
||||
) {
|
||||
const [name, chainId, signerNonce] = await Promise.all([
|
||||
getTokenName(signer, currencyAddress),
|
||||
@@ -198,7 +200,7 @@ export async function signEIP2612Permit(
|
||||
]);
|
||||
const domain = await getChainDomainSeperator(signer, {
|
||||
name,
|
||||
version: "1",
|
||||
version: domainSeparatorVersion || "1",
|
||||
chainId,
|
||||
verifyingContract: currencyAddress,
|
||||
});
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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}` : "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -267,7 +267,8 @@ export class DropClaimConditions<
|
||||
} catch (err: any) {
|
||||
if (
|
||||
includesErrorMessage(err, "!CONDITION") ||
|
||||
includesErrorMessage(err, "no active mint condition")
|
||||
includesErrorMessage(err, "no active mint condition") ||
|
||||
includesErrorMessage(err, "DropNoActiveCondition")
|
||||
) {
|
||||
reasons.push(ClaimEligibility.NoClaimConditionSet);
|
||||
return reasons;
|
||||
@@ -386,20 +387,24 @@ export class DropClaimConditions<
|
||||
} catch (e: any) {
|
||||
console.warn(
|
||||
"Merkle proof verification failed:",
|
||||
"reason" in e ? e.reason : e,
|
||||
"reason" in e ? e.reason || e.errorName : e,
|
||||
);
|
||||
const reason = (e as any).reason;
|
||||
const reason = (e as any).reason || (e as any).errorName;
|
||||
switch (reason) {
|
||||
case "!Qty":
|
||||
case "DropClaimExceedLimit":
|
||||
reasons.push(ClaimEligibility.OverMaxClaimablePerWallet);
|
||||
break;
|
||||
case "!PriceOrCurrency":
|
||||
case "DropClaimInvalidTokenPrice":
|
||||
reasons.push(ClaimEligibility.WrongPriceOrCurrency);
|
||||
break;
|
||||
case "!MaxSupply":
|
||||
case "DropClaimExceedMaxSupply":
|
||||
reasons.push(ClaimEligibility.NotEnoughSupply);
|
||||
break;
|
||||
case "cant claim yet":
|
||||
case "DropClaimNotStarted":
|
||||
reasons.push(ClaimEligibility.ClaimPhaseNotStarted);
|
||||
break;
|
||||
default: {
|
||||
|
||||
@@ -256,7 +256,8 @@ export class DropErc1155ClaimConditions<
|
||||
} catch (err: any) {
|
||||
if (
|
||||
includesErrorMessage(err, "!CONDITION") ||
|
||||
includesErrorMessage(err, "no active mint condition")
|
||||
includesErrorMessage(err, "no active mint condition") ||
|
||||
includesErrorMessage(err, "DropNoActiveCondition")
|
||||
) {
|
||||
reasons.push(ClaimEligibility.NoClaimConditionSet);
|
||||
return reasons;
|
||||
@@ -374,20 +375,24 @@ export class DropErc1155ClaimConditions<
|
||||
} catch (e: any) {
|
||||
console.warn(
|
||||
"Merkle proof verification failed:",
|
||||
"reason" in e ? e.reason : e,
|
||||
"reason" in e ? e.reason || e.errorName : e,
|
||||
);
|
||||
const reason = (e as any).reason;
|
||||
const reason = (e as any).reason || (e as any).errorName;
|
||||
switch (reason) {
|
||||
case "!Qty":
|
||||
case "DropClaimExceedLimit":
|
||||
reasons.push(ClaimEligibility.OverMaxClaimablePerWallet);
|
||||
break;
|
||||
case "!PriceOrCurrency":
|
||||
case "DropClaimInvalidTokenPrice":
|
||||
reasons.push(ClaimEligibility.WrongPriceOrCurrency);
|
||||
break;
|
||||
case "!MaxSupply":
|
||||
case "DropClaimExceedMaxSupply":
|
||||
reasons.push(ClaimEligibility.NotEnoughSupply);
|
||||
break;
|
||||
case "cant claim yet":
|
||||
case "DropClaimNotStarted":
|
||||
reasons.push(ClaimEligibility.ClaimPhaseNotStarted);
|
||||
break;
|
||||
default: {
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
@@ -781,6 +788,7 @@ export class ContractWrapper<
|
||||
transaction.from,
|
||||
spender,
|
||||
amount,
|
||||
this.options.gasless.engine.domainSeparatorVersion,
|
||||
);
|
||||
|
||||
const message = {
|
||||
@@ -1099,6 +1107,7 @@ export class ContractWrapper<
|
||||
transaction.from,
|
||||
spender,
|
||||
amount,
|
||||
this.options.gasless.openzeppelin.domainSeparatorVersion,
|
||||
);
|
||||
|
||||
const { r, s, v } = utils.splitSignature(sig);
|
||||
|
||||
@@ -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();
|
||||
@@ -1106,6 +1118,7 @@ async function enginePrepareRequest(
|
||||
transaction.from,
|
||||
spender,
|
||||
amount,
|
||||
gaslessOptions.engine.domainSeparatorVersion,
|
||||
);
|
||||
|
||||
const message = {
|
||||
@@ -1295,6 +1308,7 @@ async function defenderPrepareRequest(
|
||||
transaction.from,
|
||||
spender,
|
||||
amount,
|
||||
gaslessOptions.openzeppelin.domainSeparatorVersion,
|
||||
);
|
||||
|
||||
const { r, s, v } = utils.splitSignature(sig);
|
||||
|
||||
@@ -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()))();
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ export const SDKOptionsSchema = /* @__PURE__ */ (() =>
|
||||
useEOAForwarder: z.boolean().default(false),
|
||||
domainName: z.string().default("GSNv2 Forwarder"),
|
||||
domainVersion: z.string().default("0.0.1"),
|
||||
domainSeparatorVersion: z.string().default("1"),
|
||||
}),
|
||||
experimentalChainlessSupport: z.boolean().default(false),
|
||||
}),
|
||||
@@ -58,6 +59,7 @@ export const SDKOptionsSchema = /* @__PURE__ */ (() =>
|
||||
relayerForwarderAddress: z.string().optional(),
|
||||
domainName: z.string().default("GSNv2 Forwarder"),
|
||||
domainVersion: z.string().default("0.0.1"),
|
||||
domainSeparatorVersion: z.string().default("1"),
|
||||
}),
|
||||
experimentalChainlessSupport: z.boolean().default(false),
|
||||
}),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -25,6 +25,12 @@ export const CONTRACT_ADDRESSES: Record<
|
||||
},
|
||||
};
|
||||
|
||||
export const blockExplorerApiMap: Record<number, string> = {
|
||||
[324]: "https://block-explorer-api.mainnet.zksync.io/api",
|
||||
[280]: "https://block-explorer-api.testnets.zksync.dev/api",
|
||||
[300]: "https://block-explorer-api.sepolia.zksync.dev/api",
|
||||
};
|
||||
|
||||
export const IMPLEMENTATIONS: Record<number, Record<string, string>> = {
|
||||
// ZKSync Era Goerli Testnet (Deprecated)
|
||||
[280]: {
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
export * from "./zksync-deploy-utils";
|
||||
export * from "./zksync-verification";
|
||||
export * from "./constants/addresses";
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -11,8 +11,9 @@ import { type BytesLike, Contract, type Signer, utils, Wallet } from "ethers";
|
||||
import { ThirdwebStorage } from "@thirdweb-dev/storage";
|
||||
import type { DeployOptions } from "../types/deploy/deploy-options";
|
||||
import { ThirdwebSDK } from "../core/sdk";
|
||||
import { getImplementation } from "./constants/addresses";
|
||||
import { blockExplorerApiMap, getImplementation } from "./constants/addresses";
|
||||
import { DeploymentTransaction } from "../types/any-evm/deploy-data";
|
||||
import { zkVerify } from "./zksync-verification";
|
||||
|
||||
export async function zkDeployContractFromUri(
|
||||
publishMetadataUri: string,
|
||||
@@ -37,6 +38,7 @@ export async function zkDeployContractFromUri(
|
||||
);
|
||||
}
|
||||
|
||||
let deployedAddress;
|
||||
if (
|
||||
extendedMetadata &&
|
||||
extendedMetadata.factoryDeploymentData &&
|
||||
@@ -96,7 +98,7 @@ export async function zkDeployContractFromUri(
|
||||
compilerMetadata.metadataUri,
|
||||
);
|
||||
|
||||
return proxy.address;
|
||||
deployedAddress = proxy.address;
|
||||
} else {
|
||||
throw new Error("Invalid deploy type");
|
||||
}
|
||||
@@ -131,8 +133,24 @@ export async function zkDeployContractFromUri(
|
||||
compilerMetadata.metadataUri,
|
||||
);
|
||||
|
||||
return contract.address;
|
||||
deployedAddress = contract.address;
|
||||
}
|
||||
|
||||
// fire-and-forget verification, don't await
|
||||
try {
|
||||
zkVerify(
|
||||
deployedAddress,
|
||||
chainId,
|
||||
blockExplorerApiMap[chainId],
|
||||
"",
|
||||
storage,
|
||||
publishMetadataUri,
|
||||
);
|
||||
} catch (error) {
|
||||
// ignore error
|
||||
}
|
||||
|
||||
return deployedAddress;
|
||||
}
|
||||
|
||||
export async function getZkTransactionsForDeploy(): Promise<
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
import { ThirdwebStorage } from "@thirdweb-dev/storage";
|
||||
import { providers, utils } from "ethers";
|
||||
import invariant from "tiny-invariant";
|
||||
import { extractConstructorParamsFromAbi } from "../common/feature-detection/extractConstructorParamsFromAbi";
|
||||
import { getChainProvider } from "../constants/urls";
|
||||
import { Abi } from "../schema/contracts/custom";
|
||||
import { twProxyArtifactZK } from "./temp-artifact/TWProxy";
|
||||
import { fetchSourceFilesFromMetadata } from "../common/fetchSourceFilesFromMetadata";
|
||||
import { fetchRawPredeployMetadata } from "../common/feature-detection/fetchRawPredeployMetadata";
|
||||
import { fetchContractMetadata } from "../common/fetchContractMetadata";
|
||||
import { checkVerificationStatus } from "../common/verification";
|
||||
|
||||
const RequestStatus = {
|
||||
OK: "1",
|
||||
NOTOK: "0",
|
||||
};
|
||||
|
||||
//
|
||||
// ==================================
|
||||
// ======== Core Functions ==========
|
||||
// ==================================
|
||||
//
|
||||
|
||||
export async function zkVerify(
|
||||
contractAddress: string,
|
||||
chainId: number,
|
||||
explorerAPIUrl: string,
|
||||
explorerAPIKey: string,
|
||||
storage: ThirdwebStorage,
|
||||
contractUri?: string,
|
||||
encodedConstructorArgs?: string,
|
||||
) {
|
||||
try {
|
||||
const provider = getChainProvider(chainId, {});
|
||||
const contractBytecode = await provider.getCode(contractAddress);
|
||||
let compilerMetadata: any = {};
|
||||
if (contractBytecode === twProxyArtifactZK.bytecode) {
|
||||
compilerMetadata = {
|
||||
name: twProxyArtifactZK.contractName,
|
||||
abi: twProxyArtifactZK.abi,
|
||||
metadata: JSON.parse(twProxyArtifactZK.metadata.solc_metadata),
|
||||
zk_version: twProxyArtifactZK.metadata.zk_version,
|
||||
};
|
||||
compilerMetadata.metadata.sources = twProxyArtifactZK.sources;
|
||||
} else {
|
||||
invariant(contractUri, "No contract URI provided");
|
||||
const rawMeta = await fetchRawPredeployMetadata(contractUri, storage);
|
||||
const metadataUri = rawMeta.compilers?.zksolc?.metadataUri;
|
||||
|
||||
invariant(metadataUri, "ZkSolc metadata not found");
|
||||
const parsedMetadata = await fetchContractMetadata(metadataUri, storage);
|
||||
|
||||
compilerMetadata = {
|
||||
name: parsedMetadata.name,
|
||||
abi: parsedMetadata.abi,
|
||||
metadata: parsedMetadata.metadata,
|
||||
zk_version: rawMeta.zk_version,
|
||||
};
|
||||
}
|
||||
|
||||
const compilerVersion = compilerMetadata.metadata.compiler.version;
|
||||
const sources = await fetchSourceFilesFromMetadata(
|
||||
compilerMetadata,
|
||||
storage,
|
||||
);
|
||||
|
||||
const sourcesWithUrl = compilerMetadata.metadata.sources;
|
||||
const sourcesWithContents: Record<string, { content: string }> = {};
|
||||
for (const path of Object.keys(sourcesWithUrl)) {
|
||||
const sourceCode = sources.find((source) => path === source.filename);
|
||||
if (!sourceCode) {
|
||||
throw new Error(`Could not find source file for ${path}`);
|
||||
}
|
||||
sourcesWithContents[path] = {
|
||||
content: sourceCode.source,
|
||||
};
|
||||
}
|
||||
|
||||
const compilerInput: any = {
|
||||
language: "Solidity",
|
||||
settings: compilerMetadata.metadata.settings.optimizer,
|
||||
sources: sourcesWithContents,
|
||||
};
|
||||
|
||||
const compilationTarget =
|
||||
compilerMetadata.metadata.settings.compilationTarget;
|
||||
const targets = Object.keys(compilationTarget);
|
||||
const contractPath = targets[0];
|
||||
|
||||
const encodedArgs = encodedConstructorArgs
|
||||
? encodedConstructorArgs
|
||||
: await zkFetchConstructorParams(
|
||||
explorerAPIUrl,
|
||||
explorerAPIKey,
|
||||
contractAddress,
|
||||
compilerMetadata.abi,
|
||||
provider,
|
||||
);
|
||||
|
||||
const requestBody: Record<string, string> = {
|
||||
module: "contract",
|
||||
action: "verifysourcecode",
|
||||
contractaddress: contractAddress,
|
||||
sourceCode: compilerInput,
|
||||
codeformat: "solidity-standard-json-input",
|
||||
contractname: `${contractPath}:${compilerMetadata.name}`,
|
||||
compilerversion: `${compilerVersion.split("+")[0]}`,
|
||||
zkCompilerVersion: `v${compilerMetadata.zk_version}`,
|
||||
runs: compilerMetadata.metadata.settings.optimizer.runs,
|
||||
optimizationUsed: compilerMetadata.metadata.settings.optimizer.enabled
|
||||
? "1"
|
||||
: "0",
|
||||
constructorArguements: encodedArgs,
|
||||
};
|
||||
|
||||
const result = await fetch(`${explorerAPIUrl}`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify(requestBody),
|
||||
});
|
||||
|
||||
const data = await result.json();
|
||||
if (data.status === RequestStatus.OK) {
|
||||
console.info("Checking verification status...");
|
||||
const verificationStatus = await checkVerificationStatus(
|
||||
explorerAPIUrl,
|
||||
explorerAPIKey,
|
||||
data.result,
|
||||
);
|
||||
console.info(verificationStatus);
|
||||
} else {
|
||||
throw new Error(`${data.result}`);
|
||||
}
|
||||
} catch (e: any) {
|
||||
throw new Error(e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// ==================================
|
||||
// ======== Helper Functions ========
|
||||
// ==================================
|
||||
//
|
||||
|
||||
async function zkFetchConstructorParams(
|
||||
explorerAPIUrl: string,
|
||||
explorerAPIKey: string,
|
||||
contractAddress: string,
|
||||
abi: Abi,
|
||||
provider: providers.Provider,
|
||||
): Promise<string> {
|
||||
const constructorParamTypes = extractConstructorParamsFromAbi(abi);
|
||||
if (constructorParamTypes.length === 0) {
|
||||
return "";
|
||||
}
|
||||
|
||||
const result = await fetch(
|
||||
`${explorerAPIUrl}?module=contract&action=getcontractcreation&contractaddresses=${contractAddress}&apikey=${explorerAPIKey}`,
|
||||
);
|
||||
const creationTx = await result.json();
|
||||
|
||||
if (
|
||||
creationTx &&
|
||||
creationTx.status === RequestStatus.OK &&
|
||||
creationTx.result[0] !== undefined
|
||||
) {
|
||||
const txHash = creationTx.result[0].txHash;
|
||||
const transaction = await provider.getTransaction(txHash);
|
||||
if (transaction.to === "0x0000000000000000000000000000000000008006") {
|
||||
const decoded = utils.defaultAbiCoder.decode(
|
||||
["bytes32", "bytes32", "bytes"],
|
||||
utils.hexDataSlice(transaction.data, 4),
|
||||
);
|
||||
|
||||
return decoded[2];
|
||||
} else {
|
||||
// TODO: decode for create2 deployments via factory
|
||||
return "";
|
||||
}
|
||||
} else {
|
||||
// Could not retrieve constructor parameters, using empty parameters as fallback
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -64,7 +64,7 @@ describe("Accounts with account factory", function () {
|
||||
AccountFactory__factory.abi,
|
||||
AccountFactory__factory.bytecode,
|
||||
adminWallet,
|
||||
[entrypoint.address],
|
||||
[adminWallet.address, entrypoint.address],
|
||||
);
|
||||
accountFactory = (await sdk.getContract(factoryAddress)).accountFactory;
|
||||
});
|
||||
|
||||
@@ -196,6 +196,7 @@ export const mochaHooks = {
|
||||
)
|
||||
.connect(signer)
|
||||
.deploy(
|
||||
signer.address,
|
||||
trustedForwarderAddress,
|
||||
mockPublisher.address,
|
||||
)) as ContractPublisher; // TODO needs MockPublisher here
|
||||
@@ -219,13 +220,11 @@ export const mochaHooks = {
|
||||
const addr = getNativeTokenByChainId(ChainId.Hardhat).wrapped.address;
|
||||
return await deployContractAndUploadMetadata(abi, bytecode, signer, [
|
||||
addr,
|
||||
trustedForwarderAddress,
|
||||
]);
|
||||
default:
|
||||
return await deployContractAndUploadMetadata(abi, bytecode, signer);
|
||||
}
|
||||
}
|
||||
|
||||
for (const contractType in CONTRACTS_MAP) {
|
||||
if (contractType === "custom" || contractType === "marketplace-v3") {
|
||||
continue;
|
||||
|
||||
@@ -258,7 +258,7 @@ describe("Custom Contracts", async () => {
|
||||
it("should not detect feature if missing from ABI", async () => {
|
||||
const address = await sdk.deployer.deployVote({
|
||||
name: "My Vote",
|
||||
voting_token_address: adminWallet.address,
|
||||
voting_token_address: tokenContractAddress,
|
||||
});
|
||||
const c = await sdk.getContractFromAbi(address, VoteERC20__factory.abi);
|
||||
invariant(c, "Contract undefined");
|
||||
|
||||
@@ -344,7 +344,7 @@ describe("Edition Drop Contract (V4)", async () => {
|
||||
await sdk.updateSignerOrProvider(w2);
|
||||
await bdContract.claim(0, 2);
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -695,7 +695,7 @@ describe("Edition Drop Contract (V4)", async () => {
|
||||
try {
|
||||
await bdContract.claim("1", 2);
|
||||
} catch (e) {
|
||||
expectError(e, "!MaxSupply");
|
||||
expectError(e, "DropClaimExceedMaxSupply");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(2);
|
||||
expect.fail("should not be able to claim 2 - maxSupply");
|
||||
} catch (e) {
|
||||
expectError(e, "!MaxSupply");
|
||||
expectError(e, "DropClaimExceedMaxSupply");
|
||||
}
|
||||
await dropContract.claim(1);
|
||||
// claiming with max per wallet
|
||||
@@ -84,7 +84,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(2);
|
||||
expect.fail("should not be able to claim 2 - maxClaimablePerWallet");
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
await dropContract.claim(1);
|
||||
expect((await dropContract.totalClaimedSupply()).toString()).eq("3");
|
||||
@@ -127,7 +127,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(1);
|
||||
expect.fail("should not be able to claim - not in allowlist");
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
sdk.updateSignerOrProvider(adminWallet);
|
||||
await dropContract.claim(1);
|
||||
@@ -144,7 +144,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(2);
|
||||
expect.fail("should not be able to claim - maxClaimableSupply");
|
||||
} catch (e) {
|
||||
expectError(e, "!MaxSupply");
|
||||
expectError(e, "DropClaimExceedMaxSupply");
|
||||
}
|
||||
await dropContract.claim(1);
|
||||
// claiming with max per wallet
|
||||
@@ -161,7 +161,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(2);
|
||||
expect.fail("should not be able to claim - maxClaimablePerWallet");
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
await dropContract.claim(1);
|
||||
// claiming with max per wallet in snapshot
|
||||
@@ -178,14 +178,14 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(2);
|
||||
expect.fail("should not be able to claim - proof maxClaimable");
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
await dropContract.claim(1);
|
||||
try {
|
||||
await dropContract.claim(1);
|
||||
expect.fail("should not be able to claim - proof used");
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -235,7 +235,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(1);
|
||||
assert.fail("Should have thrown");
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -538,7 +538,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await dropContract.claim(1);
|
||||
assert.fail("should have thrown");
|
||||
} catch (err: any) {
|
||||
expectError(err, "!Qty");
|
||||
expectError(err, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -590,7 +590,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
await sdk.updateSignerOrProvider(w2);
|
||||
await dropContract.claim(2);
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -758,6 +758,7 @@ describe("NFT Drop Contract (v4)", async () => {
|
||||
|
||||
expect(reasons).to.include(ClaimEligibility.NoClaimConditionSet);
|
||||
assert.lengthOf(reasons, 1);
|
||||
console.log(reasons);
|
||||
const canClaim = await dropContract.claimConditions.canClaim(
|
||||
1,
|
||||
w1.address,
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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 () => {
|
||||
|
||||
@@ -527,8 +527,8 @@ describe("Signature drop tests (v5)", async () => {
|
||||
i % 3 === 0
|
||||
? w.address.toLowerCase()
|
||||
: i % 3 === 1
|
||||
? w.address.toUpperCase().replace("0X", "0x")
|
||||
: w.address,
|
||||
? w.address.toUpperCase().replace("0X", "0x")
|
||||
: w.address,
|
||||
)
|
||||
.map((a) => ({
|
||||
address: a,
|
||||
@@ -597,7 +597,7 @@ describe("Signature drop tests (v5)", async () => {
|
||||
await signatureDropContract.claim(1);
|
||||
} catch (e) {
|
||||
// expected
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -693,7 +693,7 @@ describe("Signature drop tests (v5)", async () => {
|
||||
try {
|
||||
await signatureDropContract.claim(1);
|
||||
} catch (err: any) {
|
||||
expectError(err, "!Qty");
|
||||
expectError(err, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -728,7 +728,7 @@ describe("Signature drop tests (v5)", async () => {
|
||||
await sdk.updateSignerOrProvider(w2);
|
||||
await signatureDropContract.claim(2);
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -139,8 +139,8 @@ describe("Token Drop Contract (v4)", async () => {
|
||||
i % 3 === 0
|
||||
? w.address.toLowerCase()
|
||||
: i % 3 === 1
|
||||
? w.address.toUpperCase().replace("0X", "0x")
|
||||
: w.address,
|
||||
? w.address.toUpperCase().replace("0X", "0x")
|
||||
: w.address,
|
||||
);
|
||||
await dropContract.claimConditions.set([
|
||||
{
|
||||
@@ -200,7 +200,7 @@ describe("Token Drop Contract (v4)", async () => {
|
||||
try {
|
||||
await dropContract.claim(1);
|
||||
} catch (err: any) {
|
||||
expectError(err, "!Qty");
|
||||
expectError(err, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -240,7 +240,7 @@ describe("Token Drop Contract (v4)", async () => {
|
||||
await sdk.updateSignerOrProvider(w2);
|
||||
await dropContract.claim(2);
|
||||
} catch (e) {
|
||||
expectError(e, "!Qty");
|
||||
expectError(e, "DropClaimExceedLimit");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Binary file not shown.
@@ -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,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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
@@ -1,5 +1,65 @@
|
||||
# @thirdweb-dev/unity-js-bridge
|
||||
|
||||
## 0.4.10
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8), [`f0250a7`](https://github.com/thirdweb-dev/js/commit/f0250a77cdbfa3b72e8dbf0ff345219a032e42b0), [`c67b287`](https://github.com/thirdweb-dev/js/commit/c67b2877643afdfb503b41a2b5d21e18dbff15f2), [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454), [`d4be647`](https://github.com/thirdweb-dev/js/commit/d4be6479db3fec6b4891e5ca89487b4e703eb9cf)]:
|
||||
- @thirdweb-dev/chains@0.1.80
|
||||
- @thirdweb-dev/sdk@4.0.47
|
||||
- @thirdweb-dev/wallets@2.4.22
|
||||
- @thirdweb-dev/auth@4.1.44
|
||||
|
||||
## 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,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/unity-js-bridge",
|
||||
"version": "0.4.4",
|
||||
"version": "0.4.10",
|
||||
"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) {
|
||||
|
||||
@@ -1,5 +1,56 @@
|
||||
# @thirdweb-dev/wallets
|
||||
|
||||
## 2.4.22
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`c494db8`](https://github.com/thirdweb-dev/js/commit/c494db87cbfa4b6fc4013abb01936e86a4350ea8), [`f0250a7`](https://github.com/thirdweb-dev/js/commit/f0250a77cdbfa3b72e8dbf0ff345219a032e42b0), [`c67b287`](https://github.com/thirdweb-dev/js/commit/c67b2877643afdfb503b41a2b5d21e18dbff15f2), [`7ac4e6b`](https://github.com/thirdweb-dev/js/commit/7ac4e6ba4ee947c76f35b1b95927d7772edf6454), [`d4be647`](https://github.com/thirdweb-dev/js/commit/d4be6479db3fec6b4891e5ca89487b4e703eb9cf)]:
|
||||
- @thirdweb-dev/chains@0.1.80
|
||||
- @thirdweb-dev/sdk@4.0.47
|
||||
- @thirdweb-dev/contracts-js@1.3.17
|
||||
|
||||
## 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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user