> For the complete documentation index, see [llms.txt](https://whs3-doge5k.gitbook.io/smartcontract-security-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://whs3-doge5k.gitbook.io/smartcontract-security-docs/basics/6.-foundry/cast/cast-call.md).

# cast call

## 스마트 컨트랙트 조회 함수 실행

스마트 컨트랙트의 조회 전용 함수 (view, pure) 를 실행할 때 사용하는 명령어이다.

* 트랜잭션을 발생시키지 않기 때문에 가스 비용이 들지 않는다.
* 스마트 컨트랙트의 상태를 변경하지 않고, 단순히 값을 조회하거나 계산 결과를 확인할 때 사용된다.

***

### 명령어 형식

```bash
$ cast call <컨트랙트 주소> "<함수명(파라미터)>" --rpc-url <rpc-url>
```

***

### 주요 특징

* **view, pure 함수 전용**
* public 상태 변수는 자동으로 getter() 함수가 생성되므로 "변수명()" 형식으로 호출 가능
* 상태를 변경하지 않고 값을 확인하기 때문에 디버깅, 조건 검사, 테스트에 유용함

***

### 예시

#### 대상 컨트랙트 (Counter.sol)

```solidity
contract Counter {
    uint256 public number;

    function setNumber(uint256 newNumber) public {
        number = newNumber;
    }

    function increment() public {
        number++;
    }
}
```

#### 값 확인

이전에 cast send를 통해 number = 10으로 설정했기때문에 call 을이용하여   그 값을 조회할 수 있다.

```bash
$ cast call 0x3529415c3DDBD561B7DC03483EadF334b5422ef1 \
  --rpc-url <rpc-url> \
  "number()"
```

#### 실행 결과 예시

* 0x0a → 10의 16진수 결과

<figure><img src="https://2462457462-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FLf9vwRuaws92ULgGvzTi%2Fuploads%2FNCbkXnPDxL1Xsyd8Wi7v%2Fimage.png?alt=media&amp;token=e2aea5e5-3b8a-4baa-a905-f8094b38bbc4" alt=""><figcaption></figcaption></figure>
