Skip to content
Merged
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
b7f2ac9
fix(rpc): validate JSON-RPC envelopes and map Core HTTP statuses
DPS0340 Oct 18, 2026
6cb1ef1
fix(rpc): use Core's exact envelope messages and correct the API-02 c…
DPS0340 Oct 18, 2026
1fab61c
test(rpc): pin the all-notification batch reply and drop a Core attri…
DPS0340 Oct 18, 2026
a5596d5
fix(rpc): keep the v2 envelope on post-classification envelope failures
Oct 22, 2026
0161283
fix(rpc): answer envelope refusals at HTTP 400 and Core's scalar/empt…
Oct 21, 2026
1173a6b
Parse RPC amounts exactly and clamp modified fees
metaphorics Oct 24, 2026
d18aae6
Reject malformed decimal points in RPC amounts
metaphorics Oct 24, 2026
e57d49c
feat(rpc): submit scoped CPFP packages through the gateway
gosunuts Oct 22, 2026
ad00c0a
Attribute package fee credits and close the RPC report gaps
metaphorics Oct 22, 2026
60d6a84
Record the pre-script fee-cap exception and package proofs
metaphorics Oct 22, 2026
f19f54d
Price each effective set at its own modified rate
metaphorics Oct 22, 2026
e07bee4
fix(mempool): report the package's effective set on every committed m…
Oct 23, 2026
81910ed
Add optional BIP337 compressed transaction RPCs
metaphorics Oct 24, 2026
99f6f1b
Expand bounded public descriptor scans
metaphorics Oct 24, 2026
d0c5ef9
Track active RPC calls and instrument proof scans
metaphorics Oct 24, 2026
fc4c09b
Repair generated RPC contract fragments
metaphorics Oct 26, 2026
5bab99c
Require owned RPC bind proof during process readiness
metaphorics Oct 26, 2026
6e54010
Check scientific amount exponent subtraction
metaphorics Oct 27, 2026
a7e8caf
Review fixes for the RPC stack: varint range, P2PKH round-trip, lock-…
metaphorics Oct 27, 2026
7c428c2
Resolve RPC review test lint findings
metaphorics Oct 27, 2026
a9a2a9c
Split RPC amount invariant tests
metaphorics Oct 27, 2026
0ea66e0
Deduplicate RPC conversions and endpoint validation
metaphorics Oct 27, 2026
2d9a1be
Reject lossy P2PKH script compression
metaphorics Oct 27, 2026
75d1675
Correct legacy batch status documentation
metaphorics Oct 27, 2026
b195ec7
Publish hashtx for accepted observer mutations
metaphorics Oct 27, 2026
0416119
Accept getrpcinfo as its own active command
metaphorics Oct 27, 2026
ceace0e
Fix RPC close ownership and cached body parsing
metaphorics Oct 28, 2026
6ddefb9
Keep lossy BIP337 input shapes uncompressed
gormes-agent[bot] Oct 28, 2026
9865e4f
Port registration-time observer interest into RPC stack
metaphorics Oct 28, 2026
cc27703
Condition ZMQ body interest on rawtx
metaphorics Oct 28, 2026
dbc3911
Charge retained RPC transaction allocations
metaphorics Oct 28, 2026
686b50f
Merge main into stack/03-rpc
metaphorics Oct 28, 2026
46a068c
Merge main into stack/03-rpc
metaphorics Oct 28, 2026
c798cff
Adapt merged sync tests to branch ownership API
metaphorics Oct 28, 2026
30d0191
Remove duplicate descriptor scan import
metaphorics Oct 28, 2026
64f892d
Merge origin/main into stack/03-rpc
metaphorics Oct 28, 2026
68d47db
rpc: clone only requested TxOut; share one SighashCache across recove…
metaphorics Oct 28, 2026
9c8c0a5
Merge branch 'main' into stack/03-rpc
metaphoric-dev Oct 28, 2026
c06ee88
rpc: group compressed-tx body lookups by height; bound cumulative loads
metaphorics Oct 28, 2026
551278a
Merge remote-tracking branch 'origin/stack/03-rpc' into stack/03-rpc
metaphorics Oct 28, 2026
5d4f8e1
Merge branch 'main' into stack/03-rpc
metaphoric-dev Oct 28, 2026
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
413 changes: 413 additions & 0 deletions bin/bitcoin-rs/tests/support/policy_cases.rs

