contract LiquidPledgingInterface { function addUser function updateUser function addCause function deposit(uint64 user) payable; function withdraw(uint64 user, uint64 idNote, uint amount); function delegate(uint64 user, uint64 idNote, uint64 purpuse, uint amout); function undelegate(uint64 user, uint64 idNote, uint amount); function precommit(uint user, uint64 idNote, uint64 recipient, uint amount); function unPrecommit(uint user, uint64 idNote, uint amount); function transfer(uint64 user, uint64 idNote, uint64 recipient, uint amount); } owner project out owner transfer invest withdrow project uninvest detail spend in deposit xx xx Who owns //// Liquid LiquidPledging ////// Funding part ///// Executive part contract Project { struct TokenOwnership { address token; uint purchaseBlock; uint amount; bytes32 ref; } Minime2Token public projectToken; mapping(uint => Minime2Token) public pledgedTokens; TokenOwnership[] public ownerships; function pledge(address investor, uint amount, uint precommit); function unpledge(address investor, uint amount); function invest(address investor, uint amount); function unInvest(address investor, uint amount); function pay(address dest, uint amount, uint block) onlyProjectManager; function receive(uint amount); function payDividends(uint token, uint amount, uint payBlock); }