화리 merkle mint 에러

    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클튼 나오고…

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

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

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

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

안녕하세요

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

소스 더 필요할까요?

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

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

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

참고로, 예상 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 에 어느정도 비례하게 만드시면 큰 문제는 없을것으로 보입니다.

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

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>님이 작성:

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

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

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

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

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

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

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

1개의 좋아요