I am trying to identify all the possible entry points that an extrinsic can reach the node. From my understanding so far the following rpc endpoints are the only ones that can add transactions to the node and the memory pool:
- submitExtrinsic
- submitAndWatchExtrinsic
That is ignoring transactions that have been imported by other nodes. You can submit extrinsic either through a connection with the http interface (rpc-port) or the ws interface (ws-port). The API endpoints provided by the polkadot js library, such as api.query, api.tx or api.derive just wrap RPC calls.
From v0.9.35 and newer, the two ways are merged on a single port.
I haven't fully followed the path of frame_system::offchain::SubmitTransaction, but is it safe to assume it follows the same journey through the same RPC calls? Are there any other entrypoints that an extrinsic might get submitted to a node?