# caver.klay.KIP17 Missing

**URL:** <https://devforum.kaia.io/t/caver-klay-kip17-missing/3172>\
**Category:** Caver\
**Created:** [1월 11, 2022, 2:27오전 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172 "2022-01-11T02:27:11Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![soccer0874](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/soccer0874/32/1483_2.png) [@soccer0874](https://devforum.kaia.io/u/soccer0874)\
**Post date:** [1월 11, 2022, 2:27오전 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/1 "2022-01-11T02:27:11Z")

</div>

cdn용 caver.js(caver-min.js)어떤 버전에도 caver.klay.KIP17()가 없나요?  
계속 is not a comstructor 오류가 뜨며 caver.klay를 console.log했을때도 KIP17은 없는듯 하였습니다.

---

<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:** [1월 11, 2022, 8:25오전 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/2 "2022-01-11T08:25:27Z")

</div>

안녕하세요.

Nodejs에서 제공하는 deprecate 함수의 문제인 것 같은데요, 혹시 caver.klay.KIP17 대신 caver.kct.kip17을 사용해 보시겠어요?  
참고로 [caver.kct](https://docs-space.klaytn.com/bapp/sdk/caver-js/api-references/caver.kct) ([caver.kct.kip7](https://docs-space.klaytn.com/bapp/sdk/caver-js/api-references/caver.kct/kip7), [caver.kct.kip17](https://docs-space.klaytn.com/bapp/sdk/caver-js/api-references/caver.kct/kip17), [caver.kct.kip37](https://docs-space.klaytn.com/bapp/sdk/caver-js/api-references/caver.kct/kip37)) 모두 [caver.wallet](https://docs-space.klaytn.com/bapp/sdk/caver-js/api-references/caver.wallet)에 추가된 키링들로 동작합니다.  
자세한 내용은 문서를 확인해 주시기 바랍니다.

---

<div class="post-metadata">

**Author:** ![soccer0874](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/soccer0874/32/1483_2.png) [@soccer0874](https://devforum.kaia.io/u/soccer0874)\
**Post date:** [1월 12, 2022, 7:56오전 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/3 "2022-01-12T07:56:16Z")

</div>

caver.kct.kip17 사용시

this.approved = await this.KIP17Instance.approve(this.feePayer.address, tokenId, {  
from: this.sender.address  
})  
을 실행하게 되면 다음과 같은 에러가 생성됩니다.

Error: “data” and “input” cannot be used as properties of transactions at the same time.

caver.klay.KIP17에서는 정상작동하였습니다.

node 기반이 아닌  
cdn을 사용한 브라우저 환경에서는 caver.kct 자체가 없는 것 같습니다.  
최신버전 ( )  
을 사용하였습니다

---

<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:** [1월 12, 2022, 11:44오후 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/4 "2022-01-12T23:44:58Z")

</div>

안녕하세요 에러 재현을 할 수 있는 샘플코드 제공 부탁드립니다.

---

<div class="post-metadata">

**Author:** ![soccer0874](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/soccer0874/32/1483_2.png) [@soccer0874](https://devforum.kaia.io/u/soccer0874)\
**Post date:** [1월 13, 2022, 2:53오전 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/5 "2022-01-13T02:53:22Z")

</div>

```
main()
async function main(){
const FeeDelegationTransaction= require('./src/FeeDelegationTransaction.js')

const contractAddress="스마트 컨트렉트 주소"

//senderPrivateKey, feePayerPrivateKey, receiverPrivateKey
const feeDelegationTransaction =new FeeDelegationTransaction("senderPrivateKey", "feePayerPrivateKey", "receiverPrivateKey")
await feeDelegationTransaction.setKip17Instance(contractAddress)
await feeDelegationTransaction.approveFeePayer("tokenId")
}

module.exports =class FeeDelegationTransaction {
constructor(senderPrivateKey, feePayerPrivateKey, receiverPrivateKey) {
    const Caver = require('caver-js')
    this.caver = new Caver('https://api.baobab.klaytn.net:8651/')
    this.sender = this.caver.klay.accounts.wallet.add(senderPrivteKey )
    this.feePayer = this.caver.klay.accounts.wallet.add(feePayerPrivateKey)
    this.receiver = this.caver.klay.accounts.wallet.add(receiverPrivateKey)
}

async setKip17Instance(contractAddress) {
    try {
        this.KIP17Instance = await new this.caver.kct.kip17(contractAddress)
        console.log("kip17Instance: ",await this.KIP17Instance.detectInterface())
    } catch (error) {
        console.log(error)
    }
}

async approveFeePayer(tokenId) {
    try {
        this.approved = await this.KIP17Instance.approve(this.feePayer.address, tokenId, {
            from: this.sender.address
        })
        console.log(`\nToken approve to test receipt ==========> `)
        console.log(this.approved)
    } catch (error) {
        console.log(error)
    }
}
}
```

---

<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:** [1월 14, 2022, 12:06오전 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/6 "2022-01-14T00:06:08Z")

</div>

일단 주신 소스코드만으로는 cdn을 사용해서 재현이 어렵습니다.  
필요한 부분만 떼서 깃헙에 올려주셔도 됩니다.

그리고 사용하는 버전을 최신으로 올려보시겠어요?  
Error: “data” and “input” cannot be used as properties of transactions at the same time. 이 에러는 최신 버전에서는 발생하지 않아야 합니다.

---

<div class="post-metadata">

**Author:** ![soccer0874](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/soccer0874/32/1483_2.png) [@soccer0874](https://devforum.kaia.io/u/soccer0874)\
**Post date:** [1월 16, 2022, 2:24오후 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/7 "2022-01-16T14:24:41Z")

</div>

해결!!!  
kaikas 는 window.caver 혹은 caver를 제공합니다  
하지만 이는 굉장히 outDateded 되어있습니다.  
버전이 상당히 낮습니다. 따라서 KIP17이 없습니다.  
따라서 cdn을 통해서 caver.min을 사용하시고자하는경우  
script src=“[https://cdnjs.cloudflare.com/ajax/libs/caver-js/1.6.1/caver.min.js](https://cdnjs.cloudflare.com/ajax/libs/caver-js/1.6.1/caver.min.js)”  
다음과 같이 사용하셔야합니다.

const caver=new Caver(klaytn)

이 글을 좋아요 많이 눌러주셔서 비슷한 오류를 겪는 개발자들이 이 글을 보고 재빨리 오류를 수정할 수 있었으면 합니다.  
또한 kaikas의 caver버전을 긴급히 업데이트하시도록 좀 조치를 취하셨으면 감사하겠습니다.

---

<div class="post-metadata">

**Author:** ![soccer0874](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/soccer0874/32/1483_2.png) [@soccer0874](https://devforum.kaia.io/u/soccer0874)\
**Post date:** [5월 13, 2022, 5:29오후 UTC](https://devforum.kaia.io/t/caver-klay-kip17-missing/3172/8 "2022-05-13T17:29:15Z")

</div>

이제 kaikas 에서 제공하는 caver.js 버전은 최신 라이브러리로 업데이트 되는 것 같습니다
