WeCross Java SDK API¶
SDK API分为两大类型,一种是对跨链路由RPC接口调用的封装,一种是资源接口。
API列表¶
- RPC封装接口
RemoteCall<StubResponse> supportedStubs();
RemoteCall<AccountResponse> listAccount();
RemoteCall<ResourceResponse> listResources(Boolean ignoreRemote);
RemoteCall<ResourceDetailResponse> detail(String path);
RemoteCall<TransactionResponse> call(String path, String method, String... args);
RemoteCall<TransactionResponse> sendTransaction(String path, String method, String... args);
RemoteCall<TransactionResponse> invoke(String path, String method, String... args);
RemoteCall<TransactionResponse> callXA(
String transactionID, String path, String method, String... args);
RemoteCall<TransactionResponse> sendXATransaction(
String transactionID, String path, String method, String... args);
RemoteCall<XAResponse> startXATransaction(String transactionID, String[] paths);
RemoteCall<XAResponse> commitXATransaction(String transactionID, String[] paths);
RemoteCall<XAResponse> rollbackXATransaction(String transactionID, String[] paths);
RemoteCall<XATransactionResponse> getXATransaction(String transactionID, String[] paths);
RemoteCall<CommandResponse> customCommand(String command, String path, Object... args);
RemoteCall<XATransactionListResponse> listXATransactions(int size);
RemoteCall<UAResponse> register(String name, String password) throws WeCrossSDKException;
RemoteCall<UAResponse> login(String name, String password);
RemoteCall<UAResponse> logout();
RemoteCall<UAResponse> addChainAccount(String type, ChainAccount chainAccount);
RemoteCall<UAResponse> setDefaultAccount(String type, ChainAccount chainAccount);
RemoteCall<UAResponse> setDefaultAccount(String type, Integer keyID);
String getCurrentTransactionID();
- 资源接口
Resource ResourceFactory.build(WeCrossRPC weCrossRPC, String path, String account)
boolean isActive();
ResourceDetail detail();
String[] call(String method);
String[] call(String method, String... args);
String[] sendTransaction(String method);
String[] sendTransaction(String method, String... args);
RPC封装接口解析¶
supportedStubs¶
显示router当前支持的插件列表。
参数¶
- 无
返回值¶
StubResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Stubs
- 支持的插件列表
java示例¶
// 初始化RPC实例
WeCrossRPCService weCrossRPCService = new WeCrossRPCService();
WeCrossRPC weCrossRPC = WeCrossRPCFactory.build(weCrossRPCService);
// 调用RPC接口,目前只支持同步调用
StubResponse response = weCrossRPC.supportedStubs().send();
注 - 之后的java示例,会省去初始化WeCrossRPC的步骤。
listAccount¶
查看当前全局账号的详细信息。
参数¶
- 无
返回值¶
AccountResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:UniversalAccount
- 账号详细信息
java示例¶
AccountResponse response = weCrossRPC.listAccounts().send();
listResources¶
显示router配置的跨链资源。
参数¶
ignoreRemote
:Boolean
- 是否忽略远程资源
返回值¶
ResourceResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Resources
- 配置的资源列表
java示例¶
ResourceResponse response = weCrossRPC.listResources(true).send();
detail¶
获取资源详情。
参数¶
path
:String
- 跨链资源标识
返回值¶
ResourceDetailResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:ResourceDetail
- 资源详情
java示例¶
ResourceDetailResponse response = weCrossRPC.detail("payment.bcos.HelloWeCross").send();
call(无参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
path
:String
- 跨链资源标识method
:String
- 调用的方法
返回值¶
TransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Receipt
- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.call(
"payment.bcos.HelloWeCross","get")
.send();
call(带参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
path
:String
- 跨链资源标识method
:String
- 调用的方法args
:String...
- 可变参数列表
返回值¶
TransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Receipt
- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.call(
"payment.bcos.HelloWeCross","get","key")
.send();
sendTransaction(无参数)¶
调用智能合约,会改变链状态,发交易。
参数¶
path
:String
- 跨链资源标识method
:String
- 调用的方法
返回值¶
TransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Receipt
- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.sendTransaction(
"payment.bcos.HelloWeCross","set")
.send();
sendTransaction(带参数)¶
invoke(无参数)¶
调用智能合约,会改变链状态,发交易;在非事务状态下,与sendTransaction接口一致;在事务状态下,与sendXATransaction接口一致。
参数¶
path
:String
- 跨链资源标识method
:String
- 调用的方法
返回值¶
TransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Receipt
- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.invoke(
"payment.bcos.HelloWeCross","set")
.send();
sendTransaction(带参数)¶
调用智能合约,会改变链状态,发交易。在非事务状态下,与sendTransaction接口一致;在事务状态下,与sendXATransaction接口一致。
参数¶
path
:String
- 跨链资源标识method
:String
- 调用的方法args
:String...
- 可变参数列表
返回值¶
TransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Receipt
- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.invoke(
"payment.bcos.HelloWeCross","set","value")
.send();
callXA¶
获取事务中的状态数据,不发交易
参数¶
transactionID
:String
- 事务IDpath
:String
- 跨链资源标识method
:String
- 调用的方法args
:String...
- 可变参数列表
返回值¶
TransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Receipt
- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.callXA(
"payment.bcos.evidence","queryEvidence","key1")
.send();
sendXATransaction¶
执行事务,发交易
参数¶
transactionID
:String
- 事务IDpath
:String
- 跨链资源标识method
:String
- 调用的方法args
:String...
- 可变参数列表
返回值¶
TransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:Receipt
- 调用结果
java示例¶
TransactionResponse transactionResponse =
weCrossRPC
.sendXATransaction(
"0001","payment.bcos.evidence","newEvidence","key1","evidence1")
.send();
startXATransaction¶
开始事务,锁定事务相关资源,发交易
参数¶
transactionID
:String
- 事务IDpaths
:String[]
- 参与该事务的链路径列表
返回值¶
XAResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:int
- 调用结果
java示例¶
XAResponse xaResponse =
weCrossRPC
.startXATransaction(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
commitXATransaction¶
提交事务,释放事务相关资源,发交易
参数¶
transactionID
:String
- 事务IDpaths
:String[]
- 参与该事务的链路径列表
返回值¶
XAResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:int
- 调用结果
java示例¶
XAResponse xaResponse =
weCrossRPC
.commitTransaction(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
rollbackXATransaction¶
回滚事务,释放事务相关资源,发交易
参数¶
transactionID
:String
- 事务IDpaths
:String[]
- 参与该事务的链路径列表
返回值¶
XAResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:int
- 调用结果
java示例¶
XAResponse xaResponse =
weCrossRPC
.rollbackTransaction(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
getXATransaction¶
获取事务详情,不发交易
参数¶
transactionID
:String
- 事务IDpaths
:String[]
- 参与该事务的链路径列表
返回值¶
XATransactionResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:String
- 事务信息
java示例¶
XATransactionResponse xaTransactionResponse =
weCrossRPC
.getTransactionInfo(
"0001", new String[]{"payment.bcos", "payment.fabric"},)
.send();
listXATransactions¶
获取事务列表,不发交易
参数¶
size
:int
- 获取事务个数
返回值¶
XATransactionListResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:String[]
- 事务信息列表
java示例¶
XATransactionListResponse xaTransactionListResponse =
weCrossRPC
.getTransactionIDs(
"payment.bcos.evidence", "bcos_user1", 0)
.send();
getCurrentTransactionID¶
获取当前SDK正处的事务ID,不发交易
参数¶
- 无
返回值¶
String
- 当前SDK正处的事务ID
java示例¶
String transactionID = weCrossRPC.getCurrentTransactionID();
customCommand¶
自定义命令
参数¶
command
:String
- 命令名称path
:String
- 跨链资源标识args
:Object...
- 可变参数
返回值¶
CommandResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:String
- 调用结果
java示例¶
CommandResponse commandResponse =
weCrossRPC
.customCommand(
"deploy", "payment.bcos.evidence", "Evidence")
.send();
register¶
注册一个UniversalAccount账号
参数¶
name
:String
- 账号名password
:String
- 账号密码
返回值¶
UAResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:UAReceipt
- 注册账号信息
java示例¶
UAResponse uaResponse =
weCrossRPC
.register(
"org1-admin", "123456").send();
login¶
登录一个UniversalAccount账号
参数¶
name
:String
- 账号名password
:String
- 账号密码
返回值¶
UAResponse
- 响应包version
:String
- 版本号errorCode
:int
- 状态码message
:String
- 错误消息data
:UAReceipt
- 登录账号信息
java示例¶
UAResponse uaResponse =
weCrossRPC
.login(
"org1-admin", "123456").send();
资源接口解析¶
ResourceFactory.build¶
初始化一个跨链资源
参数¶
weCrossRPC
:WeCrossRPC
- RPC实例path
:String
- 跨链资源标识
返回值¶
Resource
- 跨链资源实例
java示例¶
// 初始化RPC实例
WeCrossRPCService weCrossRPCService = new WeCrossRPCService();
WeCrossRPC weCrossRPC = WeCrossRPCFactory.build(weCrossRPCService);
// 初始化资源实例
Resource resource = ResourceFactory.build(weCrossRPC, path);
注 - 之后的java示例,会省去初始化Resource的步骤。
isActive¶
获取资源状态,true
:可达,false
:不可达。
参数¶
- 无
返回值¶
bool
- 资源状态
java示例¶
bool status = resource.isActive();
call(无参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
method
:String
- 调用的方法
返回值¶
String[]
- 调用结果
java示例¶
String[] result = resource.call("get");
call(带参数)¶
调用智能合约,不更改链状态,不发交易。
参数¶
method
:String
- 调用的方法args
:String...
- 可变参数列表
返回值¶
String[]
- 调用结果
java示例¶
String[] result = resource.call("get", "key");