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.디지털신분은 등록, 퍼블릭키, 속성, 리커버리 등 동작을 포함합니다.
- claim인터페이스는 배포와 검증을 포함합니다.
- 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) | mekle증명 검증 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) | 호출
### Netive 계약호출
#### 권한관리계약
* 권한관리기능 인터페이스:
| 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 후보노드 신청을 취소하면 담보한 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) | 노드가 initPod인터페이스를 감축하면 노드소유자만 호출 가능하며 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) | 불특정 주소로부터 받은 보상 조회