본문으로 건너뛰기
버전: 3.3.0

Blockchain

IOST 블록체인 및 IOST 스마트 컨트랙트로부터 정보를 조회하기 위해 상호작용하는 메인 클래스입니다.

constructor​

Blockchain 클래스를 생성하고 초기화하는 특수 메서드입니다. 사용자가 직접 초기화할 필요는 없으며, rpc.blockchain을 통해 Blockchain 클래스를 사용합니다.

getChainInfo​

블록체인에서 체인 정보를 조회합니다.

Returns​

chainInfo 객체를 반환하는 Promise.

이름타입설명
net_nameString네트워크 이름 (예: mainnet, testnet)
protocol_versionStringiost 프로토콜 버전
head_blockNumber헤드 블록 높이
head_block_hashString헤드 블록 해시
lib_blockNumber마지막 불가역(irreversible) 블록 번호
lib_block_hashString마지막 불가역 블록 해시
witness_listArray현재 witness 목록

Example​

const rpc = new IOST.RPC(new IOST.HTTPProvider('http://127.0.0.1:30001'));
rpc.blockchain.getChainInfo().then(console.log);

/*{
"net_name": "debugnet",
"protocol_version": "1.0",
"head_block": "142",
"head_block_hash": "ryj9qWvbypFd1VJeUiyxmyNiav9E8ZHH1t47zSbMmGk",
"lib_block": "142",
"lib_block_hash": "ryj9qWvbypFd1VJeUiyxmyNiav9E8ZHH1t47zSbMmGk",
"witness_list": [
"IOSTfQFocqDn7VrKV7vvPqhAQGyeFU9XMYo5SNn5yQbdbzC75wM7C"
]
}*/

getBlockByHash​

해시로 블록체인에서 블록 정보를 조회합니다.

Parameters​

이름타입설명
hashString블록의 해시
completeBoolean전체 트랜잭션과 트랜잭션 영수증을 포함할지 여부

Returns​

block 객체를 반환하는 Promise.

이름타입설명
statusString트랜잭션 상태
blockObjectBlock Object

Block Object​

이름타입설명
hashString블록 해시
versionNumber블록 버전
parent_hashString부모 블록 해시
tx_merkle_hashString트랜잭션 머클 트리 루트 해시
tx_receipt_merkle_hashString트랜잭션 영수증 머클 트리 루트 해시
numberString블록 번호
witnessString블록 생성자 witness
timeString블록 타임스탬프
gas_usageString블록 가스 사용량
tx_countString트랜잭션 수
transactionsArrayTransaction Object 배열
infoObjectInfo Object

AmountLimit Object​

이름타입설명
tokenString토큰 이름
valueNumber제한 값

Info Object​

이름타입설명
modeNumber패킹 모드
threadNumber트랜잭션 실행 스레드 수
batch_indexArray매 배치 실행의 트랜잭션 인덱스

Example​

const rpc = new IOST.RPC(new IOST.HTTPProvider('http://127.0.0.1:30001'));
rpc.blockchain.getBlockByNum(1, true).then(console.log);

