ThirdWeb部署报错:Failed to get upload token问题求助
问题:thirdweb部署合约时出现"Failed to get upload token"错误
执行npx thirdweb@0.9.13 deploy时触发"Failed to get upload token"错误,同时执行npx thirdweb@latest create --contract也报错,尝试多种方法未解决。目标是成功部署合约并获取thirdweb dashboard链接。
报错日志
✔ Detected project type: hardhat ✔ Compilation successful ✔ Processing contract: "CrowdFunding" ✖ Error uploading metadata Error Failed to get upload token error stack: • thirdweb-dev-storage.cjs.prod.js:365 getUploadToken C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\storage\dist\thirdweb-dev-storage.cjs.prod.js:365:13 • task_queues:95 processTicksAndRejections node:internal\process\task_queues:95:5 • thirdweb-dev-storage.cjs.prod.js:514 uploadBatchNode C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\storage\dist\thirdweb-dev-storage.cjs.prod.js:514:19 • thirdweb-dev-storage.cjs.prod.js:694 uploadBatch C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\storage\dist\thirdweb-dev-storage.cjs.prod.js:694:14 • thirdweb-dev-storage.cjs.prod.js:655 upload C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\storage\dist\thirdweb-dev-storage.cjs.prod.js:655:19 • processor.ts:191 <anonymous> C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\thirdweb\src\common\processor.ts:191:22 • processor.ts:185 c1 C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\thirdweb\src\common\processor.ts:185:11 • index.ts:47 M2 C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\thirdweb\src\deploy\index.ts:47:15 • index.ts:122 <anonymous> C:\Users\Lenovo\AppData\Local\npm-cache\_npx\42aeb50a0940685c\node_modules\thirdweb\src\cli\index.ts:122:19 PS E:\TUTORIALS-web\PROJECT\blockchain\crowd-funding\web3>
我的hardhat.config.js配置
require("@matterlabs/hardhat-zksync-solc"); /** @type import('hardhat/config').HardhatUserConfig */ module.exports = { zksolc: { version: "1.3.9", compilerSource: "binary", defaultNetwork: "sepolia", networks: { hardhat: {}, sepolia: { url: "https://rpc.ankr.com/eth_sepolia", accounts: [`0x${process.env.PRIVATE_KEY}`], }, }, settings: { optimizer: { enabled: true, }, }, }, networks: { zksync_testnet: { url: "https://zksync2-testnet.zksync.dev", ethNetwork: "goerli", chainId: 280, zksync: true, }, zksync_mainnet: { url: "https://zksync2-mainnet.zksync.io/", ethNetwork: "mainnet", chainId: 324, zksync: true, }, }, paths: { artifacts: "./artifacts-zk", cache: "./cache-zk", sources: "./contracts", tests: "./test", }, solidity: { version: "0.8.17", settings: { optimizer: { enabled: true, runs: 200, }, }, }, };
解决方法
- 完成thirdweb CLI登录:执行
npx thirdweb login,按提示在浏览器完成授权,确保本地有有效登录凭证。 - 检查网络环境:确认网络可正常访问thirdweb存储服务,避免代理、防火墙拦截请求。
- 统一CLI版本:不要混用不同版本的thirdweb CLI,要么保持
@0.9.13,要么全升级到@latest。 - 修正hardhat配置:把
zksolc嵌套的defaultNetwork和networks移到顶层配置,zksolc只保留编译器相关设置,修正后配置如下:
require("@matterlabs/hardhat-zksync-solc"); /** @type import('hardhat/config').HardhatUserConfig */ module.exports = { defaultNetwork: "sepolia", networks: { hardhat: {}, sepolia: { url: "https://rpc.ankr.com/eth_sepolia", accounts: [`0x${process.env.PRIVATE_KEY}`], }, zksync_testnet: { url: "https://zksync2-testnet.zksync.dev", ethNetwork: "goerli", chainId: 280, zksync: true, }, zksync_mainnet: { url: "https://zksync2-mainnet.zksync.io/", ethNetwork: "mainnet", chainId: 324, zksync: true, }, }, zksolc: { version: "1.3.9", compilerSource: "binary", settings: { optimizer: { enabled: true, }, }, }, paths: { artifacts: "./artifacts-zk", cache: "./cache-zk", sources: "./contracts", tests: "./test", }, solidity: { version: "0.8.17", settings: { optimizer: { enabled: true, runs: 200, }, }, }, };
- 清理缓存后重试:删除
node_modules、cache-zk、artifacts-zk文件夹,执行npm install后重新部署。
内容的提问来源于stack exchange,提问作者Yadvendra Shukla
相关产品推荐
相关产品推荐

