发送交易需要签名者

sending a transaction requires a signer

我有一份 NFT 合约,我需要 mint nft 我还有第二份合约 用于处理买入和卖出 nft 进入此合约。

我使用 ethers 库。

这是我的配置代码:

static async Initial(): Promise<any> {

    let provider = new ethers.providers.JsonRpcProvider(config.contractConfig.url);
    const signer = provider.getSigner();
    
    this.tokenContract = new ethers.Contract(config.contractConfig.nftAddress, NFT.abi, provider);
    this.dNFT = new ethers.Contract(config.contractConfig.dortajNftAddress, DNFT.abi, signer);

}

配置地址:

  export default {
     nftAddress: '0x444F15B115ED9663DAE46786a34AA3F6E8c0B57D',
     dortajNftAddress: '0x8e4bE2a3BD1169596c38952D8e837b20D419Bcd1',
     url : 'HTTP://127.0.0.1:7545'
   }

现在我需要将此功能用于 mint nft :

        let transaction = await this.tokenContract.mintToken();
        const tx = await transaction.wait();

但它向我显示此错误;

Error: sending a transaction requires a signer (operation="sendTransaction", code=UNSUPPORTED_OPERATION, version=contracts/5.5.0)

我该如何解决这个问题?

在这一行

this.tokenContract = new ethers.Contract(config.contractConfig.nftAddress, NFT.abi, provider);

尝试通过 signer 而不是 provider