본문으로 건너뛰기
버전: 3.5.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": []
}*/