https://github.com/WalletConnect/WalletConnectUnity

 

GitHub - WalletConnect/WalletConnectUnity: This project is an extension of WalletConnectSharp that brings WalletConnect to Unity

This project is an extension of WalletConnectSharp that brings WalletConnect to Unity. - GitHub - WalletConnect/WalletConnectUnity: This project is an extension of WalletConnectSharp that brings W...

github.com

 

WalletConnect C# 버전을 유니티로 버전으로 작성한 Library

 

일반적인 경우는 Document 를 보고 사용하면 큰 문제가 없다.

 

하지만 SmartContract 를 작성해서 토큰을 전송하거나 하려면, 코인에 대한 지식없이 작업하기란, 

 

정말 내장이 뒤틀리고 정신이 아득해진다...

 

 

라이브러리 사용해서 SmartContract Token 전송을 위한 내용입니다.

 

 

* SmartConract 전송을 위한방법 ( ERC20 또는 BEP20 ) 토큰을 사용했음.

 

https://ryublock.tistory.com/29

 

Transaction Data 살펴보기 (feat. ABI)

 Transaction을 구성하는 여러가지 요소들이 있다. 대부분 쉽게 이해할 수 있는 반면, Data라는 친구는 명확하게 어떤 것을 해주는 항목인지 알기 힘들다. 오늘은 Transaction의 Data가 어떤 역할을 하는

ryublock.tistory.com

기본적인 내용은 이곳을 참고했음.

 

간단하게 요약하자면, TransactionData 의 경우 인코딩된 값이라는것이다.

 

Data 필드에 우리가원한는 처리에 대한 인코딩 정보를 보내면, 네트워크 상에서 해당 처리를 해준다는게 핵심!

 

아래 예제는 데모에서 약간의 수정만 거친내용

 

    
    public async void OnClickSendTransaction()
    {
        var address = WalletConnect.ActiveSession.Accounts[0];




        var transaction = new TransactionData()
        {
            data = "a9059cbb000000000000000000000000523cb375c8415b903c48259d52f01a5a0a2c2adc0000000000000000000000000000000000000000000000000000000000000064",
            from = address,
            to = "0x2f23b391e55ae429916ee818f97c810dc34e69bd",
            gas = "21000",
            value = "0",
            chainId = 0x61,
        };

        var results = await SendTransaction(transaction);

        resultText.text = results;
        resultText.gameObject.SetActive(true);
    }


to : Contract 의 주소

from : 큰의미는 없지만 일단은 지갑의 주소를 입력

value : Contract 의경우 Data 의 정보를 가지고 얼마를 보낼건지에 대한 처리가 진행하기때문에 0 으로 입력

chainId : 네트워크의 번호 ( MetaMask 의경우 0x61 ) 형태로 입력하지않고 십진수(97) 로 입력할경우 에러를뿜고 어플이 죽는다.  ( 이부분때문에 고생을 조금 했습니다. )

 

 

즉 기본적인 형태는 동일하지만 Contract 로 작성된 토큰의 경우는 data 필드가 중요하다고 보면 됨.


아직 보완해야될점은 Runtime 중에 data 값을 인코딩 하는 방법을 수정해야됩니다.

 

 

* 데모코드이므로, 상용에서 사용시 수정 및 보완해야됩니다.

+ Recent posts