Estoy usando un contrato de venta abierta de openZepplin que tiene el siguiente constructor
contract myContract is Crowdsale {
function myContract
(
uint256 _rate,
address _wallet,
MintableToken _token
)
public
Crowdsale(_rate, _wallet, _token)
}
Quiero que mi dirección "_wallet" sea la misma que la dirección "myContract". ¿Hay alguna manera de obtener la dirección del contrato actual dentro del contrato?
El código Sudo sería algo como esto:
contract myContract is Crowdsale {
function myContract
(
uint256 _rate,
address _wallet,
MintableToken _token
)
public
Crowdsale(_rate, <<this.address>>, _token)
}
Puedes intentar pasar this
ir address(this)
(que es lo mismo) pero no funcionará. Parece que piensa que está tratando de implementar un contrato abstracto. En cuanto a por qué , todavía no lo sé y lo estoy investigando.
Esto es lo que básicamente estás tratando de hacer. Como dije, no funcionará.
contract A {
address public my_address;
function A(address _val) {
my_address= _val;
}
}
contract B is A {
function B() {
A(this);
}
}
Para que funcione, tendrás que modificar tus contratos y hacer lo siguiente:
contract A {
address public my_address;
function A() {
my_address= this;
}
}
contract B is A {
function B() {
//do more stuff
}
}
Si lo implementa en Remix, verá que my_address
tendrá el valor correcto.
Prueba1 Prueba2
Prueba1 Prueba2