{"id":18542754,"url":"https://github.com/coinbase/mesh-cli","last_synced_at":"2025-04-06T12:13:01.139Z","repository":{"id":37528403,"uuid":"251699700","full_name":"coinbase/mesh-cli","owner":"coinbase","description":"CLI for the Mesh API","archived":false,"fork":false,"pushed_at":"2024-07-24T22:57:35.000Z","size":2283,"stargazers_count":159,"open_issues_count":30,"forks_count":90,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-03-30T09:09:07.137Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coinbase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2020-03-31T18:44:48.000Z","updated_at":"2025-03-19T01:03:55.000Z","dependencies_parsed_at":"2024-03-28T06:42:37.293Z","dependency_job_id":"4fff39c2-931a-4455-b3a4-4fef477fda63","html_url":"https://github.com/coinbase/mesh-cli","commit_stats":{"total_commits":856,"total_committers":36,"mean_commits":23.77777777777778,"dds":"0.23948598130841126","last_synced_commit":"bbbd759336a0912853d8b10e84a3731c7a0b99d3"},"previous_names":["coinbase/rosetta-validator","coinbase/mesh-cli"],"tags_count":68,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coinbase%2Fmesh-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coinbase%2Fmesh-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coinbase%2Fmesh-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coinbase%2Fmesh-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coinbase","download_url":"https://codeload.github.com/coinbase/mesh-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247478329,"owners_count":20945266,"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-11-06T20:10:24.329Z","updated_at":"2025-04-06T12:13:01.125Z","avatar_url":"https://github.com/coinbase.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003ch3 align=\"center\"\u003e\n   Mesh CLI\n\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\nCLI to validate the correctness of Mesh API implementations\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://circleci.com/gh/coinbase/mesh-cli/tree/master\"\u003e\u003cimg src=\"https://circleci.com/gh/coinbase/mesh-cli/tree/master.svg?style=shield\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://coveralls.io/github/coinbase/mesh-cli\"\u003e\u003cimg src=\"https://coveralls.io/repos/github/coinbase/mesh-cli/badge.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://goreportcard.com/report/github.com/coinbase/mesh-cli\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/coinbase/mesh-cli\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/coinbase/mesh-cli/blob/master/LICENSE.txt\"\u003e\u003cimg src=\"https://img.shields.io/github/license/coinbase/mesh-cli.svg\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThe `mesh-cli` tool is used by developers to test the correctness of their Mesh API implementations. The CLI also provides the ability to look up block contents and account balances.\n\n## Installation\n\nTo download a binary for the latest release, run:\n```\ncurl -sSfL https://raw.githubusercontent.com/coinbase/mesh-cli/master/scripts/install.sh | sh -s\n```\n\nThe binary will be installed inside the `./bin` directory (relative to the directory where you ran the installation command).\n\n_Downloading binaries from the Github UI will cause permission errors on Mac._\n\n### Installing in a Custom Location\nTo download the binary into a specific directory, run:\n```\ncurl -sSfL https://raw.githubusercontent.com/coinbase/mesh-cli/master/scripts/install.sh | sh -s -- -b \u003crelative directory\u003e\n```\n\n### Run via Docker\nRunning the following command will start a Docker container and present CLI for the Mesh API.\n```\ndocker run -it [image-name] [command]\n```\n\nExample: To validate that the Data API implementation is correct, running the following command will start a Docker container with a data directory at `\u003cworking directory\u003e`.\n```\ndocker run -v \"$(pwd):/data\" -it [image-name] check:data --configuration-file /data/config.json\n```\n\n## Key Sign Tool\nMesh CLI comes with a handy key sign tool for local testing. Please refer to this [README](./cmd/README.md) on how to use it.\n\n## Updates and Releases\n\nWe recommend that you continually update your installation to the latest release as soon as possible.\n\nYou can also view releases and change log information in the [Releases](https://github.com/coinbase/mesh-cli/releases) section of this repository.\n\n## Documentation\n\nYou can find the Mesh API documentation [here](https://docs.cdp.coinbase.com/mesh/docs/welcome/)\n\nFor more information on the mesh-cli tool, read our [The mesh-cli tool](https://docs.cdp.coinbase.com/mesh/docs/mesh-cli/) documentation.\n\nFor more information on how to test your implementation file with the `mesh-cli` tool, read our [How to Test Your Mesh Implementation](https://docs.cdp.coinbase.com/mesh/docs/mesh-test/) documentation.\n\n## Contributing\n\nYou may contribute to the `mesh-cli` project in various ways:\n\n* [Asking Questions](CONTRIBUTING.md/#asking-questions)\n* [Providing Feedback](CONTRIBUTING.md/#providing-feedback)\n* [Reporting Issues](CONTRIBUTING.md/#reporting-issues)\n\nRead our [Contributing](CONTRIBUTING.MD) documentation for more information.\n\n## mesh-cli Tool Development\n\nWhile working on improvements to this repository, we recommend that you use these commands to check your code:\n\n* `make deps` to install dependencies\n* `make test` to run tests\n* `make lint` to lint the source code (included generated code)\n* `make release` to run one last check before opening a PR\n* `make compile version=RELEASE_TAG` to generate binaries\n\nIf you are developing on both the `mesh-cli` and `mesh-sdk-go` repositories, use [go.mod replace](https://golang.org/ref/mod#go-mod-file-replace) to reference local changes:\n```\nreplace \"github.com/coinbase/mesh-sdk-go\" v0.6.8 =\u003e \"\u003cPATH TO LOCAL mesh-sdk-go\u003e\"\n```\n### Release\n* When we release a new mesh-cli version, please update the version number to follow [PR](https://github.com/coinbase/mesh-cli/pull/334) so that `mesh-cli version` command can print the correct value.\n* Create binaries and upload all the binaries in the new release tag (e.g. https://github.com/coinbase/mesh-cli/releases/tag/v0.7.7)\n    * Ensure `$GOPATH/bin` is added to `$PATH`\n    * Run `make compile version=\u003cNew Version\u003e`\n    * All the binaries will be created in the `bin` folder and should have extension as `tar.gz` and new version number\n\n### Helper/Handler\nMany of the packages use a `Helper/Handler` interface pattern to acquire required information or to send events to some client implementation. An example of this is in the `reconciler` package where a `Helper` is used to get the account balance and the `Handler` is called to indicate whether the reconciliation of an account was successful.\n\n### Repo Structure\n```\ncmd\nexamples // examples of different config files\npkg\n  logger // logic to write syncing information to stdout/files\n  processor // Helper/Handler implementations for reconciler, storage, and syncer\n  tester // test orchestrators\n```\n\n### Troubleshooting\n\nWhile running the `check:data` or `check:construction` option, if you get the following error:\n\n```dial tcp 127.0.0.1:8080: socket: too many open files: unable to sync to 1902533: unable to sync to 1902533```\n    \nPlease run the `ulimit -n 10000` command to increase the max concurrent opened file limit.\n\n_Note: MacOS users, if you face  `ulimit: setrlimit failed: invalid argument` error while setting `ulimit`, please run `sudo launchctl limit maxfiles 10000 200000` before setting the `ulimit`._\n\n## Related Projects\n\n* [`mesh-sdk-go`](https://github.com/coinbase/mesh-sdk-go) — The `mesh-sdk-go` SDK provides a collection of packages used for interaction with the Mesh API specification. Much of the SDK code is generated from this, the [`mesh-specifications`](https://github.com/coinbase/mesh-specifications) repository.\n* [`mesh-specifications`](https://github.com/coinbase/mesh-specifications) — The `mesh-specifications` repository generates the SDK code in the [`mesh-sdk-go`](https://github.com/coinbase/mesh-sdk-go) repository.\n\n### Reference Implementations\n\nTo help you with examples, we developed complete Mesh API reference implementations for [Bitcoin](https://github.com/coinbase/mesh-bitcoin) and [Ethereum](https://github.com/coinbase/mesh-ethereum). Developers of Bitcoin-like or Ethereum-like blockchains may find it easier to fork these reference implementations than to write an implementation from scratch.\n\nYou can also find community implementations for a variety of blockchains in the [mesh-ecosystem](https://github.com/coinbase/mesh-ecosystem) repository.\n\n## License\nThis project is available open source under the terms of the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0).\n© 2022 Coinbase","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoinbase%2Fmesh-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoinbase%2Fmesh-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoinbase%2Fmesh-cli/lists"}