분류 전체보기

    [BlockChain] 스마트 컨트랙트 배포

    1. controll/client.js, controll/compile.js 작성 (1) client.js // npm i web3 const Web3 = require("web3"); let instance; class Client { constructor(_url) { // instance의 내용이 있으면 내용이 이미 있는 instance 반환 if (instance) return instance; // instance 내용이 없으면 동적 할당으로 생성한 Client 클래스 객체에 web3 생성 this.web3 = new Web3(_url); // 생성후에 instance 변수에 Client 클래스 객체 할당 instance = this; } } module.exports = { Client }; ..

    [BlockChain] solidity 컴파일

    1. solc solc 설치 npm i solc 컴파일 명령어 // npx solc --bin --abi (파일경로) npx solc --bin --abi test.sol 작성한 test.sol 파일 /* 솔리디티 버전 */ pragma solidity ^0.8.15; // HelloWorld 컨트랙트 contract HelloWorld { string text; constructor(){ text = "Hellooooo World~~~~~"; } function getText() public view returns(string memory){ return text; } function setText(string memory value) public{ text = value; } } 2. abi,bin ..

    [ethFruitShop] 중간 점검

    1. 구현한 기능들 토큰 발급 상점 - 과일구매(eth,토큰), 토큰 구매 구매하기,판매하기 - 유저들간 과일 거래 보유과일 - 보유한 과일 확인 2. 추가할 기능들 event를 이용하여 거래내역 보는 페이지 구현 과일을 다른 유저에게 보내기 유저간 과일 구매 토큰으로도 가능하게 구현 개인 프로젝트로 하려고 생각했던것은 아니었지만 학원에서 간단한 과제를 하다가 이것저것 기능을 더 추가하고 싶어 만들다가 프로젝트로 생각하고 정리하려고 한다. cryptozombie와 같이 solidity의 기본 문법을 아는것도 중요하지만 프로젝트를 실제로 해보면서 부딪히는 오류들을 마주하는게 나와 맞는 공부 방법인것 같다. 기능들도 미리 생각했던 것이 아니기때문에 기능을 하나 추가할때마다 코드를 갈아 엎어야 되는 부분이 많..

    [React Error] JSON schema for a JavaScript project using TypeScript tooling

    프론트를 만들다 보니 파일의 수가 많아지면서 import 경로가 깔끔하게 보이지 않았다. 그래서 루트 폴더를 설정해주기 위해 jsconfig.json 파일을 만들고 아래와 같이 경로를 설정해줬다. { "compilerOptions": { "baseUrl": "src" }, "include": ["src"] } 하지만 위 파일에 JSON schema for a JavaScript project using TypeScript tooling 라는 오류가 떴다. 오류를 찾아보니 대부분 아래의 설정을 검색해서 체크하라고 한다. 그래도 실행이 안되서 다른방법들을 해봤지만 모두다 실패했다. 나의 경우는 남들과는 달랐다. 나는 jsconfig.json 파일을 react프로젝트 src 경로에 생성했었다. 이것이 문제였고..

    [자료구조] 이진힙 - BinaryHeap

    1. 이진힙이란? 힙이란 모양은 트리와 같다. 트리와는 다르게 힙은 부모와 자식간의 규칙이 있다는 것이다. 최대 이진힙에서는 부모노드가 항상 자식노드보다 큰 값을 가진다. 왼쪽이나 오른쪽 상관없이 한 레벨 아래에 있는 자식 노드보다 항상 부모 노드가 크다. 형제들 사이에는 특별한 규칙이 없다. 최소 이진힙에서는 그 반대이다. 부모 노드가 언제나 양쪽의 자식보다 작다. 이진힙은 언제나 가장 적은 공간을 차지한다. 2. 최대 이진힙 구현 (1) 클래스 class MaxBinaryHeap { constructor() { this.values = []; } } (2) insert insert(element) { this.values.push(element); this.bubbleUp(); } (3) bubble..

    [ethFruitShop] how to return mapping

    solidity에서 함수를 통해 mapping 자체를 return 하고 싶었다. 결과적으론 mapping을 return할수 없었다. 내가 얻고 싶은건 객체였으나 mapping을 return할수 없었기 때문에 mapping과 비슷하게 return 할수 있는 방법을 찾아봤다. 그래서 key값과 value값을 따로 뽑아 프론트에서 객체를 만들어주는 방법을 선택했다. const hasFruit = await deployed.methods .hasFruit() .call({ from: account }); const fruitWallet = await deployed.methods .getFruitWallet() .call({ from: account }); let temp = {}; for (let i = 0;..