{"id":23353868,"url":"https://github.com/epicchainlabs/cpm","last_synced_at":"2025-04-07T19:20:27.698Z","repository":{"id":248966116,"uuid":"829410654","full_name":"epicchainlabs/cpm","owner":"epicchainlabs","description":"EpicChain CPM (Contract and Package Manager) is a powerful command-line tool designed for developers to streamline the process of developing, testing, and interacting with smart contracts on the EpicChain blockchain","archived":false,"fork":false,"pushed_at":"2024-12-09T05:11:20.000Z","size":1775,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-13T20:49:36.366Z","etag":null,"topics":["blockchain-development","blockchain-integration","contract-manager","contract-testing","devtools","epicchain-cli","epicchain-cpm","epicchain-tools","package-manager","smart-contracts"],"latest_commit_sha":null,"homepage":"","language":"Go","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/epicchainlabs.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":"2024-07-16T11:25:34.000Z","updated_at":"2024-12-09T05:11:24.000Z","dependencies_parsed_at":"2024-07-18T06:19:40.174Z","dependency_job_id":"ca59ce22-7fae-434c-a41f-8464d372718b","html_url":"https://github.com/epicchainlabs/cpm","commit_stats":null,"previous_names":["epicchainlabs/cpm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fcpm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fcpm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fcpm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epicchainlabs%2Fcpm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epicchainlabs","download_url":"https://codeload.github.com/epicchainlabs/cpm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713262,"owners_count":20983683,"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":["blockchain-development","blockchain-integration","contract-manager","contract-testing","devtools","epicchain-cli","epicchain-cpm","epicchain-tools","package-manager","smart-contracts"],"created_at":"2024-12-21T09:16:50.529Z","updated_at":"2025-04-07T19:20:27.648Z","avatar_url":"https://github.com/epicchainlabs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **CPM: Command-Line Tool for Smart Contract Development on EpicChain**  \n\n**CPM** (Contract Project Manager) is a sophisticated and developer-friendly command-line utility designed for the **EpicChain** blockchain ecosystem. It enables seamless interaction with smart contracts, offering tools for development, testing, and SDK generation. Whether you're working with on-chain applications or off-chain integrations, CPM provides a robust framework to streamline your workflow, enhance productivity, and ensure a more efficient development process.  \n\n---\n\n## **What is CPM?**  \n\nCPM is a multipurpose tool that simplifies complex smart contract operations for developers, reducing barriers to entry and enabling rapid prototyping and deployment. The tool integrates powerful features for interacting with smart contracts, including downloading and testing contracts from live networks and generating SDKs for a variety of programming languages.  \n\nThis utility empowers blockchain developers to:  \n- Create **realistic test environments** by replicating the state of live networks within local instances.  \n- Automatically generate Software Development Kits (SDKs) for diverse programming languages, helping developers integrate smart contracts with external systems easily.  \n- Maintain clean, efficient, and manageable development workflows.  \n\n---\n\n## **Features of CPM**  \n\n### **1. Realistic Test Environment**  \nCPM allows developers to download smart contracts and their state from networks such as **MainNet** to the **EpicChain-Express** local environment. This replicates real-world conditions, ensuring accurate testing and debugging of contracts.  \n\n### **2. Automated SDK Generation**  \nCPM simplifies the process of creating SDKs by leveraging contract manifests. Developers can generate SDKs for both **on-chain** and **off-chain** interactions. Supported programming languages include:  \n- **C#**: Ideal for enterprise-level blockchain integrations.  \n- **Golang**: Perfect for performance-critical blockchain applications.  \n- **Java**: Widely used for building decentralized applications (dApps).  \n- **Python**: Great for scripting and analytics-based workflows.  \n- **TypeScript**: Enables robust web-based blockchain interfaces.  \n\n### **3. Developer-Friendly CLI Interface**  \nThe CLI interface is straightforward yet powerful. It provides extensive options for managing smart contracts, testing configurations, and automating SDK generation—all with simple commands.  \n\n### **4. Cross-Platform Compatibility**  \nCPM supports macOS, Windows, and Linux environments, ensuring accessibility across diverse developer ecosystems.  \n\n### **5. Organized Output for SDKs**  \nAll generated SDKs are stored in a structured directory format under `/cpm_out/`. This ensures easy navigation and integration into your projects.  \n\n---\n\n## **Installation Instructions**  \n\nInstalling CPM is straightforward. Follow the steps below based on your operating system:  \n\n### **Option 1: Download the Binary**  \n1. Visit the [Releases Page](#).  \n2. Download the latest binary for your operating system.  \n3. Place the binary in a directory that is included in your system’s PATH variable.  \n\n### **Option 2: Install via Package Managers**  \n\n#### **macOS (Homebrew)**  \nInstall CPM using Homebrew, the popular macOS package manager:  \n```bash\nbrew install epicchainlabs/tap/cpm\n```  \n\n#### **Windows (Chocolatey)**  \nInstall CPM using Chocolatey, a package manager for Windows:  \n```bash\nchoco install cpm\n```  \n\n---\n\n## **Getting Started**  \n\nOnce installed, CPM is ready to use. Begin by exploring the CLI options using the `-h` (help) flag:  \n```bash\ncpm -h\n```  \n\nThe core configuration of your project is managed through a `cpm.yaml` file. This file defines the smart contracts and network configurations you intend to work with. Learn more about configuring your `cpm.yaml` file [here](docs/config.md).  \n\n---\n\n## **Usage Examples**  \n\n### **1. Download All Contracts Listed in `cpm.yaml`**  \nDownload all smart contracts specified in your configuration file into your local **EpicChain-Express** environment.  \n```bash\ncpm --log-level DEBUG run\n```  \n\n### **2. Download a Single Contract or Manifest**  \nRetrieve a specific smart contract or its manifest from a target network:  \n```bash\n# Download a specific contract\ncpm download contract -c 0x4380f2c1de98bb267d3ea821897ec571a04fe3e0 -n mainnet\n\n# Download only the manifest of the contract\ncpm download manifest -c 0x4380f2c1de98bb267d3ea821897ec571a04fe3e0 -N https://mainnet1-seed.epic-chain.org:10111\n```  \n\n### **3. Generate SDK from Local Manifest**  \nGenerate on-chain or off-chain SDKs using the manifest of a smart contract:  \n```bash\n# Generate Python SDK for off-chain usage\ncpm generate python -m samplecontract.manifest.json -t offchain\n\n# Generate Golang SDK for on-chain usage\ncpm generate go -m samplecontract.manifest.json -t onchain\n```  \nAll SDKs will be saved in the `/cpm_out/` directory under folders specific to the SDK type and programming language. Examples:  \n- **Off-chain Python SDK**: `/cpm_out/offchain/python/\u003ccontract\u003e`  \n- **On-chain Golang SDK**: `/cpm_out/onchain/golang/\u003ccontract\u003e`  \n\n---\n\n## **Configuration File (`cpm.yaml`)**  \n\nThe `cpm.yaml` file is your project’s blueprint, defining which contracts to download, their target networks, and the associated settings. Learn how to create and manage this file in the [documentation](docs/config.md).  \n\n---\n\n## **Advanced Usage**  \n\nFor more advanced options, including setting up custom networks, integrating with existing toolchains, and optimizing workflows, refer to the [Comprehensive User Guide](docs/index.md).  \n\n---\n\n## **Contributions**  \n\nWe welcome contributions from the community to enhance CPM further. If you'd like to contribute, please review our [Contributing Guidelines](CONTRIBUTING.md) and join us in building the future of blockchain development.  \n\n---\n\n## **License**  \n\nCPM is licensed under the [MIT License](LICENSE), ensuring its openness and accessibility for developers worldwide.  \n\n---\n\n## **Support and Contact**  \n\nFor support, feedback, or feature requests, please reach out via:  \n- **Email**: support@epic-chain.org  \n- **Community Forum**: [EpicChain Developer Community](#)  \n\nHappy coding, and welcome to the EpicChain ecosystem! 🚀  ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicchainlabs%2Fcpm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepicchainlabs%2Fcpm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepicchainlabs%2Fcpm/lists"}