web3. py 프로필
web3
대상 이다.웹 3 대상 은 API 를 제공 합 니 다. python 개발 에 사용 되 는 응용 프로그램 은 이 더 리 움 블록 체인 과 상호작용 을 합 니 다. 보통 JSON - RPC 서버 를 연결 하여 진행 합 니 다.공급 자 공급 자
Providers
웹 3 를 블록 체인 에 연결 합 니 다.웹 3. py 라 이브 러 리 는 아래 에 내 장 된 providers
을 가지 고 있 으 며, 대부분의 사례 에 적용 할 수 있 습 니 다.web3.HTTPProvider
: http 와 https 를 기반 으로 하 는 JSON - RPC 서버 를 연결 하 는 데 사 용 됩 니 다.web3.IPCProvider
: ipc 소켓 기반 JSON - RPC 서버 를 연결 하 는 데 사 용 됩 니 다.web3.WebsocketProvider
: ws 와 ws 기반 웹 소켓 을 연결 하 는 JSON - RPC 서버.HTTPProvider
: 서버 를 찾 을 수 있 는 전체 URI 를 가 져 오 는 데 사 용 됩 니 다.현지 개발 에 있어 서 이것 은 유사 하 다 http://localhost:8545
.IPCProvider
: IPC 소켓 을 찾 을 수 있 는 파일 시스템 경 로 를 가 져 옵 니 다.매개 변 수 를 제공 하지 않 으 면 운영 체제 의 기본 경 로 를 사용 합 니 다.WebsocketProvider
: 서버 를 찾 을 수 있 는 전체 URI 를 가 져 오 는 데 사 용 됩 니 다.현지 개발 에 있어 서 이것 은 유사 하 다 ws://127.0.0.1:8546
.예제 코드 는 다음 과 같다.
>>> from web3 import Web3, HTTPProvider, IPCProvider, WebsocketProvider
# Note that you should create only one RPCProvider per
# process, as it recycles underlying TCP/IP network connections between
# your process and Ethereum node
>>> web3 = Web3(HTTPProvider('http://localhost:8545'))
# or for an IPC based connection
>>> web3 = Web3(IPCProvider())
# or for Websocket based connection
>>> web3 = Web3(WebsocketProvider('ws://127.0.0.1:8546'))
기본 API
웹 3 종 류 는 다음 과 같은 매우 편리 한 기본 API 를 제공 합 니 다.
형식 변환
web3.toHex
Web3.toHex(primitive=None, hexstr=None, text=None)
각종 입력 을 가 져 오고 16 진법 으로 되 돌려 줍 니 다.JSON - RPC 규범 에서 16 진법 으로 전환 하 는 규칙 을 따른다.
>>> Web3.toHex(0)
'0x0'
>>> Web3.toHex(1)
'0x1'
>>> Web3.toHex(0x0)
'0x0'
>>> Web3.toHex(0x000F)
'0xf'
>>> Web3.toHex(b'')
'0x'
>>> Web3.toHex(b'\x00\x0F')
'0x000f'
>>> Web3.toHex(False)
'0x0'
>>> Web3.toHex(True)
'0x1'
>>> Web3.toHex(hexstr='0x000F')
'0x000f'
>>> Web3.toHex(hexstr='000F')
'0x000f'
>>> Web3.toHex(text='')
'0x'
>>> Web3.toHex(text='cowmö')
'0x636f776dc3b6'
web3.toText
Web3.toText(primitive=None, hexstr=None, text=None)
각종 입력 을 가 져 오고 문자열 의 등가 항목 을 되 돌려 줍 니 다.텍스트 가 UTF - 8 로 디 코딩 되 었 습 니 다.
>>> Web3.toText(0x636f776dc3b6)
'cowmö'
>>> Web3.toText(b'cowm\xc3\xb6')
'cowmö'
>>> Web3.toText(hexstr='0x636f776dc3b6')
'cowmö'
>>> Web3.toText(hexstr='636f776dc3b6')
'cowmö'
>>> Web3.toText(text='cowmö')
'cowmö'
Web3.toBytes
Web3.toBytes(primitive=None, hexstr=None, text=None)
각종 입력 을 받 아들 이 고 같은 효 과 를 가 진 바이트 로 되 돌려 줍 니 다.텍스트 가 UTF - 8 로 인 코딩 되 었 습 니 다.
>>> Web3.toBytes(0)
b'\x00'
>>> Web3.toBytes(0x000F)
b'\x0f'
>>> Web3.toBytes(b'')
b''
>>> Web3.toBytes(b'\x00\x0F')
b'\x00\x0f'
>>> Web3.toBytes(False)
b'\x00'
>>> Web3.toBytes(True)
b'\x01'
>>> Web3.toBytes(hexstr='0x000F')
b'\x00\x0f'
>>> Web3.toBytes(hexstr='000F')
b'\x00\x0f'
>>> Web3.toBytes(text='')
b''
>>> Web3.toBytes(text='cowmö')
b'cowm\xc3\xb6'
Web3.toInt
Web3.toInt(primitive=None, hexstr=None, text=None)
각종 입력 을 받 아들 이 고 정수 등가 항목 을 되 돌려 줍 니 다.
>>> Web3.toInt(0)
0
>>> Web3.toInt(0x000F)
15
>>> Web3.toInt(b'\x00\x0F')
15
>>> Web3.toInt(False)
0
>>> Web3.toInt(True)
1
>>> Web3.toInt(hexstr='0x000F')
15
>>> Web3.toInt(hexstr='000F')
15
화폐가치 전환
Web3.toWei
Web3.toWei(value, currency)
wei 로 변 환 된
currency
매개 변수 가 지정 한 액면가 의 값 을 되 돌려 줍 니 다.>>> Web3.toWei(1, 'ether')
1000000000000000000
Web3.fromWei
Web3.fromWei(value, currency)
wei 를 주어진 화폐의 값 으로 되 돌려 줍 니 다.이 값 은
Decimal
으로 되 돌아 와 정밀도 가 wei 로 떨 어 질 수 있 도록 합 니 다.>>> web3.fromWei(1000000000000000000, 'ether')
Decimal('1')
주소.
Web3.isAddress
Web3.isAddress(value)
이 값 이 인식 되 는 주소 형식 중 하나 라면 트 루 로 돌아 갑 니 다.
EIP55
.>>> web3.isAddress('0xd3CdA913deB6f67967B99D67aCDFa1712C293601')
True
Web3.isChecksumAddress
Web3.isChecksumAddress(value)
이 값 이
EIP55
에 부합 되 고 유효한 주소 라면 true 로 돌아 갑 니 다.>>> web3.isChecksumAddress('0xd3CdA913deB6f67967B99D67aCDFa1712C293601')
True
>>> web3.isChecksumAddress('0xd3cda913deb6f67967b99d67acdfa1712c293601')
False
Web3.toChecksumAddress
Web3.toChecksumAddress(value)
EIP 55 검사 와 주어진 주 소 를 되 돌려 줍 니 다.
>>> Web3.toChecksumAddress('0xd3cda913deb6f67967b99d67acdfa1712c293601')
'0xd3CdA913deB6f67967B99D67aCDFa1712C293601'
암호 화 해시
Web3.sha3
classmethod Web3.sha3(primitive=None, hexstr=None, text=None)
주어진 값 을 되 돌려 줍 니 다
Keccak SHA256
.하 쉬 를 계산 하기 전에 텍스트 는 솔 리드 티 처럼 UTF - 8 로 인 코딩 되 었 다.다음 의 모든 방식 은 유효 하고 같다.>>> Web3.sha3(0x747874)
>>> Web3.sha3(b'\x74\x78\x74')
>>> Web3.sha3(hexstr='0x747874')
>>> Web3.sha3(hexstr='747874')
>>> Web3.sha3(text='txt')
HexBytes('0xd7278090a36507640ea6b7a0034b69b0d240766fa3f98e3722be93c613b29d2e')
Web3.soliditySha3
classmethod Web3.soliditySha3(abi_types, value)
Sha 3 를 되 돌려 줍 니 다. 제공 하 는
value
과 abi_types
에 따라 solidity Sha3
함수 로 계산 합 니 다.abi_types
제공 하 는 모든 값 에 대응 하 는 solidity 형식 문자열 의 목록 이 어야 합 니 다.>>> Web3.soliditySha3(['bool'], True)
HexBytes("0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2")
>>> Web3.soliditySha3(['uint8', 'uint8', 'uint8'], [97, 98, 99])
HexBytes("0x4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45")
>>> Web3.soliditySha3(['uint8[]'], [[97, 98, 99]])
HexBytes("0x233002c671295529bcc50b76a2ef2b0de2dac2d93945fca745255de1a9e4017e")
>>> Web3.soliditySha3(['address'], ["0x49eddd3769c0712032808d86597b84ac5c2f5614"])
HexBytes("0x2ff37b5607484cd4eecf6d13292e22bd6e5401eaffcc07e279583bc742c68882")
>>> Web3.soliditySha3(['address'], ["ethereumfoundation.eth"])
HexBytes("0x913c99ea930c78868f1535d34cd705ab85929b2eaaf70fcd09677ecd6e5d75e9")
모듈 모듈
웹 3. py 는 JSON - RPC 기능 을 여러 모듈 에서 분할 하 였 으 며, 이 모듈 들 은 JSON - RPC 방법의 네 임 스페이스 에 느슨하게 대응 하 였 다.
빠 른 속도 로 python 개발 이 더 리 움 학습 을 시작 하고 자 하 는 사람 은 이것 을 볼 수 있 습 니 다. python 이 더 리 움 은 주로 python 엔지니어 가 웹 3. py 를 사용 하여 블록 체인 이 더 리 움 개발 에 대한 상세 한 설명 입 니 다.
기타 이 더 리 움 관련 강좌:
회 지 망 오리지널 번역, 전재 출처 표시 해 주세요.여 기 는 원문 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.