메인 콘텐츠로 건너뛰기
OP Stack 상호운용성(interop)은 Lagoon 하드포크와 함께 활성화됩니다.
이 튜토리얼은 OP Stack 상호운용성 클러스터의 한 체인에서 다른 체인으로 ETH를 보내는 방법을 단계별로 안내합니다. 개념적인 개요는 상호운용 가능한 ETH 설명을 참조하십시오.

개요

OP Stack 체인 간의 크로스체인 ETH 전송은 SuperchainETHBridge 컨트랙트를 통해 이루어집니다. 이 튜토리얼에서는 한 체인에서 다른 체인으로 ETH를 보내는 방법을 살펴봅니다. 이 작업은 Supersim에서 수행할 수 있으며, 프로덕션이 출시되면 프로덕션에서도 수행할 수 있습니다.

만들게 될 것

  • 체인 간에 ETH를 전송하는 TypeScript 애플리케이션

배우게 될 것

  • 블록체인 상에서, 그리고 블록체인 간에 ETH를 보내는 방법
  • 체인 간에 메시지를 릴레이하는 방법

사전 요구 사항

이 튜토리얼을 시작하기 전에 개발 환경이 다음 요구 사항을 충족하는지 확인하십시오.

기술 지식

  • 중급 수준의 TypeScript 지식
  • 스마트 컨트랙트 개발에 대한 이해
  • 블록체인 개념에 대한 친숙함

개발 환경

  • Unix 계열 운영 체제(Linux, macOS 또는 Windows용 WSL)
  • Node.js 버전 16 이상
  • 버전 관리를 위한 Git

필수 도구

이 튜토리얼에서는 다음과 같은 주요 도구를 사용합니다.
  • Foundry: 스마트 컨트랙트 개발용
  • Supersim: 로컬 블록체인 시뮬레이션용
  • TypeScript: 구현용
  • Viem: 블록체인 상호작용용
1

사전 요구 소프트웨어 설치

  1. Foundry를 설치합니다.
  2. Node를 설치합니다.
  3. git을 설치합니다. 설치 방법은 운영 체제에 따라 다르며, 대부분의 운영 체제에는 기본으로 설치되어 있습니다.
2

네트워크 구성

이 튜토리얼은 로컬에서 실행하는 Supersim 또는 Interop devnet을 사용하여 실행할 수 있습니다. 해당하는 탭을 선택하고 안내를 따르십시오.
  1. Supersim 설치를 따라 Interop이 적용된 블록체인을 실행할 수 있도록 Supersim을 설정합니다.
  2. Supersim을 시작합니다.
  3. Supersim은 Foundry의 anvil 블록체인을 사용하며, 이 블록체인은 사전에 자금이 충전된 10개의 계정으로 시작합니다. L2 블록체인에서 이 계정 중 하나에 접근할 수 있도록 다음 환경 변수를 설정합니다.
  4. 체인의 URL을 지정합니다.
소스 체인과 대상 체인 모두에서 주소의 ETH 잔액을 조회합니다.
3

Foundry를 사용하여 ETH 전송

다음 명령을 실행합니다.
4

TypeScript 프로젝트 생성

Interop devnet에서는 메시지가 자동으로 릴레이됩니다.
1

새 TypeScript 프로젝트 생성

2

SuperchainETHBridge ABI 다운로드

3

src/transfer-eth.mts 생성

@eth-optimism/viem에서 모든 체인 정의를 가져옵니다.
사용하는 주소가 anvil에서 사전에 자금이 충전된 주소 중 하나인 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266이면 Supersim을 사용하는 것으로 간주합니다. 그렇지 않으면 Interop devnet을 사용합니다.
메시지를 릴레이하려면 영수증(receipt)에 있는 정보가 필요합니다. 또한 릴레이된 메시지가 포함된 트랜잭션이 실제로 블록에 포함될 때까지 기다려야 합니다.
하나의 트랜잭션으로 여러 메시지를 보낼 수 있습니다. 하지만 여기서는 메시지를 하나만 보냈다는 것을 알고 있으므로 목록의 첫 번째 항목을 찾습니다.
이것이 @eth-optimism/viem을 사용하여 실행 메시지(executing message)를 생성하는 방법입니다.
5

예제 실행

  1. 예제를 실행합니다.
  2. 결과를 확인합니다.
    초기 상태입니다. 주소는 개인 키에 따라 달라지므로 여기에 표시된 주소와 다를 것입니다.
    시작 메시지(initiating message) 이후 소스 체인의 잔액이 즉시 감소합니다. 0.001 ETH를 보내지만 소스 체인의 잔액은 그보다 조금 더(여기서는 약 67 gwei) 감소한다는 점에 유의하십시오. 이는 소스 체인에서 시작 트랜잭션에 드는 비용입니다. 물론 대상 체인에서는 아직 트랜잭션이 발생하지 않았으므로 해당 잔액은 변하지 않습니다.
    이제 대상 체인의 잔액이 0.001 ETH보다 약간 적게 증가합니다. 실행 메시지에도 트랜잭션 비용(이 경우 약 180gwei)이 발생합니다.

다음 단계