Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,4 +97,46 @@ System.out.println("response: " + tx.getContractResponse().getBodyStr());
System.out.println("gas: " + tx.getGasUsed());
```

## Get block by height

```java
XuperClient c = new XuperClient("127.0.0.1:37101");
XchainOuterClass.Block block = c.getBlockByHeight(100);
System.out.println("block:" + bbb);
```

## Get account by AK

```java
XchainOuterClass.AK2AccountResponse response = c.getAccountByAK("Sw5kwvaf3PAwozXxMdFuBrd9UiqXuXhVF");
System.out.println(response);
```

## Get account contracts

```java
XchainOuterClass.GetAccountContractsResponse response = c.getAccountContracts("XC1111111111111111@xuper");
System.out.println(response);
```

## Query UTXO record

```java
XchainOuterClass.UtxoRecordDetail detail = c.queryUtxoRecord("WEtfMgJHcWWLwtwuTsRZkmYutjZGENXd6", 2);
System.out.println(detail);
```

## Query account acl

```java
XchainOuterClass.AclStatus acl = c.queryAccountACL("XC1111111111111111@xuper");
System.out.println(acl);
```

## Query contract method acl

```java
XchainOuterClass.AclStatus acl = c.queryContractMethodACL("counter", "increase");
System.out.println(acl);
```

74 changes: 74 additions & 0 deletions src/main/java/com/baidu/xuper/api/XuperClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,80 @@ public void close() {
}
}

public XchainOuterClass.Block getBlockByHeight(long height) {
XchainOuterClass.Block block = getBlockingClient().getBlockByHeight(XchainOuterClass.BlockHeight.newBuilder()
.setBcname(chainName)
.setHeight(height)
.build());

Common.checkResponseHeader(block.getHeader(), "get block by height");
return block;
}

public XchainOuterClass.AK2AccountResponse getAccountByAK(String address) {
XchainOuterClass.AK2AccountResponse response = getBlockingClient().getAccountByAK(XchainOuterClass.AK2AccountRequest.newBuilder()
.setBcname(chainName)
.setAddress(address)
.build());

Common.checkResponseHeader(response.getHeader(), "get account by AK");
return response;
}

public XchainOuterClass.UtxoRecordDetail queryUtxoRecord(String address, long utxoItemNum) {
XchainOuterClass.UtxoRecordDetail detail = getBlockingClient().queryUtxoRecord(XchainOuterClass.UtxoRecordDetail.newBuilder()
.setAccountName(address)
.setDisplayCount(utxoItemNum)
.setBcname(chainName)
.build());

Common.checkResponseHeader(detail.getHeader(), "query UTXO record");
return detail;
}

public XchainOuterClass.GetAccountContractsResponse getAccountContracts(String contractAccount) {
XchainOuterClass.GetAccountContractsResponse response = getBlockingClient().getAccountContracts(XchainOuterClass.GetAccountContractsRequest.newBuilder()
.setBcname(chainName)
.setAccount(contractAccount)
.build());

Common.checkResponseHeader(response.getHeader(), "get account contracts");
return response;
}

public XchainOuterClass.AddressContractsResponse getAddressContracts(String address, Boolean verbose) {
XchainOuterClass.AddressContractsResponse response = getBlockingClient().getAddressContracts(XchainOuterClass.AddressContractsRequest.newBuilder()
.setBcname(chainName)
.setAddress(address)
.setNeedContent(verbose)
.build());

Common.checkResponseHeader(response.getHeader(), "get address contracts");
return response;
}

public XchainOuterClass.AclStatus queryAccountACL(String account) {
XchainOuterClass.AclStatus aclStatus = getBlockingClient().queryACL(XchainOuterClass.AclStatus.newBuilder()
.setBcname(chainName)
.setAccountName(account)
.build());

Common.checkResponseHeader(aclStatus.getHeader(), "query account ACL");
return aclStatus;
}

public XchainOuterClass.AclStatus queryContractMethodACL(String contract, String method) {
XchainOuterClass.AclStatus aclStatus = getBlockingClient().queryACL(XchainOuterClass.AclStatus.newBuilder()
.setBcname(chainName)
.setContractName(contract)
.setMethodName(method)
.build());

Common.checkResponseHeader(aclStatus.getHeader(), "query contract method ACL");
return aclStatus;
}


/**
* @param name name of chain
* @return
Expand Down
Loading