메인 콘텐츠로 건너뛰기
이 튜토리얼에서는 OP Stack 체인의 Standard Bridge 시스템과 함께 동작하는, L1 ERC-20 토큰의 L2 표현 토큰을 생성합니다. 이 튜토리얼은 이미 Ethereum에 ERC-20 토큰을 보유하고 있으며 layer 2에서 해당 토큰의 브리징된 표현 토큰을 만들려는 개발자를 위한 것입니다. 튜토리얼을 마치면 Standard Bridge가 발행(mint)하고 소각(burn)할 수 있는 L2 토큰 컨트랙트가 OP Sepolia에 배포됩니다. 이 튜토리얼에서는 브리징 자체는 다루지 않습니다. L2 토큰을 만든 후 L1과 L2 간에 토큰을 이동하려면 viem으로 ERC-20 토큰 브리징하기를 따르십시오. Standard Bridge는 두 종류의 L2 토큰을 지원하며, 이 튜토리얼에서는 두 가지 모두를 다룹니다.
  • OptimismMintableERC20Factory를 통해 배포되는 표준 토큰(standard token). 이 팩토리 컨트랙트로 생성된 토큰은 Standard Bridge 시스템과 호환되며 입금(디파짓), 전송, 출금을 위한 기본 로직을 포함합니다. L2 토큰에 특수한 로직이 필요하지 않다면 이 방법을 선택하십시오.
  • IOptimismMintableERC20 인터페이스를 직접 구현하는 커스텀 토큰(custom token). 커스텀 토큰을 사용하면 토큰이 입금될 때마다 추가 로직을 트리거하는 등의 작업을 할 수 있습니다. 이와 같은 특수한 동작이 필요하다면 이 방법을 선택하십시오.
두 방법은 동일한 설정 과정을 공유하며, L2 ERC-20 토큰 생성 섹션에서 나뉘어 각각 별도의 탭으로 안내됩니다.
Standard Bridge는 bridge 회계 오류를 일으킬 수 있으므로 전송 수수료 토큰(fee on transfer tokens)이나 리베이싱 토큰(rebasing tokens)을 지원하지 않습니다.

OptimismMintableERC20 소개

Standard Bridge 시스템에서는 L1 토큰의 L2 표현 토큰이 IOptimismMintableERC20 인터페이스를 구현해야 합니다. 이 인터페이스는 표준 ERC-20 인터페이스의 상위 집합으로, bridge가 입금/출금을 올바르게 검증하고 필요에 따라 토큰을 발행/소각할 수 있도록 하는 함수를 포함합니다. Standard Bridge 시스템을 사용하여 브리징하려면 L2 토큰 컨트랙트가 이 인터페이스를 구현해야 합니다. 이 튜토리얼에서는 OptimismMintableERC20Factory를 통해 기본 표준 ERC-20 토큰을 배포하는 방법과, 인터페이스를 직접 구현하는 커스텀 토큰을 작성하는 방법을 보여 줍니다.

의존성

  • cast: 표준 토큰 방법에서 팩토리를 통해 배포할 때 사용합니다
  • 지갑 확장 프로그램이 설치된 웹 브라우저: 커스텀 토큰 방법에서 Remix로 배포할 때 사용합니다

Sepolia 및 OP Sepolia에서 ETH 받기

이 튜토리얼에서는 OP Sepolia에서 브리징된 ERC-20 토큰을 생성하는 방법을 설명합니다. 두 testnet 모두에서 약간의 ETH가 필요합니다.

L1 ERC-20 토큰 주소 준비

이 튜토리얼에는 L1 ERC-20 토큰이 필요합니다. 이미 Sepolia에 배포된 L1 ERC-20 토큰이 있다면 이 단계를 건너뛸 수 있습니다. 그렇지 않으면 0x5589BB8228C07c4e15558875fAf2B859f678d129에 있는 테스트 토큰을 사용할 수 있습니다. 이 토큰에는 토큰을 발행하는 데 사용할 수 있는 faucet() 함수가 포함되어 있습니다.

L2 ERC-20 토큰 생성

L1 ERC-20 토큰이 준비되면 OP Sepolia에서 대응하는 L2 ERC-20 토큰을 생성할 수 있습니다. 생성하려는 토큰 종류에 맞는 탭을 선택하십시오.
OptimismMintableERC20Factory를 사용하여 L2 ERC-20 토큰을 배포할 수 있습니다. 팩토리로 생성된 모든 토큰은 IOptimismMintableERC20 인터페이스를 구현하며 Standard Bridge 시스템과 호환됩니다.
1

환경에 개인 키 추가

트랜잭션에 서명하려면 개인 키가 필요합니다. export 명령으로 개인 키를 환경 변수로 설정하십시오. 이 개인 키가 OP Sepolia에서 ETH를 보유한 주소에 해당하는지 확인하십시오.
이 튜토리얼을 위해 새 지갑을 만들고 싶으신가요? cast가 설치되어 있다면 터미널에서 cast wallet new를 실행하여 새 지갑을 만들고 개인 키를 얻을 수 있습니다.
2

환경에 OP Sepolia RPC URL 추가

OP Sepolia에 연결하려면 RPC URL이 필요합니다. export 명령으로 RPC URL을 환경 변수로 설정합니다.
3

환경에 L1 ERC-20 토큰 주소 추가

OP Sepolia에서 L1 ERC-20 토큰의 브리징된 표현 토큰을 생성하려면 해당 L1 토큰의 주소를 알아야 합니다. export 명령으로 L1 ERC-20 토큰 주소를 환경 변수로 설정합니다.
4

L2 ERC-20 토큰 배포

이제 OptimismMintableERC20Factory를 사용하여 L2 ERC-20 토큰을 배포할 수 있습니다. cast 명령을 사용하여 팩토리 컨트랙트의 배포 함수를 호출합니다. 이 예제 명령은 이름이 “My Standard Demo Token”이고 심볼이 “L2TKN”인 토큰을 생성합니다. 생성된 L2 ERC-20 토큰 주소가 콘솔에 출력됩니다.

토큰 브리징하기

이제 L2 ERC-20 토큰이 있으므로 L1에서 L2로 토큰을 브리징할 수 있습니다. viem을 사용하여 L1 ERC-20을 L2로 브리징하는 방법은 viem으로 ERC-20 토큰 브리징하기 튜토리얼을 확인하십시오. 이 튜토리얼의 커스텀 예제 토큰을 배포했다면 출금 단계가 동작하지 않는다는 점을 기억하십시오. 예제 컨트랙트의 burn 함수는 항상 revert하며, 이것이 바로 해당 예제가 보여 주려는 내용입니다.

Superchain Token List에 추가하기

Superchain Token List는 Optimism Superchain 내 체인에 배포된 토큰의 공통 목록입니다. 이 목록은 Superchain Bridges UI 같은 서비스에서 사용됩니다. OP Mainnet 토큰을 이 목록에 포함하려면 검토 절차 및 병합 기준을 확인하십시오.