프로그래밍233 크립토좀비로 솔리디티 기초 알기 - 챕터1 / sol 0.8.15버전으로 개선한 코드 컨트랙트(contract) 생성 이더리움 어플리케이션의 기본적인 구성요소로 솔리디티는 이걸 위해 만들어짐모든 변수와 함수는 반드시 어느 한 컨트랙트에 속해있음. 컨트랙트 내에서 상태변수를 선언할 수 있고, 이는 컨트랙트 저장소에 영구적으로 저장된다. contract HelloWorld { pragma solidity ^0.8.15; } 상태 변수 타입스크립트처럼 변수의 상태를 작성해줘야한다. 상태변수는 컨트랙트 저장소에 영구적으로 저장됨 = 이더리움 블록체인에 기록됨 uint thisIsNumber = 100; uint dnaModulus = 10 ** thisIsNumber; string thisIsStr = 'hello'; 새 구조체(struct) 생성 복잡한 자료형 객체를 생성한다고 생각하면 된다... 2022. 5. 31. 메타마스크에서 테스트 토큰 가져오기 토큰 가져오기 클릭 정보 작성하기 토큰 계약 주소 : 민팅했을때 생성된 주소(CA) 토큰 기호 : 앞으로 사용할 기호 토큰 십진수 : 1을 사용하면 0.1 단위로 책정된다. 여기서 나는 각각 민팅시 발생한 주소, HAS, 1을 넣었다. 토큰 생성 완료 입력하고나면 다음과 같이 토큰이 생성되어있다. 민팅을 할때마다 0.1씩 증가되어 있을것이다. 2022. 5. 26. 솔리디티, 리믹스 에러 code 4001, code 32603, code 32000 1. code 4001, 메타마스크 거래를 취소할때 발생하는 에러 MetaMask - RPC 오류: MetaMask Tx 서명: 사용자가 트랜잭션 서명을 거부했습니다. {코드: 4001, 메시지: 'MetaMask Tx 서명: 사용자가 트랜잭션 서명을 거부했습니다.'} MetaMask - RPC Error: MetaMask Tx Signature: User denied transaction signature. {code: 4001, message: 'MetaMask Tx Signature: User denied transaction signature.'} 2. code -32603 MetaMask - RPC 오류: 내부 JSON-RPC 오류입니다. {코드: -32603, 메시지: '내부 JSON-RPC.. 2022. 5. 26. [220531] 사이트에 접속하자마자 메타마스크 연동하기 / 갤러리 보이지 않음 이슈해결 해당 url에 접속하면 메타마스크와 연동하게 해주는 로직 구성 redux로 데이터를 넘겨주려고하다가 넘겨주려는 데이터가 메타마스크 지갑주소 하나인걸 생각하면 볼륨이 너무 과해서 고민. 교수님이 redux말고 contextAPI로 연결해보라고해서 사용해보았다. import Web3 from 'web3' import React, { FC, useEffect, useState, createContext, useContext } from "react"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import App from './_app' export const AccountContext = createContext() const Acco.. 2022. 5. 26. React Redux - 기본 용어 정리, 실행 흐름, 세가지 원칙 redux 기본 용어 1. action 상태에 변화가 필요하다면 action을 일으켜야한다. action은 객체로 표현되며 type 필드를 필수로 가져야한다. type에는 action을 설명하는 string값이 들어가야하며, payload에는 추가할 다른 필드를 작성한다. { type: 'ADD', payload: { id: 1, text: 'object' } } 2. action creater, createAction action creater : 액션객체를 만들어주는 함수 createAction : 직접 객체를 만들지 않아도 되는 함수 import { createAction, handleActions } from 'redux-actions' const CHANGE_USER = 'user/CHANGE_.. 2022. 5. 20. Ubuntu 서버에 Nginx, Certbot 사용해서 SSL 연결하기 1. Nginx(엔진엑스) 설치 (공식 사이트) Nginx란? 경량 웹 서버로서 클라이언트로부터 요청을 받았을대 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용된다. 또한 Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다. 1. 우분투 레포지토리 정보를 업데이트 해준다. $ sudo apt-get update 2. 패키지를 설치한다. $ sudo apt-get install nginx 3. 설치되었는지 확인한다. $ sudo nginx -v 2. Cerbot 설치 & 시작 (공식 사이트) Certbot은 수동으로 관리되는 웹사이트에서 Let's Encrypt 인증서(SSL certificates)를 자동으로 사용하여 .. 2022. 5. 20. [220527] nft 발행/판매 취소 기능 만들기 nft 발행기능, 판매기능은 어찌저찌 만들었다. 가격 수정 기능이 있으면 좋겠지만, 검색하다보니 힌번 발행한 nft는 가격 수정이 불가능하다고한다. 그렇다면 필요한 기능은 다음 두가지. 1) 판매 취소를 한 후, 적당한 때에 다시 그 가격으로 판매 등록을 한다. -> 판매취소기능 2) nft를 삭제한 후, 새 nft를 발행해서 원하는 가격으로 등록한다. -> 삭제기능 삭제방법 1. selfdestruct zeppelin에서 제공하는 기능 코드가 블록체인에서 지워지는 유일한 방법은 주소의 컨트랙트에가 selfdestruct연산을 사용했을때이며, 블록체인에서 계약을 삭제할 수 있는 기능이 selfdestruct라고 한다. 잠만, 그 계약 자체가 nft 컨트랙트 1개의 계약인거지...? 상호간을 연결하고있는 .. 2022. 5. 19. [220526] GANACHE 설치 후 메타마스크에서 계정 불러오기 * npm 설치, 메타스크 설치가 끝나있는 상태에서 진행 1. ganache 라이브러리 설치 $ npm install -g ganache-cli $ ganache-cli 설치하면 다음과 같은 결과가 나온다 2. 메타마스크에서 네트워크 추가 라이브러리를 설치하면 나오는 결과 중에서 로컬호스트 주소를 찾아준다. Listening on 127.0.0.1:8545 메타마크스에서 그 주소와 일치하는 네트워크를 추가한다. 3. 메타마스크에서 계정 가져오기 네트워크를 연결한 후, 계정 가져오기를 클릭한다. 라이브러리를 설치했을때 나오는 Private Key 중에서 아무거나 비공개키로 등록하면 100Eth가 들어있는 계정이 생긴다. 연결 끝. 2022. 5. 19. [220526] 스마트 컨트랙트 배포 에러 이슈 / 해결, RPC, 가스한도 초과 1. 이슈 발생 어제 잘만 실행되던 프로그램에 이슈가 터졌다. 배포를 하려고하면 다음 메세지가 뜬다. 다음 메시지와 함께 가스 추정 오류가 발생했습니다(아래 참조). 트랜잭션 실행이 실패할 가능성이 있습니다. 강제로 보내시겠습니까? 가스에서 계약 생성 코드 저장 뭔소리여.. 어제 저장하고 방금 막 켰구만. 어제까지만해도 잘만 거래해주던 메타마스크가 에러를 띄웠다. Send Transaction을 클릭하면 다음과 같은 에러를 리믹스에 띄워준다. creation of MintAnimalToken pending... creation of MintAnimalToken errored: [ethjs-query] while formatting outputs from RPC '{"value":{"code":-32000.. 2022. 5. 18. [220518] 구매기능 만들기 SaleAnimalCard.tsx import { Box, Button, Text } from "@chakra-ui/react"; import React, { FC, useEffect, useState } from "react"; import { mintAnimalTokenContract, saleAnimalTokenContract, web3, } from "../web3Config"; import AnimalCard from "./AnimalCard"; interface SaleAnimalCardProps { animalType: string; animalPrice: string; animalTokenId: string; account: string; getOnSaleAnimalTokens: () =>.. 2022. 5. 18. 이전 1 ··· 7 8 9 10 11 12 13 ··· 24 다음