Is it a best practice to create a interface for each contract? I noticed this is what many big projects are doing, but just curious what’s the benefit of doing so?
And it also brings up a similar question, when doing an external call in contract, is it better to use interface as variable type?
Thanks!!