분류 전체보기

    [Solidity Errror] uncaught (in promise) Error: Please pass numbers as strings or BN objects to avoid precision errors

    uncaught (in promise) Error: Please pass numbers as strings or BN objects to avoid precision errors 라는 에러가 난 코드는 프론트(리액트)에서 아래와 같다. const buy = async () => { await deployed.methods.buyFruit(name, count).send({ from: account, to: CA, value: web3.utils.toWei(count * price, "ether"), }); }; 이유를 구글링 해보니 web3.utils.toWei 함수의 첫번째 매개변수의 타입이 string 타입이였다. 그래서 코드를 아래와 같이 type을 추가해줬다. const buy = async ()..

    [Solidity Error] Member "push" is not available in string[] memory outside of storage

    function getFruitList() public returns(string[] memory){ string[] memory temp; for(uint i=0; i

    [자료구조] 너비 우선 탐색(BFS), 깊이 우선 탐색(DFS)

    1. 너비 우선 탐색(Breadth-first-Search)[BFS] 너비우선 탐색은 트리를 가로질러서 순회한다. 예시) 루트 -> 루트의 자식들 -> 루트의 자식들의 자식들 아래로 내려가기전에 같은 레벨에 있는 모든 노드들을 거쳐가는것이고 큐를 이용한다. 2. 깊이 우선 탐색(Depth-first-Search)[DFS] 형제 노드로 넘어가기전에 수직으로 트리의 끝까지 내려간다. (1) 전위 탐색 : 왼쪽을 모두 순회한 다음 오른쪽 순회 (2) 후위 탐색 : 루트가 가장 마지막에 순회한다 -> 거꾸로 순회한다. (3) 중위 탐색 : 먼저 왼쪽 전체를 순회하고 노드를 방문하고 그다음 오른쪽 순회 3. 너비우선과 깊이우선 사용 시간 복잡도는 둘다 같지만 트리에 따라 공간복잡도가 다르다. 완전히 펼쳐져서 넓게..

    [자료구조] 이진트리

    1. 트리 연결리스트는 선형으로 한가지를 선택한다. 반면에 트리는 비선형으로 여러가지 선택을 할수 있다. 트리는 무조건 자식 노드만 가리켜야 하고 부모나 형제를 가리킬수 없다는 규칙이 있다. 2. 이진트리 트리중 이진 트리는 부모가 가질수 있는 최대 자식노드는 2개이다. 따라서 노드는 2개 이하의 자식노드를 가질 수 있다. 또한 이진트리는 자기보다 작은수는 왼쪽, 큰수는 오른쪽에 배치한다는 특징을 가지고 있다. 3. 트리 용어 root : 꼭대기 노드 child : 자식 노드 parent : 부모 노드 siblings : 부모가 같은 자식들 leaf : 자식이 없는 노드 edge : 노드에서 다른 노드로 향하는 화살표 4. 이진트리 클래스 (1) 클래스 및 노드 class Node { constructo..

    [자료구조] 스택-큐

    1. 스택과 큐 스택 : 후입선출 - 나중에 들어온것이 먼저 나간다. 큐 : 선입선출 - 먼저 들어온것이 먼저 나간다. 배열을 이용하여 구현한다면 스택은 배열의 기본 메소드 push와 pop을 이용하면 시간 복잡도 O(1)로 처리할 수 있지만 큐는 push, shift 또는 unshift, pop 을 이용하기 때문에 시간복잡도 O(n)이다. 자료구조를 직접 만들어 사용한다면 큐의 시간복잡도를 O(1)로 낮출수 있다. 2. 스택 (1) 클래스 및 노드 class Node { constructor(val) { this.val = val; this.next = null; } } class Stack { constructor() { this.first = null; this.last = null; this.si..

    [BlockChain] geth

    [BlockChain] ubuntu 환경 설정 메타마스크와 연결하고 geth, ganache 를 실행하기 위해서 unbuntu 환경에서 개발을 진행한다. window 기준으로 설치를 진행한다. 0. 우분투 환경 설정 (1) 제어판 -> 프로그램 -> 프로그램 및 기능 -> windows diary-blockchain.tistory.com 1. geth 개념 (1) private network 가상 사설망이란 뜻인데 회사 조직에서 독립적으로 사용하는 네트워크(인트라넷)라고 생각하면 된다. 그 가상 사설망으로 우리는 geth를 사용한다. (2) chaindata, keystore chaindata 폴더 : 블록 헤더 내용, 블록의 바디 트랜잭션의 내용이 들어있다. keystore 폴더 : geth에서 관리하..