{"id":18577177,"url":"https://github.com/sbip-sg/pymeca","last_synced_at":"2026-02-24T02:32:24.636Z","repository":{"id":250298809,"uuid":"765448005","full_name":"sbip-sg/pymeca","owner":"sbip-sg","description":"A python package for interacting with the MECAnywhere smart contracts.","archived":false,"fork":false,"pushed_at":"2024-09-06T04:10:33.000Z","size":273,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-07T17:12:38.571Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/sbip-sg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-29T23:53:55.000Z","updated_at":"2024-09-06T04:10:36.000Z","dependencies_parsed_at":"2024-11-06T23:34:42.773Z","dependency_job_id":"4f2df7e5-263d-4aba-84dd-bd53511be0fd","html_url":"https://github.com/sbip-sg/pymeca","commit_stats":null,"previous_names":["sbip-sg/pymeca"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/sbip-sg/pymeca","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbip-sg%2Fpymeca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbip-sg%2Fpymeca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbip-sg%2Fpymeca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbip-sg%2Fpymeca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbip-sg","download_url":"https://codeload.github.com/sbip-sg/pymeca/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbip-sg%2Fpymeca/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29769176,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T01:40:24.820Z","status":"online","status_checked_at":"2026-02-24T02:00:07.497Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-06T23:28:06.119Z","updated_at":"2026-02-24T02:32:24.612Z","avatar_url":"https://github.com/sbip-sg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pymeca\n\nA python package for interacting with the MECAnywhere smart contracts\n\n## Installation\n\n```bash\npip install pymeca\n```\n\n## Build from source\n\n```bash\ngit clone https://github.com/sbip-sg/pymeca.git\ncd pymeca\ngit submodule init\ngit submodule update --recursive\npip install poetry\npoetry install\n```\n\n## Run tests\n\nRequirements: poetry\n```bash\npip install poetry\npoetry install\ncd ./mecanywhere_contracts/src/ganach \u0026\u0026 npm install\n```\n\nRequirements: node.js 20.11.1 and npm (tested with 8.5.5)\n```bash\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\nexport NVM_DIR=\"${HOME}/.nvm\" \u0026\u0026 .\"$NVM_DIR/nvm.sh\"\ncd mecanywhere_contracts/src/ganache \u0026\u0026 nvm install .nvmrc \u0026\u0026 nvm use .nvmrc \u0026\u0026 nvm install-latest-npm \u0026\u0026 npm install\n```\n\nFrom the main directory:\n```bash\npoetry shell\npytest\n```\n\n\n## Usage\n\n\nLaunch the ganache test chain in a terminal to watch\n\n```bash\ncd src/pymeca/scripts\npython3 ganache.py \\\n--host http://localhost \\\n--port 9000 \\\n--ganache-server-script-path ../../../mecanywhere_contracts/src/ganache/index.js \\\n--generate-accounts \\\n--accounts_file_path ../../config/accounts.json \\\n--dao-address-file-path ../dao_contract_address.txt \\\n--dao-file-path \\\n../../../mecanywhere_contracts/src/contracts/MecaContract.sol \\\n--scheduler-file-path \\\n../../../mecanywhere_contracts/src/contracts/SchedulerContract.sol \\\n--host-file-path \\\n../../../mecanywhere_contracts/src/contracts/HostContract.sol \\\n--tower-file-path \\\n../../../mecanywhere_contracts/src/contracts/TowerContract.sol \\\n--task-file-path \\\n../../../mecanywhere_contracts/src/contracts/TaskContract.sol \\\n--scheduler-fee 100 \\\n--host-register-fee 100 \\\n--host-initial-stake 100 \\\n--host-task-register-fee 100 \\\n--host-failed-task-penalty 100 \\\n--tower-initial-stake 100 \\\n--tower-host-request-fee 100 \\\n--tower-failed-task-penalty 100 \\\n--task-addition-fee 100\n```\n\n- A sample workflow of how DAO entities interact with each other is provided [here](./sample/sample.py). The sample assumes that a ganache chain launched with the sample commands with [ganache.py](./src/pymeca/scripts/ganache.py) to setup corresponding accounts.\n\n## Contributing\n\nInterested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.\n\n## License\n\n`pymeca` was created by Stefan-Dan Ciocirlan (sdcioc). It is licensed under the terms of the MIT license.\n\n## Credits\n\n`pymeca` was created with [`cookiecutter`](https://cookiecutter.readthedocs.io/en/latest/) and the `py-pkgs-cookiecutter` [template](https://github.com/py-pkgs/py-pkgs-cookiecutter).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbip-sg%2Fpymeca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbip-sg%2Fpymeca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbip-sg%2Fpymeca/lists"}