이더리움 계약의 ABI 가져오기

소개



저는 블록체인 공간과 모든 것에 대해 상대적으로 새로운 사람입니다.

스마트 컨트랙트 ABI가 컨트랙트 자체와 상호 작용하도록 해야 했기 때문에 최근 봇에서 작업을 시도하는 동안 문제가 발생했습니다. 온라인에서 본 소스 코드를 가지고 리믹스에 붙여넣고 다시 컴파일해야 했습니다. 그리고 저는 아직 Solidity에 비교적 익숙하지 않고 파이썬 기술과 데이터 담당자로서의 배경을 가지고 있기 때문에 이 모든 것이 많은 스트레스였습니다. 저는 탈출구를 찾아야 했습니다.

알고랜드 블록체인에서 알고랜드 인덱서를 사용한 경험과 추가 연구를 바탕으로 합니다. 개방형 API 끝점에 대한 etherscan을 찾기로 결정하고 도움이 되는 것을 찾았습니다.

그리고 모든 스마트 계약 정보를 포함하여 블록체인에 대한 모든 정보는 모든 사람이 액세스할 수 있기 때문에 etherscans API 엔드포인트를 사용하여 상호 작용했습니다.

나는 사람이 계약 주소에서 계약 ABI를 가져와 json 파일에 추가할 수 있는 간단한 스크립트를 작성했습니다.

ABI 란 무엇입니까?



ABI는 Application Binary Interface의 약자로 두 개의 프로그램 모듈 사이의 인터페이스이며 그 중 하나는 기계 코드 수준에 있습니다. ABI는 데이터가 기계 코드로 인코딩되거나 디코딩되는 매체 역할을 합니다.

EVM(Ethereum Virtual Machine)과 스마트 컨트랙트의 관계입니다.



이더리움 네트워크의 주요 구성 요소는 EVM으로, 이더리움 블록체인에 저장된 스마트 계약을 실행할 수 있습니다.
이 스마트 계약은 종종 고급 언어로 작성되며 스마트 계약이 배포될 때 고급 코드가 EVM 실행 가능 바이트코드로 컴파일되어 연결된 블록체인에 저장되는 EVM 실행 가능 바이트코드로 컴파일되어야 합니다. 주소.
ABI는 EVM에 배포된 바이너리 스마트 계약에서 호출할 함수를 지정하는 데 도움이 되며 함수가 예상 형식으로 데이터를 반환하도록 보장합니다. 이는 API(응용 프로그램 인터페이스)가 작동하는 방식과 매우 유사하지만 하위 수준.

github에서 저장소를 확인할 수 있습니다.
  • 다음을 사용하여 github에서 프로젝트를 복제합니다.

  • git clone https://github.com/manny-uncharted/fetch_contract_abi.git
    

    프로젝트 디렉토리에 들어가기

    2. cd fetch_contract_abi
    


  • 파일 실행

  • python abi_fetch.py
    


    스마트 계약 주소( You can get the contract address from etherscan.io )를 입력한 다음 프로젝트 디렉토리에 abi.json이라는 이름으로 json에 계약 ABI를 저장해야 합니다.



    Note: This program was written to only work for ERC-721 smart contracts, I would further update the code to work for other networks and other token types.

    좋은 웹페이지 즐겨찾기