Skip to main content
getTransaction RPC 메서드는 서명을 제공하여 확인된 거래에 대한 자세한 정보를 검색할 수 있도록 합니다. 여기에는 거래 슬롯, 블록 시간, 메타데이터(예: 수수료, 상태, 잔액 변경) 및 거래 구조 자체가 포함됩니다.
성능 향상을 위한 배치 사용 피하기배치 보관 방법은 대기 시간을 크게 증가시킵니다. 100개 이상의 요청을 포함하는 배치는 허용되지 않습니다.

일반적인 사용 사례

  • 거래 확인: 거래가 처리되었는지 확인하고 결과(성공 또는 실패)를 확인합니다.
  • 거래 내역 표시: 사용자에게 지갑 또는 탐색기에서 지난 거래의 세부 정보를 표시합니다.
  • 감사 및 분석: 실행된 명령어, 지불된 수수료 및 관련 계정을 포함하여 거래의 세부 사항을 검토합니다.
  • 실패한 거래 디버깅: 메타데이터의 logMessageserr 필드를 검사하여 거래 실패 원인을 파악합니다.
  • 데이터 인덱싱: 거래에서 특정 정보를 추출하여 오프체인 저장 및 분석을 수행합니다.

요청 매개변수

  1. transactionSignature (string, required): 쿼리하려는 base-58로 인코딩된 거래 서명입니다.
  2. options (object, optional): 선택적 구성 객체로 다음을 포함할 수 있습니다:
    • commitment (string, optional): 커밋 수준을 지정합니다(예: "finalized", "confirmed"). 제공되지 않으면 노드의 기본 커밋이 사용됩니다(일반적으로 "finalized").
    • encoding (string, optional): transaction 데이터에 대한 인코딩입니다. 일반 값:
      • "json": 거래 데이터를 구조화된 JSON 형식으로 반환합니다(그러나 명령어는 여전히 base64로 인코딩될 수 있음).
      • "jsonParsed": program-specific 명령어들을 가능한 경우 해석하여 사람에게 읽기 쉬운 JSON 구조로 거래 데이터를 반환합니다. 이는 분석에 가장 유용한 인코딩입니다.
      • "base58": 거래 데이터를 base-58로 인코딩된 문자열로 반환합니다.
      • "base64": 거래 데이터를 base-64로 인코딩된 문자열로 반환합니다.
      • 별도로 지정하지 않으면, Helius의 기본값은 "json"이지만 Solana 기본값은 다를 수 있습니다. 이것을 지정하는 것이 좋습니다.
    • maxSupportedTransactionVersion (number, optional): RPC 엔드포인트가 처리해야 할 최대 거래 버전입니다.
      • 1로 설정하여 레거시, v0 및 v1 거래를 포함합니다.
      • 생략되거나 거래 버전보다 낮게 설정되면, 해당 요청은 JSON-RPC 오류 -32015 (Transaction version (1) is not supported by the requesting client)로 실패합니다. 항상 이것을 1로 설정하십시오. Transaction v1 지원을 참조하세요.

응답 구조

