• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 두개의 인자로 함수작동시키는 방법

두개의 인자로 함수작동시키는 방법

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #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: ',''))
          }
        }
      };
    
    
    		
    	
    #51610

    codingapple
    키 마스터
    솔리디티가 제공하는 함수면 그 라이브러리 사용법을 뒤져봐야합니다
    아니면 array object같은데에 담아서 보냅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