我使用的是openZepplin众包合同,它有以下构造函数
contract myContract is Crowdsale {
function myContract
(
uint256 _rate,
address _wallet,
MintableToken _token
)
public
Crowdsale(_rate, _wallet, _token)
}我想使我的"_wallet“地址与"myContract”地址相同。是否有办法在合同中获取当前的合同地址?
在这些行中,Sudo代码应该是这样的:
contract myContract is Crowdsale {
function myContract
(
uint256 _rate,
address _wallet,
MintableToken _token
)
public
Crowdsale(_rate, <<this.address>>, _token)
}发布于 2018-04-03 22:02:10
您可以尝试传递this ir address(this) (这是相同的),但是它不能工作。它似乎认为您正在尝试部署一个抽象的契约。至于为什么,我还不知道,我正在调查。
这就是你想要做的。就像我说的,这行不通。
contract A {
address public my_address;
function A(address _val) {
my_address= _val;
}
}
contract B is A {
function B() {
A(this);
}
} 要使其工作,您必须修改您的合同并执行以下操作:
contract A {
address public my_address;
function A() {
my_address= this;
}
}
contract B is A {
function B() {
//do more stuff
}
} 如果在Remix上部署它,您将看到my_address具有正确的值。
https://ethereum.stackexchange.com/questions/44682
复制相似问题