Función de llamada desde un contrato creado dinámicamente

Estoy creando un Maincontrato que se usará para crear contratos dinámicos con msg.senderas Owner. Cualquiera puede enviar ETHexternamente al contrato dinámico y cualquiera puede retirarse ETHdel 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 Dynamiccontrato se crea dinámicamente, por lo tanto, solo tengo su dirección almacenada en el mapeo dynamic_contractsde Main. No tengo su abi entonces, ¿cómo llamo a transferFundsla función?

Respuestas (1)

Dynamic = Dynamic(msg.sender);

Dynamic.transferFunds();