<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Yajas Sardana</title>
        <link>https://paragraph.com/@yajas-sardana</link>
        <description>LinkedIn Top Voice 2023| Organizing React India, JSConf India | GDSC Lead'21 | SDE Intern at Cure.Fit'20 | Full Stack Developer</description>
        <lastBuildDate>Sun, 26 Jul 2026 16:18:14 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Yajas Sardana</title>
            <url>https://storage.googleapis.com/papyrus_images/29d3e2d904d67999d808ca4b8731bf9f740fcf788b1673e623e633130c452c3c.jpg</url>
            <link>https://paragraph.com/@yajas-sardana</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Ship, Ship, Ship! ]]></title>
            <link>https://paragraph.com/@yajas-sardana/ship-ship-ship</link>
            <guid>M0qHDBdkPnX9mSXdGcqH</guid>
            <pubDate>Tue, 04 Apr 2023 19:13:34 GMT</pubDate>
            <description><![CDATA[Progress Report: As expected, this was the most exciting week with the maximum lines of code written.The first priority was to fix the “approve error”. As I discovered that the USDC(PoS) token has a proxy implementation, I read the underlying contract, only to find that “approve” function well defined in it, so I was not able to understand why it was not working.After exhausting about 6-7 hunches, I tried appending the api of this underlying contract to the USDC contract’s ABI, and the functi...]]></description>
            <content:encoded><![CDATA[<p><strong>Progress Report:</strong></p><p>As expected, this was the most exciting week with the maximum lines of code written.</p><ul><li><p>The first priority was to fix the “approve error”. As I discovered that the USDC(PoS) token has a proxy implementation, I read the underlying contract, only to find that “approve” function well defined in it, so I was not able to understand why it was not working.</p></li><li><p>After exhausting about 6-7 hunches, I tried appending the api of this underlying contract to the USDC contract’s ABI, and the function worked! I understood that on the frontend, as the ABI did not have approve defined, as the USDC token’s abi only had delegate functions, and thus, it was throwing a does not exist error.</p></li><li><p>After fixing the above issue, I wrote the code to make the approve and NFT minting transactions gasless, and ensured the the latter runs upon the completion of the former.</p></li><li><p>I then proceeded to use Gelato’s status api to fetch the status of ongoing gasless transactions, and display real time updates.</p></li><li><p>As the whole flow for the POC was now working, what was left was making UX improvements, and deploying the project, both of which did not have much roadblocks.</p></li><li><p>The only issue remaining was that the onramp frontend was still only available in the US. I made the demo and tested things using a VPN for the time being. A future aim would be to ask for India access, or switch to a different onramp.</p></li></ul><p>Overall, I had a lot of learnings from this building experience, and am super excited for demo day!</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b39a619379bd88b5ce2cafc14d5487d640e53bd64bbc38b6f7448996317651a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
        <item>
            <title><![CDATA[When the going got tough!]]></title>
            <link>https://paragraph.com/@yajas-sardana/when-the-going-got-tough</link>
            <guid>fujKhwsuznQQXCZ6Tqgl</guid>
            <pubDate>Tue, 04 Apr 2023 19:10:57 GMT</pubDate>
            <description><![CDATA[Progress Report: The 7th week was certainly the toughest, with a dozen emails sent to stripe’s developer support team, and atleast 25 messages on Gelato and Safe’s discord.The week’s start, like the previous week, was quite smooth. I began by writing a basic NFT minting smart contract, which was am ERC721enumrable token, with a setTokenURI functionality added to it, similar to ERC721storage.I was then able to integrate Gelato’s relay and 1balance to make minting the transactions gasless after...]]></description>
            <content:encoded><![CDATA[<p><strong>Progress Report:</strong></p><p>The 7th week was certainly the toughest, with a dozen emails sent to stripe’s developer support team, and atleast 25 messages on Gelato and Safe’s discord.</p><ul><li><p>The week’s start, like the previous week, was quite smooth. I began by writing a basic NFT minting smart contract, which was am ERC721enumrable token, with a setTokenURI functionality added to it, similar to ERC721storage.</p></li><li><p>I was then able to integrate Gelato’s relay and 1balance to make minting the transactions gasless after a day of debugging and support from their discover channel.</p></li><li><p>After this is when I hit a major roadblock. As I tried to integrate stripe’s onramp API, I got to know that its access is limited to the US.</p></li><li><p>After a dozen emails exchanged with the dev-support, we were able to come to a solution and were able to get the onramp working for dollars to USDC(PoS) on polygon conversion. All other conversions were not available in the test mode.</p></li><li><p>The major chunk felt done, until I got an “approve” function does not exist while calling it on the USDC token.</p></li><li><p>The last day of this day was spent debugging this error and not making an significant inroads.</p></li></ul><p>Overall, by solving all these dependencies, I was able to understand the value of a good developer support experience, and got better at articulating my queries.</p><p><strong>Next Steps:</strong></p><ul><li><p>Debug the “approve” does not exist error on a priority basis.</p></li><li><p>Integrate the onramp flow to add USDC to the wallet.</p></li><li><p>Add alerts to track status of the gasless transactions</p></li><li><p>Make UX improvements and make the product ready for deployment</p></li><li><p>Ship, ship, ship!</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6c739d79df2858a83db1098a2a1233a1cef204b2d97890d92d1a0dc72a4c871e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
        <item>
            <title><![CDATA[onNFT: Naming projects is tough]]></title>
            <link>https://paragraph.com/@yajas-sardana/onnft-naming-projects-is-tough</link>
            <guid>d5cwNyPwN1nyrVyoapmx</guid>
            <pubDate>Sun, 19 Mar 2023 13:40:33 GMT</pubDate>
            <description><![CDATA[Progress Report: Now that the humongous task of finalising a project idea was complete, the only small, easy bit left was to actually build it 😛My week began by curating a proposal for my project idea, and elaborating upon topics like motivation, objectives, USP and execution plan.I then submitted my proposal to the Devfolio team, and proceeded to setting up a basic flow for the project.This phase involved reading up on existing libraries implementing onramps, account abstraction, web2 login...]]></description>
            <content:encoded><![CDATA[<p><strong>Progress Report:</strong></p><p>Now that the humongous task of finalising a project idea was complete, the only small, easy bit left was to actually build it 😛</p><ul><li><p>My week began by curating a proposal for my project idea, and elaborating upon topics like motivation, objectives, USP and execution plan.</p></li><li><p>I then submitted my proposal to the Devfolio team, and proceeded to setting up a basic flow for the project.</p></li><li><p>This phase involved reading up on existing libraries implementing onramps, account abstraction, web2 logins etc.</p></li><li><p>During this week, I was able to achieve web2 based logins paired with SCW creation uniquely mapped to each user.</p></li><li><p>Further, I decided to use gelato relay to setup a flow which allows the dApp to pay users’ gas-fee, or let the user pay gas-fee in non eth currencies as well, using gas abstraction, thus making the users’ experience gas-less.</p></li></ul><p><strong>Next Steps:</strong></p><ul><li><p>The next step is to complete a flow where a user can gaselessly mint NFTs to their SCWs.</p></li><li><p>Once the above is achieved, I will try to integrate an Onramp to this flow, and make my NFT contract paid, so as to pay credit card based payments for buying NFTs.</p></li><li><p>I also aim to understand access control over these SCWs better, so as to have clearly defined custodies and security measures at each step of the process.</p></li><li><p>Last but not the least, I wish to come up with a better project name than “onNFT”.</p></li></ul>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
        <item>
            <title><![CDATA[think, think and THINK!]]></title>
            <link>https://paragraph.com/@yajas-sardana/think-think-and-think</link>
            <guid>nVCOBzXzaQoNXalD28zs</guid>
            <pubDate>Sun, 19 Mar 2023 13:12:49 GMT</pubDate>
            <description><![CDATA[Progress Report: Week 5 had 2 major tasks lined up: preparing and delivering a presentation on our assigned DeFi topic, and zeroing in on a project idea for the second half of our fellowship. Presentation: For the DeFi presentation, I was assigned Furucombo, which is batching and visualisation software for DeFi. End users often want to use multiple DeFi protocols together for an application. Eg: some application of uniswap, some aave function etc Such users can make optimise DeFi strategy, ad...]]></description>
            <content:encoded><![CDATA[<p><strong>Progress Report:</strong></p><p>Week 5 had 2 major tasks lined up: preparing and delivering a presentation on our assigned DeFi topic, and zeroing in on a project idea for the second half of our fellowship.</p><p><strong>Presentation:</strong></p><p>For the DeFi presentation, I was assigned Furucombo, which is batching and visualisation software for DeFi. End users often want to use multiple DeFi protocols together for an application. Eg: some application of uniswap, some aave function etc</p><p>Such users can make optimise DeFi strategy, add multiple DeFi blocks, and get expected min input and output details using FuruCombo.</p><p>Overall, making this presentation gave me a hands-on experience with Furucombo, and I’m excited to use the software more when I dive deeper into DeFi.</p><p><strong>Project Idea:</strong></p><ul><li><p>The project ideation phase was quite a rollercoaster ride for me, which consisted of creating and scrapping 2 project ideas before I could finalise my idea.</p></li><li><p>My first idea was to build a post deceasement asset transfer mechanism, which would essentially pair a deadman’s switch with a smooth onboarding for the owners’ layman family members/nominees. This idea did seem to have a decent product potential, but lacked technical complexity. It was recommended that I choose an idea which offers more technical bandwidth, so as to make it a better learning experience for me.</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/00d26e3be0c1b16b18cea5eb2bc61aa97b32368f40c6c2a3210bbc5788ea8585.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Thus, after scrapping idea-1, I proceeded to reading about another area which has been gaining a lot of popularity: zK. This exploration was quite fruitful in terms of learning about this new field. I then zeroed in on another project idea: creating a zK based auth mechanism for Smart Contract Wallets. On reading up more, I came across banana wallet’s ethIndia, which was building on a similar usecase. On trying my hand at zk circom circuits, I became a bit skeptical about the time available to learn this paradigm.</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/063aee94ba976e5e1eb5d61a72c6cba9fd1c2e3ab399f9d69587913ee1caf814.jpg" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><ul><li><p>Finally, I decided to proceed with an idea around account abstraction, particularly, leveraging account abstraction to create a flow to buy NFTs using credit cards, without requiring to create a MetaMask account.</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6217581738d94459610d13f8167c7866704d8f9e3a5e8308d9264a7f5dd9b42c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p><strong>Next Steps:</strong></p><ul><li><p>I plan to start by formalizing my project idea, creating a flow, and listing down the requirements.</p></li><li><p>This will be followed by reading up on the current projects and libraries operating on account abstraction and onramps separately.</p></li></ul>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
        <item>
            <title><![CDATA[Week 4: Multisig and Svg]]></title>
            <link>https://paragraph.com/@yajas-sardana/week-4-multisig-and-svg</link>
            <guid>ZBjVNNXroySUsRmRLDsc</guid>
            <pubDate>Mon, 13 Mar 2023 15:06:55 GMT</pubDate>
            <description><![CDATA[🚩 Challenge 6 - Multisig 👛I started by reading about the concept of multi signature addresses. Multisig wallets require more than one private key to sign and authorize a transaction.The keys might be held in different locations to enhance security.Understood the off-chain and on-chain dynamics for multisigUnderstood how changing, or adding removing signers are treated as external function calls when call is used.Overall, the challenge involved less of coding and more of conceptual understan...]]></description>
            <content:encoded><![CDATA[<p><strong>🚩 Challenge 6 - Multisig 👛</strong></p><ul><li><p>I started by reading about the concept of multi signature addresses. Multisig wallets require more than one private key to sign and authorize a transaction.</p></li><li><p>The keys might be held in different locations to enhance security.</p></li><li><p>Understood the off-chain and on-chain dynamics for multisig</p></li><li><p>Understood how changing, or adding removing signers are treated as external function calls when <code>call</code> is used.</p></li><li><p>Overall, the challenge involved less of coding and more of conceptual understanding, and thus brought about a lot of new and intersting learnings.</p></li></ul><p><strong>🚩 Challenge 7 - SVG NFT 👛</strong></p><ul><li><p>This project was relatively simple, as the concepts used for familiar.</p></li><li><p>Storing metadata against TokenIDs was was something new which I learnt, as till now I had only worked with storing images on IFPS and attaching its URI as metadata to the NFT.</p></li><li><p>The dynamic NFT serving definitely opens many possibilities, and thus I plan on reading up and experimenting with this one more.</p></li></ul><p>This week also comprised of DeFi presentations, where I was assigned Furucombo protocol as my topic. I started by reading blogs about the protocol, tried to understand the usecase, and finally went hands-on and made a few example flows(combos) to deepen my knowledge.</p><p><strong>Link to assignments:</strong></p><p>Link to contract: <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://goerli.etherscan.io/address/0x49E6B6b497827eBFc4769279D3F41522f436632c">https://goerli.etherscan.io/address/0x49E6B6b497827eBFc4769279D3F41522f436632c</a></p><p>Link to Defi presentation - Furucombo - <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.google.com/presentation/d/1-DFXoMh_y8JyqyPZMSi8Y1UPI-kPXzJt3xzq4GhzZcU/edit?usp=sharing">https://docs.google.com/presentation/d/1-DFXoMh_y8JyqyPZMSi8Y1UPI-kPXzJt3xzq4GhzZcU/edit?usp=sharing</a></p>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
        <item>
            <title><![CDATA[De(Fi) show must go on]]></title>
            <link>https://paragraph.com/@yajas-sardana/de-fi-show-must-go-on</link>
            <guid>8yJdSbTU6CFvAn3THxxm</guid>
            <pubDate>Thu, 23 Feb 2023 18:41:23 GMT</pubDate>
            <description><![CDATA[Week 3 was called the DeFi week, which had me hooked and excited to start from the get-go. With DeFi being one of the most prominent applications of blockchain, I knew that the Challenge 4: 🚩 Minimum Viable Exchange The objective here was straightforward → To build a decentralised exchange with ERC20 token and eth. It should let the user exchange either of these for each other, while fluctuating exchange rates in accordance with the reserves and liquidity.I understood the concept of price ca...]]></description>
            <content:encoded><![CDATA[<p>Week 3 was called the DeFi week, which had me hooked and excited to start from the get-go. With DeFi being one of the most prominent applications of blockchain, I knew that the</p><p><strong>Challenge 4: 🚩 Minimum Viable Exchange</strong></p><p>The objective here was straightforward → To build a decentralised exchange with ERC20 token and eth. It should let the user exchange either of these for each other, while fluctuating exchange rates in accordance with the reserves and liquidity.</p><ul><li><p>I understood the concept of price calculation in decentralised exchanges, and developed a price function to maintain the K invariance.</p></li><li><p>The challenge involved writing two exchange functions, <code>tokenToEth</code>, and <code>ethToToken</code> , both of which required a use of various concepts learnt over the past 2 weeks. Writing these functions was thus a great refresher.</p></li><li><p>I then proceeded to understand the concept of liquidity and its importance in financial instruments.</p></li><li><p>Using this understanding, I wrote the <code>deposit</code> and <code>withdraw</code> functions which could compute and track individual and total liquidities.</p></li><li><p>After struggling with two failed testcases, I was able to identify the edgecases that I had been missing and add the checks so as to pass the assignment, thereby completing the speedrun.</p></li></ul><p><strong>Challenge 5: 🚩A State Channel Application</strong></p><p>The challenge began by explaining the problem of expensive transactions and low throughput with famous blockchains like Ethereum.</p><ul><li><p>We got to know about the existence if L2 blockchains, which try to fix the speed and scalibility of these L-1s by various methods, one of them being state channel.</p></li><li><p>In state channel, the two interacting entities carry out a beginning and some logging transactions on-chain, and do rest of there communication in an off-chain peer to peer manner, so as to reduce the on-chain transactions, thereby leading to a better scalibility.</p></li><li><p>Therefore the entities could inform the blockchain about the establishment of a channel between them, and then simply log the final result on the blockchain after the entities are done interacting off-chain.</p></li><li><p>We again used the concept of <code>ownable</code>, and used basic learnings from previous challenges to implement the required functions.</p></li><li><p>We also dealt with packing, hashing and arrafying a message.</p></li><li><p>We then learnt to use the ecrecover utility to recover the signer from the prefixedHash.</p></li><li><p>We further wrote <code>defundChannel</code> and <code>challengeChannel</code> functions which again tested are knowledge of basic operations like using mappings, and transfering eth across accounts.</p></li></ul><p><strong>Link to assignments:</strong></p><p><strong>Challenge 4: 🚩 Minimum Viable Exchange</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://enchanted-vacation.surge.sh/">https://enchanted-vacation.surge.sh/</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://goerli.etherscan.io/address/0x99316fD1775EF76cBa88a43332a1C0a43A4D27Fa">https://goerli.etherscan.io/address/0x99316fD1775EF76cBa88a43332a1C0a43A4D27Fa</a></p><p><strong>Challenge 5: 🚩A State Channel Application</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://icy-pig.surge.sh/">https://icy-pig.surge.sh/</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://goerli.etherscan.io/address/0x7DA3A755d4520a565DeeFDbE22FD284745D6F8e6">https://goerli.etherscan.io/address/0x7DA3A755d4520a565DeeFDbE22FD284745D6F8e6</a></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c10c451a3725a53826f757e16dda085306f91d7f15c84a83e2f70e5c41f47c83.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>This week was a great refresher for everything we had learnt, and at the same time it also brought about some very important new concepts that took time to understand and digest.</p><p>I believe that after completing these two challenges, I feel more comfortable about solidity fundamentals, and ready to build a project end to end.</p>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
        <item>
            <title><![CDATA[Climbing higher]]></title>
            <link>https://paragraph.com/@yajas-sardana/climbing-higher</link>
            <guid>CPOfouyTTfYAiUGv8Wfl</guid>
            <pubDate>Thu, 16 Feb 2023 17:50:36 GMT</pubDate>
            <description><![CDATA[Progress Report: Challenge 2: 🏵 Token VendorThe challenged made me dive deeper into transfer of tokens across contracts.The most new and interesting part was understanding approval flows, as to how tokens can be used to redeem a commodity like an NFT or even Eth.How to check the total eth balance of a contract: address(this).balanceLearnt about and used transfer and transferFrom functions and understood the different between the two.Understood the concept of ownership and its transfer to ano...]]></description>
            <content:encoded><![CDATA[<p><strong>Progress Report:</strong></p><p><strong>Challenge 2: 🏵 Token Vendor</strong></p><ul><li><p>The challenged made me dive deeper into transfer of tokens across contracts.</p></li><li><p>The most new and interesting part was understanding approval flows, as to how tokens can be used to redeem a commodity like an NFT or even Eth.</p></li><li><p>How to check the total eth balance of a contract: <strong>address(this).balance</strong></p></li><li><p>Learnt about and used <code>transfer</code> and <code>transferFrom</code> functions and understood the different between the two.</p></li><li><p>Understood the concept of ownership and its transfer to another contract, so as to enable further inter-contract transfers.</p></li></ul><p><strong>Challenge 3: 🎲 Dice Game</strong></p><ul><li><p>Learnt about block-hashes and why blocks by default don’t support randomness.</p></li><li><p>Read up on and used the <code>keccak256</code> hash function to create a randomisation mechanism.</p></li><li><p>Understood the concept of sending ether along with function calls if that function is payable, for example sending 0.002 eth while calling <code>rollDice</code> .</p></li></ul><p><strong>Link to assignments:</strong></p><p><strong>Challenge 2: 🏵 Token Vendor</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://jittery-eggs.surge.sh/">https://jittery-eggs.surge.sh/</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://goerli.etherscan.io/address/0x135cb207b6453c94da602e8a777d1b634f61b3b4">https://goerli.etherscan.io/address/0x135cb207b6453c94da602e8a777d1b634f61b3b4</a></p><p><strong>Challenge 3: 🎲 Dice Game</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://devilish-sofa.surge.sh/">https://devilish-sofa.surge.sh/</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://goerli.etherscan.io/address/0x99019Dac70C60Ac8c8f2F37Fd70D6A6538737DD8">https://goerli.etherscan.io/address/0x99019Dac70C60Ac8c8f2F37Fd70D6A6538737DD8</a></p><p><strong>Questions &amp; Feedback:</strong></p><p>My experience with this week involved less spent time on coding and way more hours on trying to understand the underlying concepts. I did end up doing multiple rejected submission this week, and had to handle a lot more edge cases to get my submissions passed.</p><p>Overall, this week did bring about a steeper learning curve as compared to week 1, which was something which I was certainly looking forward to.</p><p>I’m even more hyped about week 3 now, WAGMI.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/ac5be7d53285dffa559f038a7ee6d8562772c0191a18d11cee16c8d309c67ae8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
        <item>
            <title><![CDATA[The Kickoff]]></title>
            <link>https://paragraph.com/@yajas-sardana/the-kickoff</link>
            <guid>N4K6hMBqF5qp0bzi8XVC</guid>
            <pubDate>Fri, 10 Feb 2023 17:09:11 GMT</pubDate>
            <description><![CDATA[This week marked the beginning of my journey as an EthIndia fellow. The tasks were clear: attend all sessions, engage on discord, and complete the first two speed runs. Being new to web3, I was more than excited to begin my journey in this new world, and I think it would be safe to say that one week down the line, I’m 2x more hyped.The Speedrun challengesComing to this weeks challenges, I shall be mentioning points about them individually. These points cover the challenges faced and the learn...]]></description>
            <content:encoded><![CDATA[<p>This week marked the beginning of my journey as an EthIndia fellow. The tasks were clear: attend all sessions, engage on discord, and complete the first two speed runs. Being new to web3, I was more than excited to begin my journey in this new world, and I think it would be safe to say that one week down the line, I’m 2x more hyped.</p><h2 id="h-the-speedrun-challenges" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The Speedrun challenges</h2><p>Coming to this weeks challenges, I shall be mentioning points about them individually. These points cover the challenges faced and the learnings gained.</p><p><strong>Challenge 0 - NFT App</strong></p><ul><li><p>Understood the need for <strong>scaffold-eth</strong> and the techstack which comprises it.</p></li><li><p>Learnt about burner wallets, their need and their usage.</p></li><li><p>Read up on the various testnets, and used goerli in our case.</p></li><li><p>Understood the concept of faucets, failed to find good free faucets with multiple transaction support, and ended up using a PoW goerliETH faucet for my metamask wallet.</p></li><li><p>Created the static build of the dApp and learnt how to deploy it on surge.</p></li><li><p>Looked the deployed contract up on goerli etherscan to verify its successful deployment.</p></li></ul><p><strong>Challenge 1 - Decentralized staking app</strong></p><p>Being new to solidity, this challenge offered a steep climb with a lot of reading, testing and learning. I tried a lot of different functions, and debugged tons of errors to finally get the logic working.</p><ul><li><p>Learnt the concept of “payable”, and <code>receive</code> and <code>fallback</code> functions.<code>payble</code> signifies that a function can receive eth.</p></li><li><p>Explored the <code>msg</code> object, and its attributes like msg.eth and msg.value.</p></li><li><p>Learnt about the <code>block</code> object and block.timestamp.</p></li><li><p>Understood the mechanism to transfer eth from one contract to another using <code>call</code> method.</p></li><li><p>Learnt about and used <code>mappings</code>, <code>events</code> and <code>modifiers</code> in solidity to achieve the requirements mentioned in the problem statement of the challenge.</p></li><li><p>Wrote all the possible staking and function call conditions, and edgecases on a whiteboard and tried to come up with modifiers to handle each possible edgecase, including the sidequests.</p></li></ul><p><strong>A common bug discovered:</strong></p><p>Commands like <code>yarn deploy</code> and <code>yarn build</code> often give an error saying: <code>error:0308010C:digital envelope routines::unsupported</code></p><p>Solution for the same is to execute the following command in the shell: <code>export NODE_OPTIONS=--openssl-legacy-provider</code></p><h2 id="h-experience" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Experience</h2><p>Being new to web3 and solidity, the first task for me was to understand the technical jargon like faucets. As the challenge-0 was mainly just a follow along, I did not face much difficulty in solving the same and could follow along smoothly for the most part.</p><p>The real climb and learning took place in challenge-1, as the basics of solidity were a prerequisite to it. I approached the challenge one sub-task at a time, and read a lot of blogs and documentation on concepts like: <code>payable, receive and fallback, modifiers, msg, block, events, and call.</code></p><p>I used the <code>debug UI</code> to test my code after each step, and kept solving bugs on the go.</p><p>After about a day of coding, fixing errors, and handling edge cases, I jumped out of the chair when on running <code>yarn test</code> , all the test cases <strong>passed</strong> one go.</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5448e8ff084af8b36d5f17d819919875aa44f801b3cffbfa42f41c0d5a80cc72.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>As a learner, the nature of challenge-1 threw me in the deep end, urged me to figure things out on my own, and thus ultimately ended up being a great hands-on learning experience.</p><p>I’m absolutely looking forward to the next 7 weeks of learning and shipping!</p>]]></content:encoded>
            <author>yajas-sardana@newsletter.paragraph.com (Yajas Sardana)</author>
        </item>
    </channel>
</rss>