let string = $string; if !regex.is_match(string.as_ref()) { panic!( "Regex:\n\n{}\n\n…did not match string:\n\n{}", regex, string ); } }; } type Inscribe = ord::subcommand::wallet::inscribe::Output; fn inscribe(rpc_server: &test_bitcoincore_rpc::Handle) -> (InscriptionId, Txid) { rpc_server.mine_blocks(1); let output = CommandBuilder::new("wallet inscribe --fee-rate 1 --file foo.txt") .write("foo.txt", "FOO") .rpc_server(rpc_server) .run_and_deserialize_output::(); rpc_server.mine_blocks(1); assert_eq!(output.inscriptions.len(), 1); (output.inscriptions[0].id, output.reveal) } fn envelope(payload: &[&[u8]]) -> bitcoin::Witness { let mut builder = bitcoin::script::Builder::new() .push_opcode(bitcoin::opcodes::OP_FALSE) .push_opcode(bitcoin::opcodes::all::OP_IF); for data in payload { let mut buf = bitcoin::script::PushBytesBuf::new(); buf.extend_from_slice(data).unwrap(); builder = builder.push_slice(buf);