본문 바로가기

개발 일지21

S4: EtherscanAPI로 Verify & publish 하는법 POST맨으로 인증하기 ropsten 네트워크에 올라간 컨트랙트 주소를 확인한뒤 해당 주소에 etherscan에서 contract 부분에 verify & publish를 할 것이다. data: { apikey: $('#apikey').val(), // 이더스캔 본인 API키 module: 'contract', //Do not change action: 'verifysourcecode', //Do not change contractaddress: $('#contractaddress').val(), // verify할 컨트랙트 주소 sourceCode: $('#sourceCode').val(), // verify할 컨트랙트의 소스 codeformat: $('#codeformat').val(), // 코드 포.. 2021. 12. 9.
S4: Credential 발급/조회 + 추가기능 전체코드 // SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.10; abstract contract OwnerHelper { //추상컨트랙트로 Owner에 의한 처리를 위한 컨트랙트 address private owner; //owner는 private로 주소타입 event OwnerTransferPropose(address indexed _from, address indexed _to); //OwnerTransferPropose가 emit되면 log가 기록된다. //인자로 현재 owner주소, 새owner주소가 들어간다. modifier onlyOwner { //onlyOwner가 실행되는 함수는 아래 require를 처리한뒤 작동된다. require(m.. 2021. 12. 3.
S4: 간단한 Credential 발급/조회 졸업증명서 개발하기 claimCredential 으로 발행 => getCredential로 발행주소로부터 VC확인 struct Credential{ uint256 id; address issuer; uint8 alumniType; string value; } Credential 구조 { id: index순서로 idCount; issuer: 발급자로써 크리덴셜을 생성하고 보유자(holder)에게 전달; alumniType: 졸업증명서 타입; value: 크리덴셜에 포함되어야하는 정보, 서명 등 JSON 형태로 저장; } function claimCredential(address _alumniAddress, uint8 _alumniType, string calldata _value) public return.. 2021. 12. 3.
S4: Truffle과 openzeppelin, ganache로 배포하기 VSCODE와 openzeppelin으로 배포하기 MyNFTs.sol로 nft컨트랙트를 작성 한 뒤 내부 mintNFT를 통해 NFT를 발행하는 코드를 truffle로 컴파일하여 openzeppelin으로 배포하려고 한다. 1.initial_migration 을 수정하여 순서대로 contracts폴더안에 든 sol파일이 배포되도록한다. openzeppelin으로 배포하기 트러플 config에서 ganache로 네트워크 이름을 주고 ganache-cli상 host와 port를 적용시킨다. ganache-cli로 네트워크를 연다. 트러플 옵션중에 --network와 함께 뒤에 쓸 네트워크정보는 트러플 config에서 정보를 추가하고 사용하면 된다. 다른 터미널을 통해 truffle migrate --comp.. 2021. 11. 30.
S4: Solidity 가위바위보 게임 //SPDX-License-Identifier: MIT pragma solidity ^0.8.7; contract RPS{ constructor () payable {} enum Hand { rock, paper, scissors //플레이어가 낼 수 있는 가위바위보를 열거형으로 지정 } enum PlayerStatus { STATUS_WIN, STATUS_LOSE, STATUS_TIE, STATUS_PENDING //플레이어 상태를 열거형으로 지정 } enum GameStatus{ STATUS_NOT_STARTED, STATUS_STARTED, STATUS_COMPLETE, STATUS_ERROR //게임상태를 열거형으로 지정 } struct Player{ //플레이어가 가질수 있는 정보들 addres.. 2021. 11. 25.
S2: auth-token JWT 생성하기 쿠키에 refreshToken 담기 refresh token을 쿠키에 담아 보낼 때 sameSite, secure, httpOnly 옵션을 알맞게 설정하셔야 합니다. TOKEN해독하기 try~catch(error) 문 axios headers 보내기 axios.get("https://localhost:4000/",{headers:{Authorization : ~}} 2021. 11. 1.