Metamask: How does MetaMask know the name of the contract function you’re calling?