Web App & Script — ART CAN DIE
Project Description
ART CAN DIE is a dynamic web3 ecosystem connecting artists, collectors, and the public to collectively produce physical and digital art.
Story / Experience.
Jun 4, 2022 - Jul 30, 2022
On Upwork, Art Can Die posted a project about Web3 Wallets and Smart Contract integrations into their web application. After applying, I was immediately contacted by one of the developers working on the project.
After a few back and forths regarding project deliverables and communications with the project owners, they tasked me with building a script—focused on safely transferring DIE token coins to their holders—and the web3 integrations into their web app.
The project took about one month with no hurdles whatsoever. I loved working with the developer with whom I had many thoughtful conversations about our work and the future. In the end, I delivered the following:
DIE token transfer script.
Web3 + Smart Contract integration.
Review by the Client on Upwork
DIE Token Transfer Script
A custom Node.js script that could interact with the Smart Contract on the blockchain. The script's purpose was to transfer DIE token coins to associated holders based on their database.
One of the major problems that I encountered in this project was the Nonce management. Basically, Nonce is a value associated with a transaction from a wallet—it should not be updated before being executed. However, the script was pushing transaction requests faster than the blockchain could mine them; thus, either they got replaced by new transactions or failed.
My solution was to build a simple yet effective custom nonce management functionality into the script that updated the nonce value immediately after the transaction was submitted for execution in the blockchain—the pool would hold them with their associated indexes without encountering any failure or transaction replacement.
Web3 + Smart Contract Integration
I integrated the web3 into the existing frontend to be able to access the mint functionality. Furthermore, I added 5 wallet supports so a hugely diverse group of users with different wallets can access and view their token holdings easily.