For those of you who don’t know us, we are an inclusive and empowering society supporting women-led projects in the blockchain space.
Meta Gamma Delta, or “MGD”, was summoned on February 14th, 2020 ❤️ at ETHDenver. Since that time we’ve onboarded over 35 members (mostly women), from all corners of the world. Some work in blockchain already, some are just starting out. All share a common vision in growing a community of women passionate about furthering the decentralized world.
We are excited to announce our very first MGD Grants Round! We are looking for women-led projects that aim to benefit the development of the decentralized ecosystem. We realize there is a lack of diversity in teams building the new web3 world and are passionate about funding and supporting teams that shake up the status quo. …
In our most recent smart contract project, we used Solidity 0.6 where I learned about
virtual. As always, you can read the docs, but I wanted to write this post for those of us who prefer to read quick tutorials on Medium.
Solidity is an object-oriented programming language that supports multiple inheritances. You can inherit from a base contract and then override a function in that base contract. Before Solidity 0.6, there was no way of knowing what functions should be overridden. Now, you can explicitly label a function as
A function that allows an inheriting contract to override its behavior will be marked at
virtual. The function that overrides that base function should be marked as
override. Let’s take a look at an example from our favorite library, OpenZeppelin. …
Simply put, an oracle is a provider of data.
In the blockchain realm, an oracle is what feeds information from the outside world to a smart contract. Smart contracts are self-executing applications that live on the blockchain and do something when triggered.
If a smart contract relies on outside data to run some type of function, we must ensure the data provided is secure, accurate, and has not been tampered with.
Relying on one source of data creates a single point of failure. …
There are two ways a contract can be created in Solidity.
Today I’m going to focus on #2.
There are a lot of great articles out there about using a factory to create smart contracts. These articles focus on creating multiple instances of the same contract. In my case, I needed a very simple factory. A parent contract that would deploy one instance of a child contract. Just once. …
A few weeks ago, I was fortunate enough to attend the 4th annual Devcon conference in Prague. This was a 4 day conference hosted by the Ethereum Foundation that brought together developers, designers, researchers, community organizers, and even artists from all over the world. I met talented people working on really interesting projects in the space. I attended talks and workshops that focused on scalability, security, privacy, and UX & design. I roamed the streets of Prague with new friends. …
In a previous article, we provide a simple guide on how to write unit tests for smart contracts. Luckily, we can use our favorite tools to test smart contracts: the Mocha framework and Chai assertion library.
Personally, I love writing tests. There is something satisfying about seeing those little green check marks in your terminal. However, when you come across a function with 3
require statements, 3
if statements, and then
if statements nested in
if statements, things can get tricky. That leads to so many possible combinations that your head starts to spin.
Mapping out your unit tests before writing any code definitely helps. As I mapped out the functions I was working on, I decided to nest my
describe statements. This method helped me to keep my tests organized and minimized the amount of code I needed to write. …
In our Mappings in Solidity article, we gave a quick breakdown of how mappings work and why they are useful. Another important aspect of mappings that often confuses developers is that they cannot be iterated over.
Say it with me:
“Mappings cannot be iterated over. Mappings cannot be iterated over. Mappings cannot be iterated over.”
This is where arrays come in to save the day. If you think you will need to iterate over information in a mapping, you can create an array of the keys in the mapping. To better explain this, let’s look at an example.
Say you have a
At a recent client meeting we were asked the increasingly popular question:
“Should we move everything over to the cloud?”
As someone who has always wanted a stronger understanding of computer networking, this question sent me on a quest to understand the differences between dedicated servers and cloud computing, as well as digging into and understanding some of the services that Amazon AWS provides. In this article I hope to break down these concepts for you and help guide you through the different options that the Amazon Virtual Private Cloud (VPC) has to offer.
Let’s start with the formal definition of cloud…
There are a few reasons you may want to use Server-Side Rendering with your Angular application.
To implement server side rendering in your Angular application, you can use the Angular Universal package.
Create new Angular project:
ng new project-name
Inside that project, download the following packages and add Angular…
I recently spent quite some time scouring the internet for a tutorial on how to send an email from the Mailgun service using Angular2 as my front-end and Sails.js as the back-end. I found this great tutorial that uses the sails-hook-email package, but since I was using Angular2, I needed a few more steps. Most of the Mailgun tutorials I found show you how to use Express.js , and because I am new to Sails, I struggled a bit. But alas, a solution was found! And today I would like to share it with you.
This article is going to take you through the steps…