{"id":22689151,"url":"https://github.com/flokapi/sorodev","last_synced_at":"2025-07-03T14:41:14.129Z","repository":{"id":215213423,"uuid":"735839134","full_name":"flokapi/sorodev","owner":"flokapi","description":"Develop Soroban apps more efficiently","archived":false,"fork":false,"pushed_at":"2023-12-28T12:17:22.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-03T23:41:30.008Z","etag":null,"topics":["cli","python","soroban"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flokapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-26T08:16:32.000Z","updated_at":"2024-01-03T04:43:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"426d44d9-6b5b-484c-b614-e448ae642a9f","html_url":"https://github.com/flokapi/sorodev","commit_stats":null,"previous_names":["flokapi/sorodev"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/flokapi/sorodev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flokapi%2Fsorodev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flokapi%2Fsorodev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flokapi%2Fsorodev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flokapi%2Fsorodev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flokapi","download_url":"https://codeload.github.com/flokapi/sorodev/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flokapi%2Fsorodev/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263343240,"owners_count":23452136,"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":["cli","python","soroban"],"created_at":"2024-12-10T00:17:49.707Z","updated_at":"2025-07-03T14:41:14.104Z","avatar_url":"https://github.com/flokapi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\nSorodev is a CLI tool and Python package which allows to develop with [Soroban](https://soroban.stellar.org/) more efficiently. \n\nIt is designed for Linux systems (Debian, WSL, ...)\n\n\n\n### Why?\n\nWhile [soroban-cli](https://soroban.stellar.org/docs/reference/soroban-cli) is like a Swiss knife to interact with Soroban, it also requires many arguments and parameters to specify the context, such as the current network being used, the last deployment addresses, ...\n\nSimilarly, Rust is a generic and customizable language, which requires to replicate the same patterns for each contract.\n\nThe idea behind `sorodev` is to provide the setup to get started with a development on Soroban and to bring some tools on top of `soroban-cli`.\n\nFor example:\n- create new Soroban projects and contracts (create default `Cargo.toml`, `lib.rs`, `test.rs`)\n- use a `sorodev.json` to configure the current parameters\n- build, test, deploy, invoke contracts, or make contract bindings with simple commands\n\nTo sum up, Sorodev indends to make it easier for anyone to start developping on Soroban and to enable a more efficient development experience.\n\nHowever, it's recommended to understand both the [Soroban development setup](https://soroban.stellar.org/docs/category/getting-started) and [how Sorodev works](https://github.com/flokapi/sorodev/tree/main/src/sorodev).\n\n\n# Getting started\n\n## Installation\n\n### Install Soroban\n\nInstall Rust\n\n```shell\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\nInstall the WebAssembly compilation target\n\n```\nrustup target add wasm32-unknown-unknown\n```\n\nInstall `soroban-cli`\n\n```\ncargo install soroban-cli\n```\n\n\n\n### Install Sorodev\n\n```shell\npip install sorodev\n```\n\n\n\n## Standalone project\n\n```shell\nmkdir example\ncd example\n\nsorodev install\nsorodev add-contract hello_soroban\nsorodev add-account alice\nsorodev build\nsorodev test\nsorodev deploy hello_soroban\nsorodev invoke hello_soroban hello --args \"--to Sorodev\"\n```\n\n\n\n## Create an Astro project\n\n```shell\nnpm create astro@4.0.1 example_astro --\\\n\t--template basics\\\n\t--install\\\n\t--no-git\\\n\t--typescript strictest\n\ncd example_astro\n\nsorodev install\nsorodev add-contract hello_soroban\nsorodev add-account alice\nsorodev build\nsorodev deploy hello_soroban\nsorodev make-binding hello_soroban\n```\n\n\nIn `pages/index.astro`, add the following lines:\n\n```jsx\n---\nimport Layout from \"../layouts/Layout.astro\";\nimport Card from \"../components/Card.astro\";\n\n+ import { Contract, networks } from \"hello_soroban-client\";\n\n+ const greeter = new Contract({\n+   ...networks.testnet,\n+   rpcUrl: \"https://soroban-testnet.stellar.org\",\n+ });\n+ \n+ const { result } = await greeter.hello({ to: \"Sorodev\" });\n---\n```\n\n\n\n```jsx\n- \u003ch1\u003eWelcome to \u003cspan class=\"text-gradient\"\u003eAstro\u003c/span\u003e\u003c/h1\u003e\n+ \u003ch1\u003e\u003cspan class=\"text-gradient\"\u003e{result.join(\" \")}\u003c/span\u003e\u003c/h1\u003e\n```\n\n\n\nIn the `package.json`, add the following script:\n\n```\n\"scripts\": {\n    ...\n    \"postinstall\": \"sorodev build \u0026\u0026 sorodev deploy hello_soroban \u0026\u0026 sorodev make-binding hello_soroban\"\n}\n```\n\n\n\nThen run:\n\n```shell\nnpm i\nnpm run dev\n```\nThen open `http://localhost:4321/`, you should see `Hello Sorodev`.\n\n\n## Create a Next.js project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflokapi%2Fsorodev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflokapi%2Fsorodev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflokapi%2Fsorodev/lists"}