ERC777 token cannot be deployed locally due to hardcoded ERC1820Registry address

I am trying to implement a basic ERC777 token, but I can't seem to run tests or deploy to a local network without receiving the following error:

Error: Transaction reverted: function call to a non-contract account

The error occurs during the ERC777 constructor.

Looking through the interface code, it seems there is a hard-coded ERC1820 registry address on line 31:
IERC1820Registry internal constant _ERC1820_REGISTRY = IERC1820Registry(0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24);

I have tried to deploy a local ERC1820 contract but I still receive the previous error.

Any suggestions?

Thanks for finding this. We couldn't figure out what was wrong with the erc777 contract for local deployment as well, but noticed it worked on polygon.

To deploy an erc777 locally, you need two steps: deploy erc1820, and then update the erc777 code to reference the new registry address.