<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marques Traylor</title>
    <description>The latest articles on DEV Community by Marques Traylor (@traylorboy).</description>
    <link>https://dev.to/traylorboy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F468587%2F789c44c8-788d-4f19-94f4-469dd778c251.JPG</url>
      <title>DEV Community: Marques Traylor</title>
      <link>https://dev.to/traylorboy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/traylorboy"/>
    <language>en</language>
    <item>
      <title>Shadow</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Thu, 19 Nov 2020 22:41:12 +0000</pubDate>
      <link>https://dev.to/traylorboy/shadow-j28</link>
      <guid>https://dev.to/traylorboy/shadow-j28</guid>
      <description>&lt;p&gt;Spent a while working on the trading bot and then I thought, why just stop at one? Why not have a network of bots that are able to trade or perform any task for me while I am away?&lt;/p&gt;

&lt;p&gt;Build and configure them to my liking, put them on a server and have them receive signals which are connected to a task for them to perform. &lt;/p&gt;

&lt;p&gt;I started working on this for a while and I would love to share my current progress on the project. I decided to write it in python because I figured it would be a lot easier to run the network on my raspberry pi. &lt;/p&gt;

&lt;p&gt;There's still work to be done and a lot of different ideas I want to try, but the basic idea is there and if you want to check it out the link to the repo is below!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/TraylorBoy/Shadow"&gt;https://github.com/TraylorBoy/Shadow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I plan on adding several built-in bots like the automated trader from my last post. &lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>Automated Trader Project</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Tue, 06 Oct 2020 14:12:25 +0000</pubDate>
      <link>https://dev.to/traylorboy/automated-trader-project-4jc9</link>
      <guid>https://dev.to/traylorboy/automated-trader-project-4jc9</guid>
      <description>&lt;p&gt;I've started to work on an automated trading bot, ShadowBot. This bot will utilize Aave flash loans in order to increase potential profits from arbitrage trades with little to no risk. I plan on utilizing gas tokens as well by using the ShadowGas contract to act as a proxy for interacting with the trader. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;More info soon!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Repo can be found here: &lt;a href="https://github.com/TraylorBoy/ShadowBot"&gt;https://github.com/TraylorBoy/ShadowBot&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ShadowGas UI</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Fri, 02 Oct 2020 17:08:54 +0000</pubDate>
      <link>https://dev.to/traylorboy/shadowgas-ui-jin</link>
      <guid>https://dev.to/traylorboy/shadowgas-ui-jin</guid>
      <description>&lt;p&gt;I have finished the UI (Light Station) for my ShadowGas smart contract. The UI is in ReactJS and contains the Store and Transfer features of the contract.&lt;/p&gt;

&lt;p&gt;After cloning the repo, setting up your environment, and deploying the contract, to run the UI in your local environment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;client

yarn &lt;span class="nb"&gt;install

