Web3js
PHP 中的 web3 js eth.contract 等價物
var Web3 = require('web3'); var web3 = new Web3(); web3.setProvider(new web3.providers.HttpProvider("http://blahblah.com:8545")); var token = web3.eth.contract(ABI).at("x0x_contract_address")
這將如何在 PHP 中完成?
例如,使用我使用的 ethereum.php 庫,我可以執行以下操作:
$data = new Ethereum_Transaction($users_eth_address, "x0_eth_address, $gas, $gasPrice, $hex_balance); $result = $ethereum->eth_sendTransaction($data);
btelle/ethereum-php 不完整且過時。最後一次送出是從 2015 年開始的。
你可能會使用digitaldonkey/ethereum-php
// The json file "$fileName" used is what you get when you compile a contract with Truffle. $ContractMeta = json_decode(file_get_contents($fileName)); $contract = new SmartContract( $ContractMeta->abi, $ContractMeta->networks->{NETWORK_ID}->address, new Ethereum(SERVER_URL) ); $someBytes = new EthBytes('34537ce3a455db6b') $x = $contract->myContractMethod(); echo $x->val()
根據儲存庫
// include the class file require 'ethereum.php'; // create a new object $ethereum = new Ethereum('127.0.0.1', 8545); // do your thing echo $ethereum->net_version();
這將允許您連接到在您的機器上偵聽 port 的本地 Geth 實例
8545
。要訪問契約,請參閱
test.php
包含更多範例的文件,以說明如何使用您可用的功能。您可能會發現JSON RPC API的文件在這里特別有用。這是因為該
ethereum.php
項目本質上只是執行在localhost:8545
.希望這可以幫助。