avatarDenise Larkin, BA (Hons)

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

3786

Abstract

arison operators, and bitwise operators on this type too.</p><p id="c4da">It’s important to note that there is another type, called <code>bytes</code> which is different from the above in that it is a dynamically sized array, and not a value type but a reference type. It is basically shorthand for <code>byte[]</code>.</p><p id="ad39">When you can limit the length of your data to a predefined amount of bytes, it is always good practice to use some of <code>bytes1</code> to <code>bytes32</code> because it is much cheaper.</p><h2 id="0118">Enums</h2><p id="aea7"><b>Enums</b> in Solidity are a way to create user-defined types. Enums are explicitly convertible to integer types, but not implicitly. Enum values are numbered in the order they are defined, starting from 0.</p><p id="ed00">Enums are not part of the ABI (Application Binary Interface — more on this in a later lesson, but it’s basically how you encode Solidity code for the Ethereum Virtual Machine, and how you get data back). This means that if your function returns an <code>enum</code> for example, it will be automatically converted to a <code>uint8</code> behind the scenes. The integer returned is just large enough to hold all enum values. With more values, the size gets increased too (<code>uint16</code> and up).</p><p id="cdb6">The below code, taken from the <a href="https://docs.soliditylang.org/en/v0.4.24/index.html">Solidity docs</a>, defines an enum with four possible values, creates a variable of that enum named <code>choice</code> and a constant called <code>defaultChoice</code>that will hold a default value.</p><div id="cf29"><pre><span class="hljs-keyword">enum</span> <span class="hljs-title class_">ActionChoices</span> { GoLeft, GoRight, GoStraight, SitStill } ActionChoices choice; ActionChoices <span class="hljs-type">constant</span> <span class="hljs-variable">defaultChoice</span> <span class="hljs-operator">=</span> ActionChoices.GoStraight;</pre></div><p id="66a9">Now we can define some functions to interact with our <code>enum</code>.</p><div id="c0bb"><pre><span class="hljs-title function_"><span class="hljs-keyword">function</span> <span class="hljs-title">setGoStraight</span></span>() <span class="hljs-keyword">public</span> { choice = ActionChoices.GoStraight; }

<span class="hljs-title function_"><span class="hljs-keyword">function</span> <span class="hljs-title">setChoice</span></span>(ActionChoices <span class="hljs-keyword">new</span><span class="hljs-type">Choice</span>) <span class="hljs-keyword">public</span> { choice = <span class="hljs-keyword">new</span><span class="hljs-type">Choice</span>; }</pre></div><p id="6bc2">The first one simply sets the <code>choice</code> to <code>GoStraight</code> while the second one sets it to the choice that the caller passes into the function. As we can see after deployment, the <code>setChoice</code> function expects a <code>uint8</code> value, which corresponds to the <code>enum</code> value declared at that number.</p><figure id="e997"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*1pKNPVy4UUBCSLi2-SIckg.png"><figcaption>Testing enums in Remix</figcaption></figure><p id="7917">If we want to get the value of <code>choice</code> and <code>defaultChoice</code>, we can define the following functions:</p><div id="1f02"><pre><span class="hljs-keyword">function</span> <span class="hljs-title">getChoice</span>() public view returns (ActionChoices) { <span class="hljs-keyword">return</span> <span class="hljs-type">choice</span>; }</pre></div><div id="43e7"><pre><span class="hljs-function">function <span class="hljs-title">getDefaultChoice</span>() <span class="hljs-keyword">public</span> pure <span class="hljs-title">returns</span> (<span class="hljs-params"><span class=

Options

"hljs-built_in">uint</span></span>)</span> { <span class="hljs-keyword">return</span> <span class="hljs-built_in">uint</span>(defaultChoice); }</pre></div><p id="c2f2">As we can see if we try this out in Remix, the first function returns a <code>uint8</code> while the second returns a <code>uint256</code>.</p><figure id="e514"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*jmaOFb9GhXz7FWC4ONMa_A.png"><figcaption>Testing enums in Remix</figcaption></figure><h2 id="3c7c">Fixed point numbers</h2><p id="2ecc"><b>Fixed point numbers </b>represent fractional numbers by storing a fixed number of digits of their fractional part. No matter how large or small the fractional part is, it will always use the same number of bits.</p><p id="cdcd" type="7">Fixed point numbers are not fully supported by Solidity yet. They can be declared, but cannot be assigned to or from.</p><p id="f872">We can differentiate between signed fixed point numbers, declared with the <code>fixed</code> keyword, and unsigned fixed point numbers, declared with the <code>ufixed</code> keyword.</p><p id="3c1c">It can also be declared as <code>fixedMxN</code> or <code>ufixedMxN</code> where <code>M</code> represents the number of bits the type takes, and <code>N</code> represents the number of decimal points. <code>M</code> has to be divisible by 8 and a number between 8 and 256. <code>N</code> has to be a number between 0 and 80.</p><p id="96e1">They function with the following operators:</p><ul><li>Comparisons: <code><=</code>, <code><</code>, <code>==</code>, <code>!=</code>, <code>>=</code>, <code>></code> (evaluate to <code>bool</code>)</li><li>Arithmetic operators: <code>+</code>, <code>-</code>, unary <code>-</code>, unary <code>+</code>, <code>*</code>, <code>/</code>, <code>%</code> (remainder)</li></ul><h2 id="09b7">Conclusion</h2><p id="bd3a">In this lesson, we looked at what value types are available in Solidity and how each one works.</p><p id="28de">Thank you for staying with us till the end. If you enjoyed reading this piece please keep in touch and follow Solidify to keep up with our lessons on Solidity. In the upcoming articles, we will deep dive into the intricacies of the language, progressing from beginner to advanced level.</p><p id="067c">If you are new to Solidity, check out the previous lessons about setting up a local development environment and writing your first smart contract.</p><div id="6b76" class="link-block"> <a href="https://readmedium.com/how-to-setup-your-local-solidity-development-environment-c4c8195810f3"> <div> <div> <h2>How to Setup Your Local Solidity Development Environment</h2> <div><h3>Get started with smart contract development</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/1*HHko-o9m1sVngmTeRVYgKA.jpeg)"></div> </div> </div> </a> </div><div id="3ad1" class="link-block"> <a href="https://readmedium.com/lesson-1-your-first-solidity-smart-contract-1ba7e641f9a3"> <div> <div> <h2>Lesson 1: Your First Solidity Smart Contract</h2> <div><h3>In the previous lesson, we looked at how to set up your local Solidity development environment. Here we will continue…</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/1*7r7HSYkbn73NrmR_skvh5w.jpeg)"></div> </div> </div> </a> </div></article></body>

