# Caver-js를 사용하여 contract의 public 변수의 값은 어떻게 가져오는건가요?

**URL:** <https://devforum.kaia.io/t/caver-js-contract-public/2514>\
**Category:** Caver\
**Created:** [11월 23, 2021, 8:04오전 UTC](https://devforum.kaia.io/t/caver-js-contract-public/2514 "2021-11-23T08:04:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cocos\_No](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/cocos_no/32/1071_2.png) [@Cocos\_No](https://devforum.kaia.io/u/Cocos_No)\
**Post date:** [11월 23, 2021, 8:04오전 UTC](https://devforum.kaia.io/t/caver-js-contract-public/2514/1 "2021-11-23T08:04:03Z")

</div>

제목 그대로 입니다. 메소드를 이용해서 가져오는건 예제들이 있는데

public 변수의 값을 가져오는건 어떻게 하는지 못찾겠습니다.

무조건 getter함수를 만들어야 하나요?

다른 contract보면 아닌거 같은데요. 못찾겠네요.

---

<div class="post-metadata">

**Author:** ![Jamie](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jamie/32/1472_2.png) [@Jamie](https://devforum.kaia.io/u/Jamie)\
**Post date:** [11월 26, 2021, 12:54오전 UTC](https://devforum.kaia.io/t/caver-js-contract-public/2514/2 "2021-11-26T00:54:33Z")

</div>

안녕하세요

따로 getter를 구현하지 않아도 됩니다. 아래 예제 참고해 주세요

```auto
const caver = new Caver('EN url')

async function testFunction() {
    const abi = [
        {
            inputs: [],
            stateMutability: 'nonpayable',
            type: 'constructor',
        },
        {
            inputs: [],
            name: 'creator',
            outputs: [
                {
                    internalType: 'address',
                    name: '',
                    type: 'address',
                },
            ],
            stateMutability: 'view',
            type: 'function',
        },
    ]
    const byteCode =
        '608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060b98061005f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806302d05d3f14602d575b600080fd5b6033605f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea2646970667358221220bb9423869926516122ee109a6be8eddd7167ce9b5f6be29f5533e6bf14c3bd2d64736f6c63430007060033'

    const keyring = caver.wallet.add(caver.wallet.keyring.createFromPrivateKey('0x{private key}')
    )
    let c = caver.contract.create(abi)
    c = await c.deploy(
        {
            from: keyring.address,
            gas: 200000,
        },
        byteCode
    )

    const publicVar = await c.methods.creator().call()
    console.log(publicVar)
}

```

사용된 스마트컨트랙트는 아래와 같습니다

```auto
pragma solidity ^0.7.6;
contract Example {
    address public creator;

    constructor() {
        creator= msg.sender;
    }
}

```
