跳到主要内容

代码示例

可运行的示例,涵盖大多数集成所需的工作流,提供命令行和Python两种形式。

目标接口

任务接口凭据
节点状态、对等节点节点 /v2/owner基础,自动创建机密
区块、区块头、内核(kernel)、内存池(mempool)节点/v2/foreign
广播原始交易Node /v2/foreign
涉及密钥或余额的任何操作钱包 Owner API /v3/ownerECDH 握手与钱包令牌
接收转账钱包 Foreign API,或 epic-wallet listen

节点的JSON-RPC方法分布在两个路径下:/v2/owner用于管理,所有链读取操作在/v2/foreign上。参见节点API

前提条件

curljq

sudo apt install curl jq # Debian 和 Ubuntu
winget install jqlang.jq # Windows,其中 curl 已预装

示例约定

  • 从仓库的examples目录运行命令,Python模块位于该目录下。 import each other from.
  • 节点端口为3413,钱包Owner API端口为3420,钱包Foreign API端口为3415。每个客户端均支持NODE_URLEPIC_OWNER_URLEPIC_FOREIGN_URL,可将其指向其他地址。
  • 金额为整数,以freeman为单位计数。1 EPIC等于100,000,000
  • 机密从对应文件中读取,钱包密码从EPIC_WALLET_PASSWORD读取。

响应信封

每个Epic JSON-RPC方法均返回HTTP 200及JSON-RPC result,该结果内部包含第二层信封。操作成功时携带Ok

{"id": 1, "jsonrpc": "2.0", "result": {"Ok": {"...": "the actual data"}}}

操作失败时在相同位置携带Err

{"id": 1, "jsonrpc": "2.0", "result": {"Err": {"NotEnoughFunds": {"available": 0, "needed": 100000000}}}}

编写一个解包辅助函数并在所有地方使用。连接与读取中钱包客户端的_unwrapErr时抛出异常,在Ok时返回值,该客户端中的每个调用均通过它执行。

信封的逐字段说明见API概述

参考客户端位置

钱包仓库附带一个执行相同握手的Python客户端:doc/samples/python/secure_api_example.py

方法签名定义在api/src/owner_rpc_s.rs中,几乎每个方法的文档注释中都包含完整的JSON请求和响应示例。