Show / Hide Table of Contents
RPC 调用方法
RpcClient
封装了所有 RpcServer
提供的接口,可以通过该模块中提供的标准方法在代码中发送 RPC 请求,只需要传入相应的参数,SDK 就会根据参数构造相应的 JSON-RPC 请求,进而获得节点返回的数据。
初始化
发送 RPC 请求需要先初始化 RpcClient
类型,可以根据自己的需要选择一个 Neo 节点的 RPC Server 端口,这里举例说明:
测试网节点:
本地节点(本地节点是本地维护的 Neo-CLI,可以根据配置连接主网,测试网或者私链):
一个应用程序中一般只需要初始化一个 RpcClient
实例,而不需要在每个方法中初始化。
区块链数据
获取最新区块哈希
获取区块链中高度最大的区块的哈希:
获取区块完整信息
可以通过区块散列值或者区块索引获取具体的区块信息:
或者
也可以通过区块散列值或者区块索引获取序列化后的区块信息:
获取当前区块数量
区块索引(Index) = 区块高度(Height) = 区块数量(Count) - 1
根据区块索引获取区块的散列:
获取区块头信息
可以通过区块散列值或者区块索引获取具体的区块头信息:
或者
也可以通过区块散列值或者区块索引获取序列化后的区块头信息:
或者
获取合约信息
通过合约哈希获取合约信息:
获取内存中的交易列表
只获取内存中已确认的交易散列列表:
同时获取内存中已确认和未确认的交易散列列表:
获取交易信息
通过交易哈希来获取对应的交易信息:
也可以通过交易哈希来获取对应的序列化后的交易:
计算交易网络费
计算指定交易的网络费用 `c# long networkFee = await rpcClient.CalculateNetworkFeeAsync(transaction).ConfigureAwait(false);
`
获取合约存储区的值
通过合约脚本散列和存储的 键
(需要转化为 hex string)获取对应存储的值:
获取指定交易的高度
通过交易哈希获取指定交易所在的区块高度:
获取下一轮共识节点的信息
获取网络中下一轮共识节点的信息及投票情况:
获取当前委员会成员
获取网络中当前委员会成员公钥列表
节点
获取节点连接数
获取连接到该节点的节点数量:
获取已连接/未连接的节点
获得该节点当前已连接/未连接的节点列表,包括 IP 地址和端口:
获取节点的版本信息
获取接收 RPC 请求的节点的版本信息:
广播交易
发送并广播序列化后的交易:
或者将交易对象tx在网络中进行广播:
广播区块
发送并广播序列化后的区块:
智能合约
调用智能合约的特定方法
通过指定的智能合约脚本散列、方法名和参数在虚拟机中运行后返回结果:
调用指定脚本
通过在虚拟机中运行指定脚本后返回结果:
获取未领取的Gas
获取指定地址未领取的Gas数量:
工具
获取插件信息
显示节点已加载的插件列表:
验证地址
验证指定地址是否是正确的 Neo 地址:
节点本地钱包
节点本地钱包接口包含可以访问节点本地钱包文件的功能,使用该部分的方法之前需要先通过 openwallet
方法打开钱包。
节点的配置文件默认禁用此方法,因为有很高的安全风险。
打开钱包
打开节点所在机器中的钱包文件:
关闭钱包
关闭钱包将清除内存中的钱包信息:
导出私钥
导出指定地址的私钥:
余额查询
根据指定的资产哈希,返回钱包中对应资产的余额信息。该方法适用于原生合约资产及符合 NEP-17 标准的合约资产:
创建账号
在打开的钱包文件中创建一个新的账号,并返回该账号的地址:
获取可提取的 GAS 数量
显示钱包中可提取的 GAS 数量:
导入私钥
导入私钥到钱包:
列出钱包账号
列出当前钱包内的所有地址:
从指定地址转账
从指定地址,向指定地址转账:
返回JSON交易详情说明交易发送成功,否则交易发送失败。 如果签名不完整会返回待签名的交易。 如果余额不足会返回错误信息。
批量转账
批量转账命令,并且可以指定发送地址:
返回JSON交易详情说明交易发送成功,否则交易发送失败。 如果签名不完整会返回待签名的交易。 如果余额不足会返回错误信息。
向指定地址转账
向指定地址转账:
返回JSON交易详情说明交易发送成功,否则交易发送失败。 如果签名不完整会返回待签名的交易。 如果余额不足会返回错误信息。
插件
查询交易日志
根据指定的交易 ID 获取合约日志: 需要节点安装 ApplicationLogs 插件才可以调用。
或者根据指定的交易ID和触发器类型获取合约日志:
查询 NEP-17 资产余额
返回指定地址内的所有 NEP-17 资产余额: 需要节点安装 TokensTracker 插件才可以调用。
查询交易记录
返回指定地址内的所有 NEP-17 交易记录: 需要节点安装 TokensTracker 插件才可以调用。 如果设置起始和结束时间戳,则返回时间戳范围内的交易信息。 如果不设置此参数,则返回近七天内的交易信息。