Im calling storage contract from logic contract, but when i change the owner to new logic contract,
Line 27 : require(owner==msg.sender,"only owner can call");
This is not properly getting in the calling contract
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
import "hardhat/console.sol";
contract Storagecontract{
address public owner;
constructor(address _owner){
owner=_owner;
}
string public name="sreeshma";
modifier onlyOwner(){
require(owner==msg.sender,"only owner can call");
_;
}
function setOwner(address _owner)public {
owner=_owner;
}
function set(string memory _name)public {
console.log(owner,msg.sender);
require(owner==msg.sender,"only owner can call");
console.log(owner,msg.sender);
name=_name;
}
}
contract Logiccontract{
function changename(address add, string memory name)public{
(bool send,)=add.call(abi.encodeWithSignature("set(string)", name));
console.log("status",send);
}
function changeOwner(address add, address _owner)public{
(bool send,)=add.call(abi.encodeWithSignature("setOwner(address)", _owner));
}
}