안녕하세요
현재 web3를 활용해서 클레이튼 baobab 네트워크와 연결하여 몇 가지 테스트를 진행하려고 하고 있습니다.
이 때 제가 endpoint를 baobab 네트워크와 연결을 했고 web3를 통하여 account를 생성했을 때 LocalAccount가 생성되는 것까지는 확인이 되었습니다.
이 부분에서 제가 LocalAccount를 baobab 네트워크에 등록을 해야하는 방법이 EN을 실행해서 해야하는지 아니면 다른 방법이 있는 궁금하여 질문을 드립니다
답변에 대해 미리 감사드립니다.
안녕하세요, 클레이튼 포럼에 질문을 올려주셔서 감사드립니다.
web3를 통해서 local account를 생성하셨다는 것이, 직접 EN을 띄우고 거기에 연결하셔서 계정을 생성하셨다는 말씀이신가요?
정확히 어떤 실행을 하신 건지 좀 더 자세히 말씀해 주시면 설명드릴 수 있도록 하겠습니다.
local account를 baobab network에 등록한다는 말씀이 무슨 말씀이신지요? account를 별도로 등록하실 필요는 없습니다. account에 대한 추가적인 등록절차 없이 private key를 통해 트랜잭션을 바로 실행시키실 수 있습니다.
감사합니다.
안녕하세요, 답변을 해주셔서 정말 감사합니다.
아직 제가 정확히 이해를 못한 부분이 많은 것 같습니다.
현재 web3로 baobab 네트워크 api로 연결하여 주소를 생성하고 transaction을 생성하는 과정을 진행하고 있는데
아래와 같은 오류가 발생하고 있습니다. 이와 같은 문제를 해결하기 위해서는 어떤 부분들을 점검해야 할까요?
친절하게 답변해주셔서 다시 한 번 감사드립니다.
안녕하세요, 먼저 어떤 노드에 연결하셨나요? 그리고 사용하신 라이브러리는 정확히 어떤것인지 알려주시면 도움이 될 것 같습니다. 가능하시다면 작성하신 코드도 알려주시면 분석하는데 좀 더 도움이 될 것 같습니다.
위 에러는 트랜잭션 서명이 잘못되었다는 에러입니다. chain ID 혹은 private key가 잘못 설정되어있을 수 있으니 확인 부탁드리겠습니다.
감사합니다.
안녕하세요
현재 https://api.baobab.klaytn.net:8651로 엔드포인트를 지정해서 사용하고 있으며, client의 언어가 python으로 되어 있어 web3.py library를 사용하고 있습니다. 이후 아래와 같은 코드로 web3를 사용하여 유저를 생성하여 테스트해보고 있습니다.
정말 감사합니다
안녕하세요,
현재 내용으로는 큰 문제는 없어보입니다.
해당 key로 트랜잭션에 어떻게 서명하셨나요? 서명하는 과정 코드를 보여주시면 확인하는 데 도움이 될 것 같습니다.
안녕하세요
현재 deploy할 때에는아래와 같은 코드로 진행하고 있습니다. 이미지 업로드가 하나밖에 되지 않아 send_contract_call하는 부분은 아래와 같이 작성하였습니다.
답변을 주셔서 정말 감사합니다
def send_contract_call(
web3: Any,
call: Any,
sender_eth_addr: str,
sender_eth_private_key: Optional[bytes] = None,
value: Optional[EtherValue] = None,
gas: Optional[int] = None) → bytes:
“”"
Broadcast a transaction for a contract call, handling the difference
between hosted keys (sender_eth_private_key is None) and local keys
(sender_eth_private_key is not None). Returns the hash of the broadcast
transaction.
"""
tx_desc: Dict[str, Union[str, int]] = {'from': sender_eth_addr}
if value:
tx_desc["value"] = value.wei
if gas:
tx_desc["gas"] = gas
if sender_eth_private_key:
tx_desc["gasPrice"] = web3.eth.gasPrice
tx_desc["nonce"] = web3.eth.getTransactionCount(sender_eth_addr)
transaction = call.buildTransaction(tx_desc)
signed_tx = web3.eth.account.signTransaction(
transaction, sender_eth_private_key)
return web3.eth.sendRawTransaction(signed_tx.rawTransaction)
# Hosted path
return call.transact(tx_desc)
web3.py가 저희가 제공하는 라이브러리가 아니어서, 저도 더 자세히 말씀드리긴 힘들 것 같습니다만,
추측되는 이유는 signTransaction()을 할 때 chainId가 맞지 않게 들어갈 가능성이 있을 것 같습니다.
tx_desc[“chainId”] = 1001 을 설정하시고 테스트해보시겠습니까?
참고로 baobab의 chainId는 1001, Cypress는 8217 입니다.
감사합니다.