&lt;/span&gt;yarn start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will open up a new web page in your default browser at &lt;em&gt;localhost:3000&lt;/em&gt; and you should be taken to the &lt;em&gt;Connect&lt;/em&gt; page of the UI.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Connect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tOTW4fy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/eizmrqefb99l9ll83r1p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tOTW4fy2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/eizmrqefb99l9ll83r1p.png" alt="Alt Text" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Connect with your MetaMask wallet&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c1gDeli4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/js9w14jsrqxlwk06lllf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c1gDeli4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/js9w14jsrqxlwk06lllf.png" alt="Alt Text" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;After accepting the connection via MetaMask pop-up, press the confirm button&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4JIwzQBj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/sbksnm178pd9mzhkb5zf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4JIwzQBj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/sbksnm178pd9mzhkb5zf.png" alt="Alt Text" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Wrong Network&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eghIN5qb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/btti7pbqqkrpf66a31hi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eghIN5qb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/btti7pbqqkrpf66a31hi.png" alt="Alt Text" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Default network is Kovan, change it in the &lt;code&gt;client/src/App.js&lt;/code&gt; file (see below)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sY3_BSV2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/k4agkqfhll4efnhnoq3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sY3_BSV2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/k4agkqfhll4efnhnoq3u.png" alt="Alt Text" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Balances&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iG1Uu0Gd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/30ok91e8o19r2xo89kso.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iG1Uu0Gd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/30ok91e8o19r2xo89kso.png" alt="Alt Text" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Store/Transfer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t0BIhl38--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/znds09yt42zvat2ir9eb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t0BIhl38--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/znds09yt42zvat2ir9eb.png" alt="Alt Text" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Verify transaction in MetaMask&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uSeaaom4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/vvxxchkir14myg01jn0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uSeaaom4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/vvxxchkir14myg01jn0z.png" alt="Alt Text" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lPDCsPnf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/luhmx2dw0bkv5gr10ni4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lPDCsPnf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/luhmx2dw0bkv5gr10ni4.png" alt="Alt Text" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BMQAGR9d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/m6y1yuq7uyjr6blgjskf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BMQAGR9d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/m6y1yuq7uyjr6blgjskf.png" alt="Alt Text" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Balances automagically updates&lt;/em&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--j6NzzQ4e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/k2jblwd5qxg1o0hgdbvm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j6NzzQ4e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/k2jblwd5qxg1o0hgdbvm.png" alt="Alt Text" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Transaction Failed&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xE5TwLy4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/sgtv51wjogckpgit2oxs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xE5TwLy4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/sgtv51wjogckpgit2oxs.png" alt="Alt Text" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Check out my other posts on the ShadowGas smart contract:&lt;/p&gt;

&lt;p&gt;Store - &lt;a href="https://dev.to/traylorboy/shadowgas-store-40m9"&gt;https://dev.to/traylorboy/shadowgas-store-40m9&lt;/a&gt;&lt;br&gt;
Transfer - &lt;a href="https://dev.to/traylorboy/shadowgas-transfer-59jg"&gt;https://dev.to/traylorboy/shadowgas-transfer-59jg&lt;/a&gt;&lt;br&gt;
Trade - &lt;a href="https://dev.to/traylorboy/shadowgas-trade-1a5a"&gt;https://dev.to/traylorboy/shadowgas-trade-1a5a&lt;/a&gt;&lt;br&gt;
1.1.0 - &lt;a href="https://dev.to/traylorboy/shadowgas-v1-1-0-3100"&gt;https://dev.to/traylorboy/shadowgas-v1-1-0-3100&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/TraylorBoy/ShadowGas"&gt;https://github.com/TraylorBoy/ShadowGas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am working on the Trade feature for the UI, after that is finished v2.0.0 will be released!&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>ShadowGas - v1.1.0</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Sun, 27 Sep 2020 20:03:13 +0000</pubDate>
      <link>https://dev.to/traylorboy/shadowgas-v1-1-0-3100</link>
      <guid>https://dev.to/traylorboy/shadowgas-v1-1-0-3100</guid>
      <description>&lt;p&gt;ShadowGas now supports GST2 Tokens in the new update. Now it can store and transfer CHI, LGT, and GST2 gas tokens. &lt;/p&gt;




&lt;h1&gt;
  
  
  v1.1.0
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Removed unused contracts&lt;/li&gt;
&lt;li&gt;Reduced the size of the ShadowGas contract from 7.50KB to 6.39KB&lt;/li&gt;
&lt;li&gt;Added GST2 Scripts and Tasks (Tank, Refuel, Empty, EmptyTo)&lt;/li&gt;
&lt;li&gt;Updated Contract, added &lt;code&gt;gstDiscount modifier&lt;/code&gt;, &lt;code&gt;_destroy function&lt;/code&gt;, &lt;code&gt;gst store and transfer functions&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Changed test directory (can test each token separately)&lt;/li&gt;
&lt;li&gt;Added GST2 tests&lt;/li&gt;
&lt;li&gt;Added GST2 configuration to &lt;code&gt;shadow.config.json&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  shadow.config.json
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="sb"&gt;`&lt;/span&gt;RefuelChiAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Mint Chi Amount
&lt;span class="sb"&gt;`&lt;/span&gt;RefuelLgtAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Mint Lgt Amount
&lt;span class="sb"&gt;`&lt;/span&gt;RefuelGstAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Mint Gst Amount
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyChiAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Transfer Chi Amount
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyLgtAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Transfer Lgt Amount
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyGstAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Transfer Gst Amount
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyChiTo&lt;span class="sb"&gt;`&lt;/span&gt; - Address to transfer Chi to
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyLgtTo&lt;span class="sb"&gt;`&lt;/span&gt; - Address to transfer Lgt to
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyGstTo&lt;span class="sb"&gt;`&lt;/span&gt; - Address to transfer Gst to
&lt;span class="sb"&gt;`&lt;/span&gt;GasLimit&lt;span class="sb"&gt;`&lt;/span&gt; - Gas Limit
&lt;span class="sb"&gt;`&lt;/span&gt;GasSpeed&lt;span class="sb"&gt;`&lt;/span&gt; - Gas Speed &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"fast"&lt;/span&gt;, &lt;span class="s2"&gt;"average"&lt;/span&gt;, &lt;span class="s2"&gt;"slow"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; 
&lt;span class="sb"&gt;`&lt;/span&gt;TradeLimit&lt;span class="sb"&gt;`&lt;/span&gt; - The amount of trades to perform
&lt;span class="sb"&gt;`&lt;/span&gt;LgtTradeAmount&lt;span class="sb"&gt;`&lt;/span&gt; - Amount of LGT Tokens to trade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  GST2 Kovan &amp;amp; Mainnet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ce9ikkJO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/hm96jstrsjfmmhgg99uu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ce9ikkJO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/hm96jstrsjfmmhgg99uu.png" alt="Alt Text" width="800" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Be sure to use the correct address for GST2!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Default is Kovan&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GST2 Examples
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler tank &lt;span class="nt"&gt;--token&lt;/span&gt; Gst
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--afmUABus--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/curnjkaa08ycpl4kertj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--afmUABus--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/curnjkaa08ycpl4kertj.png" alt="Alt Text" width="800" height="273"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler refuel &lt;span class="nt"&gt;--token&lt;/span&gt; Gst
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IxaLQhAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/aha5gs6roagcfdolnxmn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IxaLQhAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/aha5gs6roagcfdolnxmn.png" alt="Alt Text" width="800" height="847"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler empty &lt;span class="nt"&gt;--token&lt;/span&gt; Gst
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OEvWSy4w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/8ej2n7nqh611z5kz1qnh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OEvWSy4w--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/8ej2n7nqh611z5kz1qnh.png" alt="Alt Text" width="800" height="953"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler emptyTo &lt;span class="nt"&gt;--token&lt;/span&gt; Gst
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MjIZRtEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/x6ztis5o13c7bc4bjdg7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MjIZRtEC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/x6ztis5o13c7bc4bjdg7.png" alt="Alt Text" width="800" height="895"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tests
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run all tests&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler &lt;span class="nb"&gt;test&lt;/span&gt; ./test/gst-test.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Test GST2 Tokens&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler &lt;span class="nb"&gt;test&lt;/span&gt; ./test/chi-test.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Test Chi Tokens&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler &lt;span class="nb"&gt;test&lt;/span&gt; ./test/lgt-test.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Test Lgt Tokens&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SuLMS597--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/j6vxgcqeyqh0hdp5n6qx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SuLMS597--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/j6vxgcqeyqh0hdp5n6qx.png" alt="Alt Text" width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All tests should pass, but they do require ether to run&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I am now working on &lt;em&gt;v2.0.0&lt;/em&gt;, this version will include the UI in order to interact with the contract through the DApp.&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>ShadowGas - Trade</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Thu, 24 Sep 2020 16:50:09 +0000</pubDate>
      <link>https://dev.to/traylorboy/shadowgas-trade-1a5a</link>
      <guid>https://dev.to/traylorboy/shadowgas-trade-1a5a</guid>
      <description>&lt;p&gt;v1.0.0 of the ShadowGas smart contract is finished. My two recent posts (below) go over the &lt;code&gt;Store&lt;/code&gt; and &lt;code&gt;Transfer&lt;/code&gt; features of the contract and this one will go over the &lt;code&gt;Trade&lt;/code&gt; feature.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://dev.to/traylorboy/shadowgas-store-40m9"&gt;https://dev.to/traylorboy/shadowgas-store-40m9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/traylorboy/shadowgas-transfer-59jg"&gt;https://dev.to/traylorboy/shadowgas-transfer-59jg&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The &lt;code&gt;Trade&lt;/code&gt; feature currently only trades the liquid gas token, however I plan on including the other 2 later down the road&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Updated the &lt;code&gt;shadowGas.config.json&lt;/code&gt; file&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  shadow.config.json
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="sb"&gt;`&lt;/span&gt;RefuelChiAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Mint Chi Amount
&lt;span class="sb"&gt;`&lt;/span&gt;RefuelLgtAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Mint Lgt Amount
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyChiAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Transfer Chi Amount
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyLgtAmt&lt;span class="sb"&gt;`&lt;/span&gt; - Transfer Lgt Amount
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyChiTo&lt;span class="sb"&gt;`&lt;/span&gt; - Address to transfer Chi to
&lt;span class="sb"&gt;`&lt;/span&gt;EmptyLgtTo&lt;span class="sb"&gt;`&lt;/span&gt; - Address to transfer Lgt to
&lt;span class="sb"&gt;`&lt;/span&gt;GasLimit&lt;span class="sb"&gt;`&lt;/span&gt; - Gas Limit
&lt;span class="sb"&gt;`&lt;/span&gt;GasSpeed&lt;span class="sb"&gt;`&lt;/span&gt; - Gas Speed &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"fast"&lt;/span&gt;, &lt;span class="s2"&gt;"average"&lt;/span&gt;, &lt;span class="s2"&gt;"slow"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; 
&lt;span class="sb"&gt;`&lt;/span&gt;TradeLimit&lt;span class="sb"&gt;`&lt;/span&gt; - The amount of trades to perform
&lt;span class="sb"&gt;`&lt;/span&gt;LgtTradeAmount&lt;span class="sb"&gt;`&lt;/span&gt; - Amount of LGT Tokens to trade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Trade
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Only trades LGT, but can use refueled CHI for discounts so profit may be more than expected if discount is applied&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Oracle
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler oracle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Will retrieve trade information for arbitrage&lt;/p&gt;

&lt;h3&gt;
  
  
  Arbitrage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler arbitrage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Will run a loop to continuously check for trade opportunities every minute and will execute trades if an opportunity is found until &lt;code&gt;TradeLimit&lt;/code&gt; is reached&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Check for trade opportunity
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler oracle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QT-yGNSp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/nqd4c1t759i9u2iy0pdc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QT-yGNSp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/nqd4c1t759i9u2iy0pdc.png" alt="Alt Text" width="800" height="1620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If the costToMint &amp;gt; expectedProfit, no opportunity found&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing the Arbitrage Strategy
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Since the costToMint is heavily weighted by the current gasPrice, by changing the gasPrice variable (ex. 1 Gwei) on a testnet, you will be able to mint the LGT tokens for cheap and sell them for a profit within the same transaction since the costToMint will be much lower when minting at 1 Gwei than at 116 Gwei thus forcing a trade opportunity.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler arbitrage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8S8hCOEy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/w4vab32llklga6ih0okp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8S8hCOEy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/w4vab32llklga6ih0okp.png" alt="Alt Text" width="800" height="1435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;v1.0.0 for the ShadowGas contract is released; after adding GST compatibility (v1.1.0), I will be developing the UI in React in order to interact with the contract!&lt;/p&gt;

&lt;p&gt;The repo can be found here: &lt;a href="https://github.com/TraylorBoy/ShadowGas"&gt;https://github.com/TraylorBoy/ShadowGas&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>ShadowGas - Transfer</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Wed, 23 Sep 2020 14:53:17 +0000</pubDate>
      <link>https://dev.to/traylorboy/shadowgas-transfer-59jg</link>
      <guid>https://dev.to/traylorboy/shadowgas-transfer-59jg</guid>
      <description>&lt;p&gt;The ShadowGas &lt;code&gt;Transfer&lt;/code&gt; feature allows you to move the gas tokens stored at the contract's address to the address of the contract's owner or to an address provided.&lt;/p&gt;




