Estoy creando un Main
contrato que se usará para crear contratos dinámicos con msg.sender
as Owner
. Cualquiera puede enviar ETH
externamente al contrato dinámico y cualquiera puede retirarse ETH
del contrato dinámico, pero solo irá a Owner
.
principal.sol
contract Main{
// this contract will just create contracts
mapping(address => address[]) public dynamic_contracts;
function createContract(){
address newContract = new Dynamic(msg.sender);
dynamic_contracts[msg.sender].push(newContract);
}
}
dinamica.sol
Contract Dynamic{
// this contract will hold funds and transfer em
address Owner;
function Dynamic (address owner) {
Owner = owner;
}
function transferFunds(){
//transfer it to Owner
Owner.transfer(this.balance())
}
}
El problema es que el Dynamic
contrato se crea dinámicamente, por lo tanto, solo tengo su dirección almacenada en el mapeo dynamic_contracts
de Main
. No tengo su abi entonces, ¿cómo llamo a transferFunds
la función?
Dynamic = Dynamic(msg.sender);
Dynamic.transferFunds();