I'm seeing great progress on the 2 tasks! I've only got one more major question before I verify everything. You seem to have gone for the additional task of buying domains with your own Token. While you have created your own token, you still can only buy domains with Ether. I see 2 possible solutions to the issue:
You can put all code in one contract and have the domain method withdraw tokens from the sender's balance instead of being payable and receive ether.
or,
The more robust solution would is the following. The contracts can still be 2, but the user can give token allowance to the DDNS contract with the value of the price of one domain. Then, when calling the purchase function of the DDNS contract, it will call the coin contract, withdraw the allowed fee, and then perform domain registration. This is a bit more advanced solution so both will work just fine for the homework.
I'm seeing great progress on the 2 tasks! I've only got one more major question before I verify everything. You seem to have gone for the additional task of buying domains with your own Token. While you have created your own token, you still can only buy domains with Ether. I see 2 possible solutions to the issue:
or,