transfer100.pizza#71,246,965brc-20Inscription #71094891#71,094,891htmlInscription #65975258#65,975,258pngInscription #65002316#65,002,316svg#64,410,429Inscription #64035202#64,035,202htmltransfer143,750.saix#51,830,233brc-20mint.charactor:succubus#51,369,555brc-1024mint.charactor:skeleton#51,369,554brc-1024mint.charactor:zombie#51,369,023brc-1024Inscription #46579508#46,579,508pngInscription #46579495#46,579,495pngInscription #45139863#45,139,863html rune: Rune(RUNE), ..Default::default() }), ..Default::default() } .encipher(), ), ..Default::default() }); context.mine_blocks(1); let id = RuneId { height: 2, index: 1, }; context.assert_runes( [( id, RuneEntry { etching: txid, rune: Rune(RUNE), supply: u128::max_value(), timestamp: 2, ..Default::default() }, )], [(OutPoint { txid, vout: 0 }, vec![(id, u128::max_value())])], ); } } #[test] fn etching_with_non_zero_divisibility_and_rune() { let context = Context::builder() .arg("--index-runes-pre-alpha-i-agree-to-get-rekt") .build(); context.mine_blocks(1); let txid = context.rpc_server.broadcast_tx(TransactionTemplate { inputs: &[(1, 0, 0, Witness::new())], op_return: Some( Runestone { edicts: vec![Edict {#44,999,284text output_1 ), ); ord_server.assert_response_regex( format!("/inscription/{}", output.inscriptions[1].id), format!( r".*<dt>parent</dt>\s*<dd>.*{parent_id}.*</dd>.*<dt>output value</dt>.*<dd>10000</dd>.*.*<dt>location</dt>.*<dd class=monospace>{}:0</dd>.*", output_2 ), ); ord_server.assert_response_regex( format!("/inscription/{}", output.inscriptions[2].id), format!( r".*<dt>parent</dt>\s*<dd>.*{parent_id}.*</dd>.*<dt>output value</dt>.*<dd>10000</dd>.*.*<dt>location</dt>.*<dd class=monospace>{}:0</dd>.*", output_3 ), ); } #[test] fn batch_in_separate_outputs_with_parent_and_non_default_postage() { let rpc_server = test_bitcoincore_rpc::spawn(); rpc_server.mine_blocks(1); assert_eq!(rpc_server.descriptors().len(), 0); create_wallet(&rpc_server); let parent_output = CommandBuilder::new("wallet inscribe --fee-rate 5.0 --file parent.png") .write("parent.png", [1; 520]) .rpc_server(&rpc_server) .run_and_deserialize_output::<Inscribe>();#44,999,282text 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::<Inscribe>(); 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); #44,999,278textuse {super::*, crate::wallet::Wallet}; #[derive(Debug, Parser)] pub(crate) struct Sats { #[arg( long, help = "Find satoshis listed in first column of tab-separated value file <TSV>." )] tsv: Option<PathBuf>, } #[derive(Serialize, Deserialize)] pub struct OutputTsv { pub sat: String, pub output: OutPoint, } #[derive(Serialize, Deserialize)] pub struct OutputRare { pub sat: Sat, pub output: OutPoint, pub offset: u64, pub rarity: Rarity, } impl Sats { pub(crate) fn run(&self, options: Options) -> SubcommandResult { let index = Index::open(&options)?; if !index.has_sat_index() { bail!("sats requires index created with `--index-sats` flag"); } index.update()?; let utxos = index.get_unspent_output_ranges(Wallet::load(&options)?)?; if let Some(path) = &self.tsv { let mut output = Vec::new(); for (outpoint, sat) in sats_from_tsv( utxos, &fs::read_to_string(path) .with_context(|| format!("I/O error reading `{}`", path.display()))?,#44,999,274text"ng digital artifacts ay bihira at samakatuwid ay mahalaga." #: src/faq.md:177 msgid "" "Ethereum NFTs, on the other hand, can be minted in virtually unlimited " "qualities with a single transaction, making them inherently less scarce, and " "thus, potentially less valuable." msgstr "" "Ang mga Ethereum NFT, sa kabilang banda, ay maaaring ma-mint sa halos walang " "limitasyong mga katangian sa isang transaksyon, na ginagawa itong likas na " "hindi gaanong bihira, at samakatuwid ay potensyal na hindi gaanong mahalaga." #: src/faq.md:181 msgid "_Inscriptions do not pretend to support on-chain royalties._" msgstr "" "_Hindi inaangkin ng inscriptions ang pag-suportahan sa mga on-chain royalty " "ng blockchain._" #: src/faq.md:183 msgid "" "On-chain royalties are a good idea in theory but not in practice. Royalty " "payment cannot be enforced on-chain without complex and invasive " "restrictions. The Ethereum NFT ecosystem is currently grappling with " "confusion around royalties, and is collectively coming to grips with the "#44,994,573textcontent, the higher the fee that the inscription transaction must pay. Inscription content is included in transaction witnesses, which receive the witness discount. To calculate the approximate fee that an inscribe transaction will pay, divide the content size by four and multiply by the fee rate. Inscription transactions must be less than 400,000 weight units, or they will not be relayed by Bitcoin Core. One byte of inscription content costs one weight unit. Since an inscription transaction includes not just the inscription content, limit inscription content to less than 400,000 weight units. 390,000 weight units should be safe. Creating Inscriptions --------------------- To create an inscription with the contents of `FILE`, run: ``` ord wallet inscribe --fee-rate FEE_RATE --file FILE ``` Ord will output two transactions IDs, one for the commit transaction, and one for the reveal transaction, and the inscription ID. Inscription IDs are of the form `TXIDiN`, where `TXID` is the transaction ID of the reveal transaction,#44,994,403textmint10.bear#39,687,504brc-20mint10.bear#39,687,501brc-20mint10.bear#39,687,497brc-20mint10.bear#39,687,493brc-20mint10.bear#39,687,491brc-20mint10.bear#39,687,490brc-20mint10.bear#39,687,486brc-20mint10.bear#39,687,483brc-20mint10.bear#39,687,475brc-20mint10.bear#39,687,474brc-20mint10.bear#39,687,471brc-20mint10.bear#39,687,469brc-20mint10.bear#39,687,467brc-20mint10.bear#39,687,465brc-20mint10.bear#39,687,461brc-20mint10.bear#39,687,460brc-20mint10.bear#39,684,084brc-20mint10.bear#39,684,082brc-20mint10.bear#39,684,079brc-20mint10.bear#39,684,078brc-20mint10.bear#39,684,076brc-20mint10.bear#39,684,075brc-20mint10.bear#39,684,074brc-20transfer1,000.btcs#35,377,003brc-20transfer1,000.btcs#33,307,978brc-20Inscription #20798191#20,798,191webp80249.btc#17,103,962text