14-1 contract - UI 상호작용 (사용)

동동주·2025년 12월 3일


Todo :
0. 코드 수정 & 재배포
1. MetaMask
2. UI 연동 및 사용
3. 다음에 할 내용 :




0. 코드 수정 & 재배포

UI 기능에 맞춰서 코드를 일부 수정(추가)한 부분

0-1. TinyBank.sol

    function currentReward(address to) external view returns (uint256) {
        if (staked[to] > 0) {
        uint256 blocks = block.number - lastClaimedBlock[to];
        return (blocks * rewardPerBlock * staked[to]) / totalStaked;
        } else {
            return 0;
        }
    }

= 현재 리워드 확인하는 기능 추가

0-2. MyToken.sol

    function faucet(uint256 amount) external {
        _mint(amount, msg.sender);
    }

= 테스트를 위해 mint함수를 실행하는 기능 추가

0-3. ignition/modules/deploy.ts

export default buildModule("MyTokenDeploy", (m) => {
  const myTokenC = m.contract("MyToken", ["MyToken", "MT", 18, 100]);
  const tinyBankC = m.contract("TinyBank", [myTokenC]);
  m.call(myTokenC, "setManager", [tinyBankC]); //추가
  return { myTokenC, tinyBankC };
});

= TinyBank 가 MyToken의 매니저가 되도록 설정(?)

(교수님이 추가하라고 주신 코드들임..m.call이 뭔지 더 찾아보기..)

0-4. 배포하기

이전 글 배포 부분이랑 동일하게 실행해주었다.

참고 : 13. kaia (실제 블록체인 네트워크)에 배포




1. MetaMask

1-1. MetaMask 설치&가입

설치 방법 참고 : 디지털 지갑 [메타마스크(MetaMask)] 설치 방법 - 아난티

Web3와 Web2의 차이점 중 하나..
비밀번호 복구 가능 = 인증정보를 서비스 제공자가 가지고 있다 (Web2)
비밀번호 복구 불가능 = 서비스 제공자에게 내 인증정보가 없다 (Web3)

단, seed를 (내가 알아서) 가지고 있으면 계정백업이 가능하다..
seed = 비밀 복구 구문
참고 : 시드 문구(비밀 복구 문구)란? - Ledger Academy

metamask seed?
이런 식으로 비밀 복구 구문을 보여준다~
어차피 저 계정에 아무것도 없어서 걍 보여줘도 될 것 같은데....

참고 : MetaMask 비밀번호에 대한 설명 - MetaMask


1-2. MetaMask 설정

- 네트워크 추가

사용자 지정 네트워크 추가

- 토큰 추가

토큰 가져오기




2. UI 연동 및 사용

2-1. 연동

UI 링크 : https://tinybank.vercel.app/

TinyBank 배포한 주소를 넣고,
MetaMask의 내 계정을 연결해준다.


2-2. 사용

- faucet

faucet 하는 이미지

- Stake

  1. approve

1) approve 실행


  1. transferFrom

2) transferFrom 실행


  1. Staking 완료

3)

Staking 완료

근데 왜 리워드가 3일까... 교수님꺼는 더 작던데...?




3. 다음에 할 내용 :

저 UI 직접 만들어보기.

profile
배운 내용 정리&기록, 스크랩

0개의 댓글