&lt;p&gt;I recommend checking out my first post (below) before reading if you haven't already. It goes over the &lt;strong&gt;installation&lt;/strong&gt;, &lt;strong&gt;setup&lt;/strong&gt;, and the &lt;strong&gt;contract's &lt;code&gt;Store&lt;/code&gt; feature&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/traylorboy/shadowgas-store-40m9"&gt;https://dev.to/traylorboy/shadowgas-store-40m9&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Transfer
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;GAS_TOKEN&amp;gt;&lt;/code&gt; should be either &lt;strong&gt;Chi&lt;/strong&gt; or &lt;strong&gt;Lgt&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Empty
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler empty &lt;span class="nt"&gt;--token&lt;/span&gt; &amp;lt;GAS_TOKEN&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sends Chi or Lgt from contract to possessor &lt;em&gt;(contract owner)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  EmptyTo
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler emptyTo &lt;span class="nt"&gt;--token&lt;/span&gt; &amp;lt;GAS_TOKEN&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sends Chi or Lgt from contract to address &lt;em&gt;(modify in shadow.config.js)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Empty 3 Lgt and Chi
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;You can modify the amount to send in &lt;code&gt;shadow.config.json&lt;/code&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler empty &lt;span class="nt"&gt;--token&lt;/span&gt; Lgt

npx buidler empty &lt;span class="nt"&gt;--token&lt;/span&gt; Chi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gw2vFIj8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/qtwn5yvodhui1cl7z6vx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gw2vFIj8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/qtwn5yvodhui1cl7z6vx.png" alt="Alt Text" width="796" height="1752"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jCCtXLgt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/ly3n6tz0kqg82u3t2l6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jCCtXLgt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/ly3n6tz0kqg82u3t2l6u.png" alt="Alt Text" width="776" height="1790"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Empty 3 Lgt and Chi to address
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;You can modify the address to send to in &lt;code&gt;shadow.config.json&lt;/code&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler emptyTo &lt;span class="nt"&gt;--token&lt;/span&gt; Lgt

npx buidler emptyTo &lt;span class="nt"&gt;--token&lt;/span&gt; Chi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HU4O4FCO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/1s4rnojcvq97dhnk01ga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HU4O4FCO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/1s4rnojcvq97dhnk01ga.png" alt="Alt Text" width="800" height="1278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FsjOxlyx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/n0z31gxbxu69qzky26uj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FsjOxlyx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/n0z31gxbxu69qzky26uj.png" alt="Alt Text" width="800" height="1244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am currently finishing up the trade feature!&lt;/p&gt;

&lt;p&gt;The repo can be found here: &lt;a href="https://github.com/TraylorBoy/ShadowGas"&gt;https://github.com/TraylorBoy/ShadowGas&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>ShadowGas - Store</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Mon, 21 Sep 2020 18:45:31 +0000</pubDate>
      <link>https://dev.to/traylorboy/shadowgas-store-40m9</link>
      <guid>https://dev.to/traylorboy/shadowgas-store-40m9</guid>
      <description>&lt;p&gt;I have finished the &lt;em&gt;Store&lt;/em&gt; feature of the ShadowGas contract. &lt;/p&gt;

&lt;p&gt;Interaction with the contract can be done via &lt;em&gt;buidler tasks and the console&lt;/em&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Install
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/TraylorBoy/ShadowGas.git

