tonystark / kardiachain-tx
PHP 中的 Kardiachain 交易库。
0.4.3
2021-08-25 08:32 UTC
Requires
- php: ^7.1 | ^8.0
- kornrunner/keccak: ~1
- simplito/elliptic-php: ~1.0.6
- web3p/ethereum-util: ~0.1.3
- web3p/rlp: 0.3.3
Requires (Dev)
- phpunit/phpunit: ~7 | ~8.0
README
PHP 中的 Kardiachain 交易库。
安装
composer require tonystark/kardiachain-tx
使用方法
创建交易
use Web3p\KardiachainTx\Transaction; // without chainId $transaction = new Transaction([ 'nonce' => '0x01', 'from' => '0xb60e8dd61c5d32be8058bb8eb970870f07233155', 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', 'gas' => '0x76c0', 'gasPrice' => '0x9184e72a000', 'value' => '0x9184e72a', 'data' => '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' ]); // with chainId $transaction = new Transaction([ 'nonce' => '0x01', 'from' => '0xb60e8dd61c5d32be8058bb8eb970870f07233155', 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', 'gas' => '0x76c0', 'gasPrice' => '0x9184e72a000', 'value' => '0x9184e72a', 'chainId' => 1, 'data' => '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' ]); // hex encoded transaction $transaction = new Transaction('0xf86c098504a817c800825208943535353535353535353535353535353535353535880de0b6b3a76400008025a028ef61340bd939bc2195fe537567866003e1a15d3c71ff63e1590620aa636276a067cbe9d8997f761aecb703304b3800ccf555c9f3dc64214b297fb1966a3b6d83');
签署交易
use Web3p\KardiachainTx\Transaction; $signedTransaction = $transaction->sign('your private key');
API
Web3p\KardiachainTx\Transaction
sha3
返回给定数据的 keccak256 编码。
将在下一个版本中删除。
sha3(string $input)
字符串输入
示例
- 编码字符串。
use Web3p\KardiachainTx\Transaction; $transaction = new Transaction([ 'nonce' => '0x01', 'from' => '0xb60e8dd61c5d32be8058bb8eb970870f07233155', 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', 'gas' => '0x76c0', 'gasPrice' => '0x9184e72a000', 'value' => '0x9184e72a', 'data' => '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' ]); $hashedString = $transaction->sha3('web3p');
serialize
返回交易数据的递归长度前缀编码。
serialize()
示例
- 序列化交易数据。
use Web3p\KardiachainTx\Transaction; $transaction = new Transaction([ 'nonce' => '0x01', 'from' => '0xb60e8dd61c5d32be8058bb8eb970870f07233155', 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', 'gas' => '0x76c0', 'gasPrice' => '0x9184e72a000', 'value' => '0x9184e72a', 'data' => '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' ]); $serializedTx = $transaction->serialize();
sign
返回交易数据的签名。
sign(string $privateKey)
字符串 privateKey - 带前导零的十六进制私钥。
示例
- 签署交易数据。
use Web3p\KardiachainTx\Transaction; $transaction = new Transaction([ 'nonce' => '0x01', 'from' => '0xb60e8dd61c5d32be8058bb8eb970870f07233155', 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', 'gas' => '0x76c0', 'gasPrice' => '0x9184e72a000', 'value' => '0x9184e72a', 'data' => '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' ]); $signedTx = $transaction->sign($stringPrivateKey);
hash
返回序列化交易数据的 keccak256 编码。
hash()
示例
- 哈希序列化交易数据。
use Web3p\KardiachainTx\Transaction; $transaction = new Transaction([ 'nonce' => '0x01', 'from' => '0xb60e8dd61c5d32be8058bb8eb970870f07233155', 'to' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567', 'gas' => '0x76c0', 'gasPrice' => '0x9184e72a000', 'value' => '0x9184e72a', 'data' => '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' ]); $hashedTx = $transaction->serialize();
许可证
MIT