/*{
"status": "IRREVERSIBLE",
"block": {
"hash": "HSSXypC9GwRowiG6e1FG9qGbvVZFjT9mR7RY8mGZzoLJ",
"version": "0",
"parent_hash": "CyoyPDfRM8a4HWwSbDBRv3UbFoUUQxWu4T5JuaJsmLvs",
"tx_merkle_hash": "7thvoWaULNdrXVYR6wRTfWYSpJDFj6vKX1jitCsh7KRj",
"tx_receipt_merkle_hash": "GvjAbjP9c626UPSMFjPMERyVDxqwvdu5uziqyiZdmoox",
"number": "1",
"witness": "IOSTfQFocqDn7VrKV7vvPqhAQGyeFU9XMYo5SNn5yQbdbzC75wM7C",
"time": "1545384717001253745",
"gas_usage": 0,
"tx_count": "1",
"info": null,
"transactions": [
{
"hash": "5YdA8qPq5N6W47rZV4u31FdbQzeMt2QX9KGj4uPyERZa",
"time": "0",
"expiration": "0",
"gas_ratio": 1,
"gas_limit": 1000000,
"delay": "0",
"actions": [
{
"contract": "base.iost",
"action_name": "Exec",
"data": "[{\"parent\":[\"IOST2FpDWNFqH9VuA8GbbVAwQcyYGHZxFeiTwSyaeyXnV84yJZAG7A\", \"0\"]}]"
}
],
"signers": [],
"publisher": "_Block_Base",
"referred_tx": "",
"amount_limit": [],
"tx_receipt": {
"tx_hash": "5YdA8qPq5N6W47rZV4u31FdbQzeMt2QX9KGj4uPyERZa",
"gas_usage": 0,
"ram_usage": {
"_Block_Base": "0",
"base.iost": "284",
"bonus.iost": "107"
},
"status_code": "SUCCESS",
"message": "",
"returns": [
"[\"\"]"
],
"receipts": [
{
"func_name": "token.iost/issue",
"content": "[\"contribute\",\"IOST2FpDWNFqH9VuA8GbbVAwQcyYGHZxFeiTwSyaeyXnV84yJZAG7A\",\"900\"]"
}
]
}
}
]
}
}*/

getBlockByNum​

번호로 블록체인에서 블록 정보를 조회합니다.

Parameters​

이름타입설명
numNumber블록 번호
completeBoolean전체 트랜잭션과 트랜잭션 영수증을 포함할지 여부

Returns​

block 객체를 반환하는 Promise. getBlockByHash 참고.

getBalance​

계정 잔액을 조회합니다.

Parameters​

이름타입설명
nameString계정 이름
by_longest_chainBoolean최장 체인의 헤드 블록 기준으로 조회할지, 마지막 불가역 블록 기준으로 조회할지

Returns​

balance 객체를 반환하는 Promise.

Example​

const rpc = new IOST.RPC(new IOST.HTTPProvider('http://127.0.0.1:30001'));
rpc.blockchain.getBalance('myaccount', true).then(console.log);

/*{
balance: 12000,
frozen_balances: null
}*/

getToken721Balance​

계정의 token721 잔액을 조회합니다.

Parameters​

이름타입설명
nameString계정 이름
tokenSymbolStringtoken721 심볼
by_longest_chainBoolean최장 체인의 헤드 블록 기준으로 조회할지, 마지막 불가역 블록 기준으로 조회할지

Returns​

balance 객체를 반환하는 Promise.

Example​

const rpc = new IOST.RPC(new IOST.HTTPProvider('http://127.0.0.1:30001'));
rpc.blockchain.getToken721Balance('myaccount', 'my721Token', true).then(console.log);

/*{
balance: 12000,
tokenIDs: null
}*/

getToken721Metadata​

token721 메타데이터를 조회합니다.

Parameters​

이름타입설명
tokenString토큰 이름
token_idString토큰 ID
by_longest_chainBoolean최장 체인의 헤드 블록 기준으로 조회할지, 마지막 불가역 블록 기준으로 조회할지

Returns​

metadata 객체를 반환하는 Promise.

이름타입설명
metadataString메타데이터

Example​

const rpc = new IOST.RPC(new IOST.HTTPProvider('http://127.0.0.1:30001'));
rpc.blockchain.getToken721Metadata('symbol', 'id', true).then(console.log);

/*{
metadata: ''
}*/

getToken721Owner​

token721의 소유자를 조회합니다.

Parameters​

이름타입설명
tokenString토큰 이름
token_idString토큰 ID
by_longest_chainBoolean최장 체인의 헤드 블록 기준으로 조회할지, 마지막 불가역 블록 기준으로 조회할지

Returns​

owner 객체를 반환하는 Promise.

이름타입설명
ownerString소유자

Example​

const rpc = new IOST.RPC(new IOST.HTTPProvider('http://127.0.0.1:30001'));
rpc.blockchain.getToken721Owner('symbol', 'id', true).then(console.log);

/*{
owner: 'theowner'
}*/

getContract​

블록체인에서 컨트랙트를 조회합니다.

