Edit me

Ontology Java SDK 接口

Version 1.0.0

English / 中文

介绍:

本章节列出了Java SDK中关键的,SDK接口按如下几类区分:

  • 初始化接口
  • 与链交互接口
  • 钱包管理接口
  • 数字资产接口
  • 数字身份接口
  • NEO智能合约部署与调用接口
  • Native合约调用
  • 签名验签

初始化接口:

包括打开钱包文件和设置与链交互方式

     |                    Function                   |     Description            
 ----|-----------------------------------------------|------------------------
   1 | sdk.setRpc(rpcUrl)                            |   设置rpc            
   2 | sdk.setRestful(restUrl)                       |   设置restful
   3 | sdk.setWesocket(wsUrl, lock)                  |   设置websocket
   4 | wm.setDefaultConnect(wm.getWebSocket());      |    设置默认与链交互方式
   5 | wm.openWalletFile("OntAssetDemo.json");       |   打开钱包

与链交互接口:

  • 交互接口列表:
    
        |                     Main   Function                      |           Description            
     -----|----------------------------------------------------------|---------------------------------------------   
      1 | ontSdk.getConnect().getNodeCount()                       |  查询节点数量
      2 | ontSdk.getConnect().getBlock(15)                         |  查询块
      3 | ontSdk.getConnect().getBlockJson(15)                     |  查询块    
      4 | ontSdk.getConnect().getBlockJson("txhash")               |  查询块    
      5 | ontSdk.getConnect().getBlock("txhash")                   |  查询块     
      6 | ontSdk.getConnect().getBlockHeight()                     |  查询当前块高
      7 | ontSdk.getConnect().getTransaction("txhash")             |  查询交易                                     
      8 | ontSdk.getConnect().getStorage("contractaddress", key)   |  查询智能合约存储
      9 | ontSdk.getConnect().getBalance("address")                |  查询余额
     10 | ontSdk.getConnect().getContractJson("contractaddress")   |  查询智能合约          
     11 | ontSdk.getConnect().getSmartCodeEvent(59)                |  查询智能合约事件
     12 | ontSdk.getConnect().getSmartCodeEvent("txhash")          |  查询智能合约事件
     13 | ontSdk.getConnect().getBlockHeightByTxHash("txhash")     |  查询交易所在高度
     14 | ontSdk.getConnect().getMerkleProof("txhash")             |  获取merkle证明
     15 | ontSdk.getConnect().sendRawTransaction("txhexString")    |  发送交易
     16 | ontSdk.getConnect().sendRawTransaction(Transaction)      |  发送交易
     17 | ontSdk.getConnect().sendRawTransactionPreExec()          |  发送预执行交易
     18 | ontSdk.getConnect().getAllowance("ont","from","to")      |  查询允许使用值
     19 | ontSdk.getConnect().getMemPoolTxCount()                  |  查询交易池中交易总量
     20 | ontSdk.getConnect().getMemPoolTxState()                  |  查询交易池中交易状态
     21 | ontSdk.getConnect().syncSendRawTransaction("data")       |  同步发送交易
    

钱包管理接口:

