美文网首页
浅谈以太坊与PHP交互

浅谈以太坊与PHP交互

作者: lhx很好 | 来源:发表于2020-07-25 16:45 被阅读0次
    4TZ(%B$QQRUYNVG885R4XGC.png

    前言

    最近这段时间,有关注Eth的朋友知道涨了一波,当然我在这方面有点感兴趣,所以一直比较关注3月份左右到现在翻了一倍(期间达到285.72美元),投资的朋友需要谨慎一点,韭菜新手,瑟瑟发抖

    什么是以太坊(Eth)

    Eth的一种数字代币,被视为“比特币2.0版”,采用与比特币不同的区块链技术“以太坊”(Ethereum),一个开源的有智能合约成果的民众区块链平台,由全球成千上万的计算机构成的共鸣网络。和比特币一样Eth有着自己的通信ERC20协议,节点确认时间更快,成本低,12个块确认。智能合约开发者可以发行代币,支付以太币(ETH)来支撑应用的运行,和其他数字货币一样,以太币可以在交易平台上进行买卖

    PHP交互如何与以太坊交互

    需要下载Geth客户端,Geth是Go Ethereum开源项目的简称,它是使用Go语言编写且实现了Ethereum协议的客户端软件,也是目前用户最多,使用最广泛的客户端。通过Geth客户端与以太坊网络进行连接和交互可以实现账户管理、合约部署、挖矿等众多有趣且实用的功能。

    下载地址:https://geth.ethereum.org/downloads/ 下载好然后安装好,然后运行

    使用composer克隆包
    composer require aytaceminoglu/erc20-php

    代码(这里以USDT为例)初始化

    private function __construct()
        {
           
            $this->pass= 'abc123456';
            $this->eth = new EthereumRPC('127.0.0.1', 5145);
            $erc20 = new ERC20($this->eth);
            $this->token=$erc20->token('0xdAC17F958D2ee523a2206206994597C13D831ec7');// USDT顶层合约地址
        }
    

    创建钱包地址

      public function EthCreateAccount(){
            return $this->eth->personal()->newAccount($this->pass);
        }
    

    USDT转账(所有以太坊代币转账都需要使用ETH作为矿工费)

     public function UsdtTransfer($fromAddress,$toAddress,$transAmount,$gas=100000){
    
            $payData=$this->token->encodedTransferData($toAddress,$transAmount);
            $transaction=$this->eth->personal()->transaction($fromAddress,$this->contractAddress)
                ->amount('0')
                ->data($payData)
                ->gas($gas);
            $txId=$transaction->send($this->pass);
            return $txId;
        }
    

    USDT余额查询

     public function UsdtGetBalance($address){
            $balance=$this->token->balanceOf($address);
            return $balance;
        }
    

    以太坊转账与USDT方式大同小异

    public function EthTransfer($fromAddress,$toAddress,$ethAmount,$gas=100000){
            $txId=$this->eth->personal()->sendEthereum($fromAddress,$toAddress,$ethAmount,$this->pass);
            return $txId;
        }
    

    查询以太坊余额

     public function EthGetBalance($address){
            return $this->eth->eth()->getBalance($address);
        }
    
    

    以太坊有代币(查询所有币种余额)

     public function EthFindAccount(){
            return $this->eth->eth()->accounts();
        }
    

    好了到这里就结束了,随着区块链的发展应用场景会越来越多

    相关文章

      网友评论

          本文标题:浅谈以太坊与PHP交互

          本文链接:https://www.haomeiwen.com/subject/gwzplktx.html