I Learned/TIL

[TIL] react, ethers, payable, file

beeimp 2022. 6. 16. 02:23
const CreateInputElement = ({ name, placeholder = "", onChange = () => { }, value=undefined }) => { 
    return ( 
        <InputWrapper> 
        { 
            value === undefined 
            ? <Input name={name} placeholder={placeholder} onChange={onChange}></Input> 
            : <Input name={name} placeholder={placeholder} onChange={onChange} value={value}></Input> } </InputWrapper> 
    ); 
}

[TIL] 한줄 요약

날짜

  • 2022.06.15.

목표

  • OpenSea 클론코딩 - IPFS 연동
  • FBI 개인 프로젝트 - 글쓰기 구현

내용

react - input value warning 해결

  • 문제 - value에 undefined가 들어갈 수 있어 발생
  • 해결
    • 1번째 방법
      const provider = await new ethers.providers.Web3Provider(window.ethereum);
      const signer = await provider.getSigner();
      let contract = await new ethers.Contract(SEANAPSE_NFT_CONTRACT_ADDRESS, seanpaseNtfAbi, signer, provider);
    • 2번째 방법
      <input value={state.value || ''} />

ethers 모듈 -사용한 Metamask 지갑 서명

  • 상황 - MetaMask를 통해 NFT 민팅

solidity - address payable

  • 상황 - 여러 로직을 실행 후 msg.sender가 다른 계정에 ether를 보내줄 때
function sendTo(address payable _to) public payable{
        bool result = _to.send(msg.value);                           // 결과를 반환값으로 돌려줌!
        require(result,"Send function failed.");
        emit PaymentSuccessful(msg.value);
    }

JS - jsonObject → 문자열 → Blob → File

  • 상황 - Object를 File로 생성하여 전달해야하는 경우
new File([new Blob([JSON.stringify(obj)])], "fileName.json");

결론

  • 자세한 부분에 대한 학습 진행
  • 모듈을 사용하지 않고 직접 구현하는 중