이 더 리 움 PHP 오프라인 개발 패키지

3590 단어 이 태 방
EthTool 개발 패 키 지 는 사용 희망누 드 거래적 PHP 이 더 리 움 응용 개발 은 주로 다음 과 같은 특성 을 포함한다.
  • 누 드 거래 배치/호출 계약 지원
  • etherscan 과 infura 지원 내장
  • keystore 생 성 및 읽 기,geth/parity 호 환
  • 누 드 거래 를 사용 하 는 장점 중 하 나 는 개발 자가 스스로 이 더 리 움 노드 를 배치 하지 않 아 도 된다 는 것 이다.동기 화 블록 은 매우 고통스러운 과정 이다.EthTool 을 사용 하여 누 드 거래 를 구성 한 후 제3자(etherscan/info/...)가 제공 하 는 서 비 스 를 이용 하여 거래 를 방송 하면 된다.
    다운로드 주소:http://sc.hubwiz.com/codebag/eth-php-lib/
    EthTool 은**Php 7.1+*환경 에서 실 행 됩 니 다.현재 버 전 1.0.0,주요 코드 파일 목록 은 다음 과 같 습 니 다.
    코드 파일
    설명 하 다.
    ethtool/src/Callback.php
    RPC 리 셋 클래스
    ethtool/src/Credential.php
    신분 표시 클래스
    ethtool/src/KeyStore.php
    Keystore 클래스,V3 알고리즘
    ethtool/src/EthApi.php
    이 더 리 움 거래 인터페이스 기본 클래스
    ethtool/src/EthApiEtherscan.php
    Etherscan 거래 인터페이스 클래스
    ethtool/src/EthApiWeb3.php
    Infura/Web3 거래 인터페이스 클래스
    ethtool/src/RawContract.php
    누 드 거래 계약 류
    ethtool/src/RawTxBuilder.php
    누 드 거래 구조 기
    test/demo-etherscan.php
    누 드 거래 데모 코드,etherscan 으로 제출
    test/demo-infura.php
    누 드 거래 데모 코드,infora 로 제출
    test/demo-keystore.php
    keystore 데모 코드
    vendor
    제3자 의존 패키지 디 렉 터 리
    composer.json
    composer 프로필
    2.사용 설명
    코드 패키지 의 주요 종 류 는 다음 과 같 습 니 다.
  • RawTxBuilder:누 드 거래 구조 기
  • Credential:계 정 비밀 키 와 거래 서명 패키지
  • EthApi:이 더 리 움 거래 인터페이스 패키지
  • KeyStore:V3 버 전의 keystore,geth/parity 호 환
  • 누 드 거래 구조
    RawTxBuilder 의create()정적 방법 으로 구조 기 인 스 턴 스 를 가 져 옵 니 다.예 를 들 어:
    $rtb = RawTxBuilder::create();
    

    누 드 거래 구조 기 는 계 정 대상 을 연결 하고 사용credential()방법:
    $crendetial = Crendetial::fromKey('...');
    $rtb->credential($credential);
    

    RawTx Builder 는 현재 세 가지 누 드 거래 구 조 를 지원 합 니 다.
  • 보통 누 드 거래,예 를 들 어 이 더 리 화폐 이체 거래.getPlaintx()방법 으로 얻 을 수 있다.
  • 계약 배치 누 드 거래,사용getDeployTx()방법 으로 획득.
  • 계약 방법 은 누 드 거래 를 호출 하여getSendTx()방법 으로 얻 을 수 있다.

  • 예 를 들 어 아래 코드 생 성 계약 배치 누 드 거래:
    $rawtx = RawTxBuilder::create()
              ->credential($credential)
              ->gasLimit('4000000')
              ->gasPrice('10000000000')
              ->chainId($chainId)
              ->nonce($nonce)
              ->contract($abi)      //      ,  RawContract  
              ->bytecode($bin)      //          
              ->getDeployTx(1000000,'HAPPY COIN',0,'HAPY'); //         
    

    누 드 트레이드 방송
    EthApi 기본 클래스 는 현재 다음 과 같은 방법 을 정의 하여 자신의 수요 에 따라 확장 할 수 있 습 니 다.
  • getTransactionCount
  • sendRawTransaction
  • getTransactionReceipt

  • EthApiEtherscan 은 EthApi 서 비 스 를 기반 으로 하 는 EthApi 구현 이 며,EthApiWeb 3 는 이 더 리 움 RPC 를 기반 으로 하 는 EthApi 구현 이다.예 를 들 어 아래 코드 는 Etherscan 을 사용 하여 rinkeby 테스트 체인 배치 전에 얻 은 누 드 거래 를 사용 합 니 다.
    $eth = new EthApiEtherscan($your_api_key/*etherscan api key*/,4/*rinkeby*/);
    $txid = $eth->sendRawTransaction($rawtx);
    

    KeyStore 읽 기와 쓰기
    KeyStore 클래스 는 geth/parity 에서 생 성 된 keystore 파일 을 읽 을 수 있 으 며,생 성 된 keystore 파일 도 geth/parity 에서 읽 을 수 있 습 니 다.
    KeyStore 클래스 의 정적 방법save()을 사용 하여 비밀 키 를 keystore 형식 으로 지정 한 디 렉 터 리 에 기록 합 니 다.
    $credential = Credential::new();
    $prv = $credential->getPrivateKey();
    $fileName = KeyStore::save($prv,'123','./keystore')
    

    KeyStore 클래스 의 정적 방법load()을 사용 하여 지정 한 keystore 파일 을 불 러 오고 비밀 키 를 복호화 합 니 다.
    $fileName = './keystore/....'
    $prv = KeyStore::load($fileName,'123');
    

    좋은 웹페이지 즐겨찾기