No description
  • JavaScript 58.2%
  • Solidity 36.2%
  • HTML 4.2%
  • CSS 1.1%
  • Shell 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2022-05-03 17:43:57 -07:00
4k Create 4k display images. Move metadata to ipfs. 2022-05-03 17:43:57 -07:00
aesthetic Update script location and invocation to use npm run. Create pngs automatically from PDFs. Make aesthetic.js output deterministic now order of items has been randomized in the source code. 2019-01-17 21:34:10 -08:00
app Inclusive range for tokens specified via url hash component. 2019-02-06 22:19:36 -08:00
build/contracts Migrated to mainnet via Infura as HDWalletProvider plus latest Geth in Docker is giving spurious out of gas errors on view functions. 2019-02-18 13:00:05 -08:00
contracts Modifications to play nicely with OpenSea. 2019-02-06 22:16:21 -08:00
images Modifications to play nicely with OpenSea. 2019-02-06 22:16:21 -08:00
lib Break out migrations into several stages. Move migration function call gas tracking into a library. 2019-02-07 15:19:05 -08:00
metadata Create 4k display images. Move metadata to ipfs. 2022-05-03 17:43:57 -07:00
migrations Make ERC721 batch creation more programmatic. 2019-02-07 15:43:27 -08:00
pdfs Use wkhtmltopdf for better colour conversion. 2019-01-17 23:05:35 -08:00
scripts Create 4k display images. Move metadata to ipfs. 2022-05-03 17:43:57 -07:00
test Use new start url in tests. 2019-02-07 15:18:26 -08:00
.gitignore Migrated to mainnet via Infura as HDWalletProvider plus latest Geth in Docker is giving spurious out of gas errors on view functions. 2019-02-18 13:00:05 -08:00
package-lock.json Migrated to mainnet via Infura as HDWalletProvider plus latest Geth in Docker is giving spurious out of gas errors on view functions. 2019-02-18 13:00:05 -08:00
package.json Modifications to play nicely with OpenSea. 2019-02-06 22:16:21 -08:00
README.md Add font note to README. 2021-09-23 09:23:15 -07:00
truffle-config.js Create 4k display images. Move metadata to ipfs. 2022-05-03 17:43:57 -07:00

NOTES

Token Creation Gas

Bulk NFT token generation is costly. We can create the ERC721 tokens in the contract constructor but we run out of gas if the contract implements ERC721Enumerable. Creating ERC998 tokens in the constructor is possible for at most a couple of tokens before we run out of gas. So constructors are not the right location for token creation in this scenario.

I tried a builder contract that acted as a migration proxy. It would create the contracts then create the tokens en masse but that proved to be over-engineered and cause problems with msg.sender based access control.

For the amount of tokens that needed creating and composing for this project the correct solution turned out to be adding access controlled batch token creation functions to the ERC721 and ERC998 contracts and creating and attaching the tokens (in batches) during migration.

Random Note

Ambroise Std Francois Demi is a nice font.