parameter unit;
storage (pair timestamp (pair tez (contract unit unit)));
return unit;
code { CDR;                      # Ignore the parameter
       DUP;                      # Duplicate the storage
       CAR;                      # Get the timestamp
       NOW;                      # Push the current timestamp
       CMPLT;                    # Compare to the current time
       IF {FAIL} {};             # Fail if it is too soon
       DUP;                      # Duplicate the storage value
       # this must be on the bottom of the stack for us to call transfer tokens
       CDR;                      # Ignore the timestamp, focussing in on the tranfser data
       DUP;                      # Duplicate the transfer information
       CAR;                      # Get the amount of the transfer on top of the stack
       DIP{CDR};                 # Put the contract underneath it
       UNIT;                     # Put the contract's argument type on top of the stack
       TRANSFER_TOKENS;          # Make the transfer
       PAIR}                     # Pair up to meet the calling convention