트랜잭션 전송

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

트랜잭션이란?

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

info

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

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

서명이란?

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

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

트랜잭션 생성

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

트랜잭션 전송

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

info

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

트랜잭션 실행

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

트랜잭션 상태

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

항목 설명 비고
Pending 트랜잭션에 필요한 서명 갯수가 아직 부족해 트랜잭션이 Klaytn으로 전송되지 못하고 보류중인 상태 status=2
Signed 트랜잭션에 일부 계정만 서명한 상태이며 트랜잭션 전송에 필요한 서명 갯수가 아직 부족한 상태 status=3
Submitted 트랜잭션이 Klaytn에 성공적으로 전송된 상태 status=4
Committed 전송된 트랜잭션이 성공적으로 실행된 상태 status=5, 트랜잭션 정보 조회 API를 사용해 상태 확인
CommitError 전송된 트랜잭션이 실행에는 실패한 상태 status=6

info

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

트랜잭션 종류

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

info

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

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

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

항목 설명 비고
KLAY 보내기 Klaytn에 존재하는 다른 계정 주소로 KLAY를 전송 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
스마트 컨트랙트 배포 스마트 컨트랙트를 Klaytn에 배포 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
스마트 컨트랙트 실행 Klaytn에 배포한 스마트 컨트랙트 함수를 실행 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
보류중인 트랜잭션 취소 필요한 모든 서명을 받지 못한 경우와 같이 트랜잭션이 보류(Pending) 상태일 때, 트랜잭션 전송을 취소 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
RLP 인코딩된 문자열로 트랜잭션 전송 RLP 인코딩된 문자열을 사용해 트랜잭션을 Klaytn에 전송 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
계정 업데이트 계정을 다중 서명 계정이나 역할 기반 계정으로 업데이트 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
데이터 앵커링 서비스 체인 데이터를 Klaytn 메인 체인에 앵커링 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
다중 서명 트랜잭션 전송 여러 계정의 서명이 필요한 트랜잭션을 Klaytn에 전송 트랜잭션 전송 수수료 직접 부담 또는 수수료 위임
기타 레거시 트랜잭션 전송, 트랜잭션 정보 조회

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