I'm a budding blockchain dev, and I've been using Go to dive into things as that's the language I'm most comfortable with.
I've at an impasse now, and hope I can get some help.
Pretty much all the tutorials I've seen on working with smart contracts with Go involve using geth to compile the Solidity source code to its ABI and binary forms then generating a .go file with bindings to the contract for deployment and other actions.
This is fine when working with my own created contracts, but how would I go around interfacing with already deployed third-party contracts such as Cryptokitties for instance? Basically, in the cases where I may not have the luxury of having access to the contract source code to generate bindings.
Going through the Cryptozombies course, with Solidity I just had to define the interfaces of the desired contract, but Go doesn't seem to be as straightforward.
You could manually save the ABI files from Etherscan to your local workspace to generate the binding.
For example, you can copy ABI from this CryptoKitties contract. As long as the contracts are verified, you can always get the ABIs.
Note:
Read more: https://geth.ethereum.org/docs/dapp/native-bindings