Входная информация:
Закрытый ключ: a83a4cb47dc14208cb07e09005ca0871877899e99e94d9d1ee61e9fc42e2a8ae
Адрес владельца: TUQv1rA4dko2tw4TmV4yUVejDC2zFeAHEn
По адресу: TJrHZ4JcUrJWcHfZvrUjWomQv3tynmCVf2
Сумма: 5 TRX (5 * 1000000 SUN)
Что я делаю:
- Создаю транзакцию
Результат:Код: Выделить всё
$response = Http::post('https://api.trongrid.io/wallet/createtransaction', [ 'to_address' => 'TJrHZ4JcUrJWcHfZvrUjWomQv3tynmCVf2', 'owner_address' => 'TUQv1rA4dko2tw4TmV4yUVejDC2zFeAHEn', 'amount' => 5 * 1000000, 'visible' => true, ]);
Код: Выделить всё
{ "visible": true, "txID": "ac249b31883a386e46f400a4bdd0d01e53f189f8f7cee094ce9d1f63fb921b65", "raw_data": { "contract": [ { "parameter": { "value": { "amount": 5000000, "owner_address": "TUQv1rA4dko2tw4TmV4yUVejDC2zFeAHEn", "to_address": "TJrHZ4JcUrJWcHfZvrUjWomQv3tynmCVf2" }, "type_url": "type.googleapis.com/protocol.TransferContract" }, "type": "TransferContract" } ], "ref_block_bytes": "7256", "ref_block_hash": "9c55a016a0d6caa5", "expiration": 1730294304000, "timestamp": 1730294245634 }, "raw_data_hex": "0a02725622089c55a016a0d6caa540809acfecad325a68080112640a2d747970652e676f6f676c65617069732e636f6d2f70726f746f636f6c2e5472616e73666572436f6e747261637412330a1541ca4ee64b8188011afab4ed9de3d11d852dd2a6ba121541616a0517a192d20f405ec9faff893bae5e0b266718c096b1027082d2cbecad32" }
- Часть подписи
Код: Выделить всё
$ec = new EC('secp256k1');
$key = $ec->keyFromPrivate('a83a4cb47dc14208cb07e09005ca0871877899e99e94d9d1ee61e9fc42e2a8ae');
$txHash = hash('sha256', hex2bin($rawTransaction['raw_data_hex']));
$signature = $key->sign($txHash);
$signatureArray = [
str_pad($signature->r->toString('hex'), 64, '0', STR_PAD_LEFT),
str_pad($signature->s->toString('hex'), 64, '0', STR_PAD_LEFT),
bin2hex(chr($signature->recoveryParam)),
];
$rawTransaction['signature'] = [implode('', $signatureArray)];
- Вещание
Код: Выделить всё
$response = Http::post('https://api.trongrid.io/wallet/broadcasttransaction', $rawTransaction);
return $response->json()['txid'];
Код: Выделить всё
{
"code": "SIGERROR",
"txid": "ac249b31883a386e46f400a4bdd0d01e53f189f8f7cee094ce9d1f63fb921b65",
"message": "Validate signature error: ff13094567a41a3bdb96172bd90ca48c3d1c88c92822179c5508e35d552f85a45a286d00f78297267e7f6fb6ad7f8b732cf359acd99003ec871976c7003b35d201 is signed by TPXrKoC5wJQx3CeuAEx57vsmnJ8pKEoF5a (Here random addresses) but it is not contained of permission."
}
Я ожидаю подписанную широковещательную транзакцию.
Кроме того, я попробовал видимую: ложный флаг и HEX-адреса, но также получили тот же SIGERROR.
Это тестовые кошельки, которые не будут использоваться в рабочей среде.
API TronGrid По умолчанию ключевой заголовок предоставляется из HttpClient.
Подробнее здесь: https://stackoverflow.com/questions/791 ... hp-laravel