🌉 Layerzero 컨트랙트 브릿징 Guide
어제 MIRA의 경우 BSC로 사고 Base로 브릿징했다면 무조건 수익이 났습니다. 근데 아무래도 좀 인식이 어려워보이고 하다보니 많은 분들이 아직 시도도 못해보시는 것 같아요. 그래서 제가 한번 개념설명을 해보도록 하겠습니다.
시작하기 전에 OFT란 뭐냐?
- Omnichain Fungible Token으로 Layerzero의 브릿징은 Burn&Mint 구조로 작동돼요. 그래서 A체인에서 브릿지를 하면 소각이되고 B체인에서 민트가되는 방식입니다. 그래서 다른체인에서 대체가능한 토큰이기 때문에 OFT라고 합니다.
🔎브릿지 방법 (Mira 예시)
1. 토큰 컨트랙트 페이지 > Contract 탭 > Write Contract > Connect to web3 로 지갑연결
2. send() 함수 찾고 변수 채우기
Send - 트랜잭션에 가스토큰을 얼마나 실어서 보낼지 정하는거예요. BSC의 경우 BNB, ETH의 경우 ETH가 되겠죠. 많이 실어서 보내도 쓰고 나머지는 환불되니까 걱정마!
dsteid - 레이어제로에서 정한 ‘도착하는 체인의 고유 아이디’라고 보시면 돼요. 링크에서 찾아서 Endpoint Id를 입력하면 됨!
to - 도착하는 체인에서 받을 주소예요. 원래 솔리디티에서 주소 즉, address는 20바이트 크기의 변수예요. 근데 bytes32를 입력하라고 되어있죠? 그러면 그 포맷에 맞추기 위해 0을 집어넣어야 해요. 전문적으로는 패딩한다고 해요.
amountLD - 브릿지할 토큰의 갯수. 여기서는 token decimal을 살펴봐야 해요. 그래서 원하는 갯수를 입력하고 뒤에 각 token decimal 만큼의 0 갯수를 집어 넣으면 됩니다.(소숫점일 경우 소숫점을 뒤로 미룬다고 생각하면됨)
minAmountLD - 슬리피지를 막기 위해 설정하는 거예요. 그냥 위에거 그대로 복붙해서 넣으면 됩니다.
extraoptions - 추가적인 가스비 설정에 관한 옵션. byte 형태의 값을 입력해야 되기 때문에 docs에 나와있는대로 0x00030100110100000000000000000000000000030d40 를 입력하면 됩니다. 혹시 안된다면 최근 브릿지 성공한 트젝 input data보고 복붙하면됨ㅋ
composeMsg,offCmd - 의미없으니까 0에 해당하는 바이트값인 0x를 채우면 됩니다.
nativeFee - 원래는 quote라는 함수를 통해서 프론트엔드에서 할 시 계산되는데 우리는 컨트랙트로 직접하는거잖아요? 그냥 가장 최근에 성공한 브릿지 트랜잭션 보고 input data 복사하면 됨.
lzTokenFee - 0
_refundAddress - 실패시 반환받을 주소예요. 본인지갑주소 그대로 복붙하시면 됩니다.
(어제 미라 브릿지 예시)
0.005
30184
0x000000000000000000000000 뒤에 자기 지갑주소(0x빼고)
원하는갯수 뒤에 0 18개
원하는갯수 뒤에 0 18개
0x00030100110100000000000000000000000000030d40
0x
0x
5000000000000000
0
본인지갑주소
사실 저는 그냥 최근 성공한 트랜잭션 보고 따라하늨게 젤 편하긴 하더라구요. 토큰컨트랙트 페이지>transactions > method가 send인 트랜잭션 찾기 > more details 누르고 Decode Input data 누르면 나오니까 그때그때 참고해서 해보세요:)
요즘 컨트랙트를 통한 브릿지 기술은 거의 필수인것 같아요. 어려워보이고 못할거같다고 포기하지 마시고 한번씩 꼭 해보세요. 테스트로 소액씩 연습하면서 지갑에서 컨펌누를때 잘 뜨는지 보고 하시면 누구나 다 가능해요. 도태되지마.

639
13시간 전