트랜잭션 전송

이 페이지는 Wallet API의 트랜잭션 전송 파트를 소개합니다.

트랜잭션이란?

KAS에서 트랜잭션은 클레이튼 트랜잭션과 같습니다. 트랜잭션을 보낸다는 것은 블록체인에 여러분이 원하는 데이터를 업로드하거나, 블록체인상에 이미 업로드했던 데이터를 수정 또는 삭제하거나, 블록체인에 배포된 스마트 컨트랙트를 실행하는 것을 의미합니다. 다시 말해, 트랜잭션을 보낸다는 것은 "블록체인의 상태"를 변화시키는 것입니다. 물론, 실제로 블록체인에 데이터를 기록하거나 데이터를 삭제 또는 수정하려면 여러분이 "전송"한 트랜잭션이 클레이튼에서 문제 없이 "실행"되어야만 합니다.

클레이튼 트랜잭션에 관한 자세한 내용은 다음을 확인하십시오.

여러분이 KAS Wallet API로 블록체인 노드를 운영하지 않아도 클레이튼에 트랜잭션을 보낼 수 있습니다.

서명이란?

서명(Sign)이란 트랜잭션을 보내는 사람이 여러분 자신임을 증명하는 일종의 자격 증명입니다. 여러분이 클레이튼에 트랜잭션을 전송하려면 트랜잭션에 반드시 여러분의 계정 키로 서명해야 하지만, KAS Wallet API는 여러분의 클레이튼 계정이 트랜잭션에 서명하는 작업을 여러분 대신 실행합니다. 여러분은 트랜잭션에 직접 서명하지 않아도 KAS Wallet API 호출 시 필요한 파라미터만 입력하면 트랜잭션을 보낼 수 있습니다.

트랜잭션 생성, 전송, 실행?

트랜잭션 생성

트랜잭션을 "생성"한다는 것은 클레이튼에 보내려는 트랜잭션을 포맷에 맞춰 구성한 후, 트랜잭션을 보내려는 계정(from)이 이 트랜잭션에 서명까지 끝내는 것을 의미합니다. KAS Wallet API는 여러분을 대신해 트랜잭션 포맷을 자동으로 구성하고 이 구성된 트랜잭션에 서명합니다. 여러분은 트랜잭션 포맷을 구성하거나 트랜잭션에 직접 서명하지 않아도 KAS Wallet API 호출 시 필요한 파라미터만 입력하면 트랜잭션을 보낼 수 있습니다.

트랜잭션 전송

트랜잭션을 "전송"한다는 것은 포맷을 맞추고 서명까지 받은 트랜잭션을 블록체인 플랫폼인 클레이튼에 전송하는 것을 의미합니다.

트랜잭션을 "전송" 단계에서 트랜잭션 전송 수수료가 발생합니다.

트랜잭션 실행

트랜잭션을 "실행"한다는 것은 클레이튼에 전송된 트랜잭션이 실제로 실행되는 것을 의미합니다. 이 단계에서 실제로 블록체인에 새 데이터가 기록되거나 기존 데이터의 삭제 또는 수정이 일어납니다.

트랜잭션 상태

트랜잭션은 다음과 같은 상태를 같습니다:

항목

설명

비고

Pending

트랜잭션에 필요한 서명 갯수가 아직 부족해 트랜잭션이 클레이튼으로 전송되지 못하고 보류중인 상태

status=2

Signed

트랜잭션에 일부 계정만 서명한 상태이며 트랜잭션 전송에 필요한 서명 갯수가 아직 부족한 상태

status=3

Submitted

트랜잭션이 클레이튼에 성공적으로 전송된 상태

status=4

Committed

전송된 트랜잭션이 성공적으로 실행된 상태

status=5, 트랜잭션 정보 조회 API를 사용해 상태 확인

CommittedError

전송된 트랜잭션이 실행에는 실패한 상태

status=6

트랜잭션이 필요한 서명을 모두 받으면 트랜잭션은 자동으로 전송됩니다.

트랜잭션 종류

트랜잭션의 종류에 관한 자세한 내용은 다음을 확인하십시오.

typeInt 변수는 트랜잭션 종류를 구별하는 값입니다.

KAS Wallet API로 트랜잭션 전송하기

KAS Wallet API를 사용하면 Klaytn에 다양한 종류의 트랜잭션을 보낼 수 있습니다.

항목

설명

비고

KLAY 보내기

Klaytn에 존재하는 다른 계정 주소로 KLAY를 전송

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

스마트 컨트랙트 배포

스마트 컨트랙트를 Klaytn에 배포

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

스마트 컨트랙트 실행

Klaytn에 배포한 스마트 컨트랙트 함수를 실행

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

보류중인 트랜잭션 취소

필요한 모든 서명을 받지 못한 경우와 같이 트랜잭션이 보류(Pending) 상태일 때, 트랜잭션 전송을 취소

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

RLP 인코딩된 문자열로 트랜잭션 전송

RLP 인코딩된 문자열을 사용해 트랜잭션을 Klaytn에 전송

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

계정 업데이트

계정을 다중 서명 계정이나 역할 기반 계정으로 업데이트

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

데이터 앵커링

서비스 체인 데이터를 클레이튼 메인 체인에 앵커링

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

다중 서명 트랜잭션 전송

여러 계정의 서명이 필요한 트랜잭션을 Klaytn에 전송

트랜잭션 전송 수수료 직접 부담 또는 수수료 위임

기타

레거시 트랜잭션 전송, 트랜잭션 정보 조회

이 API에 관한 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움을 받으십시오.