&lt;span class="nb"&gt;cd &lt;/span&gt;ShadowGas

yarn &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;After installing, you will need to create a &lt;code&gt;.env&lt;/code&gt; file and modify the &lt;code&gt;shadow.config.js&lt;/code&gt; and the &lt;code&gt;buidler.config.js&lt;/code&gt; files&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  .env
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;SHADOWGAS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - Contract Address
&lt;span class="nv"&gt;WALLET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - Wallet Address
&lt;span class="nv"&gt;PRIVATEKEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - Wallet Private Key
&lt;span class="nv"&gt;KOVAN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - Kovan Infura url
&lt;span class="nv"&gt;ROPSTEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - Ropsten Infura url
&lt;span class="nv"&gt;MAINNET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - Mainnet Infura url
&lt;span class="nv"&gt;ETHERSCAN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - Etherscan API Key
&lt;span class="nv"&gt;ETH_GAS_STATION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt; - EthGasStation API Key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  shadow.config.json
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;RefuelChiAmt - Mint Chi Amount
RefuelLgtAmt - Mint Lgt Amount
EmptyChiAmt - Transfer Chi Amount
EmptyLgtAmt - Transfer Lgt Amount
EmptyChiTo - Address to transfer Chi to
EmptyLgtTo - Address to transfer Lgt to
GasLimit - Gas Limit
GasSpeed - Gas Speed &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"fast"&lt;/span&gt;, &lt;span class="s2"&gt;"average"&lt;/span&gt;, &lt;span class="s2"&gt;"slow"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gas Price is retrieved from:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ethgasstation.info/"&gt;https://ethgasstation.info/&lt;/a&gt; &lt;br&gt;
&lt;a href="https://etherscan.io/gastracker"&gt;https://etherscan.io/gastracker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I am working on a Gas Oracle which may change this feature&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;buidler.config.js

...

module.exports &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  defaultNetwork: &lt;span class="s2"&gt;"Kovan"&lt;/span&gt;,
  ...
 &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You may modify the exported properties in the &lt;code&gt;buidler.config.js&lt;/code&gt; file.&lt;/p&gt;

&lt;h1&gt;
  
  
  Store
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;&lt;code&gt;&amp;lt;GAS_TOKEN&amp;gt;&lt;/code&gt; should be either: Chi or Lgt&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Refuel
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler refuel &lt;span class="nt"&gt;--token&lt;/span&gt; &amp;lt;GAS_TOKEN&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mints either Chi or Lgt tokens and stores them at contract's address&lt;/p&gt;

&lt;h3&gt;
  
  
  Tank
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler tank &lt;span class="nt"&gt;--token&lt;/span&gt; &amp;lt;GAS_TOKEN&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Retrieves Chi or Lgt token balance at contract's address&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Refuel 13 Chi and Lgt tokens
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Refuel amount can be modified via the &lt;code&gt;shadow.config.js&lt;/code&gt; file&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler refuel &lt;span class="nt"&gt;--token&lt;/span&gt; Chi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vJwREVWT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/goj8avjo9jh5uve47upn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJwREVWT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/goj8avjo9jh5uve47upn.png" alt="Alt Text" width="728" height="1752"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler refuel &lt;span class="nt"&gt;--token&lt;/span&gt; Lgt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hdxMm_4C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/cdo8nrvz2nxe68jjximj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hdxMm_4C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/cdo8nrvz2nxe68jjximj.png" alt="Alt Text" width="800" height="1568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Retrieve Chi and Lgt tank balances
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler tank &lt;span class="nt"&gt;--token&lt;/span&gt; Chi
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UKb0TCtB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/jjcdohv8dqbvtbttm6jk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UKb0TCtB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/jjcdohv8dqbvtbttm6jk.png" alt="Alt Text" width="696" height="338"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx buidler tank &lt;span class="nt"&gt;--token&lt;/span&gt; Lgt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q2105OBI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/itkbi6kox6y1m1cta9h6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q2105OBI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/itkbi6kox6y1m1cta9h6.png" alt="Alt Text" width="800" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I will post the &lt;code&gt;Transfer&lt;/code&gt; feature tomorrow!&lt;/p&gt;

