{"id":13651014,"url":"https://github.com/EOSIO/eosio-web-ide","last_synced_at":"2025-04-22T22:30:28.187Z","repository":{"id":36189760,"uuid":"205857973","full_name":"EOSIO/eosio-web-ide","owner":"EOSIO","description":"eosio-web-ide","archived":false,"fork":false,"pushed_at":"2023-07-11T01:18:40.000Z","size":210,"stargazers_count":151,"open_issues_count":31,"forks_count":1236,"subscribers_count":34,"default_branch":"master","last_synced_at":"2024-01-25T03:03:39.028Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EOSIO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-09-02T12:59:36.000Z","updated_at":"2024-01-25T03:03:39.029Z","dependencies_parsed_at":"2024-01-03T05:13:04.484Z","dependency_job_id":"c2434da4-a6f2-483b-a4ea-4377c1242086","html_url":"https://github.com/EOSIO/eosio-web-ide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EOSIO%2Feosio-web-ide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EOSIO%2Feosio-web-ide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EOSIO%2Feosio-web-ide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EOSIO%2Feosio-web-ide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EOSIO","download_url":"https://codeload.github.com/EOSIO/eosio-web-ide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250333850,"owners_count":21413468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T02:00:43.880Z","updated_at":"2025-04-22T22:30:27.919Z","avatar_url":"https://github.com/EOSIO.png","language":"TypeScript","funding_links":[],"categories":["Developers"],"sub_categories":["Environment"],"readme":"# EOSIO Quickstart Web IDE for decentralized applications ![EOSIO Alpha](https://img.shields.io/badge/EOSIO-Alpha-blue.svg)\n\n[![Software License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](./LICENSE)\n\nEOSIO Quickstart Web IDE lets developers start building full-stack EOSIO applications in a matter of minutes. \n\nPowered by Gitpod.io and Docker, it provides developers with a personal single-node EOSIO blockchain for development and testing purposes without a need of going through advanced local environment setup. It also includes an example application with a smart contract and web frontend, connected to the blockchain. Developers can also use EOSIO tools like cleos and  eosio.cdt straight out of the box. This project requires zero installation on the user's machine. All code is stored and managed on the developer's personal GitHub account, with the changes saved automatically.\n\nWe built this project with ease of use and simplicity in mind. It can be used by new developers trying out or learning EOSIO, as well as advanced developers and teams. It is especially useful in the environments where users don't have full control over the systems they work on (universities, banks, government organizations, etc.) or when they have lower-than-required computer specs to run EOSIO locally.\n\nWe hope you will find this project useful and welcome feedback on future improvements.\n\n# Setup\n\n1. Fork this repo to your personal GitHub account so that you can save your work into your personal Github account.\n\n2. Point your browser to the following URL https://gitpod.io/#https://github.com/your-github-account/eosio-web-ide to start the IDE. You will be automatically prompted to create a Gitpod account (all types of Gitpod accounts (including free) will work). You can also choose to provide multiple developers push access to your personal github fork of this repo to collaborate with them (one developer working on the smart contract (C++) while the other working on the front-end decentralized application (EOSJS), etc.). Each such developer sharing access to the forked repo will get their own copy of the EOSIO blockchain components to enable independent development.\n\nYou can test drive the system by accessing the IDE at https://gitpod.io/#https://github.com/EOSIO/eosio-web-ide (however you will not be able to save your work into the EOSIO/eosio-web-ide Github repository)\n\n# Instructions\n\nThe following instructions assume that the Web IDE was started successfully (see [Setup](#setup)).\n\n## Opening a terminal\n\nTo open a terminal, use the Terminal drop-down menu in the IDE user interface.\n\n## Building sample contract\n\nThe source code for the sample smartcontract is at `contract/talk.cpp` within the IDE. To compile the contract, run this in a terminal:\n\n```\neosio-cpp contract/talk.cpp\n\n```\n\nThis will produce `talk.abi` and `talk.wasm`.\n\n## Installing the contract\n\nRun this in a terminal:\n\n```\ncleos create account eosio talk EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV\ncleos set code talk talk.wasm\ncleos set abi talk talk.abi\n\n```\n\n## Creating users and using the contract\n\nRun this in a terminal:\n```\ncleos create account eosio bob EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV\ncleos create account eosio jane EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV\ncleos push action talk post '[1000, 0, bob, \"This is a new post\"]' -p bob\ncleos push action talk post '[2000, 0, jane, \"This is my first post\"]' -p jane\ncleos push action talk post '[1001, 2000, bob, \"Replying to your post\"]' -p bob\n\n```\n\n## Listing the messages\n\nRun this in a terminal:\n```\ncleos get table talk '' message\n\n```\n\n## Viewing the front-end decentralized web app (EOSJS):\n\nThe source code for the React WebApp is at `webapp/src/index.tsx` within the IDE. To preview the WebApp run this in a terminal:\n\n```\ngp preview $(gp url 8000)\n\n```\n\n## Building and running the unit test\n\nThe source code for the unit test is at the `tests` directory within the IDE. To build the tests, run this in the terminal:\n\n```\n./build-tests\n\n```\n\nThis will produce the `tester` binary, which can be run from the terminal to start the actual unit test:\n\n```\n./tester\n\n```\n\nThe unit test creates the `talk_tests` test suite and verifies that the following statements are executed without error:\n\n1. Create user account `talk`.\n2. Load the `talk` smart contract in the `talk` account sandbox.\n2. Create user accounts `john` and `jane`.\n3. Test the `post` action by performing the following:\n   1. Push the `post` action from `talk` to `john` with message \"`post 1`\" identified as `1` and addressed to message `0` (sent by noone).  \n      This posts the message `1` from `john` to noone in the chat.\n   2. Push the `post` action from `talk` to `jane` with message \"`post 2`\" identified as `2` and addressed to message `0` (sent by noone).  \n      This posts the message `2` from `jane` to noone in the chat.\n   3. Push the `post` action from `talk` to `john` with message \"`post 3: reply`\" identified as `3` and addressed to message `2` (sent by `jane`).  \n      This posts the reply message `3` from `john` to `jane` in the chat.\n4. Test failure of the `post` action if message is addressed to a non-existant message id.\n\n## Resetting the chain\n\nTo remove the existing chain and create another:\n\n* Switch to the terminal running `nodeos`\n* Press `ctrl+c` to stop it\n* Run the following\n\n```\nrm -rf ~/eosio/chain\nnodeos --config-dir ~/eosio/chain/config --data-dir ~/eosio/chain/data -e -p eosio --plugin eosio::chain_api_plugin --contracts-console\n\n```\n\nNote: if the web app is currently open, then it will cause errors like the following. You may ignore them:\n\n```\nFC Exception encountered while processing chain.get_table_rows\n```\n\n## Contributing\n\n[Contributing Guide](./CONTRIBUTING.md)\n\n[Code of Conduct](./CONTRIBUTING.md#conduct)\n\n## License\n\n[MIT](./LICENSE)\n\n## Important\n\nSee [LICENSE](LICENSE) for copyright and license terms.\n\nAll repositories and other materials are provided subject to the terms of this [IMPORTANT](important.md) notice and you must familiarize yourself with its terms.  The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements.  By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEOSIO%2Feosio-web-ide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEOSIO%2Feosio-web-ide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEOSIO%2Feosio-web-ide/lists"}