트랜잭션

트랜잭션 실행과 관련된 API는 3가지로 구성됩니다.

상황에 따라 필요한 API들을 순서대로 수행할 수 있습니다.

  • 서명만 생성하는 경우 : 트랜잭션에 필요한 정보 조회 ⇒ 트랜잭션 서명하기

  • 서명 생성 및 브로드 캐스트까지 실행하는 경우 : 트랜잭션에 필요한 정보 조회 ⇒ 트랜잭션 서명하기 ⇒ 트랜잭션 전송하기

트랜잭션에 필요한 정보 조회

트랜잭션에 필요한 수수료와 같은 정보를 조회 합니다.

POST /v1/tx/prepare HTTP/1.1
Host: sdk.wepin.io
X-API-KEY: ${APP_KEY}
X-API-DOMAIN: {APP_DOMAIN}
X-SDK-TYPE: {platform}_rest_api
Content-Type: application/json
Authorization: Bearer ${access_token}

Request

Parameter

NameTypeDescriptionRequired

userId

String

로그인 후 받은 Response의 userId

O

accountId

String

전송할 계정 ID. /v1/account의 response value

O

contract

String

토큰을 전송하려고 할 때, 전송할 토큰의 contract 주소

X

to

String

전송 받을 주소

O

isNft

String

ERC1155 | ERC721 NFT를 전송하려고 할 때, NFT scheme type 을 정의

X

tokenId

Number String

isNft 를 설정하고 NFT를 전송하려고 하는 경우 NFT 의 token ID

X

amount

String

전송할 코인 or 토큰의 개수. FT를 전송할 경우에 사용.

X

Response

Success Response

NameTypeDescription

Name

Type

Description

balance

String

전송하려는 계정의 현재 Balance

decimals

String

전송하려는 계정 코인의 decimals

symbol

String

전송하려는 계정 코인의 symbol

tokenId

Number

전송하려는 계정이 토큰 계정인 경우 tokenId

detail

TxData(Object)

Transaction에 필요한 데이터. 계정의 종류에 따라 다른 TxData 포맷을 가짐.

트랜잭션 서명하기

트랜잭션에 필요한 정보 조회를 통해 조회한 데이터를 이용해서 실제 서명을 진행합니다. 필요에 따라서 TxData의 fee 값을 수정해서 서명을 진행할 수 있습니다. 서명 전에는 반드시 PIN Pad Library를 이용하여 사용자의 지갑 PIN 번호를 받아서 UVD를 함께 전송해야 합니다.

POST /v1/tx/sign HTTP/1.1
Host: sdk.wepin.io
X-API-KEY: ${APP_KEY}
X-API-DOMAIN: {APP_DOMAIN}
X-SDK-TYPE: {platform}_rest_api
Content-Type: application/json
Authorization: Bearer ${access_token}

Request

Parameter

NameTypeDescriptionRequired

userId

String

로그인 후 받은 Response의 userId

O

type

String

서명의 종류 •transaction (transaction) | msg_sign (Personal sign) | sign_data (typed data) • type에 따라 txData 의 구성이 다릅니다. •msg_sign | sign_data 는 현재 EVM transaction만 지원합니다.

O

pin

UVD

사용자의 UVD

O

walletId

String

사용자 지갑 ID

O

accountId

String

전송할 계정 ID. 트랜잭션에 필요한 정보 조회의 accountId와 동일한 값이어야 함.

O

tokenId

String

토큰을 전송하는 경우 tokenId

X

isNft

String

ERC1155 | ERC721

X

contract

String

토큰을 전송하는 경우 contract 주소

X

txData

TxData(Object)

Transaction에 필요한 데이터. 계정의 종류에 따라 다른 TxData 포멧을 가짐. 트랜잭션에 필요한 정보 조회를 통해 조회한 데이터 값을 포함.

O

otpCode

Object

otp 인증 정보

X

Response

Success Response

NameTypeDescription

signatureResult

Object

sign result 값. 전송 네트워크 별로 다른 구조.

transaction

Object

전송 세부 내역

트랜잭션 전송하기

서명된 트랜잭션을 전송합니다.

POST /v1/tx/broadcast HTTP/1.1
Host: sdk.wepin.io
X-API-KEY: ${APP_KEY}
X-API-DOMAIN: {APP_DOMAIN}
X-SDK-TYPE: {platform}_rest_api
Content-Type: application/json
Authorization: Bearer ${access_token}

Request

Parameter

NameTypeDescriptionRequired

userId

String

로그인 후 받은 Response의 userId

O

type

String

서명의 종류 • transaction (transaction) | msg_sign (Personal sign) | sign_data (typed dat • type에 따라 txData 의 구성이 다릅니다. • msg_sign | sign_data 는 현재 EVM transaction만 지원합니다.

O

pin

UVD

사용자의 UVD

O

walletId

String

사용자 지갑 ID

O

accountId

String

전송할 계정 ID. 트랜잭션에 필요한 정보 조회의 accountId와 동일한 값이어야 함.

O

tokenId

String

토큰을 전송하는 경우 tokenId

X

contract

String

토큰을 전송하는 경우 contract 주소

X

isNft

String

ERC1155 | ERC721

X

signatureResult

String | Object

이미 서명된 데이터를 Broadcast 하는 경우 서명(/tx/sign) 후 전달 받은 데이터(수정 없이 그대로 사용)

X

txData

TxData(Object)

Transaction에 필요한 데이터. 계정의 종류에 따라 다른 TxData 포멧을 가짐. 트랜잭션에 필요한 정보 조회를 통해 조회한 데이터 값을 포함.

X

otpCode

Object

otp 인증 정보

X

Response

Success Response

NameTypeDescription

signatureResult

Object

sign result 값. 전송 네트워크 별로 조금씩 다른 구조.

transaction

Object

전송 세부 내역

broadcastData

String

네트워크로 전송한 데이터

txid

String

Transaction ID

Last updated