lockAccount 관련 문의

안녕하세요!

caver-js에서는 lockAccount 기능을 제공하지 않는지 궁금하고,

제공한다면 관련 링크, 또는 사용법 도움 부탁드리겠습니다.

제공하지 않는다면 다른 방법으로 사용할 수 있는 방법이 있을까요?

감사합니다.

안녕하세요 :slight_smile:

personal lockAccount 를 얘기하시는 것이 맞을까요?

caver-js에서 이를 실행하기 위해서는 caver.klay.personal.lockAccount('0x{address}') 을 사용하시면 됩니다.

docs에서는 검색이 안되었는데 도움에 감사드립니다~

lockAccount 관련해서 한가지 궁금한점이 있는데

해당 기능으로 lock을 하면 어떤 기능을 사용할 수 없는건가요?

트랜잭션은 정상적으로 전송이 되는 부분을 확인했습니다~

caver-js에서 personal rpc call은 아직 공식적으로 지원되는 기능은 아닙니다.

어떻게 사용하고 계신지는 모르겠으나, personal rpc call의 lockAccount는 노드에 import된 계정을 lock/unlock할 때에 사용하는 기능입니다.

감사합니다~

글 내용과는 무관한 질문인데

feeDelegatedValueTransferMemo 트랜잭션 전송시
Returned error: intrinsic gas too low 에러가 발생합니다.

트랜잭션 작성은 아래와 같이 했는데 일반 트랜잭션과 다른점이 있나요?
일반 트랜잭션 발생 시는 해당 gas 값으로도 전송이 되는데 feepayer 로 전송시는 가스가 낮다고 나오네요 ㅠ

const feeDelegatedTxMemo = new caver.transaction.feeDelegatedValueTransferMemo({
from: keyring.address,
to: toAddress,
value: caver.utils.toPeb(amount, ‘KLAY’),
gas: 25000,
input: memo,
});

트랜잭션 타입 별로 소모되는 가스량이 다릅니다.

feeDelegatedValueTransferMemo의 경우, valueTransferMemo에서 수수료 대납 트랜잭션 타입에 부과되는 가스가 추가로 필요하게 됩니다.

그러므로 수수료 대납 트랜잭션이 더 많은 가스를 필요로 하게 됩니다.

아래 링크도 같이 참고해 주세요
https://docs.klaytn.com/klaytn/design/transaction-fees#gas-and-unit-price-overview

안녕하세요.

FeedelegatedValueTransferMemo의 경우에는 아래와 같은 추가 gas가 필요합니다.
input data(memo)가 없다면 최소 31000 gas가 필요합니다. 참고 부탁드립니다.

Gas = TxGasValueTransfer + TxGasFeeDelegated + GasPayload

종류 gas 소모량 설명
TxGasFeeDelegated 10000 Gas required for a fee delegation
TxGasValueTransfer 21000 Gas required to transfer KLAY
TxDataGas 100 Gas required per transaction’s single byte

GasPayload = number_of_bytes * TxDataGas

https://docs.klaytn.com/klaytn/design/transaction-fees#account-related-gas-table

답변 감사합니다!

명확하게 이해가 되었습니다.

unlockAccount 자료를 찾다가 위 댓글을 찾았는데,

await caver.klay.personal.unlockAccount('지갑주소', '비밀번호', 10);

이걸로는 오류가 발생하네요. 메소드들은 자동완성으로 떠서 입력이 가능합니다.
혹시 unlockAccount api 가 있을까요?
caver-js 1.6.7 버전을 사용하고 있습니다.

Error: Returned error: The method personal_unlockAccount does not exist/is not available

@johnkim

어떤 노드에 연결하고 계신가요?
RPC 호출은 Caver 를 통해 정상적으로 호출된 것이 맞으나 요청하신 노드 쪽에서 해당 기능을 제공하지 않으면 사용 불가하십니다.

직접 운영하고 계신 노드에 연결하셨다면 노드의 설정 중 아래 설정에 personal namespace 을 추가해주세요.
RPC_API="personal"

1 Like

예 직접 운영중인 en 에 연결하고 있어서 그랬던 모양입니다.
답변 고맙습니다.

1 Like