webtresclub / huffplug

The first ever NFT collection crafted using the Huff programming language.
https://www.buttpluggy.com/
MIT License
37 stars 12 forks source link

Optimizar abi.encodePacked(...) en mint() #8

Closed romeroadrian closed 1 year ago

romeroadrian commented 1 year ago

https://github.com/webtresclub/huffplug/blob/main/src/Plugger.huff#L134-L140

En vez de hacer un shift para corregir el address, se podria directamente apendear el salt y el nonce despues de que termina el caller, y llamar a sha3 con el offset de 0x0c

eugenioclrc commented 1 year ago

Mientras mas lejos en la memory se escribe mas se gasta de gas, en que se gasta menos? en hacer el shift y arrancar en 0 o evitar el shift y hacer el sha con el offset 0x0c?

romeroadrian commented 1 year ago

Puede ser, creo que el expansion deberia ser el mismo porque se toma de a cachos de 32 bytes. Si usas hasta 0x54 deberia ser lo mismo que usar hasta 0x60

eugenioclrc commented 1 year ago

Original: Overall gas change: 30806 (17.994%) Usando la optimizacion de Adri: Overall gas change: 30796 (17.988%)

Fix en https://github.com/webtresclub/huffplug/commit/b05da4a528a97a2956dcf13c2d70640b99a381b3