我需要发送USDT和其他ERC-20代币通过盖斯在以太。我正在使用PHP和Web3.php库来使用Ethereum。到目前为止,一切都很顺利。现在,我需要开始根据合同发送令牌。在“以太的正式文件”中,它提到了数据参数:
契约的编译代码或被调用的方法签名和编码参数的散列。
我想我可以使用sendTransaction()直接发送ERC-20令牌,所以我在data参数中使用了给定的超视距编码ABI,但是它没有工作。然后我回到了Web3.php项目,并看到了不同的合同代码,如下所示:
use Web3\Contract;
$contract = new Contract('http://localhost:8545', $abi);
// deploy contract
$contract->bytecode($bytecode)->new($params, $callback);
// call contract function
$contract->at($contractAddress)->call($functionName, $params, $callback);
// change function state
$contract->at($contractAddress)->send($functionName, $params, $callback);
// estimate deploy contract gas
$contract->bytecode($bytecode)->estimateGas($params, $callback);
// estimate function gas
$contract->at($contractAddress)->estimateGas($functionName, $params, $callback);
// get constructor data
$constructorData = $contract->bytecode($bytecode)->getData($params);
// get function data
$functionData = $contract->at($contractAddress)->getData($functionName, $params);不幸的是,由于我在合同中是新手,我不知道上面哪个代码应该用于我的项目(发送USDT)。所有的人?或者只是其中的一部分?不幸的是,为本节中的方法提供的文档没有关于使用的参数的详细信息!这让我更加困惑。你能帮帮我吗?
发布于 2020-03-29 08:36:55
发送ERC-20令牌的步骤如下:
上述步骤的代码是:
Step 1:
use Web3\Contract;
$contractAddress = 'ERC-20 contract deployed address'
$contract = new Contract('http://localhost:8545', $abi);
$contractInstance = $contract->at($contractAddress);
Step 2:
$amount = 100, $receiver = 'Receiver addresss'
Step 3:
$contractInstance->call(transfer, [$amount, $receiver], $callback);这会让你走的。
https://ethereum.stackexchange.com/questions/81971
复制相似问题