🔧 연동 흐름

1. front end

<button id="connect-metamask">MetaMask 연결</button>
<script>
document.getElementById('connect-metamask').addEventListener('click', async () => {
  if (typeof window.ethereum !== 'undefined') {
    try {
      const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' });
      const address = accounts[0];
      console.log("사용자 지갑 주소:", address);

      // 서버로 전송 예시 (ajax)
      fetch('/metamask-connect', {
        method: 'POST',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify({address}),
      });

    } catch (err) {
      console.error("MetaMask 연결 실패", err);
    }
  } else {
    alert('MetaMask가 설치되어 있지 않습니다.');
  }
});
</script>

2. back end

namespace Eccube\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;

class MetaMaskController extends AbstractController
{
    /**
     * @Route("/metamask-connect", name="metamask_connect", methods={"POST"})
     */
    public function connect(Request $request)
    {
        $data = json_decode($request->getContent(), true);
        $address = $data['address'] ?? null;

        if ($address) {
            // 예: DB 저장, 사용자 세션 연결 등
            return new JsonResponse(['success' => true, 'address' => $address]);
        }

        return new JsonResponse(['success' => false], 400);
    }
}

 

🔹 3) CSRF 예외 처리 (필요 시)

 

Symfony는 POST 요청에 CSRF 토큰을 요구하므로, API용 라우트는 예외 설정 필요.

src/Eccube/EventListener/CsrfValidationListener.php 또는 설정파일에 /metamask-connect 예외 처리


https://metamask.io/

 

MetaMask: The Leading Crypto Wallet Platform, Blockchain Wallet

Set up your crypto wallet and access all of Web3 and enjoy total control over your data, assets, and digital self. The go-to web3 wallet for 100+ million users.

metamask.io

 

 

  • MetaMask Wallet API 개요: 이 문서에서는 MetaMask의 Wallet API가 Ethereum provider API와 JSON-RPC API로 구성되어 있으며, window.ethereum 객체를 통해 dapp과 MetaMask 간의 상호작용을 가능하게 한다고 설명합니다. 주요 기능으로는 사용자 계정 접근, 트랜잭션 서명, 네트워크 관리 등이 포함됩니다.
  • JSON-RPC API 참조: MetaMask의 Wallet API는 JSON-RPC API를 래핑하여 다양한 메서드를 제공합니다. 이 문서에서는 표준 Ethereum JSON-RPC 메서드와 MetaMask 고유의 메서드에 대한 정보를 제공합니다
    https://docs.metamask.io/wallet/concepts/wallet-api/?utm_source=chatgpt.com 
 

About the Wallet API | MetaMask developer documentation

Learn about the MetaMask Ethereum provider API and JSON-RPC API.

docs.metamask.io

  • Ethereum Provider API 참조 : Ethereum Provider API는 MetaMask의 Wallet API의 핵심 구성 요소로, dApp이 사용자의 MetaMask 지갑과 상호 작용할 수 있도록 지원합니다. 이 API는 window.ethereum 객체를 통해 제공되며, 계정 요청, 트랜잭션 서명, 네트워크 상태 감지 등 다양한 기능을 제공합니다. 
 

Ethereum provider API | MetaMask developer documentation

See the MetaMask Ethereum provider API reference.

docs.metamask.io

 

// MetaMask 설치 여부 확인
if (window.ethereum && window.ethereum.isMetaMask) {
  // 계정 요청
  const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' });
  console.log('사용자 계정:', accounts[0]);

  // 네트워크 ID 확인
  const chainId = await window.ethereum.request({ method: 'eth_chainId' });
  console.log('현재 네트워크 ID:', chainId);

  // 계정 변경 이벤트 리스닝
  window.ethereum.on('accountsChanged', (accounts) => {
    console.log('계정 변경됨:', accounts);
  });

  // 네트워크 변경 이벤트 리스닝
  window.ethereum.on('chainChanged', (chainId) => {
    console.log('네트워크 변경됨:', chainId);
  });
} else {
  console.log('MetaMask가 설치되어 있지 않습니다.');
}
 

About the Wallet API | MetaMask developer documentation

Learn about the MetaMask Ethereum provider API and JSON-RPC API.

docs.metamask.io

 

오늘 TIL 3줄 요약

인공지능,머신러닝,딥러닝

api

도커

암호화폐

멀웨어, 바이러스, 웜

 

TIL(Today I Learned) 날짜

2025.01.15

 

오늘 읽은 범위

에피소드 39- 에피소드 45

 

책에서 기억하고 싶은 내용

인공지능

몇가지 일을 탁월하게 잘함

 

머신러닝

인공지능을 학습시키는 방법

 

딥러닝

엄청나게 많은 층으로 구성되어있는 머신러닝의 한 종류

멀웨어 _ malicious(악의있는) + software(소프트웨어)

악성 소프트웨어로 컴퓨터를 감시하거나 팜괴하는 녀석

 

바이러스

멀웨어의 한 종류로 파일같은 숙주가 필요함

 

멀웨어의 한 종류로 숙주가 필요없음

미사일과 페이로드가 필요한데 미사일을 통해 컴퓨터 안에 침투하고 그 순간 페이로드를 배포해서 컴퓨터를 파괴시킴.

오늘 읽은 소감

1. 도커는 공부하려고 계속 맘만먹고 하지 않고있었는데 올해는 꼭 해야지!