包括数字资产和数字身份管理

  • 数字资产账户:
     |                        Main   Function                                     |     Description            
 ----|----------------------------------------------------------------------------|------------------------ 
   1 | Account importAccount(String encryptedPrikey, String pwd,byte[] salt,String address)   |   导入资产账户
   2 | Account createAccount(String password)                                     |   创建资产账户
   3 | Account createAccountFromPriKey(String password, String prikey)            |   根据私钥创建
   4 | AccountInfo createAccountInfo(String password)                             |   根据私钥创建
   5 | AccountInfo createAccountInfoFromPriKey(String password, String prikey)    |   根据私钥创建
   6 | AccountInfo getAccountInfo(String address, String password,byte[] salt)    |   获取账号信息
   7 | List<Account> getAccounts()                                                |   查询所有账号
   8 | Account getAccount(String address)                                         |   获取账户
   9 | Account getDefaultAccount()                                                |   获取默认账户
  • 数字身份:
       |                        Main   Function                                     |     Description            
     ----|----------------------------------------------------------------------------|------------------------ 
     1 | Identity importIdentity(String encryptedPrikey, String pwd,byte[] salt,String address) |   导入身份
     2 | Identity createIdentity(String password)                                   |   创建身份
     3 | Identity createIdentityFromPriKey(String password, String prikey)          |   根据私钥创建
     4 | IdentityInfo createIdentityInfo(String password)                           |   创建身份
     5 | IdentityInfo createIdentityInfoFromPriKey(String password, String prikey)  |   根据私钥创建
     6 | IdentityInfo getIdentityInfo(String ontid, String password)                |   查询身份信息  
     7 | List<Identity> getIdentitys()                                              |   查询所有身份 
     8 | Identity getIdentity(String ontid)                                         |   获取身份 
     9 | Identity getDefaultIdentity()                                              |   获取默认身份
    10 | Identity addOntIdController(String ontid, String key, String id)           |   添加控制人 
    

数字资产:

1.原生数字资产 2.Nep-5智能合约数字资产

  • 原生数字资产:

ont:


      |                                         Main   Function                                                     |           Description            
 -----|-------------------------------------------------------------------------------------------------------------|---------------------------------------------
    1 | String sendTransfer(Account sendAcct, String recvAddr, long amount,Account payerAcct,long gaslimit,long gasprice)   |  转账
    2 | long queryBalanceOf(String address)                                                       |  查询余额
    3 | long queryAllowance(String fromAddr,String toAddr)                                         |  查询Allowance
    4 | String sendApprove(Account sendAcct, String recvAddr, long amount,Account payerAcct,long gaslimit,long gasprice)    |  发送Approve
    5 | String sendTransferFrom(Account sendAcct, String fromAddr, String toAddr,long amount,Account payerAcct,long gaslimit,long gasprice) |  发送TransferFrom
    6 | String queryName()                                                                          |  查询资产名
    7 | String querySymbol()                                                                        |  查询资产Symbol
    8 | long queryDecimals()                                                                        |  查询精度
    9 | long queryTotalSupply()                                                                     |  查询总供应量
      

ong:


      |                                         Main   Function                                                     |           Description            
 -----|-------------------------------------------------------------------------------------------------------------|---------------------------------------------
    1 | String sendTransfer(Account sendAcct, String recvAddr, long amount,Account payerAcct,long gaslimit,long gasprice)   |  转账
    2 | long queryBalanceOf(String address)                                                       |  查询余额
    3 | long queryAllowance(String fromAddr,String toAddr)                                         |  查询Allowance
    4 | String sendApprove(Account sendAcct, String recvAddr, long amount,Account payerAcct,long gaslimit,long gasprice)    |  发送Approve
    5 | String sendTransferFrom(Account sendAcct, String fromAddr, String toAddr,long amount,Account payerAcct,long gaslimit,long gasprice) |  发送TransferFrom
    6 | String queryName()                                                                          |  查询资产名
    7 | String querySymbol()                                                                        |  查询资产Symbol
    8 | long queryDecimals()                                                                        |  查询精度
    9 | long queryTotalSupply()                                                                     |  查询总供应量
   10 | String claimOng(Account sendAcct, String toAddr, long amount, Account payerAcct, long gaslimit, long gasprice)             |  提取ong
   11 | String unclaimOng(String address)                                                                           |  查询未提取的ong
      
  • Nep-5智能合约数字资产:
      |                                         Main   Function                                       |           Description            
 -----|-----------------------------------------------------------------------------------------------|---------------------------------------------
    1 | void setContractAddress(String codeHash)                                                      | 设置合约地址
    2 | String sendInit(Account acct, Account payerAcct,long gaslimit,long gasprice)                   |  初始化
    3 | long sendInitGetGasLimit()                                                                     |  预执行初始化
    4 | String sendTransfer(Account acct, String recvAddr, long amount,Account payerAcct, long gaslimit,long gasprice)        |  转账
    5 | long sendTransferGetGasLimit(Account acct, String recvAddr, long amount)                      |  预执行转账                              
    6 | String queryBalanceOf(String addr)                                                            |  查询余额
    7 | String queryTotalSupply()                                                                     |  查询总供应量 
    8 | String queryName()                                                                            |  查询名字
    9 | String queryDecimals()                                                                        |  查询精度
   10 | String querySymbol()                                                                          |  查询资产Symbol

