//Write your own contracts here. Currently compiles using solc v0.4.15+commit.bbb8e64f. pragma solidity ^0.4.24; contract Purchase { Listing public listingContract; // listing that is being purchased uint24 public start; // Slot when we begin uint24 public end; // Slot when we end Purchase public nextPurchase; // Next purchase in time constructor( Listing _listingContract, uint24 _start, uint24 _end ) public { listingContract = _listingContract; start = _start; end = _end; } function setNext(Purchase _newNext) public { nextPurchase = _newNext; } } contract Listing { Purchase[] public purchases; /// @param _newPurchase The new purchase to be inserted /// @param _afterPurchase Insert new purchase after this one function insert(Purchase _newPurchase, Purchase _afterPurchase) public { // Verify we're inserting in right place with no overlap require(_newPurchase.start() > _afterPurchase.end(), "New node must start after after_node's end"); require(_newPurchase.end() < _afterPurchase.nextPurchase().start(), "New node must end before after_node.next's start"); // Insert into list _newPurchase.setNext(_afterPurchase.nextPurchase()); _afterPurchase.setNext(_newPurchase); } }
0.4.24