0#60,459,446text#54,254,405veda #50,446,273text#50,154,581veda0#47,246,555text0#47,246,554text0#47,246,553text0#47,236,182text0#47,233,880text0#47,231,774text0#47,231,773text0#47,231,655text0#47,231,653text0#47,144,677text0#47,140,300text0#47,138,085text0#47,138,084text0#47,138,083textInscription #46838059#46,838,059pngInscription #46554576#46,554,576pngInscription #46385077#46,385,077pngtoken-mint5.miner#46,170,917taptoken-mint5.miner#46,170,901taptoken-mint5.miner#46,170,073taptoken-mint5.miner#46,170,072taptoken-mint5.miner#46,170,071taptoken-mint5.miner#46,170,070taptoken-mint5.miner#46,170,069taptoken-mint5.miner#46,170,068taptoken-mint5.miner#46,170,067taptoken-mint5.miner#46,170,066taptoken-mint5.miner#46,170,065taptoken-mint5.miner#46,170,064taptoken-mint5.miner#46,170,063taptoken-mint5.miner#46,170,062taptoken-mint5.miner#46,170,061taptoken-mint5.miner#46,170,060taptoken-mint5.miner#46,170,059taptoken-mint5.miner#46,170,058taptoken-mint5.miner#46,170,057taptoken-mint5.miner#46,170,056taptoken-mint5.miner#46,170,055taptoken-mint5.miner#46,170,054taptoken-mint5.miner#46,170,053taptoken-mint5.miner#46,170,052taptoken-mint5.miner#46,170,051tapInscription #46049126#46,049,126png"ord index update\n" "```" msgstr "" "```bash\n" "rm ~/Library/Application Support/ord/index.redb\n" "ord index update\n" "```" #: src/guides/reindexing.md:29 msgid "" "You can of course also set the location of the data directory yourself with " "`ord --data-dir <DIR> index update` or give it a specific filename and path " "with `ord --index <FILENAME> index update`." msgstr "" "También tienes la opción de determinar la ubicación del directorio de datos " "utilizando el comando `ord --data-dir <DIR> index update` o asignarle un nombre " "de archivo y ruta específicos utilizando el comando `ord --index <NOMBRE_DE_ARCHIVO> " "index update`." #: src/bounties.md:1 msgid "Ordinal Bounty Hunting Hints" msgstr "Pistas para la Caza de Recompensas de Ordinals" #: src/bounties.md:4 msgid "" "The `ord` wallet can send and receive specific satoshis. Additionally, " "ordinal theory is extremely simple. A clever hacker should be able to write " "code from scratch to manipulate satoshis using ordinal theory in no time." #44,994,738textmsgstr "" "Envía un sat cuyo número ordinal termine en cero a la dirección de entrega:" #: src/bounty/0.md:9 msgid "✅: [1857578125803250](https://ordinals.com/ordinal/1857578125803250)" msgstr "✅: [1857578125803250](https://ordinals.com/ordinal/1857578125803250)" #: src/bounty/0.md:11 msgid "❌: [1857578125803251](https://ordinals.com/ordinal/1857578125803251)" msgstr "❌: [1857578125803251](https://ordinals.com/ordinal/1857578125803251)" #: src/bounty/0.md:13 msgid "The sat must be the first sat of the output you send." msgstr "El sat debe ser el primer sat de la salida que envíes." #: src/bounty/0.md:15 #: src/bounty/1.md:14 #: src/bounty/2.md:15 #: src/bounty/3.md:63 msgid "Reward" msgstr "Recompensa" #: src/bounty/0.md:18 msgid "100,000 sats" msgstr "100,000 sats" #: src/bounty/0.md:20 #: src/bounty/1.md:19 #: src/bounty/2.md:20 #: src/bounty/3.md:70 msgid "Submission Address" msgstr "Dirección de Entrega" #: src/bounty/0.md:23 msgid "" "[`1PE7u4wbDP2RqfKN6geD1bG57v9Gj9FXm3`](https://mempool.space/address/1PE7u4wbDP2RqfKN6geD1bG57v9Gj9FXm3)" #44,994,713textmsgstr "" "[`1PE7u4wbDP2RqfKN6geD1bG57v9Gj9FXm3`](https://mempool.space/address/1PE7u4wbDP2RqfKN6geD1bG57v9Gj9FXm3)" #: src/bounty/0.md:25 #: src/bounty/1.md:24 #: src/bounty/2.md:25 #: src/bounty/3.md:75 msgid "Status" msgstr "Estado" #: src/bounty/0.md:28 msgid "" "Claimed by " "[@count_null](https://twitter.com/rodarmor/status/1560793241473400833)!" msgstr "" "Reclamado por " "[@count_null](https://twitter.com/rodarmor/status/1560793241473400833)!" #: src/bounty/1.md:1 msgid "Ordinal Bounty 1" msgstr "Recompensa Ordinal 1" #: src/bounty/1.md:7 msgid "" "The transaction that submits a UTXO containing the oldest sat, i.e., that " "with the lowest number, amongst all submitted UTXOs will be judged the " "winner." msgstr "" "La transacción que envíe un UTXO que contenga el sat más antiguo, " "es decir, aquel con el número más bajo, entre todos los UTXOs enviados será " "considerado el ganador." #: src/bounty/1.md:10 msgid "" "The bounty is open for submissions until block 753984—the first block of " "difficulty adjustment period 374. Submissions included in block 753984 or " #44,994,691text #: src/guides/reindexing.md:17 msgid "`$XDG_DATA_HOME`/ord or `$HOME`/.local/share/ord" msgstr "" #: src/guides/reindexing.md:17 msgid "/home/alice/.local/share/ord" msgstr "" #: src/guides/reindexing.md:18 msgid "macOS" msgstr "" #: src/guides/reindexing.md:18 msgid "`$HOME`/Library/Application Support/ord" msgstr "" #: src/guides/reindexing.md:18 msgid "/Users/Alice/Library/Application Support/ord" msgstr "" #: src/guides/reindexing.md:19 msgid "Windows" msgstr "" #: src/guides/reindexing.md:19 msgid "`{FOLDERID_RoamingAppData}`\\\\ord" msgstr "" #: src/guides/reindexing.md:19 msgid "C:\\Users\\Alice\\AppData\\Roaming\\ord" msgstr "" #: src/guides/reindexing.md:21 msgid "" "So to delete the database and reindex on MacOS you would have to run the " "following commands in the terminal:" msgstr "" "Para eliminar la base de datos y reindexar en MacOS, tendrías que ejecutar " "los siguientes comandos en la terminal:" #: src/guides/reindexing.md:24 msgid "" "```bash\n" "rm ~/Library/Application Support/ord/index.redb\n" #44,994,690text if SHUTTING_DOWN.fetch_or(true, atomic::Ordering::Relaxed) { process::exit(1); } println!("Shutting down gracefully. Press <CTRL-C> again to shutdown immediately."); LISTENERS .lock() .unwrap() .iter() .for_each(|handle| handle.graceful_shutdown(Some(Duration::from_millis(100)))); }) .expect("Error setting <CTRL-C> handler"); match Arguments::parse().run() { Err(err) => { eprintln!("error: {err}"); err .chain() .skip(1) .for_each(|cause| eprintln!("because: {cause}")); if env::var_os("RUST_BACKTRACE") .map(|val| val == "1") .unwrap_or_default() { eprintln!("{}", err.backtrace()); } gracefully_shutdown_indexer(); process::exit(1); } Ok(output) => output.print_json(), } gracefully_shutdown_indexer(); } #44,989,324text } .store(), buffer.as_slice(), )?; } // increment entries with burned runes for (id, amount) in burned { let id = RuneId::try_from(id).unwrap().store(); let mut entry = RuneEntry::load(self.id_to_entry.get(id)?.unwrap().value()); entry.burned += amount; self.id_to_entry.insert(id, entry.store())?; } Ok(()) } } #[cfg(test)] mod tests { use super::*; #[test] fn claim_from_id() { assert_eq!(claim(1), None); assert_eq!(claim(1 | CLAIM_BIT), Some(1)); } } #44,989,298text "7cd66b8e3a63dcd2fada917119830286bca0637267709d6df1ca78d98a1b4487i4936" ], "more":false, "page":49 } ``` #44,989,219textuse {super::*, crate::wallet::Wallet}; #[derive(Serialize, Deserialize)] pub struct Output { pub output: OutPoint, pub amount: u64, } pub(crate) fn run(options: Options) -> SubcommandResult { let index = Index::open(&options)?; index.update()?; let mut outputs = Vec::new(); for (output, amount) in index.get_unspent_outputs(Wallet::load(&options)?)? { outputs.push(Output { output, amount: amount.to_sat(), }); } Ok(Box::new(outputs)) } #44,989,212text #[test] fn from_str_err() { "abc".parse::<Rarity>().unwrap_err(); "".parse::<Rarity>().unwrap_err(); } #[test] fn conversions_with_u8() { for &expected in &[ Rarity::Common, Rarity::Uncommon, Rarity::Rare, Rarity::Epic, Rarity::Legendary, Rarity::Mythic, ] { let n: u8 = expected.into(); let actual = Rarity::try_from(n).unwrap(); assert_eq!(actual, expected); } assert_eq!(Rarity::try_from(6), Err(6)); } } #44,989,101text } .store(), buffer.as_slice(), )?; } // increment entries with burned runes for (id, amount) in burned { let id = RuneId::try_from(id).unwrap().store(); let mut entry = RuneEntry::load(self.id_to_entry.get(id)?.unwrap().value()); entry.burned += amount; self.id_to_entry.insert(id, entry.store())?; } Ok(()) } } #[cfg(test)] mod tests { use super::*; #[test] fn claim_from_id() { assert_eq!(claim(1), None); assert_eq!(claim(1 | CLAIM_BIT), Some(1)); } } #44,989,100text } .store(), buffer.as_slice(), )?; } // increment entries with burned runes for (id, amount) in burned { let id = RuneId::try_from(id).unwrap().store(); let mut entry = RuneEntry::load(self.id_to_entry.get(id)?.unwrap().value()); entry.burned += amount; self.id_to_entry.insert(id, entry.store())?; } Ok(()) } } #[cfg(test)] mod tests { use super::*; #[test] fn claim_from_id() { assert_eq!(claim(1), None); assert_eq!(claim(1 | CLAIM_BIT), Some(1)); } } #44,989,084textpub(crate) struct PreviewUnknownHtml; #[derive(boilerplate::Boilerplate)] pub(crate) struct PreviewVideoHtml { pub(crate) inscription_id: InscriptionId, } #44,989,031textuse super::*; #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct Output { pub supply: u64, pub first: u64, pub last: u64, pub last_mined_in_block: u32, } pub(crate) fn run() -> SubcommandResult { let mut last = 0; loop { if Height(last + 1).subsidy() == 0 { break; } last += 1; } Ok(Box::new(Output { supply: Sat::SUPPLY, first: 0, last: Sat::SUPPLY - 1, last_mined_in_block: last, })) } #44,989,012text