에이전트에 대한 권장 사항
두 단계 조회 대신 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_accounts 및 get_token_accounts_by_owner에 의해 지원됩니다.
일반적인 실수
-
transaction_details: Some(TransactionDetails::Full)는 기본값이 아닙니다 — 기본적으로get_transactions_for_address는 서명만 반환합니다. 전체 트랜잭션 데이터를 받으려면TransactionDetails::Full를 설정하세요. -
send_smart_transaction와 함께 ComputeBudget 명령어를 추가하지 마세요 — SDK가 자동으로 추가합니다. 수동으로 추가하면HeliusError::InvalidInput오류가 발생합니다. -
우선 수수료는 마이크로램포트 단위 — 램포트가 아닙니다.
get_priority_fee_estimate의 값은 이미 올바른 단위입니다. -
DAS 페이지네이션은 1-인덱스입니다 —
page: 1가 첫 번째 페이지입니다,page: 0가 아닙니다. -
async_connection()는new_async또는HeliusBuilder를 요구합니다 —Helius::new()로 생성된 클라이언트에서helius.async_connection()를 호출하면Err(HeliusError::ClientNotInitialized)가 반환됩니다. -
get_asset는Option<Asset>를 반환합니다 — 성공적인 응답이 자산이 존재하지 않는 경우에도None일 수 있습니다.Option를 명확히 처리하세요. -
Sender 팁은 필수입니다 —
send_smart_transaction_with_sender는 팁을 자동으로 결정하고 추가합니다. 최소 0.0002 SOL (이중 모드) 또는 0.000005 SOL (SWQOS 전용). -
TLS 기능 플래그 — 크레이트는 기본적으로
native-tls입니다. 오픈SSL이 없을 때는features = ["rustls"](및default-features = false)를 사용하세요.
오류 처리 및 재시도
SDK는HeliusError 열거형을 통해 타입화된 오류 변수를 제공하여 이를 직접 매칭할 수 있습니다:
재시도 전략
RateLimitExceeded 및 InternalError에서 지수 백오프로 재시도하세요: