title: EIP170 - Which contract features explain its size the most?
body: <p>I was checking into EIP170 since while developing some contracts upon ERC1155 I came across the contract max size restriction of 0x6000 = 24576 bytes. As I later checked, the size of the artifacts files on my build truffle folder differ from what &quot;truffle run contract-size&quot; returns as size for each contract (though they are correlated up to a certain degree).</p>
  <p>My question is: which contract features determine the size of it? Which are most relevant at increasing its size? For instance, I was thinking at the number of functions, the number and type of function inputs, the presence of loops inside functions, the number and type of storage variables... But I'm not so sure about how each one of them affects the size of the contract.</p>
  <p>Thanks in advance to all of you.</p>