数字身份:

1.数字身份包括注册、公钥、属性、恢复人等操作。 2.claim接口包括颁发和验证 3.claim存证接口

  • ontid功能接口: ``` | Main Function | Description
    —–|————————————————————————————————————-|——————————————— 1 | String getContractAddress() | 查询合约地址 2 | Identity sendRegister(Identity ident, String password,byte[] salt,Account payerAcct,long gaslimit,long gasprice) | 注册ontid 3 | Identity sendRegisterPreExec(Identity ident, String password,byte[] salt,Account payerAcct,long gaslimit,long gasprice) | 预执行注册ontid 4 | Identity sendRegisterWithAttrs(Identity ident, String password,byte[] salt,Attribute[] attributes,Account payerAcct,long gaslimit,long gasprice) | 注册ontid并添加属性 5 | String sendAddPubKey(String ontid, String password,byte[] salt, String newpubkey,Account payerAcct,long gaslimit,long gasprice) | 添加公钥 6 | String sendAddPubKey(String ontid,String recoveryOntid, String password,byte[] salt, String newpubkey,Account payerAcct,long gaslimit,long gasprice) | 添加公钥 7 | String sendGetPublicKeys(String ontid) | 获取公钥 8 | String sendRemovePubKey(String ontid, String password,byte[] salt, String removePubkey,Account payerAcct,long gaslimit,long gasprice) | 删除公钥 9 | String sendRemovePubKey(String ontid, String recoveryOntid,String password,byte[] salt, String removePubkey,Account payerAcct,long gaslimit,long gasprice)| 删除公钥 10 | String sendGetKeyState(String ontid,int index) | 获取某公钥状态 11 | String sendAddAttributes(String ontid, String password,byte[] salt, Attribute[] attributes,Account payerAcct,long gaslimit,long gasprice) | 添加属性 12 | String sendGetAttributes(String ontid) | 查询属性 13 | String sendRemoveAttribute(String ontid,String password,byte[] salt,String path,Account payerAcct,long gaslimit,long gasprice) | 删除属性 14 | String sendAddRecovery(String ontid, String password,byte[] salt, String recoveryOntid,Account payerAcct,long gaslimit,long gasprice) | 添加恢复人 15 | String sendChangeRecovery(String ontid, String newRecovery, String oldRecovery, String password,byte[] salt,Account payerAcct, long gaslimit,long gasprice) | 修改恢复人 16 | String sendGetDDO(String ontid) | 查询DDO

* 构造交易接口:

 |                                           Make Transaction  Function                                                |     Description              ----|---------------------------------------------------------------------------------------------------------------------|------------------------     1 | Transaction makeRegister(String ontid,String password,byte[] salt,String payer,long gaslimit,long gasprice)                                              | 构造注册交易    2 | Transaction makeRegisterWithAttrs(String ontid, String password,byte[] salt, Attribute[] attributes, String payer, long gaslimit, long gasprice)         | 构造注册ontid并添加属性交易    3 | Transaction makeAddPubKey(String ontid,String password,byte[] salt,String newpubkey,String payer,long gaslimit,long gasprice)                            | 构造添加公钥交易    4 | Transaction makeAddPubKey(String ontid,String recoveryAddr,String password,byte[] salt,String newpubkey,String payer,long gaslimit,long gasprice)        | 构造添加公钥交易    5 | Transaction makeRemovePubKey(String ontid, String password,byte[] salt, String removePubkey,String payer,long gaslimit,long gasprice)                    | 构造删除公钥交易    6 | Transaction makeRemovePubKey(String ontid,String recoveryAddr, String password,byte[] salt, String removePubkey,String payer,long gaslimit,long gasprice)| 构造删除公钥交易    7 | Transaction makeAddAttributes(String ontid, String password,byte[] salt, Attribute[] attributes,String payer,long gaslimit,long gasprice)                | 构造添加属性交易    8 | Transaction makeRemoveAttribute(String ontid,String password,byte[] salt,String path,String payer,long gaslimit,long gasprice)                           | 构造删除属性交易    9 | Transaction makeAddRecovery(String ontid, String password,byte[] salt, String recoveryAddr,String payer,long gaslimit,long gasprice)                     | 构造添加恢复人交易   ```
  • Claim相关接口:
     |                                           Claim Function                                                                      |     Description            
 ----|-------------------------------------------------------------------------------------------------------------------------------|------------------------
   1 | public Object getMerkleProof(String txhash)                                                                                   |   获取merkle证明
   2 | boolean verifyMerkleProof(String claim)                                                                                       |   验证merkle证明                
   3 | String createOntIdClaim(String signerOntid, String pwd, byte[] salt,String context, Map claimMap, Map metaData,Map clmRevMap,long expire) |   创建claim
   4 | boolean verifyOntIdClaim(String claim)                                                                                        |   验证claim
  
  • Claim存证接口:
     |                                            Function                                                         |     Description
 ----|-------------------------------------------------------------------------------------------------------------|------------------------
   1 | String sendCommit(String issuerOntid,String password,byte[] salt,String subjectOntid,String claimId,Account payerAcct,long gaslimit,long gasprice) |   存储claim
   2 | String sendRevoke(String issuerOntid,String password,byte[] salt,String claimId,Account payerAcct,long gaslimit,long gasprice)     |   吊销
   3 | String sendGetStatus(String claimId)                                                                                               |   获取状态
  

