## Juice PC客户端
Juice客户端提供丰富的原生API,可以方便的调起客户端提供的能力,如获取用户/应用信息,钱包签名功能等。
### 概览
wallet - 钱包
| API | 描述 |
| --------------------------------- | ------- |
| getList | 获取钱包列表 |
| getUKeyAddress | 获取u-key地址 |
| genRSAAndECCKey | 生成RAS和ECC公私钥对 |
| getECCPubKey | 获取ECC公钥 |
| sign | 签名 |
user - 用户
| API | 描述 |
| ----------------------------------| ------- |
| getUserInfo | 获取用户信息 |
app - 应用
| API | 描述 |
| --------------------------------- | ------- |
| getAppInfo | 获取应用信息 |
#### wallet.getList
描述:获取钱包列表
接口定义:
>Juice.wallet.getList(args, resultCB, errorCB);
请求参数:
| 名称 | 类型 |是否必须| 描述 |
| -------------------- | -------|------- |------- |
| args{type} |Object|是|type:1钱包文件,2ukey|
| resultCB | Function |是|成功的回调函数|
| errorCB |Function|否|失败的回调函数|
返回参数:
| 名称 | 类型 | 描述 |
| -------------------- | -------|------- |
| data | Array |type=1时,返回用户名;type=2时,返回ukey序列号|
| msg | String |错误信息,code为0时,msg为''|
| code | String |错误码,为0表示成功|
示例:
```js
```
#### wallet.getUKeyAddress
描述:获取ukey地址
接口定义:
>Juice.wallet.getUKeyAddress(args, resultCB, errorCB);
请求参数:
| 名称 | 类型 |是否必须| 描述 |
| -------------------- | -------|------- |------- |
| args{hDev,pbName} |Object|是|type:1钱包文件,2ukey|
| resultCB | Function |是|成功的回调函数|
| errorCB |Function|否|失败的回调函数|
返回参数:
| 名称 | 类型 | 描述 |
| -------------------- | -------|------- |
| address | String |ukey|
```js
```
#### wallet.genRSAAndECCKey
描述:生成ukey的RSA、ECCC公私钥对
接口定义:
>Juice.wallet.genRSAAndECCKey(args, resultCB, errorCB);
请求参数:
| 名称 | 类型 |是否必须| 描述 |
| -------------------- | -------|------- |------- |
| args{hDev,pbName,password}|Object|是|hDev:ukey的句柄,<br/>pbName:ukey的序列号;(hDev、pbName二选一)<br/>password密码|
| resultCB | Function |是|成功的回调函数|
| errorCB |Function|否|失败的回调函数|
返回参数:
| 名称 | 类型 | 描述 |
| -------------------- | -------|------- |
| data | Object |null|
| msg | String |错误信息,code为0时,msg为''|
| code | String |错误码,为0表示成功|
```js
```
#### wallet.getECCPubKey
描述:获取ukey的ECCC公钥
接口定义:
>Juice.wallet.getECCPubKey(args, resultCB, errorCB);
请求参数:
| 名称 | 类型 |是否必须| 描述 |
| -------------------- | -------|------- |------- |
| args{hDev,pbName} |Object|是|hDev:ukey的句柄,<br/>pbName:ukey的序列号;(hDev、pbName二选一)|
| resultCB | Function |是|成功的回调函数|
| errorCB |Function|否|失败的回调函数|
返回参数:
| 名称 | 类型 | 描述 |
| -------------------- | -------|------- |
| data | String |ukey的ECC公钥|
| msg | String |错误信息,code为0时,msg为''|
| code | String |错误码,为0表示成功|
示例:
```js
Juice.wallet.getECCPubKey({
pbName: 123456789,
}, (res) => {
console.log(res.data);
});
```
#### wallet.sign
描述:签名
接口定义:
>Juice.wallet.sign(args, resultCB, errorCB);
请求参数
| 名称 | 类型 |是否必须| 描述 |
| -------------------- | -------|------- |------- |
| args{nonce,gasPrice,gasLimit,to,value,data}|Object|是|nonce:随机整数,使用此值,可以允许你覆盖你自己的相同nonce的,正在pending中的交易。<br/>gasPrice:默认是自动确定,交易的gas价格,默认是网络gas价格的平均值 。<br/>gasLimit:<br/>to:交易消息的目标地址<br/>value:交易携带的货币量,以wei为单位。如果合约创建交易,则为初始的基金。<br/>data:包含相关数据的字节字符串<br/>|
| resultCB | Function |是|成功的回调函数|
| errorCB |Function|否|失败的回调函数|
返回参数:
| 名称 | 类型 | 描述 |
| -------------------- | -------|------- |
| data | String |签名后的数据|
| msg | String |错误信息,code为0时,msg为''|
| code | String |错误码,为0表示成功|
```js
let txParams = {
nonce: web3.nonce(),
gasPrice: 21000000000,
gasLimit: 843314949521407,
to: address,
value: 0,
data: data,
};
Juice.wallet.sign(txParams, (res)=>{
console.log(res.data);
});
```
#### user.getUserInfo
描述:获取用户信息
接口定义:
>Juice.user.getUserInfo(resultCB, errorCB);
请求参数:
| 名称 | 类型 |是否必须| 描述 |
| -------------------- | -------|------- |------- |
| resultCB | Function |是|成功的回调函数|
| errorCB |Function|否|失败的回调函数|
返回参数:
| 名称 | 类型 | 描述 |
| -------------------- | -------|------- |
| data{uuid,userAddr,publicKey,type}| Object |uuid:id<br/>userAddr:用户钱包地址<br/>publicKey:公钥<br/>type:证书类型1为文件证书,2为ukey<br/>|
| msg | String |错误信息,code为0时,msg为''|
| code | String |错误码,为0表示成功|
示例:
```js
Juice.app.getUserInfo((res)=>{
console.log(res);
});
```
#### app.getAppInfo
描述:获取应用信息
接口定义:
>Juice.app.getAppInfo(resultCB, errorCB);
请求参数:
| 名称 | 类型 |是否必须| 描述 |
| -------------------- | -------|------- |------- |
| resultCB | Function |是|成功的回调函数|
| errorCB |Function|否|失败的回调函数|
返回参数:
| 名称 | 类型 | 描述 |
| -------------------- | -------|------- |
| data{chainUrl,contrcatUrl,chainID,nodeId}| Object |chainUrl:链的http请求地址<br/>contrcatUrl:合约RPC地址<br/>chainID:链ID<br/>nodeId:节点ID<br/>|
| msg | String |错误信息,code为0时,msg为''|
| code | String |错误码,为0表示成功|
示例:
```js
Juice.app.getAppInfo((res)=>{
console.log(res);
});
```