체인 사용하기

앱체인과 상호작용하기 위한 집중 가이드

이 가이드는 앱체인과 상호작용하는 네 가지 주요 측면을 다룹니다:

  1. 트랜잭션 제출: 앱체인에서 트랜잭션을 보내는 방법.
  2. 가스 추정: 트랜잭션에 대한 가스를 추정하고 관리하는 방법.
  3. 오류 처리: 앱체인에서 오류를 처리하는 방법.
  4. 복구 절차: 문제에서 복구하고 앱체인 특정 복구 메커니즘을 사용하는 방법.

트랜잭션 제출

앱체인에서는 지갑이 설정되고 연결되면 트랜잭션 제출은 다른 EVM 체인과 매우 유사하게 작동하지만, 앱체인 특정 트랜잭션 유형이나 메타데이터가 포함될 수 있습니다.

// Example: Connect to your appchain's RPC
const provider = new ethers.JsonRpcProvider('https://your-appchain-rpc-url');
const chainId = 12345; // Your appchain's unique chain ID

// Make sure your wallet/signer is set up for the appchain
const signer = provider.getSigner();

// Submit a transaction (could be ETH, tokens, or custom logic)
const tx = await signer.sendTransaction({
  to: recipientAddress,
  value: ethers.utils.parseEther('0.1'),
  chainId // ensure correct chain
});
const receipt = await tx.wait();
console.log('Confirmed on appchain:', receipt.transactionHash);

가스 추정

앱체인은 공개 체인과 비교하여 다른 가스 가격 모델을 사용하거나 최적화가 있을 수 있습니다. 일부는 기본 수수료가 낮거나, 고정 가스 가격을 가지거나, 심지어 보조금이 지급되는 트랜잭션을 가질 수 있습니다.

// Estimate gas using your appchain's provider
const gasEstimate = await provider.estimateGas({
  to: contractAddress,
  data: contract.interface.encodeFunctionData('method', [args])
});
// Appchains may recommend a different buffer or have a fixed gas limit
const gasLimit = gasEstimate.mul(120).div(100);

오류 처리

앱체인은 공개 체인에서 찾을 수 없는 사용자 정의 오류 코드, 되돌림 이유 또는 동작을 도입할 수 있습니다. 앱체인 특정 로직, 거버넌스 또는 상태 전환과 관련된 오류가 발생할 수 있습니다.

try {
  const tx = await signer.sendTransaction(txData);
  const receipt = await tx.wait();
  if (receipt.status === 0) throw new Error('Transaction failed');
} catch (error) {
  // Appchain-specific error handling
  if (error.code === 'APPCHAIN_CUSTOM_ERROR') {
    // Handle custom error
  } else if (error.code === 'INSUFFICIENT_FUNDS') {
    // Not enough balance
  } else {
    throw error;
  }
}

트랜잭션 시뮬레이션: 트랜잭션 시뮬레이션은 현재 체인 상태를 기반으로 트랜잭션이 성공할지 여부만 확인합니다. 그러나 시뮬레이션이 성공하더라도 표준 시뮬레이션 도구가 감지할 수 없는 시퀀싱 계약의 사용자 정의 로직으로 인해 트랜잭션이 나중에 실패할 수 있습니다.

복구 절차

앱체인은 온체인 거버넌스, 관리자 키 또는 사용자 정의 복구 계약과 같은 고유한 복구 메커니즘을 제공할 수 있습니다. 이는 공개 체인 복구 프로세스와 크게 다를 수 있습니다.

  • 멈춘 트랜잭션: 앱체인은 멈춘 트랜잭션을 해결하기 위해 거버넌스나 관리자 개입을 허용할 수 있습니다.
  • 계정 복구: 일부 앱체인은 소셜 복구, 다중서명 또는 사용자 정의 계정 추상화를 지원합니다.
  • 비상 절차: 앱체인은 회로 차단기, 일시 중지 가능한 계약 또는 기타 앱 특정 안전 기능을 가질 수 있습니다.
// Example: Using an appchain's emergency pause feature
await contract.pause(); // Only available if your appchain implements this