거래가 발견되지 않았거나(예: 아직 처리되지 않았거나 서명이 잘못된 경우) 지정된 커밋 수준으로 확인되지 않은 경우 메서드는 null를 반환합니다. 그렇지 않으면 다음 필드가 있는 객체를 반환합니다:
  • slot (u64): 거래가 블록에 포함된 슬롯 번호입니다.
  • blockTime (i64 | null): 거래가 포함된 블록이 생성된 예상 유닉스 타임스탬프(에포크 이후 초)입니다. 사용 가능하지 않으면 null가 될 수 있습니다.
  • meta (object | null): 거래 실행에 대한 메타데이터를 포함하는 객체입니다. 거래가 처리되기 전에 실패했거나 메타데이터가 없는 경우 null가 될 수 있습니다.
    • err (object | null): 거래가 실패한 경우 오류 객체, 그렇지 않으면 null입니다.
    • fee (u64): 거래에 대해 지불된 람포트 수수료입니다.
    • preBalances (array of u64): 거래가 처리되기 전 관련 계정의 람포트 잔액입니다.
    • postBalances (array of u64): 거래가 처리된 후 관련 계정의 람포트 잔액입니다.
    • preTokenBalances (array of objects | null): 거래 전 관련 토큰 계정의 토큰 잔액입니다.
    • postTokenBalances (array of objects | null): 거래 후 관련 토큰 계정의 토큰 잔액입니다.
    • innerInstructions (array of objects | null): 이 거래 내 CPI(프로그램 간 호출)의 일부로 실행된 명령어 배열입니다.
    • logMessages (array of string | null): 거래 명령어와 내포된 명령어가 내보낸 로그 메시지 배열입니다.
    • loadedAddresses (object, optional): 이 거래를 위한 주소 조회 테이블에서 로드된 계정을 지정합니다. writablereadonly의 공개 키 배열을 포함합니다.
    • returnData (object, optional): 거래를 통해 sol_set_return_datasol_get_return_data로 반환된 데이터입니다. programId (string) 및 data (array: [string, encoding])를 포함합니다.
    • computeUnitsConsumed (u64, optional): 이 거래에 의해 소비된 컴퓨팅 단위의 수입니다.
  • transaction (object | array): 거래 구조 자체입니다. 형식은 encoding 매개변수에 따라 다릅니다:
    • encoding"jsonParsed" 또는 "json"인 경우: message (accountKeys, instructions, recentBlockhash 등을 포함) 및 signatures (문자열 배열)을 포함하는 객체입니다.
    • encoding"base58", "base64"인 경우: 배열 [encoded_string, encoding_format_string]입니다.
  • version (“legacy” | number | undefined): 거래 버전입니다. 이전 거래의 경우 "legacy"가 될 수 있으며 버전 거래의 경우 번호(0 또는 1)가 될 수 있습니다. 거래가 버전 되어 있고 maxSupportedTransactionVersion가 설정되지 않은 경우 undefined. v1 거래에는 message 내에 컴퓨팅 예산(computeUnitLimit, heapSize, loadedAccountsDataSizeLimit, priorityFee)을 포함하는 transactionConfig 객체도 포함되어 있으며 컴퓨팅 예산 프로그램 명령어를 대체합니다. 그 priorityFee는 전체 수수료 람포트이며, 컴퓨팅 단위 당 마이크로 람포트가 아닙니다.
예시 응답 (jsonParsed 인코딩):

코드 예제

개발자 팁

  • 거래 확정: 적절한 commitment 수준으로 쿼리해야 합니다. 지정된 커밋에 도달하지 않은 거래를 요청하면 null가 발생합니다.
  • 데이터 볼륨: 응답 객체는 많은 명령어나 상세한 로깅을 포함하는 복잡한 거래의 경우 매우 클 수 있습니다. 데이터를 처리할 때 이를 염두에 두세요.
  • jsonParsed vs. json: jsonParsed는 매우 편리하지만 parsing 지원은 특정 프로그램에 대한 RPC 노드의 기능에 따라 달라집니다. 프로그램이 인식되지 않으면 jsonParsed에서도 덜 해석된 형식으로의 포맷 전환이 있을 수 있습니다.
  • 버전 거래: 항상 maxSupportedTransactionVersion: 1를 요청 옵션에 설정하여 애플리케이션이 레거시 및 버전 거래를 모두 처리할 수 있도록 합니다. 그렇지 않으면 최신 거래 형식에 대한 데이터를 놓치거나 오류가 발생할 수 있습니다.
  • RPC 제공자 차이: 핵심 API는 표준이지만 일부 RPC 제공자는 향상된 parsing 또는 추가 필드를 제공할 수 있습니다. 예를 들어 Helius는 풍부한 거래 parsing을 제공합니다.
이 가이드는 getTransaction RPC 메서드에 대한 포괄적인 개요를 제공하여 Solana 거래 데이터를 검색하고 이해할 수 있도록 합니다.