2 글 보임 - 1 에서 2 까지 (총 2 중에서)
-
글쓴이글
-
2022년 10월 26일 11:38 #51583
최철웅참가자질문: 한 개의 숫자를 전달하는 경우에는 잘 작동시킬 수 있습니다. 하지만 숫자와 문자를 동시에 인자를 전달하여 솔리디티 함수를 작동시키고 싶습니다. js측 코드를 어떻게 작성해야 하나요? 1.단 한 개의 인자를 주입하면 잘 잘 동작 시킬 수 있습니다. html 측 //구매할 박스 수량을 보낸다 id="buyboxamount" <div class="input-group mb-3"> <input type="text" class="form-control" id="buyboxamount" placeholder=" 구매할 보물상자 갯수를 입력하세요 " aria-label="Recipient's username" aria-describedby="basic-addon2"> <span class="input-group-text" id="basic-addon2" style="cursor: pointer;" onclick="Buybox()">보물상자사기</span> </div>
js 측
let Buybox = async () => { if (document.getElementById("Getbox").value !== '-') { let userProvider = new ethers.providers.Web3Provider(window.ethereum, "any"); await window.ethereum.request({ method: "wallet_addEthereumChain", params: [{ chainId: "0x38", rpcUrls: ["https://bsc-dataseed.binance.org/"], chainName: "Binance Smart Chain", nativeCurrency: { name: "BNB", symbol: "BNB", decimals: 18 }, blockExplorerUrls: ["https://bscscan.com/"] }] }); await userProvider.send("eth_requestAccounts", []); let signer = userProvider.getSigner(); let huntContract = new ethers.Contract(contractAddress.huntAddr, contractAbi.hunt, signer); try { await huntContract.buybox(document.getElementById('buyboxamount').value); } catch(e) { alert(e.data.message.replace('execution reverted: ','')) } } };
2.질문 (퀴즈 ID 값,정답) 전달하여 솔리디티 함수 작동하게 하기
html 측 <div class="input-group mb-3"> <input type="text" class="form-control" id="Answer" placeholder=" 정답을 입력하세요 " aria-label="Recipient's username" aria-describedby="basic-addon2"> //정답 값은 전달할 수 있는 퀴즈ID는 어떻게 주입 시켜야 하는지? <span class="input-group-text" id="" style="cursor: pointer;" onclick="Hunting()">정답제출</span> </div>
JS측 (작동되지 않음) let Hunting = async () => { if (document.getElementById("Getanswer").value !== 'null') { let userProvider = new ethers.providers.Web3Provider(window.ethereum, "any"); await window.ethereum.request({ method: "wallet_addEthereumChain", params: [{ chainId: "0x38", rpcUrls: ["https://bsc-dataseed.binance.org/"], chainName: "Binance Smart Chain", nativeCurrency: { name: "BNB", symbol: "BNB", decimals: 18 }, blockExplorerUrls: ["https://bscscan.com/"] }] }); await userProvider.send("eth_requestAccounts", []); let signer = userProvider.getSigner(); let huntContract = new ethers.Contract(contractAddress.huntAddr, contractAbi.hunt, signer); let tid = document.getElementById("Tid"); let answer = document.getElementById (_.toArry(Answer)); try { await huntContract.hunting('tid','answer').value; //이 부위에 두개(퀴즈ID 숫자타입& 정답 문자타입)의 값을 넣어서 전달하면 작동되야 함 } catch(e) { alert(e.data.message.replace('execution reverted: ','')) } } };
2022년 10월 26일 16:41 #51610
codingapple키 마스터솔리디티가 제공하는 함수면 그 라이브러리 사용법을 뒤져봐야합니다 아니면 array object같은데에 담아서 보냅시다
-
글쓴이글
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
- 답변은 로그인 후 가능합니다.