pragma solidity ^0.4.17; contract Distributor { uint price; address agency; //store the address of the creator bool temp = false;//address customer; function Distributor() payable public { agency =msg.sender; //assigning the value of owner in creator } modifier onlyAccessedBy(address _para) { require(msg.sender == _para); // If it is incorrect here, it reverts. _; // Otherwise, it continues. } function getBalance() public view returns(uint) { return address(this).balance; } function setprice(uint argprice) onlyAccessedBy(agency) { price= argprice; } function getprice () public view returns (uint) { return price; } function buy() payable public { require(msg.value > 2 ether); //paid_customer=true; } function getartist(address addr) view returns(uint) { Artist c = Artist (addr); return c.get_tv_shows(); } function collect_fees() public onlyAccessedBy(agency) { require(temp == false); msg.sender.transfer(90*(address(this).balance)/100); temp = true; } function transferowner(address addr) payable public{ addr.transfer(address(this).balance); } } contract Artist{ function get_tv_shows() returns(uint); function transfermoney(); }