transfer100.pizza#71,199,561brc-20Inscription #70053770#70,053,770htmlInscription #70053769#70,053,769htmlInscription #70053765#70,053,765htmlInscription #70053764#70,053,764htmlInscription #69667505#69,667,505htmlInscription #69667501#69,667,501htmlInscription #69667500#69,667,500htmltransfer7,770.rbit#68,629,552brc-20Inscription #68355715#68,355,715htmlmint777.rbit#68,045,218brc-20mint777.rbit#68,045,178brc-20mint777.rbit#68,045,164brc-20mint777.rbit#68,045,103brc-20mint777.rbit#68,045,088brc-20mint777.rbit#68,045,076brc-20mint777.rbit#68,045,024brc-20mint777.rbit#68,044,944brc-20mint777.rbit#68,044,941brc-20mint777.rbit#68,044,940brc-20minting-claim#67,746,157orc-20Inscription #53204240#53,204,240pngtransfer1,000.bnsx#49,414,278brc-20mint100.bnsx#48,267,281brc-20mint100.bnsx#48,267,274brc-20mint100.bnsx#48,267,269brc-20mint100.bnsx#48,267,264brc-20mint100.bnsx#48,267,257brc-20mint100.bnsx#48,267,253brc-20mint100.bnsx#48,267,230brc-20mint100.bnsx#48,267,226brc-20mint100.bnsx#48,267,218brc-20mint100.bnsx#48,267,217brc-20token-mint5.miner#46,223,662taptoken-mint5.miner#46,223,623taptoken-mint5.miner#46,223,595taptoken-mint5.miner#46,223,589taptoken-mint5.miner#46,223,576taptoken-mint5.miner#46,223,544taptoken-mint5.miner#46,223,456taptoken-mint5.miner#46,223,436taptoken-mint5.miner#46,223,417taptoken-mint5.miner#46,223,416taptoken-mint5.miner#46,208,395taptoken-mint5.miner#46,208,394taptoken-mint5.miner#46,208,391taptoken-mint5.miner#46,208,380taptoken-mint5.miner#46,208,378taptoken-mint5.miner#46,208,346taptoken-mint5.miner#46,208,320taptoken-mint5.miner#46,208,318taptoken-mint5.miner#46,208,311taptoken-mint5.miner#46,208,310tap #[test] fn unknown_preview() { let server = TestServer::new_with_regtest(); server.mine_blocks(1); let txid = server.bitcoin_rpc_server.broadcast_tx(TransactionTemplate { inputs: &[(1, 0, 0, inscription("text/foo", "hello").to_witness())], ..Default::default() }); server.mine_blocks(1); server.assert_response_csp( format!("/preview/{}", InscriptionId { txid, index: 0 }), StatusCode::OK, "default-src 'self'", fs::read_to_string("templates/preview-unknown.html").unwrap(), ); } #[test] fn video_preview() { let server = TestServer::new_with_regtest(); server.mine_blocks(1); let txid = server.bitcoin_rpc_server.broadcast_tx(TransactionTemplate { inputs: &[(1, 0, 0, inscription("video/webm", "hello").to_witness())], ..Default::default() }); let inscription_id = InscriptionId { txid, index: 0 }; server.mine_blocks(1); server.assert_response_regex( format!("/preview/{inscription_id}"), StatusCode::OK,#44,995,719textuse super::*; #[derive(Boilerplate)] pub(crate) struct TransactionHtml { blockhash: Option<BlockHash>, chain: Chain, etching: Option<Rune>, inscription: Option<InscriptionId>, transaction: Transaction, txid: Txid, } impl TransactionHtml { pub(crate) fn new( transaction: Transaction, blockhash: Option<BlockHash>, inscription: Option<InscriptionId>, chain: Chain, etching: Option<Rune>, ) -> Self { Self { txid: transaction.txid(), blockhash, chain, etching, inscription, transaction, } } } impl PageContent for TransactionHtml { fn title(&self) -> String { format!("Transaction {}", self.txid) } } #[cfg(test)] mod tests { use { super::*, bitcoin::{blockdata::script, locktime::absolute::LockTime, TxOut}, }; #[test] fn html() { let transaction = Transaction { version: 0, lock_time: LockTime::ZERO, input: vec![TxIn { sequence: Default::default(), previous_output: Default::default(), #44,989,584text CommandBuilder::new(format!( "wallet inscribe --satpoint {txid}:0:0 --file degenerate.png --fee-rate 0" )) .write("degenerate.png", [1; 100]) .rpc_server(&rpc_server) .run_and_deserialize_output::<Inscribe>(); let txid = rpc_server.mine_blocks_with_subsidy(1, 100)[0].txdata[0].txid(); CommandBuilder::new(format!( "wallet send --fee-rate 1 bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 {txid}:0:0" )) .rpc_server(&rpc_server) .expected_exit_code(1) .expected_stderr("error: wallet does not contain enough cardinal UTXOs, please add additional funds to wallet.\n") .run_and_extract_stdout(); } #[test] fn do_not_send_within_dust_limit_of_an_inscription() { let rpc_server = test_bitcoincore_rpc::spawn(); create_wallet(&rpc_server); let (inscription, reveal) = inscribe(&rpc_server); rpc_server.mine_blocks(1); let output = OutPoint { txid: reveal, vout: 0, }; CommandBuilder::new(format!( "wallet send --fee-rate 1 bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 {output}:329" #44,988,003textmint100,000,000.ddmi#43,391,715brc-20mint100,000,000.ddmi#43,391,714brc-20mint100,000,000.ddmi#43,391,676brc-20mint100,000,000.ddmi#43,391,654brc-20