 Okay, hello everybody and thank you for joining me today at this session. I'm going to present you a really cool and interesting topic that you may put into use right after the presentation is finished. I'm not going to promise you a super car, slumber guineas and stuff like that. I'm just going to promise you a real stable open source blockchain development tool. But first of all, I have a couple of questions for you. Does anybody here try to develop an Ethereum smart contract? Okay, really cool. How many of you tried to deploy it on the mainnet, on the Ethereum mainnet? Really cool. How many of you tried to deploy it without a framework or a tool? Yeah, it's framework or tool. Yeah, so you're using Trufile? Okay, thank you. So I used to use Trufile before, but today I'm going to present you Ethereum 1. It's an open source blockchain development framework, or you can call it just a tool that saves developers' lives. But to understand why I'm sitting here in front of you talking about blockchain, let me first introduce myself and our company. My name is Sugnyan Chikov and I'm software developer at LimeChain. Here you can find my contacts, so do not hesitate to contact me if you have further questions about Ethereum 1. So LimeChain is located in Bulgaria and we are here with our CTO Chris over there. So say hi to Chris. And we are a blockchain consulting and development company and we provide services for private and public blockchain development, smart contracts development and audit, crowd sales services and etc. We also have a plenty of blockchain related products and you can see some of them over here. We have a LimeTracker that is a solution for, how to say, it's a solution, a very good solution for supply chain, transibility and transparency. We have LimePay, which is a solution for executing Ethereum transactions with fiat money. And of course we have Ethereum Lime that is a development tool targeting developers in the Ethereum realm that you know how to use right after this presentation. Before we proceed with the main topics for today, let me introduce you our collaboration channels that I encourage you to join so you can follow us and you can understand really hot news about Ethereum Lime. First of all you can see our Telegram community group where you can join and face to face and chat with the developers that are standing behind Ethereum Lime. You can chat directly with me and the people from our development team that is standing behind Ethereum Lime. New members in the community are more than welcome. You can ask us everything regarding Ethereum Lime or regarding blockchain development. We have a YouTube channel where you can follow us. You can find their useful videos of how to use or also Ethereum blockchain news. We have a Telegram group that I encourage you to follow us in Twitter group. Also you can find our GitHub repository where you can join open initial or open pull request for a feature that you need. And at the end you can see our document page where you can find our docs of Ethereum Lime, how to use and what exactly is Ethereum Lime and all the extended features. But first of all let me answer you what is Ethereum Lime. As I said, Ethereum Lime is open source blockchain development tool that is based on Ethereum GS library. But how Ethereum Lime was born? Ethereum Lime was born because of all other buggy tools that are based on Web3GS library. Ethereum Lime adds something really valuable for the developers. It adds verbousness during the whole process of development and deploy. What does it mean? It means that every time you execute a comment in the command line interface, you know exactly what is happening behind the scenes. We have verbousness during the whole process. You know what exactly is happening in order to support your development and to know where exactly you are in the middle of the process. Ethereum Lime also is really valuable because it's really small and easy to install. Why developers might use Ethereum Lime? Developers use Ethereum Lime because it's a framework or tool that makes you in the process and using a single tool during the whole process. You don't have to search a tool for compiling your smart contracts. You don't have to search a tool for developing your smart contracts or you don't have to search a tool for deploying your smart contracts. What can Ethereum Lime do for us? Ethereum Lime can set up a project for us and for me as a developer, this is really important. As I'm starting using a new technology, I always spent a couple of hours searching for how to set up the project, how to make the environment and how to do all the stuff that I can start on. Ethereum Lime can do this for you by just writing a single comment and I'm going to show you in a couple of minutes I have a demo for you prepared. So I'm going to show you really in life how you can set up your project for just a second. Ethereum Lime can compile our smart contracts. Something more, if you go into the documentation you can see all the extended options for the compilation. You can use different sol-c versions. You can compile different smart contracts. You can compile even smart contracts that are not loaded in your project. Ethereum Lime also can deploy our smart contracts and you can deploy just with a single comment. Something more, Ethereum Lime can run a local blockchain development network for you that you can test all of your smart contracts. This can be done again with a single comment. Something more, this local blockchain development network comes with 10 static accounts that every time you're starting this blockchain network they're the same, so you can use it in your projects. You don't have to change private keys and addresses and these accounts are full loaded with billions of headers. This is really useful when you're making a project for ICO and you have to test it, for example, you don't have to worry that you will run out of headers. You have 10 prepared accounts with billions of headers loaded. Ethereum Lime can test your code. You can run unit tests as you can run unit tests and write unit tests as you can write unit tests for all of your other projects. Ethereum Lime has a code coverage option so you can check what is your code coverage that is really useful for developing smart contracts. The main benefits of Ethereum Lime are that you have a single tool doing all of this stuff. You don't have to browse through the tools and use different tools for all of these steps. Something more, it's stable. We have more than 96% code coverage in the library. If you go in the GitHub page, you can see these numbers. It's open source. All of you can participate in the development so we encourage you to join us in our community groups, open issues, comments about some features that you need. We encourage that. Also, one of the biggest main benefits is that actually you can use it for all of your Ethereum projects. As soon as we are planned to release some cool features that I'm going to comment after the demo and you will see what are the really main benefits of Ethereum Lime, the features. I'm going to present you how to install Ethereum Lime just with a single comment. I'm sorry, how to init a project. I have already installed it but you can install it with just a single comment, just run NPM, install Ethereum Lime with a global flag and it depends on the network connection here and your hardware speed. You will have Ethereum Lime in just a few seconds. I'm going to present you how to initialize a project and I'm going to comment what this project has. You will see that the initialized project has everything for you needed to just start developing Ethereum smart contracts. I have an empty folder here prepared for the demo. You can see that it's empty. I'm going to write the Ethereum init comment and you will see the verbousness process that I told you earlier. It's really working here. You will see what is happening all the time in the console. It depends from the internet connection. It may spend some time. We hope to be really fast. I will wait 10 more seconds and if the internet is still so bad I have already generated another project that is prepared for you if the internet fails. Yeah, it's... Okay, we're here. Thank you for your patience. Okay, now I'm opening the already generated project with Ethereum Lime. You can see we have a couple of stuff here. First of all, what are you going to have? We have a contract folder. Looks really interesting. I have a contract folder already so I don't have to think where I have to put my contracts. Maybe they will go here. And I have a line factory contract. Interesting. I have a really finished contract that is ready to be tested, compiled and deployed. Okay, cool. I have a deployment folder where I have a deploy.js script. Here you can see that I have already a deployment scenario. This is the file that you can put your deployment scenarios. For example, maybe I will have to zoom a little bit and I will hide this one. You can see that I have a deployment scenario that I'm making a deployer that is a new instance from Ethereum Lime, Ethereum Lime ganache deployer. What this deployer does? This deployer knows about your local network, your local blockchain network that you can run with a single command. How you can run this blockchain network? I'm going to show you right now. I'm going to open a new tab. I'm going to write Ethereum Lime ganache command. You will see that I started a blockchain local development network that is running already on a local host with this port number. I have 10 predefined accounts ready to be used. Something more. This Ethereum Lime ganache deployer knows about this network on this port. You can deploy your smart contract with just a single command. By default, it uses the first account, but if you go into the documentation, you can see all the different extended features that you can give to this deployer and this network. You can start this blockchain network on whatever port you want and you can make your deployer to deploy on whatever port you need and using whatever of the 10 accounts you need. This is for the deployment scenario scripts. I have a test folder that you can see here and it's really cool for me that I have just an example test file where I can see that I have already test scenarios about my smart contract. As you can see, this is a good starting point for you to start developing an Ethereum smart contract. Something more. You have everything here prepared to be compiled, tested and deployed. I'm going to show you how. First of all, I'm going to compile my smart contract. I'm going to write an Ethereum compile and you can see the verboseness process. My compilation finished successful. I'm going to deploy my smart contract using just the default settings and I'm going to deploy it on my local blockchain network. You can see the verboseness process and the report after the deployment script finished successfully. You can see that my contract with name line factory has been deployed successfully. I have the transaction hash and I have the result that is really the others of the smart contract. Something more. For example, imagine that I'm closing this now. It's finished the deployment script and I'm closing it and I'm going to home. Then I start to think, oh, what was my address of the smart contract? This is my local network, but for example, imagine that I'm deploying through our favorite in full service to the main net or to some of the remote test networks. Every time I want, I can show this report by Ethereum history command. We have Ethereum history command that you can see of your report, of your deployments that have been done successfully. I'm going to test my smart contracts locally with a single command, Ethereum test. This will run my unique tests. Hopefully, they finish successfully. I'm going to show you the coverage command. As soon as coverage command is completed, you will see again a report with all of your code coverage numbers. Hopefully, I have 100 from 100. Good. Here, imagine that I don't want to deploy on my local GANASH network. We at Ethereum have different kind of Ethereum deployers. They are ready to use for you. No matter if you want to deploy through in full service on the main net or to the remote test networks, we have prepared for you a couple of different deployers. Now, I want to talk a little bit about the future development. We are going to release really soon two really important features. The first feature is that we are going to provide for our users ready to use decentralized applications out of the box. What I mean? I mean that you will type a single command in the command line interface and you will get a really working decentralized application using a really cool use case, a game, a blockchain game or a blockchain decentralized application that is ready to use. So you will have a front-end application with your favorite front-end framework, no matter it will be Angular or React or something else that you love. You will have predefined out of the box ready to use decentralized applications. The second really cool feature that we are going to release is being able to debug transactions with transaction hash. So imagine that you are using some other kind of library. For example, a Web3.js library and your transaction is failed in order and failing a transaction. If you have a transaction hash, you can start the book, your transaction and your smart contract using just this transaction hash. Now, I have a special challenge for all of you. Please scan this QR code with your phones. This will lead you to a GitHub repository. In this GitHub repository, you will find, read me with step-by-step what you have to do to experience Ethereum. We have for you a generated project with really cool feature smart contracts that is making a deposit. It's like a bank deposit. We have for you the unit tests and we have the challenge for you to write in-raw function in the smart contract in-raw method. So this in-raw method would give to the first three people who are deposit to this smart contract additional itters. In the read me, you will find everything you need step-by-step described. So I encourage you, whenever you feel free and you want to start using Ethereum, please enter in our GitHub repository using this QR code and do the challenge. At the end of the steps, you will find that you have to join our telegram community group and you will have to post your smart contract address. So I assume that you will develop and deploy your smart contract using some of the remote test nets no matter is it linked by Kovon or Robson. Now it's time for questions and answers. Any questions? Yes, over there? Wait for the microphone, please. Thank you. Why do you need the internet to unit projects? Because we are installing SoulSea library. And why do you wrap Ganesh? We wrap the Ganesh, but we extend the Ganesh because we need more money in our accounts and we are making our own 10 predefined accounts that are full with etters, different number of etters than the ordinary Ganesh. Okay, thank you. Anybody else? Okay, hopefully I will see you in the community. Do not hesitate to contact me.