// 5. type alias vs. interface // 5-1. function interface IFunction { (name: string, age?: number): void; } type tFunction = (name: string, age?: number) => void; // 5-2. array type tArray = string[]; interface IArray { [index: number]: string; } // 5-3. intersection interface ErrorHandling { success: boolean; error?: { message: string }; } interface ArtistData { artists: { name: string }[]; } t..
// 1. class implements interfaceå interface IPerson { name: string; age?: number; hello(): void; } class Person implements IPerson { name: string; constructor(name: string) { this.name = name; } hello(): void { console.log(`안녕하세요. ${this.name}입니다.`); } } const person: IPerson = new Person('Hyun'); person.hello(); // 2. interface extends interface interface IKorean extends IPerson { city:..
interface Person { name: string; age?: number; hello(): void; } const p1: Person = { name: "hyun", hello: function (): void { console.log(`Hi, my name is ${this.name}`); }, }; const p2: Person = { name: "kim", hello(): void { console.log(`Hi, my name is ${this.name}`); }, };
// optional property 1 interface Person { name: string; age?: number; } const hello = (p: Person): void => { console.log(`안녕하세요. 제 이름은 ${p.name}이고 나이는 ${p.age}입니다.`); }; const p1: Person = { name: "hyun" }; const p2: Person = { name: "kim", age: 32 }; hello(p1); hello(p2); // optional property 2 // indexable type interface Person1 { name: string; age: number; [index: string]: string | number; } ..

회원가입 시 회원 마다 지갑 생성 글 작성 시 ERC20 토큰 지급 지급 받은 ERC20 토큰으로 ERC721(NFT) 발행 ERC721 메타데이터와 이미지는 IPFS를 통해 업로드 및 호스팅 발행된 NFT 확인 및 구매, NFT 메타데이터는 DB에 저장해서 빠르게 로딩 Github: https://github.com/Hyun2/BEB_01_CantSleep Backend: express Frontend: React 컨트랙트를 중앙에서 서버만 호출할 수 있도록 Owenable을 상속받았다. 따라서 모든 토큰 전송도 서버주소로 진행한다. 물론 발급된 ERC20이나 ERC721(NFT)는 각 개인의 소유이다. 다만 모든 컨트랙트 호출을 서버에서 진행하기 때문에 각 사용자에게 토큰(ERC20, ERC721)을..
설치 npm i -D eslint prettier eslint-plugin-prettier 사용 시 느려지거나 충돌이 발생하는 부분이 생겨서 제거 .eslintrc next.js { "extends": [ "next/core-web-vitals", "eslint:recommended" ], "env": { "browser": true, "node": true, "es6": true }, "parserOptions": { "ecmaVersion": 2017 } } .prettierrc { "printWidth": 120, "tabWidth": 2, "trailingComma": "all", "semi": true } settings.json(vscode workspace) { ... "editor.code..
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.11; contract MoneyBox { address owner; mapping (uint256 => mapping(address => bool)) memberList; uint256 round = 1; constructor() { owner = msg.sender; } receive() external payable { require(msg.value == 0.1 ether, "Must be 0.1 Ether."); require(memberList[round][msg.sender] == false, "You are joined already."); memberList[round][msg.sender..
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.11; interface PocketWrapper { struct Item { string name; uint256 price; } function addItem(string memory _name, uint256 _price) external; function getItem(uint256 _index) external view returns (Item memory _item); } contract Pocket is PocketWrapper { Item[] public items; function addItem(string memory _name, uint256 _price) public override ..
- Total
- Today
- Yesterday
- Flutter
- metamask-extension
- 스마트 컨트랙트
- Upgradeable Contracts
- caver-js
- avalanchego
- 블록체인
- Android
- Proxy Pattern
- swr
- 이더리움
- caver.js
- web3-token
- Truffle
- 앱 아이콘
- erc20
- class
- eslint
- Hardhat
- interface
- 블록 탐색기
- web3.js
- Call
- ethers.js
- typescript
- JWT
- web3
- ERC721
- ganache
- nft
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |