transfer100.pizza#71,330,305brc-20Inscription #71073334#71,073,334htmlInscription #70664523#70,664,523htmlInscription #70664504#70,664,504htmltransfer50,000,000.trvs#65,909,074brc-20transfer50,000,000.trvs#65,908,299brc-20Inscription #64064747#64,064,747htmlInscription #64063883#64,063,883htmltransfer50,000,000.trvs#60,311,793brc-20#60,214,486Inscription #60214485#60,214,485html#60,212,001Inscription #60212000#60,212,000html#60,211,893Inscription #60211892#60,211,892html#60,205,807Inscription #60205806#60,205,806html#60,205,174Inscription #60205173#60,205,173html#60,205,048Inscription #60205047#60,205,047html#60,204,819Inscription #60204818#60,204,818html#60,204,514Inscription #60204513#60,204,513html#60,203,376Inscription #60203375#60,203,375html#60,201,218Inscription #60201217#60,201,217html#60,200,609Inscription #60200608#60,200,608html#60,199,578Inscription #60199577#60,199,577html#60,199,490Inscription #60199489#60,199,489html#60,199,391Inscription #60199390#60,199,390html#60,188,877Inscription #60188876#60,188,876htmltransfer50,000,000.trvs#57,734,765brc-20transfer49,000,000.trvs#50,541,843brc-200#50,026,556text0#50,026,554text0#50,026,553text0#50,026,552text0#50,026,549texttransfer1,100,000,000,000.shid#48,585,108brc-20cbrc-20:mint:BORD=1000#47,090,285textcbrc-20:mint:BORD=1000#47,090,284textcbrc-20:mint:BORD=1000#47,088,377textcbrc-20:mint:BORD=1000#47,088,364text let acme_cache = if let Some(acme_cache) = acme_cache { acme_cache.clone() } else { options.data_dir()?.join("acme-cache") }; Ok(acme_cache) } fn acme_domains(&self) -> Result<Vec<String>> { if !self.acme_domain.is_empty() { Ok(self.acme_domain.clone()) } else { Ok(vec![System::new() .host_name() .ok_or(anyhow!("no hostname found"))?]) } } fn http_port(&self) -> Option<u16> { if self.http || self.http_port.is_some() || (self.https_port.is_none() && !self.https) { Some(self.http_port.unwrap_or(80)) } else { None } } fn https_port(&self) -> Option<u16> { if self.https || self.https_port.is_some() { Some(self.https_port.unwrap_or(443)) } else { None } } fn acceptor(&self, options: &Options) -> Result<AxumAcceptor> { let config = AcmeConfig::new(self.acme_domains()?) .contact(&self.acme_contact) .cache_option(Some(DirCache::new(Self::acme_cache( self.acme_cache.as_ref(),#45,004,036text #[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,#45,003,881text }; let unsigned_transaction = TransactionBuilder::new( satpoint, inscriptions, unspent_outputs, locked_outputs, address.clone(), change, self.fee_rate, postage, ) .build_transaction()?; let signed_tx = client .sign_raw_transaction_with_wallet(&unsigned_transaction, None, None)? .hex; let txid = client.send_raw_transaction(&signed_tx)?; Ok(Box::new(Output { transaction: txid })) } fn lock_inscriptions( client: &Client, inscriptions: BTreeMap<SatPoint, InscriptionId>, unspent_outputs: BTreeMap<bitcoin::OutPoint, bitcoin::Amount>, ) -> Result { let all_inscription_outputs = inscriptions .keys() .map(|satpoint| satpoint.outpoint) .collect::<HashSet<OutPoint>>(); let wallet_inscription_outputs = unspent_outputs .keys() .filter(|utxo| all_inscription_outputs.contains(utxo)) .cloned() .collect::<Vec<OutPoint>>(); if !client.lock_unspent(&wallet_inscription_outputs)? {#45,003,836textmint10,000,000.trvs#44,879,689brc-20mint10,000,000.trvs#44,879,679brc-20mint10,000,000.trvs#44,879,677brc-20mint10,000,000.trvs#44,879,676brc-20mint10,000,000.trvs#44,879,645brc-20mint10,000,000.trvs#44,879,621brc-20