{"id":50873748,"url":"https://github.com/weisyn/contract-sdk-go","last_synced_at":"2026-06-15T07:33:16.719Z","repository":{"id":324380988,"uuid":"1097029957","full_name":"weisyn/contract-sdk-go","owner":"weisyn","description":"WES 区块链智能合约开发工具包 - Go 语言版本。提供业务语义优先的合约开发能力，支持 TinyGo WASM 编译，零外部依赖，专为企业级智能合约开发设计。","archived":false,"fork":false,"pushed_at":"2025-12-31T08:28:07.000Z","size":910,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-04T12:12:11.532Z","etag":null,"topics":["blockchain","business-semantics","contract-sdk","developer-tools","eutxo","go","golang","ispc","sdk","smart-contract-development","smart-contracts","tinygo","wasm","wasm-contracts","webassembly","wes","zero-dependency"],"latest_commit_sha":null,"homepage":"https://www.weisyn.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weisyn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-15T12:05:53.000Z","updated_at":"2025-12-31T08:28:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/weisyn/contract-sdk-go","commit_stats":null,"previous_names":["weisyn/contract-sdk-go"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/weisyn/contract-sdk-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisyn%2Fcontract-sdk-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisyn%2Fcontract-sdk-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisyn%2Fcontract-sdk-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisyn%2Fcontract-sdk-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weisyn","download_url":"https://codeload.github.com/weisyn/contract-sdk-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weisyn%2Fcontract-sdk-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34353193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"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":["blockchain","business-semantics","contract-sdk","developer-tools","eutxo","go","golang","ispc","sdk","smart-contract-development","smart-contracts","tinygo","wasm","wasm-contracts","webassembly","wes","zero-dependency"],"created_at":"2026-06-15T07:33:15.816Z","updated_at":"2026-06-15T07:33:16.713Z","avatar_url":"https://github.com/weisyn.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WES Smart Contract SDK for Go\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cpre\u003e\n__          ________ _____  _______     ___   _ \n\\ \\        / /  ____|_   _|/ ____\\ \\   / / \\ | |\n \\ \\  /\\  / /| |__    | | | (___  \\ \\_/ /|  \\| |\n  \\ \\/  \\/ / |  __|   | |  \\___ \\  \\   / | . ` |\n   \\  /\\  /  | |____ _| |_ ____) |  | |  | |\\  |\n    \\/  \\/   |______|_____|_____/   |_|  |_| \\_|\n\u003c/pre\u003e\n\n**WES 区块链智能合约开发工具包 - Go 语言版本**  \n**为智能合约开发者提供业务语义优先的合约开发能力**\n\n[![Go Version](https://img.shields.io/badge/go-1.24+-blue.svg)](https://golang.org)\n[![TinyGo](https://img.shields.io/badge/TinyGo-0.31+-blue.svg)](https://tinygo.org/)\n[![License](https://img.shields.io/badge/license-Apache--2.0-green.svg)](LICENSE)\n[![Go Report Card](https://goreportcard.com/badge/github.com/weisyn/contract-sdk-go)](https://goreportcard.com/report/github.com/weisyn/contract-sdk-go)\n\n[🚀 快速开始](#-快速开始) • [🎨 合约模板](#-合约模板) • [💡 核心能力](#-核心能力) • [🏗️ 架构概览](#-架构概览) • [📚 文档导航](#-文档导航)\n\n\u003c/div\u003e\n\n---\n\n## 🌟 它能帮你做什么？\n\n在传统区块链开发中，开发者需要：\n- ❌ 理解底层协议细节（UTXO、交易构建、签名等）\n- ❌ 手动构建交易（选择输入、创建输出、计算手续费）\n- ❌ 处理复杂的业务逻辑组合（转账、授权、质押等）\n\n**WES 智能合约 SDK 让这一切成为过去**：\n\n- ✅ **业务语义优先** - 提供 `Transfer()`、`Mint()`、`Stake()` 等直观的业务接口\n- ✅ **零外部依赖** - 仅依赖 Go 标准库，轻量级设计\n- ✅ **WASM 优化** - 专为 TinyGo WASM 编译优化，合约体积小、执行快\n- ✅ **企业级能力** - 支持外部系统集成、长事务、复杂业务逻辑\n- ✅ **类型安全** - 完整的类型定义和编译期检查，减少运行时错误\n\n---\n\n## 🚀 快速开始\n\n### 前置要求\n\n- **Go 1.24+** - 用于开发环境编译\n- **TinyGo 0.31+** - 用于编译为 WASM\n\n```bash\n# macOS\nbrew install tinygo\n\n# Linux/其他\n# 见 https://tinygo.org/getting-started/install/\n```\n\n### 安装 SDK\n\n```bash\ngo get github.com/weisyn/contract-sdk-go@v1.0.0\n```\n\n在 `go.mod` 中：\n\n```go\nmodule your-contract\n\ngo 1.24\n\nrequire github.com/weisyn/contract-sdk-go v1.0.0\n```\n\n### 第一个合约\n\n创建 `hello.go`:\n\n```go\npackage main\n\nimport (\n    \"github.com/weisyn/contract-sdk-go/framework\"\n)\n\n//export SayHello\nfunc SayHello() uint32 {\n    // 获取调用者地址\n    caller := framework.GetCaller()\n    \n    // 发出事件\n    message := \"Hello, \" + string(caller)\n    framework.EmitEvent(\"Greeting\", []byte(message))\n    \n    // 返回成功\n    framework.SetReturnData([]byte(message))\n    return framework.SUCCESS\n}\n\nfunc main() {}\n```\n\n### 使用业务语义接口\n\n**推荐方式**：使用 `helpers` 层的业务语义接口：\n\n```go\npackage main\n\nimport (\n    \"github.com/weisyn/contract-sdk-go/helpers/token\"\n    \"github.com/weisyn/contract-sdk-go/framework\"\n)\n\n//export Transfer\nfunc Transfer() uint32 {\n    // 获取参数\n    params := framework.GetContractParams()\n    toStr := params.ParseJSON(\"to\")\n    amount := params.ParseJSONInt(\"amount\")\n    \n    // 解析地址\n    to, err := framework.ParseAddressBase58(toStr)\n    if err != nil {\n        return framework.ERROR_INVALID_PARAMS\n    }\n    \n    // 使用业务语义接口进行转账\n    caller := framework.GetCaller()\n    err = token.Transfer(caller, to, nil, framework.Amount(amount))\n    if err != nil {\n        return framework.ERROR_EXECUTION_FAILED\n    }\n    \n    return framework.SUCCESS\n}\n```\n\n### 编译合约\n\n```bash\ntinygo build -o hello.wasm \\\n  -target=wasi \\\n  -scheduler=none \\\n  -no-debug \\\n  -opt=2 \\\n  hello.go\n```\n\n\u003e 📖 **完整指南**：[开发者指南](./docs/DEVELOPER_GUIDE.md) | [合约模板](./templates/README.md)\n\n---\n\n## 🎨 合约模板\n\n`contract-sdk-go` 内置了大量按业务场景分类的合约模板，帮助你在统一的业务语义与最佳实践下快速落地：\n\n- **学习模板 (`templates/learning/`)**\n  - `hello-world`：最小可运行合约，熟悉调用入口、返回码与事件\n  - `simple-token`：基础可转账代币，实现 `Transfer` 等常见操作\n  - `basic-nft`：简单 NFT 发行与转移\n- **标准业务模板 (`templates/standard/`)**\n  - `token/`：多种代币形态（可分/不可分、白名单、权限控制等）\n  - `staking/`：质押、解押、收益分配等 Staking 场景\n  - `governance/`：提案、投票、治理流程模板\n  - `market/`：托管、分阶段释放（vesting）、撮合等市场场景\n  - `nft/`：多种 NFT 发行、拍卖、交易场景\n  - `rwa/`：实物资产上链与代币化模板\n  - `defi/`：AMM、借贷、流动性池等 DeFi 场景\n\n**如何使用模板（通用步骤）**：\n\n1. 进入目标模板目录，例如：\n\n   ```bash\n   cd templates/learning/simple-token\n   ```\n\n2. 阅读当前目录下的 `README.md`，根据说明完成依赖安装与环境准备  \n3. 根据模板提供的 `build.sh` 或文档使用 TinyGo 编译为 WASM  \n4. 在 WES Workbench（如 `contract-workbench` 或 `model-workbench`）中导入生成的 WASM 与 `metadata.json` 完成部署与测试\n\n\u003e 📖 **模板总览与场景说明**：详见 [模板中心](./templates/README.md)\n\n---\n\n## 💡 核心能力\n\n### 1. 🎯 业务语义接口\n\nSDK 提供丰富的业务语义接口，让开发者专注于业务逻辑：\n\n| 模块 | 功能 | 示例 |\n|------|------|------|\n| **Token** | 转账、铸造、销毁、授权、冻结、空投 | `token.Transfer(from, to, tokenID, amount)` |\n| **Staking** | 质押、解质押、委托、取消委托 | `staking.Stake(staker, validator, tokenID, amount)` |\n| **Governance** | 提案、投票、投票统计 | `governance.Vote(voter, proposalID, support)` |\n| **Market** | 托管、分阶段释放 | `market.Escrow(buyer, seller, tokenID, amount)` |\n| **RWA** | 资产验证、估值、代币化 | `rwa.ValidateAndTokenize(...)` |\n| **External** | 外部 API 调用、数据库查询 | `external.CallAPI(url, method, params)` |\n\n### 2. 🔮 ISPC 创新：受控外部交互\n\n**传统区块链**：需要中心化的预言机服务获取外部数据  \n**WES ISPC**：合约可以直接调用外部 API，无需传统预言机\n\n```go\nimport \"github.com/weisyn/contract-sdk-go/helpers/external\"\n\n// 直接调用外部 API（受控机制，替代传统预言机）\ndata, err := external.CallAPI(\n    \"https://api.example.com/price\",\n    \"GET\",\n    map[string]interface{}{\"symbol\": \"BTC\"},\n    apiSignature,    // API 数字签名（佐证）\n    responseHash,    // 响应数据哈希（佐证）\n)\n// ✅ 单次调用，多点验证，自动生成 ZK 证明\n```\n\n### 3. 🏢 企业级能力\n\n- **原子性长事务**：跨系统业务流程在一个原子边界内执行\n- **外部系统集成**：直接调用外部 API、查询数据库\n- **复杂业务逻辑**：支持完整的业务执行流程\n\n---\n\n## 🏗️ 架构概览\n\n\u003e 📖 **完整架构文档**：详见 [架构设计文档](./docs/SDK_ARCHITECTURE.md) | [架构规划文档](./docs/ARCHITECTURE_PLAN.md)\n\n### 在 WES 7 层架构中的位置\n\n`contract-sdk-go` 位于 WES 系统的**应用层 \u0026 开发者生态**中的 **SDK 工具链**，用于开发运行在 **ISPC 执行层**的智能合约：\n\n```mermaid\ngraph TB\n    subgraph DEV_ECOSYSTEM[\"🎨 应用层 \u0026 开发者生态\"]\n        direction TB\n        subgraph SDK_LAYER[\"SDK 工具链\"]\n            direction LR\n            CLIENT_SDK[\"Client SDK\u003cbr/\u003eGo/JS/Python/Java\u003cbr/\u003e📱 DApp·钱包·浏览器\u003cbr/\u003e链外应用开发\"]\n            CONTRACT_SDK[\"Contract SDK (WASM)\u003cbr/\u003eGo/TinyGo\u003cbr/\u003e📜 智能合约开发\u003cbr/\u003e⭐ contract-sdk-go\u003cbr/\u003e链上合约开发\"]\n            AI_SDK[\"AI SDK (ONNX)\"]\n        end\n        subgraph END_USER_APPS[\"终端应用\"]\n            direction LR\n            WALLET_APP[\"Wallet\u003cbr/\u003e钱包应用\"]\n            EXPLORER[\"Explorer\u003cbr/\u003e区块浏览器\"]\n            DAPP[\"DApp\u003cbr/\u003e去中心化应用\"]\n        end\n    end\n    \n    subgraph API_GATEWAY[\"🌐 API 网关层\"]\n        direction LR\n        JSONRPC[\"JSON-RPC 2.0\u003cbr/\u003e:28680\"]\n        HTTP[\"HTTP REST\u003cbr/\u003e/api/v1/*\"]\n    end\n    \n    subgraph ISPC_LAYER[\"🔮 ISPC 执行层\"]\n        direction LR\n        WASM_ENGINE[\"WASM 引擎\u003cbr/\u003e合约执行环境\"]\n        HOSTABI[\"HostABI\u003cbr/\u003e17个原语\"]\n    end\n    \n    subgraph BIZ_LAYER[\"💼 业务服务层\"]\n        APP_SVC[\"App Service\u003cbr/\u003e应用编排·生命周期\"]\n    end\n    \n    WALLET_APP --\u003e CLIENT_SDK\n    EXPLORER --\u003e CLIENT_SDK\n    DAPP --\u003e CLIENT_SDK\n    \n    CLIENT_SDK --\u003e JSONRPC\n    CLIENT_SDK --\u003e HTTP\n    \n    JSONRPC --\u003e APP_SVC\n    HTTP --\u003e APP_SVC\n    \n    CONTRACT_SDK -.编译为WASM.-\u003e WASM_ENGINE\n    WASM_ENGINE --\u003e HOSTABI\n    HOSTABI --\u003e APP_SVC\n    \n    style CONTRACT_SDK fill:#81C784,color:#fff,stroke:#4CAF50,stroke-width:3px\n    style ISPC_LAYER fill:#9C27B0,color:#fff\n    style API_GATEWAY fill:#64B5F6,color:#fff\n    style BIZ_LAYER fill:#FFB74D,color:#333\n```\n\n\u003e 📖 **完整 WES 架构**：详见 [WES 系统架构文档](https://github.com/weisyn/go-weisyn/blob/main/docs/system/architecture/1-STRUCTURE_VIEW.md#-系统分层架构)  \n\u003e 📱 **Client SDK**：用于链外应用开发，详见 [Client SDK (Go)](https://github.com/weisyn/client-sdk-go)\n\n### SDK 内部分层架构\n\nSDK 采用分层架构，**合约开发者只需使用业务语义层**：\n\n```mermaid\ngraph TB\n    subgraph CONTRACT_DEV[\"👨‍💻 合约开发者\"]\n        direction LR\n        CONTRACT_CODE[\"合约代码\u003cbr/\u003e使用 helpers API\"]\n    end\n    \n    subgraph HELPERS_LAYER[\"业务语义层 (helpers/)\"]\n        direction LR\n        TOKEN[\"Token\u003cbr/\u003e转账·铸造·销毁\"]\n        STAKING[\"Staking\u003cbr/\u003e质押·委托\"]\n        GOVERNANCE[\"Governance\u003cbr/\u003e提案·投票\"]\n        MARKET[\"Market\u003cbr/\u003e托管·释放\"]\n        RWA[\"RWA\u003cbr/\u003e资产代币化\"]\n        EXTERNAL[\"External\u003cbr/\u003e外部API调用\"]\n    end\n    \n    subgraph FRAMEWORK_LAYER[\"框架层 (framework/)\"]\n        direction TB\n        HOSTABI_WRAP[\"HostABI 封装\u003cbr/\u003e17个原语\"]\n        TX_BUILDER[\"交易构建器\u003cbr/\u003eTransactionBuilder\"]\n        STORAGE[\"状态管理\u003cbr/\u003eStorage\"]\n        CONTEXT[\"上下文\u003cbr/\u003eContext\"]\n    end\n    \n    subgraph WES_PROTOCOL[\"WES 协议层\"]\n        direction TB\n        EUTXO[\"EUTXO 交易模型\"]\n        ISPC[\"可验证计算 (ISPC)\"]\n        URES[\"统一资源管理 (URES)\"]\n    end\n    \n    CONTRACT_DEV --\u003e HELPERS_LAYER\n    HELPERS_LAYER --\u003e FRAMEWORK_LAYER\n    FRAMEWORK_LAYER --\u003e WES_PROTOCOL\n    \n    style CONTRACT_DEV fill:#E3F2FD\n    style HELPERS_LAYER fill:#4CAF50,color:#fff\n    style FRAMEWORK_LAYER fill:#2196F3,color:#fff\n    style WES_PROTOCOL fill:#9C27B0,color:#fff\n```\n\n**关键原则**：\n- ✅ **合约开发者**：只使用 `helpers` 层的业务语义接口\n- ✅ **SDK 职责**：自动处理底层协议细节（交易构建、状态管理等）\n- ❌ **不需要了解**：底层协议实现细节\n\n---\n\n## 📖 文档导航\n\n### 🎯 按角色导航\n\n**👨‍💻 合约开发者**\n\n- [快速开始](#-快速开始) → [开发者指南](./docs/DEVELOPER_GUIDE.md) → [合约模板](./templates/README.md)\n\n**🏗️ 架构师/贡献者**\n\n- [架构概览](#-架构概览) → [文档中心](./docs/README.md) → [架构设计文档](./docs/SDK_ARCHITECTURE.md)\n\n**📚 深入理解**\n\n- [API 参考](./docs/API_REFERENCE.md) → [业务场景实现指南](./docs/BUSINESS_SCENARIOS.md)\n\n### 📘 核心文档\n\n| 文档 | 说明 | 受众 |\n|------|------|------|\n| ⭐ **[主 README](./README.md)** | SDK 总览和快速开始 | 所有用户 |\n| 📖 **[文档中心](./docs/README.md)** | 完整文档索引和导航 | 所有用户 |\n| 🚀 **[开发者指南](./docs/DEVELOPER_GUIDE.md)** | 如何使用 SDK 开发合约 | 合约开发者 |\n| 📚 **[API 参考](./docs/API_REFERENCE.md)** | SDK 接口详细说明 | 合约开发者 |\n| 🎯 **[业务场景实现指南](./docs/BUSINESS_SCENARIOS.md)** | 如何实现业务场景 | 合约开发者 |\n| 🏗️ **[架构设计文档](./docs/SDK_ARCHITECTURE.md)** | SDK 架构设计讨论 | 架构师/贡献者 |\n\n### 🔗 模块文档\n\n- **[Helpers 层文档](./helpers/README.md)** - 业务语义层详细说明\n- **[Framework 层文档](./framework/README.md)** - 框架层详细说明\n- **[合约模板](./templates/README.md)** - SDK 提供的合约开发模板\n\n\u003e 📖 **完整文档导航**：[文档中心](./docs/README.md)\n\n---\n\n## 🆚 与其他 SDK 的对比\n\n| 特性 | 传统 SDK | WES SDK |\n|------|---------|---------|\n| **API 设计** | 底层原语（TxAddInput 等） | 业务语义（Transfer、Mint 等） |\n| **外部集成** | 需要预言机（中心化瓶颈） | 原生支持（受控机制） |\n| **复杂业务** | 难以实现长事务 | 支持原子性长事务 |\n| **类型安全** | 部分支持 | 完整类型系统 |\n| **学习曲线** | 需要了解底层协议 | 直观的业务接口 |\n\n---\n\n## 🤝 贡献指南\n\n我们欢迎社区贡献！查看 [贡献指南](../CONTRIBUTING.md) 了解详情。\n\n```bash\n# 设置开发环境\ngo mod tidy\ngo test ./...\n\n# 提交变更\ngit commit -S -m \"feat: your contribution\"\ngit push origin your-branch\n```\n\n---\n\n## 📄 许可证\n\n本项目基于 MIT 许可证开源 - 详见 [LICENSE](../LICENSE) 文件。\n\n---\n\n## 🔗 相关链接\n\n### 平台文档（高层次视图）\n\n- [智能合约平台文档](../../docs/system/platforms/contracts/README.md) - 智能合约平台的综合文档\n  - [市场价值](../../docs/system/platforms/contracts/market-value.md) - 市场价值和商业潜力\n  - [产品设计](../../docs/system/platforms/contracts/product-design.md) - 产品特性和用户体验（包含 SDK 设计）\n  - [技术架构](../../docs/system/platforms/contracts/technical-architecture.md) - 技术实现架构\n  - [应用场景](../../docs/system/platforms/contracts/use-cases.md) - 实际应用案例（包含 SDK 示例）\n  - [快速开始](../../docs/system/platforms/contracts/getting-started.md) - 开发者快速入门\n\n### 技术实现文档\n\n- [ISPC 组件文档](../../docs/components/core/ispc/README.md) - ISPC 核心范式和实现细节\n- [WASM 引擎文档](../../docs/components/core/ispc/capabilities/unified-engines.md) - WASM 执行引擎架构\n- [HostABI 文档](../../docs/components/core/ispc/capabilities/hostabi-primitives.md) - HostABI 17个原语设计\n\n### 开发实践文档\n\n- [合约开发平台](../../contracts/README.md) - 模板库、工具链、系统合约\n- [合约教程](../../docs/tutorials/contracts/CONCEPTS.md) - 合约开发教程\n\n### 其他链接\n\n- [WES 主项目](https://github.com/weisyn/weisyn) - WES 区块链主仓库\n- [WES 文档中心](../../docs/) - 完整技术文档\n- [WES 系统架构](../../docs/system/architecture/) - 系统架构详解\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### 让智能合约开发回归业务本质\n\n[立即开始](#-快速开始) • [查看文档](./docs/README.md) • [使用模板](./templates/README.md)\n\nMade with ❤️ by the WES Team\n\n\u003c/div\u003e\n\n---\n\n**最后更新**: 2025-11-23\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweisyn%2Fcontract-sdk-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweisyn%2Fcontract-sdk-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweisyn%2Fcontract-sdk-go/lists"}