transfer3,000,000.rats#76,524,522brc-20transfer8,000.mice#76,524,382brc-20Inscription #75623918#75,623,918htmlInscription #73051565#73,051,565htmlInscription #73048162#73,048,162htmltransfer100.pizza#71,278,639brc-20transfer3,000,000.rats#70,643,890brc-20transfer8,000.mice#70,642,462brc-20#67,117,728video#66,849,480textInscription #66839897#66,839,897htmltransfer5,000,000.rats#66,749,766brc-20#57,071,416Inscription #57071415#57,071,415pngtransfer38,096.myld#48,502,030brc-20mint4,762.myld#48,489,971brc-20mint4,762.myld#48,489,970brc-20mint4,762.myld#48,489,969brc-20mint4,762.myld#48,489,967brc-20mint4,762.myld#48,489,966brc-20mint4,762.myld#48,489,963brc-20mint4,762.myld#48,489,962brc-20mint4,762.myld#48,489,959brc-20mint4,762.myld#48,489,958brc-20mint4,762.myld#48,489,957brc-20transfer10,000.mice#46,913,077brc-20Inscription #45320435#45,320,435pngInscription #45300247#45,300,247pngInscription #45274471#45,274,471pngInscription #45274365#45,274,365pngInscription #45274364#45,274,364pngmint1,000.mice#45,132,323brc-20mint1,000.mice#45,132,318brc-20mint1,000.mice#45,132,314brc-20mint1,000.mice#45,132,313brc-20mint1,000.mice#45,132,311brc-20mint1,000.mice#45,132,308brc-20mint1,000.mice#45,132,306brc-20mint1,000.mice#45,132,303brc-20mint1,000.mice#45,132,298brc-20mint1,000.mice#45,132,297brc-20pub(crate) use { super::*, bitcoin::{ blockdata::{opcodes, script, script::PushBytesBuf}, ScriptBuf, Witness, }, pretty_assertions::assert_eq as pretty_assert_eq, std::iter, test_bitcoincore_rpc::TransactionTemplate, unindent::Unindent, }; macro_rules! assert_regex_match { ($value:expr, $pattern:expr $(,)?) => { let regex = Regex::new(&format!("^(?s){}$", $pattern)).unwrap(); let string = $value.to_string(); if !regex.is_match(string.as_ref()) { panic!( "Regex:\n\n{}\n\n…did not match string:\n\n{}", regex, string ); } }; } macro_rules! assert_matches { ($expression:expr, $( $pattern:pat_param )|+ $( if $guard:expr )? $(,)?) => { match $expression { $( $pattern )|+ $( if $guard )? => {} left => panic!( "assertion failed: (left ~= right)\n left: `{:?}`\n right: `{}`", left, stringify!($($pattern)|+ $(if $guard)?) ), } } } pub(crate) fn blockhash(n: u64) -> BlockHash { let hex = format!("{n:x}");#45,010,933text Timestamp, WalletTxInfo, }, jsonrpc_core::{IoHandler, Value}, jsonrpc_http_server::{CloseHandle, ServerBuilder}, serde::{Deserialize, Serialize}, server::Server, state::State, std::{ collections::{BTreeMap, BTreeSet, HashMap}, sync::{Arc, Mutex, MutexGuard}, thread, time::Duration, }, }; mod api; mod server; mod state; pub fn builder() -> Builder { Builder { fail_lock_unspent: false, network: Network::Bitcoin, version: 240000, } } pub struct Builder { fail_lock_unspent: bool, network: Network, version: usize, } impl Builder { pub fn fail_lock_unspent(self, fail_lock_unspent: bool) -> Self { Self { fail_lock_unspent, ..self } } pub fn network(self, network: Network) -> Self { Self { network, ..self } } pub fn version(self, version: usize) -> Self { Self { version, ..self } } pub fn build(self) -> Handle { let state = Arc::new(Mutex::new(State::new( self.network, self.version, self.fail_lock_unspent,#44,994,427textInscription #42467222#42,467,222pngInscription #42466685#42,466,685pngtransfer2,000,000.rats#41,797,199brc-20mint10.bear#40,102,433brc-20mint10.bear#40,102,073brc-20mint10.bear#40,101,871brc-20mint10.bear#40,101,763brc-20mint10.bear#40,101,604brc-20mint10.bear#40,101,353brc-20mint10.bear#40,100,828brc-20mint10.bear#40,100,774brc-20mint10.bear#40,100,763brc-20mint10.bear#40,100,762brc-20transfer10,000,000.rats#38,446,388brc-20transfer10,000,000.rats#38,232,677brc-20mint1,000,000.rats#37,150,480brc-20mint1,000,000.rats#37,150,342brc-20