SHOWING: First 60
#[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