&lt;p&gt;The repo for the project is located here: &lt;a href="https://github.com/TraylorBoy/ShadowGas"&gt;https://github.com/TraylorBoy/ShadowGas&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>Coding w/ Music</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Sun, 20 Sep 2020 18:29:50 +0000</pubDate>
      <link>https://dev.to/traylorboy/coding-w-music-2ok2</link>
      <guid>https://dev.to/traylorboy/coding-w-music-2ok2</guid>
      <description>&lt;p&gt;Music always gets me in the mood to wire in and block out my surroundings, focusing on the code in front of me with the tunes as my auditory guide.&lt;/p&gt;

&lt;p&gt;Although it may distract you as well, if you are the type that can get past that then you may find it a rather comforting addition to your environment while you're grinding away. It's like listening to music while studying! &lt;/p&gt;

&lt;p&gt;A couple songs I love to start out with when I open VS Code are: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://soundcloud.com/charles-thefirst/chynna-the-conversation-charlesthefirst-remix"&gt;https://soundcloud.com/charles-thefirst/chynna-the-conversation-charlesthefirst-remix&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://soundcloud.com/a40ounce/tiedye-ky-hit-em-from-the-top-rope-feat-duke-blazer"&gt;https://soundcloud.com/a40ounce/tiedye-ky-hit-em-from-the-top-rope-feat-duke-blazer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any and all recommendations for new tunes to code to are welcome!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ShadowGas Update</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Sat, 19 Sep 2020 17:21:00 +0000</pubDate>
      <link>https://dev.to/traylorboy/shadowgas-update-2c0l</link>
      <guid>https://dev.to/traylorboy/shadowgas-update-2c0l</guid>
      <description>&lt;p&gt;I have been working on my ShadowGas project for the past week and it has been a great learning experience. &lt;/p&gt;

&lt;p&gt;With the help of another member on here (Sam Bacha) I was able to find another gas token called, Liquid Gas Token. The LGT allows you to mint and burn in the same transactions, thus discounting transactions a bit more than GST and CHI.&lt;/p&gt;

&lt;p&gt;I have changed the ShadowGas contract to better fit it's described functionality (Stores, Transfers, and Trades). I have started testing the first two and at the moment the contract only includes functions that work with CHI and LGT (I plan on adding GST later).&lt;/p&gt;

&lt;p&gt;The master branch shows the old contract, I have just pushed the new one to the dev branch. You can check out the repo below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/TraylorBoy/ShadowGas"&gt;https://github.com/TraylorBoy/ShadowGas&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I plan to continue on blogging my development of my ShadowGas project!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Don't Over Do It</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Thu, 17 Sep 2020 16:37:02 +0000</pubDate>
      <link>https://dev.to/traylorboy/don-t-over-do-it-5973</link>
      <guid>https://dev.to/traylorboy/don-t-over-do-it-5973</guid>
      <description>&lt;p&gt;&lt;em&gt;Lack of sleep due to staying up all night coding?&lt;/em&gt; &lt;br&gt;
&lt;em&gt;Having a hard time focusing on your project?&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Motivation slipping away?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't overdo it&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;It's as easy as closing your screen and logging in to the world around you.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;For anyone reading this who feels frustrated, exhausted, or overwhelmed as they learn to code: take time off if you need it, and never hesitate to ask for help&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://flatironschool.com/blog/best-coding-advice-ever-got-take-break"&gt;https://flatironschool.com/blog/best-coding-advice-ever-got-take-break&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Buidler Tasks &amp; Plugins</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Wed, 16 Sep 2020 20:09:54 +0000</pubDate>
      <link>https://dev.to/traylorboy/buidler-tasks-plugins-1cp5</link>
      <guid>https://dev.to/traylorboy/buidler-tasks-plugins-1cp5</guid>
      <description>&lt;p&gt;Ever since I migrated from &lt;em&gt;Truffle&lt;/em&gt; to &lt;em&gt;Buidler&lt;/em&gt;, I have found buidler plugins &amp;amp; tasks to be very useful in my workflow.&lt;/p&gt;

