0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 6. 메타데이터를 사용한 standard json input 생성 0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 5. 이벤트 구독 0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 4. 배포된 스마트 컨트랙트와 상호작용 0. 이전 게시글 [Sol piatoss3612.tistory.com 1. .env 파일 업데이트 PRIVATE_KEY= RPC_ENDPOINT= RPC_WS_ENDPOINT=ws://localhost:8545 ETHERSCAN_API_KEY= Polygon Mumbai 테스트넷 사용 PRIVATE\_KEY : Polygon Mumbai 테..
0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 5. 이벤트 구독 0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 4. 배포된 스마트 컨트랙트와 상호작용 0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 3. 생성된 Go 코드로 스마트 컨트 piatoss3612.tistory.com 1. 메타데이터 생성 $ solc @openzeppelin/=$(pwd)/node_modules/@openzeppelin/ --optimize --metadata --metadata-literal contracts/MyToken.sol -o build --overwrite @openzeppelin/=$(pwd)/node\_mo..
0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 4. 배포된 스마트 컨트랙트와 상호작용 0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 3. 생성된 Go 코드로 스마트 컨트랙트 배포 1. 로컬 테스트넷 실행 $ anvil 2. 최상위 경로에 .env 파일 생성 PRIVATE_KEY= RPC_ENDPOINT=http://localho piatoss3612.tistory.com 1. .env 파일 업데이트 PRIVATE_KEY= RPC_ENDPOINT=http://localhost:8545 RPC_WS_ENDPOINT=ws://localhost:8545 이벤트 구독을 위해서는 웹소켓 주소가 필요 2. 코드 작성 cmd/subscribe/ma..
0. 이전 게시글 [Solitidy+Go] geth로 스마트 컨트랙트 배포하기 - 3. 생성된 Go 코드로 스마트 컨트랙트 배포 1. 로컬 테스트넷 실행 $ anvil 2. 최상위 경로에 .env 파일 생성 PRIVATE_KEY= RPC_ENDPOINT=http://localhost:8545 이 때 PRIVATE\_KEY가 0x로 시작하면 파싱에서가 발생하므로 0x를 지워준 16진수값만 넣어줍니다. 3. piatoss3612.tistory.com 1. 코드 작성 cmd/interact/main.go package main import ( "context" "crypto/ecdsa" "fmt" token "go-ethereum-example/gen" "math/big" "os" _ "github.com/j..
1. 로컬 테스트넷 실행 $ anvil 2. 최상위 경로에 .env 파일 생성 PRIVATE_KEY= RPC_ENDPOINT=http://localhost:8545 이 때 PRIVATE\_KEY가 0x로 시작하면 파싱에서가 발생하므로 0x를 지워준 16진수값만 넣어줍니다. 3. 배포 코드 작성 cmd/deploy/main.go package main import ( "context" "crypto/ecdsa" "fmt" token "go-ethereum-example/gen" "math/big" "os" _ "github.com/joho/godotenv/autoload" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go..
1. 스마트 컨트랙트 contracts/MyToken.sol // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.19; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyToken is ERC20 { constructor(uint256 initialSupply) ERC20("MyToken", "MTK") { _mint(msg.sender, initialSupply); } } @openzeppelin/contracts 라이브러리의 ERC20.sol 컨트랙트를 상속하여 MyToken 컨트랙트를 작성 2. solc를 사용해 abi 및 binary 파일 생성 build 디렉토리 생성 $ mkd..
1. 사용한 기술 linux 환경 기반 go 1.21 (스마트 컨트랙트 배포 및 상호작용) node v20.3.0 (OpenZeppelin 라이브러리 사용) solc 0.8.22+commit.4fc1097e (Solidity 파일 컴파일) abigen 1.13.4-stable (abi 파일을 사용해 go 코드 생성) anvil 0.2.0 (로컬 테스트넷 실행 - ganache cli나 다른 로컬 테스트넷도 가능) alchemy (RPC Endpoint 제공) polygonscan (mumbai 테스트넷에 배포된 스마트 컨트랙트 검증) 2. solc 및 geth 설치 solc 설치 Installing the Solidity Compiler — Solidity 0.8.24 documentation Insta..