토큰발행을 call함수 사용

안녕하세요 토큰을 발행하고 다른곳에서 mint가 되는 지를 call함수를 통해서 확인해보는데 정말 절대 안되길래… 이렇게 문의를 남깁니다.

contract A {

function mintNFT(string memory tokenURI,uint price) public onlyOwner returns (uint256) {

        _tokenIds.increment();
        uint256 newItemId = _tokenIds.current();
        _mint(msg.sender, newItemId);
        tokenPrice[newItemId] = price;
        _setTokenURI(newItemId, tokenURI); 
        return newItemId;
    }

}

contract B {
function mint(address _contract,address to,uint price)public virtual returns(bool){
(bool data, ) = address(_contract).call(abi.encodeWithSignature(“mintToken(address,uint)”,to,price));
return data;
}
}

    이렇게 사용하는게 call방식으로 알고있는데 되지를 않습니다... 왜그럴까요??

그리고 사실 궁금한 부분이 서버중앙형으로 만들어서 모든것이 서버를 통해서 작동하게 만들 때 transferFrom의 대납계정이 msg.sender처리하는 부분으로인해 값이 바뀌는 것으로 알고 있습니다. 혹시 이부분을 해결 할 수 있는 방법을 알 고 있을까요?

@Ovadix

안녕하세요.
The posting guideline of Caver 글을 참고해주셔서 재현 가능한 형태로 상세 내용을 공유 부탁드립니다 :slight_smile:

답변자가 질문자분의 문제 상황을 빠르고 정확하게 트랙킹 할 수 있게 도와주세요.

감사합니다.