### 智能合约部署与调用接口

部署与调用

      |                                            Function                                                                                                                             |     Description            
  ----|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------
    1 | DeployCode makeDeployCodeTransaction(String code, boolean needStorage, String name, String version, String author, String email, String desp, byte vmtype,String payer,long gaslimit,long gasprice)|   部署
    2 | InvokeCode makeInvokeCodeTransaction(String codeAddr,String method,byte[] params, String payer,long gaslimit,long gasprice)                                                           |   调用
   

### Native合约调用

#### 权限管理合约

  • 权限管理功能接口:
         |                                            Function                                                                                                                               |     Description
     ----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------
       1 | String sendTransfer(String adminOntId,String password,byte[] salt,String contractAddr, String newAdminOntID,int key,Account payerAcct,long gaslimit,long gasprice)                  |   合约管理员转让合约管理权限
       2 | String assignFuncsToRole(String adminOntID,String password,byte[] salt,String contractAddr,String role,String[] funcName,int key,Account payerAcct, long gaslimit,long gasprice)    |   为角色分配函数
       3 | String assignOntIDsToRole(String adminOntId,String password,byte[] salt,String contractAddr,String role,String[] ontIDs, int key,Account payerAcct, long gaslimit,long gasprice)    |   绑定角色到实体身份
       4 | String delegate(String ontid,String password,byte[] salt,String contractAddr,String toOntId,String role,int period,int level,int key,Account payerAcct, long gaslimit,long gasprice)|   将合约调用权代理给其他人
       5 | String withdraw(String initiatorOntid,String password,byte[] salt,String contractAddr,String delegate, String role,int key,Account payerAcct, long gaslimit,long gasprice)          |   收回合约调用权
    
  • 构造交易接口:
        |                                            Function                                                                                                                               |     Description
    ----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------
      1 | Transaction makeTransfer(String adminOntID,String contractAddr, String newAdminOntID,int key,String payer,long gaslimit,long gasprice)                    |   合约管理员转让合约管理权限
      2 | Transaction makeAssignFuncsToRole(String adminOntID,String contractAddr,String role,String[] funcName,int key,String payer,long gaslimit,long gasprice)   |   为角色分配函数
      3 | Transaction makeAssignOntIDsToRole(String adminOntId,String contractAddr,String role,String[] ontIDs, int key,String payer,long gaslimit,long gasprice)   |   绑定角色到实体身份
      4 | Transaction makeDelegate(String ontid,String contractAddr,String toAddr,String role,int period,int level,int key,String payer,long gaslimit,long gasprice)|   将合约调用权代理给其他人
      5 | Transaction makeWithDraw(String ontid,String contractAddr,String delegate, String role,int key,String payer,long gaslimit,long gasprice)                  |   收回合约调用权
    

