无法在终端中部署 NFT

问题描述

我已将智能合约部署到我的钱包并将其连接到我的 Alchemy 帐户。

这是我的编码(注意,我的合约地址、PUBLIC_KEY、PRIVATE_KEY、API_URL 和炼金术地址是出于安全目的而编辑的)。

mint-nft.js

  require('dotenv').config();
const API_URL = process.env.API_URL;
const PUBLIC_KEY = process.env.PUBLIC_KEY;
const PRIVATE_KEY = process.env.PRIVATE_KEY;

const { createalchemyWeb3 } = require("@alch/alchemy-web3");
const web3 = createalchemyWeb3(API_URL);

const contract = require("../artifacts/contracts/MyNFT.sol/MyNFT.json");
const contractAddress = "My_Contract_Adress";
const nftContract = new web3.eth.Contract(contract.abi,contractAddress);

async function mintNFT(tokenURI) {
  const nonce = await web3.eth.getTransactionCount(PUBLIC_KEY,'latest'); //get latest nonce

  //the transaction
  const tx = {
    'from': PUBLIC_KEY,'to': contractAddress,'nonce': nonce,'gas': 500000,'data': nftContract.methods.mintNFT(PUBLIC_KEY,tokenURI).encodeABI()
  };

  const signPromise = web3.eth.accounts.signTransaction(tx,PRIVATE_KEY);
  signPromise.then((signedTx) => {

    web3.eth.sendSignedTransaction(signedTx.rawTransaction,function(err,hash) {
      if (!err) {
        console.log("The hash of your transaction is: ",hash,"\nCheck Alchemy's Mempool to view the status of your transaction!"); 
      } else {
        console.log("Something went wrong when submitting your transaction:",err)
      }
    });
  }).catch((err) => {
    console.log(" Promise Failed:",err);
  });
}

mintNFT("https://gateway.pinata.cloud/ipfs/My_NFT_Picture_Hash");

alchemyContext.js

"use strict";
Object.defineProperty(exports,"__esModule",{ value: true });
exports.makeAlchemyContext = void 0;
var tslib_1 = require("tslib");
var sturdy_websocket_1 = tslib_1.__importDefault(require("sturdy-websocket"));
var websocket_1 = require("websocket");
var jsonRpc_1 = require("../util/jsonRpc");
var version_1 = require("../version");
var alchemySendHttp_1 = require("./alchemySendHttp");
var alchemySendWebSocket_1 = require("./alchemySendWebSocket");
var httpProvider_1 = require("./httpProvider");
var sendPayload_1 = require("./sendPayload");
var webSocketProvider_1 = require("./webSocketProvider");
var NODE_MAX_WS_FRAME_SIZE = 100 * 1024 * 1024; // 100 MB
function makeAlchemyContext(url,config) {
    var makePayload = jsonRpc_1.makePayloadFactory();
    if (/^https?:\/\//.test(url)) {
        var alchemySend = alchemySendHttp_1.makeHttpSender(url);
        var _a = sendPayload_1.makePayloadSender(alchemySend,config),sendPayload = _a.sendPayload,setWriteProvider = _a.setWriteProvider;
        var senders = jsonRpc_1.makeSenders(sendPayload,makePayload);
        var provider = httpProvider_1.makeAlchemyHttpProvider(sendPayload);
        return { provider: provider,senders: senders,setWriteProvider: setWriteProvider };
    }
    else if (/^wss?:\/\//.test(url)) {
        var protocol = isAlchemyUrl(url) ? "alchemy-web3-" + version_1.VERSION : undefined;
        var ws = new sturdy_websocket_1.default(url,protocol,{
            wsConstructor: getWebSocketConstructor(),});
        var alchemySend = alchemySendWebSocket_1.makeWebSocketSender(ws);
        var _b = sendPayload_1.makePayloadSender(alchemySend,sendPayload = _b.sendPayload,setWriteProvider = _b.setWriteProvider;
        var senders = jsonRpc_1.makeSenders(sendPayload,makePayload);
        var provider = new webSocketProvider_1.AlchemyWebSocketProvider(ws,sendPayload,senders);
        return { provider: provider,setWriteProvider: setWriteProvider };
    }
    else {
        throw new Error("Alchemy URL protocol must be one of http,https,ws,or wss. Recieved: " + url);
    }
}
exports.makeAlchemyContext = makeAlchemyContext;
function getWebSocketConstructor() {
    return isnodeenvironment()
        ? function (url,protocols) {
            return new websocket_1.w3cwebsocket(url,protocols,undefined,{
                maxReceivedMessageSize: NODE_MAX_WS_FRAME_SIZE,maxReceivedFrameSize: NODE_MAX_WS_FRAME_SIZE,});
        }
        : WebSocket;
}
function isnodeenvironment() {
    return (typeof process !== "undefined" &&
        process != null &&
        process.versions != null &&
        process.versions.node != null);
}
function isAlchemyUrl(url) {
    return url.indexOf("alchemyapi.io") >= 0;
}

.env

API_URL = "https://eth-rinkeby.alchemyapi.io/v2/KEY"
PRIVATE_KEY = "MY_PRIVATE_KEY"
PUBLIC_KEY = "MY_PUBLIC_KEY"

但是后来我尝试使用元数据和 nft-mint.js 部署我的 NFT,我遇到了这些错误

enter image description here

谁能告诉我错误是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...