본문으로 건너뛰기

caver.validator

caver.validator 패키지는 클레이튼에서 애플리케이션을 구현할 때 사용해야 하는 유효성 검사 함수를 제공합니다.

참고 caver.validator는 caver-js v1.6.3 부터 지원됩니다.

validateSignedMessage


caver.validator.validateSignedMessage(message, signatures, address [, isHashed])

서명에서 복구한 공개키를 클레이튼 계정의 계정 키와 비교하여 서명된 메시지의 유효성을 검사합니다.

매개변수

이름유형설명
messageStringRaw 메시지 문자열입니다. 이 메시지가 클레이튼 전용 접두사로 해시된 경우, 세 번째 매개변수는 true로 전달되어야 합니다.
signaturesobject | Array{ v, r, s } 형식의 객체, SignatureData의 인스턴스 또는 SignatureData의 배열입니다. '[ v, r, s ]' 또는 '[[ v, r, s ]]' 배열도 파라미터로 전달할 수 있으며, 이 경우 내부적으로 SignatureData 타입으로 변환됩니다.
addressString메시지에 서명한 계정의 주소입니다.
isHashedboolean(선택 사항, 기본값: false) 파라미터로 전달된 메시지가 접두사 "\x19Klaytn Signed Message:\n" + message.length + message로 해시되었는지 여부입니다.

리턴 값

Promiseboolean을 반환합니다: 프로미스는 메시지의 서명이 유효한지 여부에 대한 부울 값으로 확인됩니다.

예시


const address = '0xa84a1ce657e9d5b383cece6f4ba365e23fa234dd'
const message = 'Some Message'
const signature = [
'0x1b',
'0x8213e560e7bbe1f2e28fd69cbbb41c9108b84c98cd7c2c88d3c8e3549fd6ab10',
'0x3ca40c9e20c1525348d734a6724db152b9244bff6e0ff0c2b811d61d8f874f00',
]
> caver.validator.validateSignedMessage(message, signature, address).then(console.log)
const address = '0xa84a1ce657e9d5b383cece6f4ba365e23fa234dd'
const hashedMessage = '0xa4b1069c1000981f4fdca0d62302dfff77c2d0bc17f283d961e2dc5961105b18'
const signature = [
'0x1b',
'0x8213e560e7bbe1f2e28fd69cbbb41c9108b84c98cd7c2c88d3c8e3549fd6ab10',
'0x3ca40c9e20c1525348d734a6724db152b9244bff6e0ff0c2b811d61d8f874f00',
]
> caver.validator.validateSignedMessage(hashedMessage, signature, address, true).then(console.log)

validateTransaction


caver.validator.validateTransaction(tx)

트랜잭션의 유효성을 검사합니다. 이 함수는 클레이튼 계정의 계정 키에서 얻은 공개키와 signatures에서 복구한 공개키를 비교합니다. 트랜잭션 내부에 feePayerSignatures 변수가 있는 수수료 위임 트랜잭션의 경우, 이 함수는 feePayerSignatures에서 복구한 공개키를 수수료 납부자의 공개키와 비교합니다.

매개변수

이름유형설명
txObject유효성을 검사할 Transaction의 인스턴스입니다.

리턴 값

Promiseboolean을 반환합니다: 트랜잭션이 유효한지 여부에 대한 부울 값으로 프로미스가 해결됩니다.

예시


// Basic transaction will be validated with `signatures`.
const tx = caver.transaction.valueTransfer.create({...})
> caver.validator.validateTransaction(tx).then(console.log)
// Fee-delegation transaction will be validated with `signatures` and `feePayerSignatures`.
const tx = caver.transaction.feeDelegatedValueTransfer.create({...})
> caver.validator.validateTransaction(tx).then(console.log)

validateSender


caver.validator.validateSender(tx)

트랜잭션 발신자의 유효성을 검사합니다. 클레이튼 계정의 계정 키의 공개키와 signatures에서 복구한 공개키를 비교하는 함수입니다.

매개변수

이름유형설명
txObject유효성을 검사할 Transaction의 인스턴스입니다.

리턴 값

Promiseboolean을 반환합니다: 트랜잭션이 유효한지 여부에 대한 부울 값으로 프로미스가 해결됩니다.

예시


const tx = caver.transaction.valueTransfer.create({...})
> caver.validator.validateSender(tx).then(console.log)

validateFeePayer


caver.validator.validateFeePayer(tx)

트랜잭션에서 수수료 납부자의 유효성을 검사합니다. 이 함수는 수수료 납부자의 계정 키의 공개키를 feePayerSignatures에서 복구한 공개키와 비교합니다.

매개변수

이름유형설명
txObject유효성을 검사할 Transaction의 인스턴스입니다.

리턴 값

Promiseboolean을 반환합니다: 트랜잭션이 유효한지 여부에 대한 부울 값으로 프로미스가 해결됩니다.

예시


const tx = caver.transaction.feeDelegatedValueTransfer.create({...})
> caver.validator.validateFeePayer(tx).then(console.log)

Make this page better