Accessing Unsplash Photos When Writing a Draft on Medium

For all newcomers — did you know you can access Unsplash photos within your draft?

Photo by Denise Larkin

As an Editor for The Lark, Writers Daily, Flicks TV Hound, Lifestyle Today, Skinny is Best, and Hotspot Travellers, I see many newcomers using Unsplash photos without stating where they came from in the image caption. Many don’t know how to access Unsplash photos within their draft. So, I thought I would share it here for newcomers and anyone else who doesn’t know about this tool.

Unsplash photos are free to use and share. Medium allows you to access these photos within your draft. This is easy to do once you know how to do it and it will also place the owner’s name and link in the image caption for you.

Instructions on how to access Unsplash photos

Follow these instructions:

  1. Click on a space within your draft (see the below picture where I have clicked on a space).
  2. A plus sign will appear (see photo below).
Screen shot of this article

3. Click on the plus sign.

4. A list of options will appear (see photo below).

Photo shot of this article

5. You will need to click on the second option (shown above).

6. Once you click on it, a search bar will appear (shown in the photo below).

Photo shot of my article

7. Search for what you are looking for in a photo ie. for instance search for Ireland (see below).

Photo shot by author

10. You will see that after typing in the search bar a list of photos will appear. Choose a photo.

Photo shot by author

11. You will see from the above photo that Unsplash photos have placed the name of the person who owns the photo with a link in the image caption.

12. If you want to choose your own photo, do the same but click on the first sign of options, not the second one that appears (as shown in the photo below).

Photo shot by author

13. A pop-up window will appear with a list of your photos from your computer for you to choose from.

I hope this helps everyone and all newcomers on Medium. Now everyone can access Unsplash photos without making a mistake when submitting their stories to publications.

Prazunt Jim Dutton William J Spirdione Theodore McDowell Carolyn Hastings Taressa Watson ✏️Pencil + Ashes (Ash) Breathe & Be Still Dr. Fatima Imam Subashini Nachimuthu Sharing Words Jane Harris Catherine Dunn Athena Milios Deborah Barchi Margie Willis Frank Larkin Connie Song Bob Metivier Charlie Cole Erika Burkhalter Joachim Bervoets George Lamptey Daniel Barry Mark Tulin Carolyn F. Chryst, Ph.D. Austin Petti David Rudder Walter Bowne John E Marks Jo Ann Harris Suzanne V. Tanner Henya Drescher Melissa Coffey Alison McBain Randy Shingler Ginger Bangs Gina Pacelli Filza Chaudhry G.R. MELVIN Lennie Varvarides Daniel Barry Orla K. Carla McCarty Deborah Barchi Liam Connors Gina Pacelli Amae Emlyn Boyle Kyomi O’Connor Hidayatullah Dawn Johnson John O’Neill Linda Acaster CleverandWtf Toni Crowe Erica J Shereen Bingham JA Vassili Davey Cobb Amy L. Bernstein Erika Burkhalter Tonja E. Betts Janet Meisel Joe Merkle Summi Sinha Diepak Paul John O’Neill Harry Seitz Michelle Lovett, LCSW, E-RYT Speaking Fiction To Power Giulietta Passarelli Gerald Washington Colleen Millsteed John Brantingham Trisha Ready Indah Maulida Joe Merkle Ausubel Rafael ak_finch Caroline Mellor Rinku Patel Deana K Rodriguez J B Ferguson Shy Am I Natalie Wilkinson Bob Metivier Nisshanth K Allisonn Church A. Juliana Mayur Sonowal Ann Christine Tabaka J. Andrew Deeksha Agrawal Anna Rozwadowska Christopher Massimine Emmy (Emlyn) Boyle Kevin Jahleel Ishimwe Ken Kawaji Kyle Chastain Selma Steve Vernon CleverandWtf Carmen Micsa, MA in English, podcaster A. N. Tipton Georges-Henri Daigle Skye Nicholson Alex Godley Heather Morgan Michael Cappelli M.D. Anderson Robin Christine Honigsberg Thomas James M.T. Pariti Marie Marchand Chrysanthemum Jesus Jordan Parra Anna Murzyn Star Love Grey Merrianne Couture Neera Handa Dr David Rudder Javad E. Scott Alighieri Gillian Sisley Gustave Deresse; Writer & AI Artist Brinas Mihaela Mihai Brinas Daniela Dragas Elle Canta

Follow Writers Daily Publication on Facebook

Come and join my Facebook group called Sharing Medium Stories and Poetry

Want to become a writer for Medium become a member and earn from your writing. Join here:

Medium
Writers Daily
Productivity
Writing
Photography
Recommended from ReadMedium
avatarConnie Song
Your Wildflower

Poetry

1 min read
avatarJ.D. Harms
I Want You to Know

Let it flow

3 min read