brunch

You can make anything
by writing

C.S.Lewis

by SKKRYPTO Dec 19. 2019

[Skkrypto X Luniverse]공부노트

타체인 토큰과 루니버스 사이드토큰 스왑하기

안녕하세요 Skkrypto User guide 팀입니다. 지난 시간에 이어서 다른 토큰을 사이드 토큰과 바꾸는 일을 해보겠습니다.

1.     [콘솔] 토큰 브릿지에 ST 전송

지난시간에 사이드 토큰을 가상계좌에 보내주는 스마트 컨트랙트를 만들었으니, 토큰 브릿지를 통해 사이드 토큰을 보내겠습니다.

Recipient는 ‘TokenBridge’의 주소입니다. 100EST를 보내겠습니다.

보냈습니다!

현재 우리는 Side Token인 EST를 스마트 컨트랙트인 TokenBridge에 올려 놨습니다. 이제 해야 할 것은 사용자가 다른 토큰을 TokenBridge에 올렸다면, 다시 말해 스마트 컨트랙트가 성립이 되었다면, 우리의 사이드 토큰을 주면 됩니다. 그러기 위해서는 세 가지 트랜잭션 관리가 필요합니다.

첫 번째는 TransferOwnership입니다. TransferOwnership이란 말 그대로 권한을 넘겨주는 함수입니다. 우리는 TokenBridgeOwner에 권한을 넘겨 줘야합니다. 그래야 TokenBridge에서 후속 작업을 할 수 있으니까요.

두 번째는 payout입니다. Payout은 말 그대로 지불하는 것을 말합니다. TokenBridgeOwner가 사용자REOA에게 Side Token을 지급해주는 함수입니다.

세 번째는 Redeem입니다. 이는 교환해주는 기능으로 루니버스에 있는 사이드 토큰과 다른 체인을 swap할 때 필요합니다. 스마트 컨트랙트가 일어나는 Token Bridge의 영역입니다.


6. [콘솔] 트랜잭션 정의

루니버스에서는 기본적으로 payout이나 redeem, approve등의 함수를 제공하고 있습니다. 제가 할 것은 Create Transaction을 통해 누구에게 줄지만 써서 활용하는 것!

그 전에 IP Whitelist에 사용중인 IP를 등록하는 일도 잊지마세요~


transferOwnership : From 컨트랙트 배포자 To TokenBridgeOwner(REOA)

먼저 transferOwnership을 살펴보겠습니다. TokenBridge라는 컨트랙트에게 권한을 주는 함수입니다. TokenBridge라는 컨트랙트를 REOA로 제어하기 위해서 만든 함수입니다. 매번 직접 사인할 필요없이 API 호출을 통해 사용하기 위해서이죠.

이제 저의 권한을 TokenBridge에게 넘겨줄 수 있습니다.

Payout : From TokenBridgeOwner(REOA) To 사용자(REOA)

이제 payout함수를 살펴보겠습니다. 권한을 부여 받은 TokenBridgeOwner는 이제 TokenBridge에서 사용자에게 루니버스 사이드토큰을 주는 함수가 필요합니다. Payout을 할 때에는 항상 사용자의 uid를 제대로 알고 그에 맞는  REOA에게 줘야 합니다. 다른 사람에게 토큰을 주면 안되겠죠? TokenBridgeOwner가 사용자의 REOA에게 돈을 주면 되겠습니다.


여기서 잠깐! REOA가 TokenBridgeOwner말고 또 필요하네요?

이에 대해 설명해보자면 TokenBridgeOwner이라는 REOA는 콘솔 ‘REOA’입니다. 관리자라고 생각하면 편할 것 같습니다. 그리고 다른 REOA란 사용자용 REOA입니다. 루니버스는 사용자의 Wallet Bridge API를 통해서 사용자 uuid를 생성합니다. 그에 맞는 사용자 REOA를 생성하여 스마트 컨트랙트를 진행합니다.


Redeem : From 사용자(REOA) To TokenBridge(SmartContract)

마지막으로 redeem을 만들어보겠습니다. Redeem은 쿠폰을 redeem한다고 말하듯 사이드 토큰을 다른 토큰으로 바꿔주는 의미로 생각하면 될 것 같습니다. 사용자 REOA가 TokenBridge에게 루니버스 사이드 토큰을 지급하면 다른 블록체인의 코인이나 토큰으로 스왑을 요청하는 작업입니다.

이렇게 해서 루니버스 공부노트가 끝이 났습니다. 짧지 않았던 기간동안 루니버스의 서비스를 활용하면서 블록체인에 대해 더욱 가까워졌습니다. 부족한 실력에도 불구하고 항상 신경 써주신 정유리님, 강명훈 개발자님을 비롯해 도와주신 모든 분께 정말정말 감사드립니다!


“위 글은 람다 256 루니버스의 Dev Plan을 무료로 제공받아 작성하였습니다”

작성자: 이성현/maxlee9185@naver.com

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari