Error: Type contract pSDATokenSale is not implicitly convertible to expected type contract pSDA

Error: Type contract pSDATokenSale is not implicitly convertible to expected type contract pSDA

类型合约 pSDATokenSale 不能隐式转换为预期类型合约 pSDA。

我在 tokenContract = _tokenContract; 行收到 ^^ 以上的错误。关于为什么会发生这种情况以及如何解决它有什么建议吗?

pragma solidity ^0.8.12;

import "./pSDAToken.sol";


contract pSDATokenSale {
    address admin;
    pSDA public tokenContract;
    uint256 public tokenPrice;
    uint256 public tokensSold;

    event Sell(address _buyer, uint256 _amount);

    function pSDAToken(pSDATokenSale _tokenContract, uint256 _tokenPrice)
        public
    {
        admin = msg.sender;
        tokenContract = _tokenContract;
        tokenPrice = _tokenPrice;
    }

嘿嘿 你在函数 pSDAToken()

中写错了 _tokenContract 的类型

你用 pSDATokenSale 类型写了 _tokenContract,想把它保存在 tokenContract 里面,也就是 pSDA 类型

这是正确的代码:

pragma solidity ^0.8.12;

import "./pSDAToken.sol";


contract pSDATokenSale {
    address admin;
    pSDA public tokenContract;
    uint256 public tokenPrice;
    uint256 public tokensSold;

    event Sell(address _buyer, uint256 _amount);

    function pSDAToken(pSDA _tokenContract, uint256 _tokenPrice)
        public
    {
        admin = msg.sender;
        tokenContract = _tokenContract;
        tokenPrice = _tokenPrice;
    }