我是开发新手solidity
。ethereum
假设我有以下结构(我的结构更复杂,但我认为现在可以使用):
contract A {
address public owner;
function A() public {
owner = msg.sender;
}
isOwner(address _addr) {
return _addr == owner;
}
}
contract Base is A {
....
someMethod(address _addr) {
require(isOwner(msg.sender))
// do something with _addr
}
}
contract SomeContract{
Base public baseContract;
function SomeContract(Base _base) {
baseContract = _base
}
callingMethod() {
....
require(baseContract.someMethod(msg.sender))
....
}
}
通过调用callingMethod
from truffle
,它失败了,因为require(isOwner(msg.sender))
。我能够看到这msg.sender
与所有者使用 anEvent
并将其结果打印到控制台不同,但我不明白为什么。
任何人都知道为什么会这样?谢谢 !