Parameters​

이름타입설명
idString컨트랙트 ID
by_longest_chainBoolean최장 체인의 헤드 블록 기준으로 조회할지, 마지막 불가역 블록 기준으로 조회할지

Returns​

contract 객체를 반환하는 Promise.

이름타입설명
idString컨트랙트 ID
codeString컨트랙트 코드
languageString컨트랙트 언어
versionString컨트랙트 버전
abisArrayABI Object 배열

ABI Object​

이름타입설명
nameStringABI 이름
argsArrayABI 인자
amount_limitArrayAmountLimit Object 배열

getContractStorage​

블록체인에서 컨트랙트 스토리지를 조회합니다.

Parameters​

이름타입설명
idString컨트랙트 ID
keyStringStateDB의 키
fieldStringStateDB[key]가 맵일 경우 StateDB[key][field]를 가져오기 위한 필드
by_longest_chainBoolean최장 체인의 헤드 블록 기준으로 조회할지, 마지막 불가역 블록 기준으로 조회할지

Returns​

contract 결과 객체를 반환하는 Promise.

이름타입설명
dataString데이터

getAccountInfo​

블록체인에서 계정 정보를 조회합니다.

Parameters​

이름타입설명
nameString계정 이름
by_longest_chainBoolean최장 체인의 헤드 블록 기준으로 조회할지, 마지막 불가역 블록 기준으로 조회할지

Returns​

account 객체를 반환하는 Promise.

이름타입설명
nameString계정 이름
balanceNumber계정 잔액
gas_infoObjectGasInfo Object
ram_infoObjectRAMInfo Object
permissionsMapmap<String, Permission Object>
groupsMapmap<String, Group Object>
frozen_balancesArrayFrozenBalance Object 배열

GasInfo Object​

이름타입설명
current_totalNumber현재 총 가스 수량
transferable_gasNumber현재 전송 가능한 가스
pledge_gasNumber현재 스테이킹된 가스
increase_speedNumber가스 증가 속도
limitNumber한도
pledged_infoArrayPledgeInfo Object 배열

PledgeInfo Object​

이름타입설명
pledgerString스테이킹한 계정
amountNumber스테이킹된 수량

RAMInfo Object​

이름타입설명
availableNumber사용 가능한 RAM 바이트

Permission Object​

이름타입설명
nameString권한 이름
groupsArray권한 그룹 배열
itemsArrayItem Object 배열
thresholdNumber권한 임계값

Item Object​

이름타입설명
idString권한 이름 또는 키 페어 id
is_key_pairBoolean키 페어 여부
weightNumber권한 가중치
permissionString권한

Group Object​

이름타입설명
nameString그룹 이름
itemsArrayItem Object 배열

FrozenBalance Object​

이름타입설명
amountNumber잔액 수량
timeNumber해제 시간

Example​

const rpc = new IOST.RPC(new IOST.HTTPProvider('http://127.0.0.1:30001'));
rpc.blockchain.getAccountInfo("myaccount").then(console.log);

/*{
"name": "myaccount",
"balance": 993939700,
"gas_info": {
"current_total": 3000000,
"transferable_gas": 0,
"pledge_gas": 3000000,
"increase_speed": 11,
"limit": 3000000,
"pledged_info": [
{
"pledger": "myaccount",
"amount": 100
}
]
},
"ram_info": {
"available": "100000"
},
"permissions": {
"active": {
"name": "active",
"groups": [],
"items": [
{
"id": "IOST2mCzj85xkSvMf1eoGtrexQcwE6gK8z5xr6Kc48DwxXPCqQJva4",
"is_key_pair": true,
"weight": "1",
"permission": ""
}
],
"threshold": "1"
},
"owner": {
"name": "owner",
"groups": [],
"items": [
{
"id": "IOST2mCzj85xkSvMf1eoGtrexQcwE6gK8z5xr6Kc48DwxXPCqQJva4",
"is_key_pair": true,
"weight": "1",
"permission": ""
}
],
"threshold": "1"
}
},
"groups": {},
"frozen_balances": []
}*/