메인 콘텐츠로 건너뛰기

Wrapped INJ (wINJ)

래핑된 암호화폐란?

Injective에서 INJ는 네트워크에서 트랜잭션 수수료를 지불하는 데 사용되는 암호화폐입니다. 그러나 일부 dApp(DEX 포함)은 인터페이스에서 ERC20 토큰만 허용하므로 INJ는 작동하지 않습니다. 해결책은 INJ를 래핑하는 ERC20 토큰을 만드는 것이며, 이를 “wrapped INJ”라고 합니다. 토큰 심볼은 wINJ입니다. 따라서 ERC20 토큰을 허용하는 모든 dApp은 wINJ를 허용합니다. wINJ 토큰이 작동하는 메커니즘은 간단합니다:
  • Mint: INJ를 입금할 때마다 총 공급량을 증가시킵니다.
  • Burn: INJ를 출금할 때마다 총 공급량을 감소시킵니다.
wINJ를 INJ와 1:1로 담보화된 ERC20 토큰으로 생각할 수 있으며, 따라서 동일한 가치로 취급되지만 기술적 인터페이스가 다릅니다.

wINJ는 wETH와 동일한가요?

Ethereum에 익숙한 분들은 이것이 wrapped Ether(wETH)와 동일하게 들린다고 생각할 수 있습니다. 맞습니다. 지금까지 wINJ는 wETH와 동일한 방식으로 작동합니다. 그러나 Injective 네트워크는 MultiVM 기술 아키텍처로 설계되었습니다. 이는 wINJ가 wETH처럼 표준 ERC20 구현을 사용하여 구현된 경우 wINJ는 Injective 네트워크의 비EVM 부분(예: Cosmos 트랜잭션)과 상호작용할 때 액세스할 수 없음을 의미합니다. 이것이 바로 Injective의 MultiVM Token Standard(MTS)가 설계된 정확한 유형의 제한입니다. 특히 이 줄을 참고하세요:
contract WINJ9 is BankERC20, IWINJ9 {
스마트 컨트랙트 내에서 uint256 값으로 잔액을 저장하는 대신 일반적인 ERC20 구현처럼 wINJ 스마트 컨트랙트는 Bank precompile을 사용합니다. 마법은 BankERC20_update 함수에서 발생하며, 여기서 Bank 모듈의 mint, burn 또는 transfer 함수가 EVM precompile을 통해 호출됩니다. 이러한 잔액은 Bank precompile에서 저장/검색되므로 Injective의 MultiVM 아키텍처 내 다른 곳에서 액세스할 수 있습니다. 예를 들어 Cosmos SDK를 사용하여 wINJ 잔액을 쿼리할 수 있습니다. EVM 트랜잭션을 통해 업데이트한 후에도; 그리고 그 반대도 마찬가지입니다. 이를 “네이티브 체인 잔액”이라고 합니다. wINJ의 전체 데모를 확인하세요.

wINJ를 프로그래밍 방식으로 사용하는 방법

  • Injective 메인넷 주소: 0x0000000088827d2d103ee2d9A6b781773AE03FfB
  • Injective 테스트넷 주소: 0x0000000088827d2d103ee2d9A6b781773AE03FfB
INJ를 wINJ로 변환하려면 이 스마트 컨트랙트에서 deposit 함수를 호출합니다:
  • 함수 서명: deposit() public payable
  • 금액을 파라미터로 지정할 필요가 없습니다. 대신 트랜잭션에서 value를 설정하면 payablemsg.value로 이를 선택합니다.
wINJ를 INJ로 변환하려면 이 스마트 컨트랙트에서 withdraw 함수를 호출합니다:
  • 함수 서명: withdraw(uint256 wad) public
  • 받고자 하는 INJ 금액을 wad 파라미터로 설정합니다.
다른 모든 함수(예: 전송)는 표준 ERC20과 동일합니다.

네트워크 탐색기를 통해 wINJ 사용하는 방법

INJ를 wINJ로 변환하려면 이 스마트 컨트랙트에서 deposit 함수를 호출합니다:
  • wINJ 토큰의 탐색기 페이지에서 “Contract” 탭, 그런 다음 “Read/Write contract” 하위 탭으로 이동합니다.
  • deposit() 함수를 찾고 > 기호를 클릭하여 확장합니다
  • “Send native INJ (uint256)” 필드에 변환하려는 INJ 금액을 입력합니다
    • 이 숫자는 자동으로 10^18로 곱해지므로 수동으로 변환할 필요가 없습니다
  • “Write” 버튼을 누릅니다
  • 지갑에서 트랜잭션을 확인하여 서명하고 제출합니다.
  • 지갑에서 선택한 금액만큼 INJ 감소와 wINJ 증가가 반영되어야 합니다.
    • INJ 감소는 트랜잭션 수수료로 사용되기 때문에 약간 더 많습니다.
wINJ를 INJ로 변환하려면 이 스마트 컨트랙트에서 withdraw 함수를 호출합니다:
  • wINJ 토큰의 탐색기 페이지에서 “Contract” 탭, 그런 다음 “Read/Write contract” 하위 탭으로 이동합니다.
  • withdraw() 함수를 찾고 > 기호를 클릭하여 확장합니다
  • “wad (uint256)” 필드에 변환하려는 wINJ 금액을 입력합니다
    • 이 숫자는 자동으로 10^18로 곱해지므로 수동으로 변환할 필요가 없습니다
  • “Write” 버튼을 누릅니다
  • 지갑에서 트랜잭션을 확인하여 서명하고 제출합니다.
  • 지갑에서 선택한 금액만큼 INJ 증가와 wINJ 감소가 반영되어야 합니다.
    • INJ 증가는 트랜잭션 수수료로 사용되기 때문에 약간 더 적습니다.

Injective Do를 통해 wINJ 사용하는 방법

  • Injective Do를 방문합니다
  • 오른쪽 상단의 “Connect” 버튼을 누릅니다
  • 지갑을 선택합니다
  • 지갑에서 “Allow”를 선택하여 Injective Do dApp에 연결을 허용합니다.
  • 이제 오른쪽 상단(“Connect” 버튼이 이전에 있던 곳)에 지갑 주소가 표시됩니다
  • 상단 탐색 바에서 “EVM”을 선택합니다
  • 드롭다운 메뉴에서 “Wrap/Unwrap”을 선택합니다
  • INJ를 wINJ로 변환하려면
    • 상단의 “Wrap” 탭을 누릅니다
    • “Amount” 필드에 원하는 변환 금액을 입력합니다
    • 하단의 “Wrap” 버튼을 누릅니다
    • 트랜잭션이 완료되면 지갑에서 INJ 및 wINJ 잔액을 확인합니다
  • wINJ를 INJ로 변환하려면
    • 상단의 “Unwrap” 탭을 누릅니다
    • “Amount” 필드에 원하는 변환 금액을 입력합니다
    • 하단의 “Unwrap” 버튼을 누릅니다
    • 트랜잭션이 완료되면 지갑에서 INJ 및 wINJ 잔액을 확인합니다