[chat-GPT] .call() 과 .send() 가 있는데 무슨 차이야?

BellBoy·2023년 4월 27일
0

이더리움 블록체인과 상호 작용하는 데 사용되는 인기 있는 라이브러리인 web3.js에서 call() 및 send()는 스마트 계약과 상호 작용하는 데 사용되는 두 가지 다른 방법입니다.

'call()'은 블록체인의 상태를 읽고 상태를 변경하지 않고 값을 반환하는 읽기 전용 메서드입니다. 일반적으>로 블록체인에서 데이터를 가져오는 데 사용됩니다.

반면 send()는 상태를 업데이트하는 블록체인에 트랜잭션을 보내는 메서드입니다. 토큰 전송 또는 사용자 데이터 업데이트와 같이 블록체인의 상태를 변경하는 스마트 계약을 실행하는 데 사용됩니다.

이러한 메서드와 함께 await를 사용하는 경우 await가 call()과 함께 사용되면 다음 코드 줄로 이동하기 전에 블록체인에서 데이터를 가져와서 반환할 때까지 기다립니다. 유사하게, await가 send()와 함께 사용되면 다음 코드 줄로 이동하기 전에 트랜잭션이 채굴되고 네트워크에서 확인될 때까지 기다립니다.

send()로 전송된 거래는 네트워크에서 처리되기 위해 지불해야 하는 가스 수수료가 필요한 반면 call()은 가스 수수료가 필요하지 않다는 점에 유의해야 합니다. 또한 send() 트랜잭션은 잠재적으로 실패할 수 있으며 그에 따라 처리해야 하는 반면 call()은 단순히 데이터를 반환하거나 무언가 잘못되면 오류를 발생시킵니다.

profile
리액트러버

0개의 댓글