# 화리 merkle mint 에러

**URL:** <https://devforum.kaia.io/t/merkle-mint/5062>\
**Category:** Kaia\
**Tags:** klaytn\
**Created:** [4월 29, 2022, 3:48오후 UTC](https://devforum.kaia.io/t/merkle-mint/5062 "2022-04-29T15:48:51Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![form](https://avatars.discourse-cdn.com/v4/letter/f/4af34b/32.png) [@form](https://devforum.kaia.io/u/form)\
**Post date:** [4월 29, 2022, 3:48오후 UTC](https://devforum.kaia.io/t/merkle-mint/5062/1 "2022-04-29T15:48:51Z")

</div>

![111](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/2X/b/bf7dc2ef376d115040f4b40c2a7784baca55120d.png)

```auto
    const merkleTree = new window.MerkleTree(leafNodes, window.keccak256, {sortPairs: true});

    const claimingAddress = window.keccak256(account);

    const hexProof = merkleTree.getHexProof(claimingAddress)
    
    //console.log(merkleTree.verify(proof, leaves[index], rootHash, true, {hashLeaves: true, sortLeaves: true, sortPairs: true}));

    //const estimateResult = "";
    
    //console.log(estimateResult);

    //try {

        const receipt = await myContract.methods.whitelistMint(amount, hexProof)
        .send({
            from: account,
            gas: typeof estimateResult == 'number' ? estimateResult : 8000000,
            value: total_value
        });

```

뭐가 문제인지 도저히 못찾겠습니다…  
지갑 트랜잭션창이 뜨긴 하지만 6클튼 수량1개인데 가스비6클튼 나오고…

확인 누르면 오류가 발생합니다.

---

<div class="post-metadata">

**Author:** ![lorance.call](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/lorance.call/32/1653_2.png) [@lorance.call](https://devforum.kaia.io/u/lorance.call)\
**Post date:** [4월 30, 2022, 3:54오후 UTC](https://devforum.kaia.io/t/merkle-mint/5062/2 "2022-04-30T15:54:44Z")

</div>

whitelistMint 메소드를 포함한 컨트랙트의 솔리디티 코드 공유가능하실까요?

트랜잭션은 제대로 수행되었고, 가스비 부족 오류는 아닌것으로 보입니다. Revert 가 발생한 원인은, whitelistMint 메소드내에서 특정 동작 중에 조건이 안맞는 상황의 발생에 의한것으로 고려됩니다.

디버깅을 해야하는 문제이기때문에 전체 소스코드로 내부동작에서 문제가 발생한 부분을 찾아내지않는이상 원인규명이 어렵습니다.

---

<div class="post-metadata">

**Author:** ![form](https://avatars.discourse-cdn.com/v4/letter/f/4af34b/32.png) [@form](https://devforum.kaia.io/u/form)\
**Post date:** [4월 30, 2022, 4:07오후 UTC](https://devforum.kaia.io/t/merkle-mint/5062/3 "2022-04-30T16:07:08Z")

</div>

안녕하세요

[https://docs.google.com/spreadsheets/d/1t1jAmjU9CL7l5T8rZ8nnuUZT5hOJKsMqWwceovGwHxU/edit?usp=sharing](https://docs.google.com/spreadsheets/d/1t1jAmjU9CL7l5T8rZ8nnuUZT5hOJKsMqWwceovGwHxU/edit?usp=sharing)

소스 더 필요할까요?

확인 부탁드립니다… 감사합니다

2022년 5월 1일 (일) 오전 1:04, Klaytn Developers Forum를 통한 LoranceCall \<[notifications@klaytn.discoursemail.com](mailto:notifications@klaytn.discoursemail.com)\>님이 작성:

---

<div class="post-metadata">

**Author:** ![lorance.call](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/lorance.call/32/1653_2.png) [@lorance.call](https://devforum.kaia.io/u/lorance.call)\
**Post date:** [4월 30, 2022, 4:18오후 UTC](https://devforum.kaia.io/t/merkle-mint/5062/4 "2022-04-30T16:18:47Z")

</div>

혹시 성공하신 내역 및 참고하신 튜토리얼도 공유 가능하실까요?  
답변드리는데 도움이 될 수 있을것 같습니다.

참고로, 예상 Gas 비용은 단순히 설정하신 Gas Limit 이 8,000,000 이므로,  
GasPrice \* GasLimit = 750,000,000,000 \* 8,000,000 = 6,000,000,000,000,000,000 peb = 6 KLAY 가 나온것이기 때문에, 크게 신경안쓰셔도 될 것같습니다. 표기되는 숫자를 낮추시려면 Gas Limit 를 적당히 낮추시고 requestedCount 에 어느정도 비례하게 만드시면 큰 문제는 없을것으로 보입니다.

즉 판매가격과는 관련없이 우연히 가격이 동일하게 보여진 것으로 판단됩니다.

---

<div class="post-metadata">

**Author:** ![form](https://avatars.discourse-cdn.com/v4/letter/f/4af34b/32.png) [@form](https://devforum.kaia.io/u/form)\
**Post date:** [4월 30, 2022, 10:09오후 UTC](https://devforum.kaia.io/t/merkle-mint/5062/5 "2022-04-30T22:09:03Z")

</div>

[https://github.com/JoCoding-Blockchain/](https://github.com/JoCoding-Blockchain/)  
여기에 contract 와 site 보고 구현했습니다  
contract whitelistMint 로직은 그대로고요  
site는 whitelistMint 로직이 없어서 제가 merkleTree 예제 보고 구현했습니다

sol 에서 성공한 거래 로그를 드리면 되나요?

2022년 5월 1일 (일) 오전 1:28, Klaytn Developers Forum를 통한 LoranceCall \<[notifications@klaytn.discoursemail.com](mailto:notifications@klaytn.discoursemail.com)\>님이 작성:

---

<div class="post-metadata">

**Author:** ![lorance.call](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/lorance.call/32/1653_2.png) [@lorance.call](https://devforum.kaia.io/u/lorance.call)\
**Post date:** [4월 30, 2022, 10:19오후 UTC](https://devforum.kaia.io/t/merkle-mint/5062/6 "2022-04-30T22:19:31Z")

</div>

일단 쓰시는 용어들이 익숙하지가 않은데

muckleTree 를 구현하셨다는 부분 구체적으로 설명 가능하실까요?

또한 기존에 method 직접 실행해서 성공하셨었다고 말씀하신것으로 기억해서, 성공한적이있으시면 해당 트랜잭션 해쉬도 부탁드립니다.

일단 상황적으로 whitelistMint 부분에서  
‘require(MerkleProof.verify(\_merkleProof, merkleRoot, leaf), ‘Invalid proof!’);’

위 단계에서 revert 가 발생했을 가능성이 높다고 생각되네요. MerkelProof 구현 부분에서 문제가 발생했을것으로 생각합니다.

직접 생성하신 \_murkleProof,  
지정하신 murkleRoot,  
그리고 본인 주소로.생성하신 leaf 인자를 통해

MurkleProof contract 에서 verify method를 수행해보시고, true 값을 받는지 먼저 확인하시길 바랍니다.
