Skip to main content
Helius Rust SDK를 사용하는 에이전트를 위한 모범 사례 및 권장 패턴입니다. 설치 및 시작하기에 대한 내용은 개요를 참조하세요.

에이전트에 대한 권장 사항

두 단계 조회 대신 get_transactions_for_address 사용

get_transactions_for_address는 서명 조회와 트랜잭션 가져오기를 서버 측 필터링과 함께 단일 호출로 결합합니다.

표준 전송에 send_smart_transaction 사용

자동으로 시뮬레이션하고, 컴퓨팅 단위를 추정하며, 우선 수수료를 가져오고 확인합니다. ComputeBudget 명령어를 수동으로 작성하지 마세요. SDK가 자동으로 추가합니다.

초저지연에 Helius Sender 사용

시간이 민감한 트랜잭션(차익 거래, 스나이핑, 청산)을 위해 send_smart_transaction_with_sender를 사용하세요. 이는 Helius의 다중 지역 인프라와 Jito를 통해 라우팅됩니다.

여러 자산에 get_asset_batch 사용

하나 이상의 자산을 가져올 때는 배치하세요. 루프에서 get_asset를 호출하지 마세요.

폴링 대신 웹훅 사용

루프에서 get_transactions_for_address를 폴링하지 마세요. 서버 간 알림을 위해 웹훅을 사용하세요.

페이지네이션

토큰/커서 기반 (RPC V2 메소드)

페이지 기반 (DAS API)

token_accounts 필터

get_transactions_for_address를 쿼리할 때, token_accounts 필터는 토큰 계정 활동이 포함되는지를 제어합니다:

changed_since_slot — 점진적 계정 가져오기

changed_since_slot는 주어진 슬롯 이후에 수정된 계정만 반환합니다. 동기화 또는 인덱싱 워크플로에 유용합니다. get_program_accounts_v2, get_token_accounts_by_owner_v2, get_account_info, get_multiple_accounts, get_program_accountsget_token_accounts_by_owner에 의해 지원됩니다.

일반적인 실수

  1. transaction_details: Some(TransactionDetails::Full)는 기본값이 아닙니다 — 기본적으로 get_transactions_for_address는 서명만 반환합니다. 전체 트랜잭션 데이터를 받으려면 TransactionDetails::Full를 설정하세요.
  2. send_smart_transaction와 함께 ComputeBudget 명령어를 추가하지 마세요 — SDK가 자동으로 추가합니다. 수동으로 추가하면 HeliusError::InvalidInput 오류가 발생합니다.
  3. 우선 수수료는 마이크로램포트 단위 — 램포트가 아닙니다. get_priority_fee_estimate의 값은 이미 올바른 단위입니다.
  4. DAS 페이지네이션은 1-인덱스입니다page: 1가 첫 번째 페이지입니다, page: 0가 아닙니다.
  5. async_connection()new_async 또는 HeliusBuilder를 요구합니다Helius::new()로 생성된 클라이언트에서 helius.async_connection()를 호출하면 Err(HeliusError::ClientNotInitialized)가 반환됩니다.
  6. get_assetOption<Asset>를 반환합니다 — 성공적인 응답이 자산이 존재하지 않는 경우에도 None일 수 있습니다. Option를 명확히 처리하세요.
  7. Sender 팁은 필수입니다send_smart_transaction_with_sender는 팁을 자동으로 결정하고 추가합니다. 최소 0.0002 SOL (이중 모드) 또는 0.000005 SOL (SWQOS 전용).
  8. TLS 기능 플래그 — 크레이트는 기본적으로 native-tls입니다. 오픈SSL이 없을 때는 features = ["rustls"] (및 default-features = false)를 사용하세요.

오류 처리 및 재시도

SDK는 HeliusError 열거형을 통해 타입화된 오류 변수를 제공하여 이를 직접 매칭할 수 있습니다:

재시도 전략

RateLimitExceededInternalError에서 지수 백오프로 재시도하세요: