What I'm doing
When I compile and deploy a contract using Truffle, I get a
.json build artifact that contains information about where the contract is deployed on the network (its address).
So far I have just been checking this file into version control in order to distribute the interface to my contract, but this is less than ideal since the artifact file contains the compiled binary of the contract.
Why it's bad
Since git is not meant to handle binaries, changes to a binary make the repo unnecessarily large, and diffs become extremely noisy.
My question is this:
How can I distribute an interface to my deployed contract without checking a binary into version control?
"Solutions" I can think of
I am aware of git-annex and similar solutions, but they seem like overkill.
I've also thought about doing something like:
truffle networks > networks.txtbut this is hacky and requires consumers to create their own interface with the contract addresses I distribute.