# Caver-java 에서 contract event log 조회 방법

**URL:** <https://devforum.kaia.io/t/caver-java-contract-event-log/3569>\
**Category:** Kaia Wallet\
**Tags:** caver-java\
**Created:** [2월 3, 2022, 6:05오후 UTC](https://devforum.kaia.io/t/caver-java-contract-event-log/3569 "2022-02-03T18:05:44Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tjdcks1781](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/tjdcks1781/32/1466_2.png) [@tjdcks1781](https://devforum.kaia.io/u/tjdcks1781)\
**Post date:** [2월 3, 2022, 6:05오후 UTC](https://devforum.kaia.io/t/caver-java-contract-event-log/3569/1 "2022-02-03T18:05:44Z")

</div>

안녕하세요. bapp 개발중에 NFT minting 이력을 백엔드(caver-java 사용)단에서 조회하고자 이벤트 로깅 조회하는 부분을 개발하고 있습니다.

컨트랙에 선언된 이벤트는  
`event CookieCreated (uint256 indexed tokenId, string title, string text, string imageUrl, string tag);`  
위와 같고,

caver-java 에서는 `KlayLogs logs = contract.getPastEvent("CookieCreated", new KlayLogFilter())`  
위와 같이 요청해서 생성된 로그를 출력 시도해보았는데요, (abi, address 주입해서 컨트랙 초기화는 완료했습니다)

배포된 컨트랙은 ([Klaytnscope](https://baobab.scope.klaytn.com/account/0x0C84b7d9D5ed4F4062410a06314F33C646987bAd?tabId=eventLog)) 해당 내용이고, 테스트를위해서 임의로 event emit 후에 조회를 시도해보았는데요,  
출력 결과로 아무것도 나오지가 않더라구요.  
`{"jsonrpc":"2.0","id":0,"result":[]}`

KlayLogFilter 관련해서 사용법을 잘 몰라서 기본 생성자로 넣어준것이 문제가 되는것인가요?  
아니면 테스트과정에서 잘못된 부분이 있는것인가요?

추가로, KlayLogFilter의 생성자 파라미터에 대한 설명이 없어서 동작을 이해하는데 어려움이 있습니다 ㅠ\_ㅠ. 혹시 각 파라미터의 의미도 알려주시면 감사하겠습니다.

```auto
public KlayLogFilter() {
        super();
    }

    public KlayLogFilter(DefaultBlockParameter fromBlock, DefaultBlockParameter toBlock,
                         List<String> address, String blockHash) {
        super(fromBlock, toBlock, address);
        this.blockHash = blockHash;
    }

    public KlayLogFilter(DefaultBlockParameter fromBlock, DefaultBlockParameter toBlock,
                         String address, String blockHash) {
        this(fromBlock, toBlock, Arrays.asList(address), blockHash);
    }

```

---

<div class="post-metadata">

**Author:** ![Kale](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/kale/32/148_2.png) [@Kale](https://devforum.kaia.io/u/Kale)\
**Post date:** [2월 4, 2022, 1:45오전 UTC](https://devforum.kaia.io/t/caver-java-contract-event-log/3569/2 "2022-02-04T01:45:41Z")

</div>

안녕하세요.

`contract.getPastEvent()`는 내부적으로 klay\_getLogs JSON/RPC API 호출합니다.

> **[Filter](https://ko.docs.klaytn.com/dapp/json-rpc/api-references/klay/filter#klay_getlogs)**

아래 링크는 caver-java에서 getPastEvent()를 unit test한 method인데 도움이 되실 것 같아 알려드립니다.

> <https://github.com/klaytn/caver-java/blob/dev/core/src/test/java/com/klaytn/caver/common/contract/ContractTest.java#L1023>

---

<div class="post-metadata">

**Author:** ![tjdcks1781](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/tjdcks1781/32/1466_2.png) [@tjdcks1781](https://devforum.kaia.io/u/tjdcks1781)\
**Post date:** [2월 16, 2022, 3:52오후 UTC](https://devforum.kaia.io/t/caver-java-contract-event-log/3569/3 "2022-02-16T15:52:25Z")

</div>

안녕하세요. 전달해주신 내용을 통해 많은 참고가 되고있습니다.

그런데 혹시, caver-java에서는 indexed 키워드에 대한 이벤트조회는 지원하지 않나요?  
indexed로 선언된 인자에 대해서 groupBy된 결과를 받아야 하는데, KlayLogFilter 생성인자에는 index를 지원하는 부분은 없어보여서요!