&lt;p&gt;If you don't know Buidler, check out their site at &lt;a href="https://buidler.dev/"&gt;https://buidler.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Buidler is a &lt;strong&gt;task runner for ethereum smart contract developers&lt;/strong&gt;. It allows you to create tasks that aid in the workflow and productivity during development.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Buidler Task&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bJ9wnuQb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/wrnwfg2rff3z258w6vwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bJ9wnuQb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/wrnwfg2rff3z258w6vwg.png" alt="Alt Text" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Console&lt;/em&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c-Wl_hvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/6572eq3quyb38d7gjj6q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c-Wl_hvE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/6572eq3quyb38d7gjj6q.png" alt="Alt Text" width="800" height="24"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Output&lt;/em&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wsxXkl9Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/f5egck037eyfj18wn3ji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wsxXkl9Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/f5egck037eyfj18wn3ji.png" alt="Alt Text" width="450" height="38"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Contract Sizer &amp;amp; Spdx License Identifier Plugins&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ItLOUmaY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/g02yla5fdb5itemhoeo6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ItLOUmaY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/g02yla5fdb5itemhoeo6.png" alt="Alt Text" width="800" height="74"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JRBDV-se--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/2sa20gkzvxhvejrm8spr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JRBDV-se--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/2sa20gkzvxhvejrm8spr.png" alt="Alt Text" width="534" height="702"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These plugins will go in your &lt;code&gt;buidler.config.js&lt;/code&gt; file. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;spdx-license-identifier&lt;/code&gt; plugin will prepend the license field from your &lt;code&gt;package.json&lt;/code&gt; file in every contract that doesn't have one defined. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;contract-sizer&lt;/code&gt; plugin outputs the sizes of your contracts to the console.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ryAZZSqC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/7wbi1yu8ye7e9oba8f9p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ryAZZSqC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/7wbi1yu8ye7e9oba8f9p.png" alt="Alt Text" width="800" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Their website contains detailed documentation and also includes a tutorial if you want to learn more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tutorial&lt;/strong&gt;: &lt;a href="https://buidler.dev/tutorial/"&gt;https://buidler.dev/tutorial/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Documentation&lt;/strong&gt;: &lt;a href="https://buidler.dev/getting-started/"&gt;https://buidler.dev/getting-started/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Plugins&lt;/strong&gt;: &lt;a href="https://buidler.dev/plugins/"&gt;https://buidler.dev/plugins/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>await Sleep(x);</title>
      <dc:creator>Marques Traylor</dc:creator>
      <pubDate>Tue, 15 Sep 2020 22:39:37 +0000</pubDate>
      <link>https://dev.to/traylorboy/await-sleep-x-3o5m</link>
      <guid>https://dev.to/traylorboy/await-sleep-x-3o5m</guid>
      <description>&lt;p&gt;If you're looking for a quick way to pause runtime while you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for a response&lt;/li&gt;
&lt;li&gt;Making sure a variable updated successfully&lt;/li&gt;
&lt;li&gt;etc...&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  async/await sleep
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MzmHhXJb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/bsz5al0rxxlnv0ycph2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MzmHhXJb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/bsz5al0rxxlnv0ycph2w.png" alt="Alt Text" width="387" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;len&lt;/code&gt; param is measured in &lt;em&gt;milliseconds&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  example
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gfyGrGql--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/2e8c2ewkdmggs4mx49d1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gfyGrGql--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/2e8c2ewkdmggs4mx49d1.png" alt="Alt Text" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Sauce.sleep(15000);&lt;/code&gt; &lt;em&gt;Resolves after 15 seconds&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The transaction would resolve before the balance updated so I paused the script for 15 seconds while the transaction was being mined.&lt;/p&gt;

&lt;p&gt;Hope this helps!&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
  </channel>
</rss>
