Web3js

PHP 中的 web3 js eth.contract 等價物

  • March 12, 2022
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.

希望這可以幫助。

引用自:https://ethereum.stackexchange.com/questions/32549