Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Modules/ArbitrumOneMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Arbitrum One module. It requires a geth node to run. */

final class ArbitrumOneMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class ArbitrumOneMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/AvalancheMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Avalanche C-Chain module. It requires a geth node to run. */

final class AvalancheMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class AvalancheMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/BNBMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main BNB module. It requires either a geth or an Erigon node to run (but the latter is much faster). */

final class BNBMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class BNBMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/BOBMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main BOB module. It requires a geth node to run. */

final class BOBMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class BOBMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/BaseMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Base module. It requires a geth node to run. */

final class BaseMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class BaseMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
4 changes: 2 additions & 2 deletions Modules/BlastMainModule.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php declare(strict_types = 1);

/* Idea (c) 2023 Nikita Zhavoronkov, nikzh@nikzh.com
* Copyright (c) 2023 3xpl developers, 3@3xpl.com, see CONTRIBUTORS.md
* Copyright (c) 2023-2024 3xpl developers, 3@3xpl.com, see CONTRIBUTORS.md
* Distributed under the MIT software license, see LICENSE.md */

/* This is the main Blast module. It requires a geth node to run. */

final class BlastMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class BlastMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/BotanixMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Botanix module. It requires either a geth node to run. */

final class BotanixMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class BotanixMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
32 changes: 32 additions & 0 deletions Modules/Common/EVMMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -886,4 +886,36 @@ final public function api_get_address_specials(string $address): array

return $specials->return();
}

final function api_broadcast_transaction(string $data): ?string
{
if (!preg_match(StandardPatterns::HexWith0x->value, $data))
return null;

$hash = null;

foreach ($this->nodes as $node)
{
// We're fine here with some nodes being down, so we don't use `requester_multi()`
// which requires for all nodes to be online.
try
{
$this_hash = requester_single($node, params: [
'jsonrpc' => '2.0',
'method' => 'eth_sendRawTransaction',
'params' => [$data],
'id' => 0],
timeout: $this->timeout)['result'];
}
catch (Throwable $t)
{
$this_hash = null;
}

if ($this_hash)
$hash = $this_hash;
}

return $hash;
}
}
2 changes: 1 addition & 1 deletion Modules/EthereumClassicMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* not available on geth for some older transactions when requesting receipts and a special fix is required,
* see https://github.com/3xplcom/ethereum-classic */

final class EthereumClassicMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class EthereumClassicMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/EthereumMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Ethereum module. It requires either a geth or an Erigon node to run (but the latter is much faster). */

final class EthereumMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class EthereumMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/FantomMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Fantom module. It requires a geth node to run. */

final class FantomMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class FantomMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/GnosisChainMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* the created contract address neither in the transaction info, nor in the transaction receipt. That's probably a bug with
* Nethermind which is not observed with Erigon. `No address` exception will be thrown for such transactions. */

final class GnosisChainMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class GnosisChainMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/LineaMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Linea module. It requires a geth node to run. */

final class LineaMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class LineaMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/OptimismMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Optimism module. It requires a geth node to run. */

final class OptimismMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class OptimismMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/PolygonMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Polygon module. It requires either a geth or an Erigon node to run (but the latter is much faster). */

final class PolygonMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class PolygonMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/PolygonzkEVMMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Polygon zkEVM module. It requires a geth node to run. */

final class PolygonzkEVMMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class PolygonzkEVMMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/RootstockMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main Rootstock module. */

final class RootstockMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class RootstockMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
2 changes: 1 addition & 1 deletion Modules/opBNBMainModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

/* This is the main opBNB module. It requires a geth node to run. */

final class opBNBMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class opBNBMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down
4 changes: 2 additions & 2 deletions Modules/zkSyncEraMainModule.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php declare(strict_types = 1);

/* Idea (c) 2023 Nikita Zhavoronkov, nikzh@nikzh.com
* Copyright (c) 2023 3xpl developers, 3@3xpl.com, see CONTRIBUTORS.md
* Copyright (c) 2023-2024 3xpl developers, 3@3xpl.com, see CONTRIBUTORS.md
* Distributed under the MIT software license, see LICENSE.md */

/* This is the main zkSync module. It requires a geth node to run. */

final class zkSyncEraMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials
final class zkSyncEraMainModule extends EVMMainModule implements Module, BalanceSpecial, TransactionSpecials, AddressSpecials, BroadcastTransactionSpecial
{
function initialize()
{
Expand Down