메인 콘텐츠로 건너뛰기
체인에서 Wasm 모듈을 쿼리하는 예제 코드 스니펫입니다.

gRPC 사용

컨트랙트의 계정 잔액 조회. 페이지네이션 파라미터를 전달하여 추가 계정을 조회할 수 있습니다.

import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import { ChainGrpcWasmApi, PaginationOption } from '@injectivelabs/sdk-ts/client/chain'

const endpoints = getNetworkEndpoints(Network.Testnet)
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)

const contractAddress = 'inj...'
const pagination = {...} as PaginationOption

const contractAccountsBalance = await chainGrpcWasmApi.fetchContractAccountsBalance({
    contractAddress,
    pagination /* 선택적 페이지네이션 옵션 */
})

console.log(contractAccountsBalance)

컨트랙트 관련 정보 조회

import { ChainGrpcWasmApi } from "@injectivelabs/sdk-ts/client/chain";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";

const endpoints = getNetworkEndpoints(Network.Testnet);
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc);

const contractAddress = "inj...";

const contractInfo = await chainGrpcWasmApi.fetchContractInfo(contractAddress);

console.log(contractInfo);

컨트랙트 기록 조회

import { ChainGrpcWasmApi } from "@injectivelabs/sdk-ts/client/chain";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";

const endpoints = getNetworkEndpoints(Network.Testnet);
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc);

const contractAddress = "inj...";

const contractHistory = await chainGrpcWasmApi.fetchContractHistory(
  contractAddress
);

console.log(contractHistory);

스마트 컨트랙트 상태 조회

import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
import { ChainGrpcWasmApi, toBase64 } from "@injectivelabs/sdk-ts/client/chain";

const endpoints = getNetworkEndpoints(Network.Testnet);
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc);

const contractAddress = "inj...";
const query = "...";
const queryFromObject = toBase64({ get_coin: {} });

const contractState = await chainGrpcWasmApi.fetchSmartContractState({
  contractAddress,
  query /* 선택적 문자열 쿼리 - base64이거나 queryFromObject 사용 필수 */,
});

console.log(contractState);

스마트 컨트랙트 원시 상태 조회

import { ChainGrpcWasmApi } from "@injectivelabs/sdk-ts/client/chain";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";

const endpoints = getNetworkEndpoints(Network.Testnet);
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc);

const contractAddress = "inj...";
const query = "...";
const queryFromObject = toBase64({ get_coin: {} });

const rawContractState = await chainGrpcWasmApi.fetchRawContractState({
  contractAddress,
  query /* 선택적 문자열 쿼리 - base64이거나 queryFromObject 사용 필수 */,
});

console.log(rawContractState);

컨트랙트와 연결된 코드 조회

import { PaginationOption } from '@injectivelabs/sdk-ts/types'
import { ChainGrpcWasmApi } from '@injectivelabs/sdk-ts/client/chain'
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'

const endpoints = getNetworkEndpoints(Network.Testnet)
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)

const pagination = {...} as PaginationOption


const rawContractState = await chainGrpcWasmApi.fetchRawContractState(
pagination /* 선택적 페이지네이션 옵션 */
)

console.log(rawContractState)

컨트랙트 코드와 연결된 정보 조회

import { ChainGrpcWasmApi } from "@injectivelabs/sdk-ts/client/chain";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";

const endpoints = getNetworkEndpoints(Network.Testnet);
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc);

const codeId = 1;

const codeDetails = await chainGrpcWasmApi.fetchContractCode(codeId);

console.log(codeDetails);

코드와 연결된 컨트랙트 조회

import { PaginationOption } from '@injectivelabs/sdk-ts/types'
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import { ChainGrpcWasmApi } from '@injectivelabs/sdk-ts/client/chain'

const endpoints = getNetworkEndpoints(Network.Testnet)
const chainGrpcWasmApi = new ChainGrpcWasmApi(endpoints.grpc)

const codeId = 1
const pagination = {...} as PaginationOption

const contracts = await chainGrpcWasmApi.fetchContractCodeContracts({
  codeId,
  pagination /* 선택적 페이지네이션 옵션 */
})

console.log(contracts)