Large diffs are not rendered by default.

21 changes: 6 additions & 15 deletions crates/mempool/src/admission.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2421,17 +2421,14 @@ mod tests {
{
struct Observer(AtomicUsize);
impl crate::MempoolObserver for Observer {
fn wants_accepted_transactions(&self) -> bool {
false
}
fn on_mutation(&self, _: &crate::MutationEnvelope) {
self.0.fetch_add(1, Ordering::SeqCst);
}
}
let observer = Arc::new(Observer(AtomicUsize::new(0)));
let preview_gateway = Arc::new(MempoolGateway::new(
Arc::new(RwLock::new(Mempool::new(crate::MempoolLimits::default()))),
Some(observer.clone()),
Some((observer.clone(), crate::BodyInterest::Metadata)),
ValidationEngine::Native,
None,
));
Expand Down Expand Up @@ -2997,9 +2994,6 @@ mod tests {
struct ReorgRecording(Mutex<Vec<(Txid, AdmissionOrigin)>>);

impl crate::MempoolObserver for ReorgRecording {
fn wants_accepted_transactions(&self) -> bool {
false
}
fn on_mutation(&self, envelope: &crate::MutationEnvelope) {
let mut seen = self.0.lock();
for change in &envelope.result.changes {
Expand All @@ -3018,9 +3012,6 @@ mod tests {
struct ReorgBatchLog(Mutex<Vec<ReorgBatch>>);

impl crate::MempoolObserver for ReorgBatchLog {
fn wants_accepted_transactions(&self) -> bool {
false
}
fn on_mutation(&self, envelope: &crate::MutationEnvelope) {
let mut seen = self.0.lock();
seen.push((
Expand All @@ -3039,7 +3030,7 @@ mod tests {
let leg: Arc<dyn crate::MempoolObserver> = observer.clone();
Arc::new(MempoolGateway::new(
Arc::new(RwLock::new(Mempool::new(crate::MempoolLimits::default()))),
Some(leg),
Some((leg, crate::BodyInterest::Metadata)),
ValidationEngine::Native,
None,
))
Expand Down Expand Up @@ -3255,7 +3246,7 @@ mod tests {
let leg: Arc<dyn crate::MempoolObserver> = log.clone();
let gateway = Arc::new(MempoolGateway::new(
Arc::new(RwLock::new(Mempool::new(limits))),
Some(leg),
Some((leg, crate::BodyInterest::Metadata)),
ValidationEngine::Native,
None,
));
Expand Down Expand Up @@ -3641,7 +3632,7 @@ mod tests {
let leg: Arc<dyn crate::MempoolObserver> = log.clone();
let gateway = Arc::new(MempoolGateway::new(
Arc::new(RwLock::new(Mempool::new(crate::MempoolLimits::default()))),
Some(leg),
Some((leg, crate::BodyInterest::Metadata)),
ValidationEngine::Native,
None,
));
Expand All @@ -3667,7 +3658,7 @@ mod tests {
max_total_bytes: 100,
..crate::MempoolLimits::default()
}))),
Some(observer),
Some((observer, crate::BodyInterest::Metadata)),
ValidationEngine::Native,
None,
);
Expand Down Expand Up @@ -3793,7 +3784,7 @@ mod tests {
max_total_bytes: 100,
..crate::MempoolLimits::default()
}))),
Some(observer),
Some((observer, crate::BodyInterest::Metadata)),
ValidationEngine::Native,
None,
));
Expand Down
Loading
Loading