본문 바로가기

전체 글95

Variables and Constants Variables : 변수, 값 변경 가능 Constants : 변수지만 값을 바꿀 수 없음 const import "fmt" func main() { const name string = "name" fmt.Println(name) } 함수에는 type을 설정해 주어야 한다. const name string(type) = "name" Var package main import "fmt" func main() { var name string = "name" name = "gun" fmt.Println(name) } name은 gun을 출력한다 => var는 변경 가능하기 때문 Type 자동 인식 package main import "fmt" func main() { name := "name" fmt.Pri.. 2022. 2. 13.
REVIEW ZONE Project 프로젝트 스케치 이번 프로젝트에서는 커뮤니티 관련된 프로젝트를 진행하기로 했다. 기존 스팀잇과 같은 프로젝트는 인센티브를 많이 빠르게 받기 위해 글을 읽지 않고 보상만 받아가는 문제점이 있었다. 이 부분을 해결할 방법이 딱히 생각나지 않아서 리뷰에 도입하기로 생각했고 리뷰존이라는 프로젝트를 진행하게 되었다. 프로젝트는 광고사의 에드를 받아 관리자가 업로드 하고 구매자만 리뷰를 쓸 수 있게 구현하려고 했다. 리뷰를 쓰면 인센티브를 받고 예비 구매자?는 리뷰를 보고 도움 받은 리뷰에 좋아요를 눌러준다. 좋아요를 많이 받은 리뷰어도 토큰을 지급 받고 좋아요를 누른 유저도 인센티브를 지급받는 시스템이다. 이에 따른 문제점들이 있어서 문제 해결방안을 제시했으나 구현 시간이 모자라 구현을 다하지 못한점이 아쉽다. .. 2022. 2. 13.
NFT 경매 NFT 관련 글이 길어 경매 파트는 따로 정리 event Start(); event Bid(address indexed sender, uint amount); event Withdraw(address indexed bidder, uint amount); event End(address winner, uint amount); event Endedat(uint a); struct Auction { bool started; address owner; uint nftId; bool status; uint endAt; address highestBidder; uint highestBid; bool ended; } mapping(uint => Auction) auction; mapping(uint => mappin.. 2022. 2. 13.
NFT 컨트렉트 NFT는 ERC-721로 구성되어 있으며 NWT_Token으로 구매가 가능하다. // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "../node_modules/@openzeppelin/contracts/utils/Counters.sol"; import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; import "../node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStor.. 2022. 2. 13.
Token_Swap WT_Token과 NWT_Token을 교환 해주는 컨트렉트 // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.10; import "../node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "../node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract TokenSwap{ IERC20 public token1; // stable coin IERC20 public token2; // 유동성 코인 address public owner2; // server address constructor (address _token1,.. 2022. 2. 13.
WT_Token 배팅 컨트렉트가 포함된 stable coin // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; import "../node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; contract WTToken is ERC20, Ownable { uint256 _amountToken; //배팅을 하는 플레이어에 대한 구조체 struct Player { address addr; // 주소 uint256 playerBetAmount; // 베팅 금액 string vote; // 후보에게 .. 2022. 2. 12.
NWT_Token WATTO project 에서 NFT를 구매 할 수 있는 코인 // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.10; import "../node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; contract NWTToken is ERC20, Ownable { constructor() ERC20("NWToken", "NWT") { } function mintToken(address to, uint256 amount) public onlyAuthorized returns (boo.. 2022. 2. 12.
사용 컨트렉트 소개 1. Erc-20 : NWT_Token, WT_Token WT_Token : 스테이블 코인, Batting 컨트렉트 수록, 배팅 기능 NWT_Token : 유동성 코인, NFT 구매 기능 2. ERC-721 : NFT_WT NFT 판매, 경매 컨트렉트 3. Token_Swap WT_Token과 NWT_Token Swap 4. 관리자 권한 부여 컨트렉트 : @openzeppelin 수정 2022. 2. 12.
솔리디티 Erc-20 토큰 기본 전문 // SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.10; interface ERC20Interface { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function approve(address spender, uint256 amount) external returns (bool); function allowance(address owner,.. 2022. 2. 4.
솔리디티 OwnerHelper, TokenLock OwnerHelper 관리자만 사용할 수 있는 함수가 필요 특정 함수를 관리자만 사용할 수 있도록 설정하는 OwnerHelper 함수를 구현 OwnerHelper를 사용하여 public으로 공개되어 있는 함수 중, 관리자만 접근 가능한 함수 구현 Interface 부분 추가 abstract contract OwnerHelper { address private _owner; event OwnershipTransferred(address indexed preOwner, address indexed nextOwner); modifier onlyOwner { require(msg.sender == _owner, "OwnerHelper: caller is not owner"); _; } constructor() .. 2022. 2. 4.