supersim을 사용하면 멀티체인 기능을 로컬에서 테스트할 수 있습니다. 이전에는 멀티체인 기능을 테스트하려면 복잡한 docker 설정이 필요하거나 testnet을 사용해야 했습니다. 실제 사용 방법을 확인하기 위해 이 튜토리얼에서는 L1에서 L2로 ETH를 보내는 과정을 안내합니다.
L1에서 L2로 ETH 입금(디파짓)하기 (L1에서 L2로의 메시지 전달)
1
L2(chain 901)의 초기 잔액 확인하기
L2에서 발신자 계정의 잔액을 조회합니다.
2
Ether 보내기
이 작업은 첫 번째 방법:
두 번째 방법:
OptimismPortal 또는 L1StandardBridge의 두 가지 방법 중 하나로 수행할 수 있습니다.첫 번째 방법: OptimismPortal
- 해당 L2의
OptimismPortal컨트랙트(chain 900에 있음)로 Ether를 보냅니다.
chain 901의 경우 컨트랙트는
0x37a418800d0c812A9dE83Bc80e993A6b76511B57입니다.- L1에서 bridge 트랜잭션을 시작합니다.
두 번째 방법: L1StandardBridge
- L1(chain 900)에 있는 해당 L2의
L1StandardBridgeProxy/L1StandardBridge컨트랙트에서bridgeETH함수를 호출합니다.
chain 901의 경우 컨트랙트는
0x8d515eb0e5F293B16B6bBCA8275c060bAe0056B0입니다.- L1에서 bridge 트랜잭션을 시작합니다.
3
L2(chain 901)의 잔액 확인하기
L2에서 발신자의 ETH 잔액이 증가했는지 확인합니다.
chain 901에서 902로 상호운용 가능한 ERC20 토큰 보내기 (L2에서 L2로의 메시지 전달)
일반적인 L2 간 크로스체인 전송에는 두 개의 트랜잭션이 필요합니다.- 소스 체인의 전송 트랜잭션 – Chain 901에서 토큰 전송을 시작합니다.
- 대상 체인의 메시지 릴레이 트랜잭션 – 전송 세부 정보를 Chain 902로 릴레이합니다.
--interop.autorelay 플래그를 사용할 수 있습니다. 이 플래그는 소스 체인에서 최초 전송 트랜잭션이 완료되면 메시지 릴레이 트랜잭션을 자동으로 트리거합니다. 따라서 릴레이 메시지를 수동으로 보낼 필요가 없어 개발자 경험이 향상됩니다.
1
autorelayer를 활성화하여 supersim 시작하기
2
chain 901에서 전송할 토큰 발행하기
다음 명령을 실행하여 수신자 주소로 테스트 ERC20 토큰 1000개를 발행합니다.
3
chain 901에서 전송 트랜잭션 시작하기
다음 명령을 사용하여 Chain 901에서 Chain 902로 토큰을 보냅니다.
4
chain 902에 릴레이된 메시지가 나타날 때까지 기다리기
몇 초 후 chain 902에서 RelayedMessage를 확인할 수 있습니다.
5
chain 902의 잔액 확인하기
chain 902에서 테스트 ERC20의 잔액이 증가했는지 확인합니다.
supersim을 사용하여 L1에서 L2로의 ETH bridge와 L2 간 상호운용 가능한 ERC20 토큰 전송을 모두 로컬에서 성공적으로 완료했습니다. 이 방식은 멀티체인 테스트를 단순화하여, 복잡한 설정이나 외부 testnet에 의존하지 않고 개발에 집중할 수 있게 해 줍니다.
다음 단계
- vanilla(non-forked) 모드 또는 forked 모드로 Supersim을 시작하는 방법을 알아보십시오.
- OP Stack 환경을 재현하는 데 사용되는 Supersim의 포함된 컨트랙트를 살펴보십시오.