发送交易需要签名者
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
。
我有一份 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
。