저희가 그동안 이벤트를 통한 대납계정으로 서비스를 운영하다가 이번에 대납 이벤트가 종료된 이후로는 기존의 시스템을 그대로 써서 저희가 따로 클레이를 구매한 계정에 매핑을 하여 대납 방식으로 싸인을 하려고 하는데요
싸인할 때 테스트넷에서는 대납계정 설정을 따로 안하고도 feePayer의 public Key와 privateKey자리에 저희가 따로 넣어둔 대납 계정 주소와 PK를 넣으면 됐었는데 1Klay를 계정에 넣어둔 후 보낸 트렌젝션에 대해 다음과 같은 에러가 났습니다.
- info: Error : { result:
{ error: ‘Returned error: insufficient funds of the fee payer for gas * pricehash : {undefined}’ },
error: ‘error’,
id: ‘jsonrpc’ }
메인넷에서는 테스트넷에서와는 다르게 따로 대납계정으로 설정을 해줘야지만 대납 방식으로 트렌젝션을 싸인할 수 있나요 ? 그렇다면 설정할 수 있는 방법을 알려주실 수 있을까요?
1개의 좋아요
안녕하세요, 클레이튼 포럼에 질문을 올려주셔서 감사드립니다.
해당 에러는 입력하신 gas limit * gas price (25 ston)보다 해당 계정의 KLAY가 적어서 발생하는 문제입니다. 더 많은 KLAY를 송금하시거나, gas limit을 줄여서 전송을 해보시면 될 것 같습니다.
감사합니다.
계정에 1KLAY가 있는데 블록 limit이 1KLAY보다 작잖아요 그런 상태에서 트렌젝션을 보냈는데 저런 에러가 뜨면 안되는거 아닌가요?
근데 지금 주신 대납계정으로 하면 에러가 안나고 그 자리에 privateKey를 저희껄 넣으면 에러가 나서 이게 혹시 대납계정으로 안만들어서 나는 에러인지 어떤 에러인지 알고 싶습니다.
Transaction에 gas limit을 얼마로 설정하셨는지 알 수 있을까요?
해결되었습니다. 수수료로는 0.014klay가 들었는데 1Klay만 있으니 실행이 안되고 4KLAY를 넣어두고 하니까 실행이 되네요 혹시 특정 금액 이하로 클레이가 있으면 트렌젝션이 안보내지는 건가요??
gas limit은 최대치가 100,000,000 이걸로 알고 있어서 이걸로 해두긴 했습니다.
다시 확인해보니 가스 리밋은 80,000,000 이였습니다.
네. Tx를 검증할 때 해당 계정이 gas limit * price를 지불할 능력이 있는지를 먼저 확인하게 되어있습니다. 1 KLAY라면 가스의 최대값은 40,000,000입니다. 80,000,000 이라면 2 KLAY 이상 보유하신 상태라면 실행이 가능합니다.
아 그렇군요 감사합니다. 1KLAY로 실행할 수 있는 계산량이 40,000,000 가스로 보면 되나요? 그동안computaioncost와 gas가 같은 단위인줄 알았습니다.
네. Cypress의 gas price가 25 ston (10^9 peb)이고, 1 KLAY는 (10^18 peb) 이기 때문에,
Gas limit (4 * 10^7) * gas price (25 * 10^9) = 10^18 ( 1 KLAY) 이므로, 최대 가스값은 4 * 10^7 입니다.
Klaytn의 화폐단위에 대해서는 아래 URL을 참고해주시기 바랍니다.
https://ko.docs.klaytn.com/klaytn/design/klaytn-native-coin-klay#units-of-klay
감사합니다.
아 이제 완전히 이해했습니다. 친절한 답변 감사합니다 ㅎㅎㅎ
1개의 좋아요