@@ -239,6 +239,25 @@ func (s *NeutrinoClient) TestMempoolAccept(txns []*wire.MsgTx,
239239 return nil , ErrUnimplemented
240240}
241241
242+ // SubmitPackage is unimplemented for the neutrino backend, mirroring
243+ // TestMempoolAccept: a light client has no mempool and cannot run the
244+ // submitpackage RPC, so it can neither validate nor atomically accept a
245+ // package, nor report whether one was accepted.
246+ //
247+ // A zero-fee parent paired with a fee-paying CPFP child can still reach the
248+ // network over neutrino by broadcasting each transaction individually (parents
249+ // first) via SendRawTransaction and relying on a peer's P2P 1p1c package
250+ // relay. That is a best-effort propagation step with no acceptance signal,
251+ // distinct from submitpackage's submit-for-acceptance contract, so it is left
252+ // to the caller rather than conflated with this method.
253+ //
254+ // NOTE: This is part of the chain.Interface interface.
255+ func (s * NeutrinoClient ) SubmitPackage (_ []* wire.MsgTx ,
256+ _ * float64 ) (* btcjson.SubmitPackageResult , error ) {
257+
258+ return nil , ErrUnimplemented
259+ }
260+
242261// FilterBlocks scans the blocks contained in the FilterBlocksRequest for any
243262// addresses of interest. For each requested block, the corresponding compact
244263// filter will first be checked for matches, skipping those that do not report
0 commit comments