parameter key_hash; storage (pair timestamp (pair tez key_hash)); return unit; code { DUP; CDAR; # If the time is more than 2 weeks, any amount makes you king NOW; CMPGT; # User becomes king of tez IF { CAR; AMOUNT; PAIR; NOW; PUSH int 604800; ADD; PAIR } # Check balance to see if user has paid enough to become the new king { DUP; CDDAR; AMOUNT; CMPLT; IF { FAIL } # user has not paid out { CAR; DUP; # New storage DIP{ AMOUNT; PAIR; NOW; PUSH int 604800; ADD; PAIR }; # Pay funds to old king DEFAULT_ACCOUNT; AMOUNT; UNIT; TRANSFER_TOKENS; DROP }}; # Cleanup UNIT; PAIR };