治理合约

     |   Function                                                                                                                                                                         |   Description
-----|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   1 | String registerCandidate(Account account, String peerPubkey, long initPos, String ontid,String ontidpwd,byte[] salt,  long keyNo, Account payerAcct, long gaslimit, long gasprice) | 抵押一定的ONT,消耗一定的额外ONG,申请成为候选节点
   2 | String unRegisterCandidate(Account account, String peerPubkey,Account payerAcct, long gaslimit, long gasprice)                  | 取消申请成为候选节点,解冻抵押的ONT
   3 | String withdrawOng(Account account,Account payerAcct,long gaslimit,long gasprice)                                               | 提取解绑ong
   4 | String getPeerInfo(String peerPubkey)                                                                                           | 查询节点信息
   5 | String getPeerInfoAll()                                                                                                         | 查询所有节点
   6 | String getAuthorizeInfo(String peerPubkey,Address addr)                                                                  | 查询某个地址对某个节点的授权信息
   7 | String withdraw(Account account,String peerPubkey[],long[] withdrawList,Account payerAcct,long gaslimit,long gasprice)          | 取出处于未冻结状态的抵押ONT
   8 | String quitNode(Account account,String peerPubkey,Account payerAcct,long gaslimit,long gasprice)                                | 退出节点
   9 | String addInitPos(Account account,String peerPubkey,int pos,Account payerAcct,long gaslimit,long gasprice)                      | 节点增加initPos接口,只能由节点所有者调用
   10| String reduceInitPos(Account account,String peerPubkey,int pos,Account payerAcct,long gaslimit,long gasprice)                   | 节点减少initPos接口,只能由节点所有者调用,initPos不能低于承诺值,不能低于已接受授权数量的1/10
   11| String setPeerCost(Account account,String peerPubkey,int peerCost,Account payerAcct,long gaslimit,long gasprice)                | 节点设置自己独占激励的比例
   12| String changeMaxAuthorization(Account account,String peerPubkey,int maxAuthorize,Account payerAcct,long gaslimit,long gasprice) | 节点修改自己接受的最大授权ONT数量
   13| String getPeerAttributes(String peerPubkey)                                                                                     | 查询节点属性信息
   14| String getSplitFeeAddress(String address)                                                                                       | 查询某地址得到的激励

签名验签


com.github.ontio.account.Account acct = new com.github.ontio.account.Account(ontSdk.defaultSignScheme);
byte[] data = "12345".getBytes();
DataSignature sign = new DataSignature(ontSdk.defaultSignScheme, acct, data);
byte[] signature = sign.signature();


com.github.ontio.account.Account acct2 = new com.github.ontio.account.Account(false,acct.serializePublicKey());
DataSignature sign2 = new DataSignature();
System.out.println(sign2.verifySignature(acct2, data, signature));