2. 비트코인 올라라!

 

질문

'TIL' 카테고리의 다른 글

IT 5분 잡학사전 [7]  (0) 2025.01.15
IT 5분 잡학사전 [6]  (0) 2025.01.12
IT 5분 잡학사전 [5]  (0) 2025.01.09
IT 5분 잡학사전 [4]  (0) 2025.01.08
IT 5분 잡학사전 [3]  (2) 2025.01.07

오늘 TIL 3줄 요약

해시함수

객체 지향 프로그래밍

함수형 프로그래밍

 

TIL(Today I Learned) 날짜

2025.01.14

 

오늘 읽은 범위

에피소드 35- 에피소드 38

 

책에서 기억하고 싶은 내용

번아웃일때의 극복법?

 

오늘 읽은 소감

이번 차트는 내가 쓰고있는 프로그램을 설명해주는 파트라 이해가 쉬웠다.

 

질문

'TIL' 카테고리의 다른 글

IT 5분 잡학사전 [8]  (0) 2025.01.15
IT 5분 잡학사전 [6]  (0) 2025.01.12
IT 5분 잡학사전 [5]  (0) 2025.01.09
IT 5분 잡학사전 [4]  (0) 2025.01.08
IT 5분 잡학사전 [3]  (2) 2025.01.07

오늘 TIL 3줄 요약

정렬 알고리즘

스텍 큐

해시 테이블

 

TIL(Today I Learned) 날짜

2025.01.011

 

오늘 읽은 범위

에피소드 26- 에피소드 29

 

책에서 기억하고 싶은 내용

코드는 깨끗하고 보기쉽게쓸것!

 

오늘 읽은 소감

오늘 과제2가 '내가 번아웃을 극복하는 방법은?'

이었는데 마침 책에서 개발자의 필수템을 알려줬다.

내가 번아웃을 극복하는 방법중 하나가 물건을 사는건데 다음엔 노트를 사봐야지

 

질문

클린코드 북클럽 했을때 중간까지 읽었더니 수료됐는데 끝까지는 안읽는건가요?

'TIL' 카테고리의 다른 글

IT 5분 잡학사전 [8]  (0) 2025.01.15
IT 5분 잡학사전 [7]  (0) 2025.01.15
IT 5분 잡학사전 [5]  (0) 2025.01.09
IT 5분 잡학사전 [4]  (0) 2025.01.08
IT 5분 잡학사전 [3]  (2) 2025.01.07

오늘 TIL 3줄 요약

알고리즘

자료구조

시간복잡도

 

TIL(Today I Learned) 날짜

2025.01.09

 

오늘 읽은 범위

에피소드 22- 에피소드 25

 

책에서 기억하고 싶은 내용

시간복잡도 계산 방법

 

오늘 읽은 소감

요즘 슈퍼코딩에서 data/ai 부트캠프를 신청해서 지금 cs 강의를 듣고있는데 강의보다 훨씬 쉽게 설명해줘서 알기 쉬웠다.

 

질문

없음

 

나의 최애 북틸 3명

1. https://nomadcoders.co/community/thread/10623

 

에피소드 22 - 에피소드 25 – 노마드 코더 Nomad Coders

Post on 노마드 코더 Community

nomadcoders.co

이유 : 노마드코더 가장 상단에 있어서 눈이 갔다

2. https://github.com/youngryul/cs-study/blob/main/TIL5.md

 

cs-study/TIL5.md at main · youngryul/cs-study

IT 5분 잡학사전 책 읽고 기록. Contribute to youngryul/cs-study development by creating an account on GitHub.

github.com

슬랙 가장 아래에 있어서 눈이 갔다

3. https://sunalog.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F

 

티스토리

좀 아는 블로거들의 유용한 이야기, 티스토리. 블로그, 포트폴리오, 웹사이트까지 티스토리에서 나를 표현해 보세요.

www.tistory.com

그냥 응원하고싶다

'TIL' 카테고리의 다른 글

IT 5분 잡학사전 [7]  (0) 2025.01.15
IT 5분 잡학사전 [6]  (0) 2025.01.12
IT 5분 잡학사전 [4]  (0) 2025.01.08
IT 5분 잡학사전 [3]  (2) 2025.01.07
IT 5분 잡학사전 [2]  (0) 2025.01.06

오늘 TIL 3줄 요약

인터넷 익스플로러가 사라진 이유

cookie

우리는 풀스텍

서버

 

라이브러리와 프레임워크의 차이

제이쿼리, API

도메인

 

TIL(Today I Learned) 날짜

2025.01.08

 

오늘 읽은 범위

에피소드 16- 에피소드 21

 

책에서 기억하고 싶은 내용

momentum, CSSViewer, JSON Viewer, React Developer Tools, What Font, Grid Ruler, BuiltWith Techology Profiler

 

오늘 읽은 소감

새로운 브라우저 익스텐션을 많이 설치했다

 

질문

없음

'TIL' 카테고리의 다른 글

IT 5분 잡학사전 [6]  (0) 2025.01.12
IT 5분 잡학사전 [5]  (0) 2025.01.09
IT 5분 잡학사전 [3]  (2) 2025.01.07
IT 5분 잡학사전 [2]  (0) 2025.01.06
IT 5분 잡학사전 [1]  (1) 2025.01.04

+ Recent posts