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 값을 인코딩 하는 방법을 수정해야됩니다.

 

 

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

SET @MIDNT = STR_TO_DATE(DATE_FORMAT(DATE_ADD(now(), Interval 1 Day), '%Y-%m-%d 00:00:00'), '%Y-%m-%d %T');

개발중에, 레어와 레어리티에 대한 의문점이 생겨서 정리


rate 

레이트, 즉 확률 % 이다. rate 는 절대값으로 해당 rate 에 속한 것이 않나올수도있다. 


ratity

레어리티는 분포도라고 생각하면된다. 즉 희귀도를 말하며, 어떤 분류내에서 분포도를 나타낸다.


레어리티의 값은 가중치로 보면된다. 즉 어떤 분류내에 4개의 제품이 있다고하면 해당 제품들은 모두 x 의 가중치를 받는다.


A : 1 

B : 1

C : 1

D : 1


와같이, a,b,c,d 모두 1의 가중치를 받는다고 보면된다.


이와 반대로, rate 의 경우는 모든것을 더한 값이 100%가 되야한다. rarity 는 미만이거나 초과할수있음.



위 내용중에 틀린점이 있으면, 댓글부탁드립니다. 문의 및 지적은 언제든지 환영입니다!~

+ Recent posts