SHOWING: First 60
server.assert_response_regex(
format!("/preview/{inscription_id}"),
StatusCode::OK,
format!(r".*<audio .*>\s*<source src=/content/{inscription_id}>.*"),
);
}
#[test]
fn font_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("font/ttf", "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,
format!(r".*src: url\(/content/{inscription_id}\).*"),
);
}
#[test]
fn pdf_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("application/pdf", "hello").to_witness(),#45,000,893text 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(),#44,997,367textchecksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
dependencies = [
"libc",
"windows-sys 0.48.0",
]
[[package]]
name = "spin"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]]
name = "spin"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
[[package]]
name = "strsim"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "strum"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
dependencies = [
"strum_macros",
]
[[package]]
name = "strum_macros"
version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"#44,996,731text"dirígete a `Preferences`\\-> `Server` settings y haz clic en `Edit Existing Connection` "
"(Editar conexión existente)."
#: src/guides/collecting/sparrow-wallet.md:179
msgid ""
msgstr ""
#: src/guides/collecting/sparrow-wallet.md:181
msgid ""
"From there you can select a node and click `Test Connection` to validate "
"that Sparrow is able to connect successfully."
msgstr ""
"Desde allí puedes seleccionar un nodo y hacer clic en `Test Connection` "
"(Probar conexión) para validar que Sparrow pueda conectarse exitosamente."
#: src/guides/collecting/sparrow-wallet.md:183
msgid ""
msgstr ""
#: src/guides/testing.md:4
msgid ""
"Ord can be tested using the following flags to specify the test network. For "
"more information on running Bitcoin Core for testing, see [Bitcoin's "
"developer "
"documentation](https://developer.bitcoin.org/examples/testing.html)."
msgstr ""
"Puedes hacer pruebas en `ord` utilizando las siguientes flags (banderas) "
#44,992,364text"```"
msgstr ""
"```\n"
"A°B′C″D‴\n"
"│ │ │ ╰─ Índice del Satoshi dentro del bloque\n"
"│ │ ╰─── Índice del bloque en el periodo de ajuste de dificultad\n"
"│ ╰───── Índice del bloque en la época de halving\n"
"╰─────── Ciclo, numerados comenzando desde 0\n"
"```"
#: src/overview.md:97
msgid ""
"Ordinal theorists often use the terms \"hour\", \"minute\", \"second\", and "
"\"third\" for _A_, _B_, _C_, and _D_, respectively."
msgstr ""
"Los teóricos de Ordinals suelen usar los términos \"hora\", \"minuto\", \"segundo\" y "
"\"tercero\" en referencia a _A_, _B_, _C_, y _D_."
#: src/overview.md:100
msgid "Now for some examples. This satoshi is common:"
msgstr "Por ejemplo, este Satoshi es común:"
#: src/overview.md:102
msgid ""
"```\n"
"1°1′1″1‴\n"
"│ │ │ ╰─ Not first sat in block\n"
"│ │ ╰─── Not first block in difficulty adjustment period\n"
"│ ╰───── Not first block in halving epoch\n"
"╰─────── Second cycle\n"
"```"
msgstr ""
"```\n"
"1°1′1″1‴\n"
"│ │ │ ╰─ No es el primer sat del bloque\n"
"│ │ ╰─── No es el primer bloque en el periodo de ajuste de dificultad\n"
#44,992,353text
#: src/guides/collecting/sparrow-wallet.md:15
msgid ""
"Download the Sparrow Wallet from the [releases "
"page](https://sparrowwallet.com/download/) for your particular operating "
"system."
msgstr "Descarga Sparrow Wallet [desde la página de descargas](https://sparrowwallet.com/download/) para tu sistema operativo específico."
#: src/guides/collecting/sparrow-wallet.md:17
msgid "Select `File -> New Wallet` and create a new wallet called `ord`."
msgstr "Selecciona `File -> New Wallet` y crea un nuevo monedero llamada `ord`."
#: src/guides/collecting/sparrow-wallet.md:19
msgid ""
msgstr ""
#: src/guides/collecting/sparrow-wallet.md:21
msgid ""
"Change the `Script Type` to `Taproot (P2TR)` and select the `New or Imported "
"Software Wallet` option."
msgstr "Cambia el `Script Type` (Tipo de script) a `Taproot (P2TR)` y selecciona la opción `New or Imported Software Wallet`."
#: src/guides/collecting/sparrow-wallet.md:23
msgid ""#44,992,315textmsgid ""
"Claimed by "
"[@utxoset](https://twitter.com/rodarmor/status/1582424455615172608)!"
msgstr ""
"Reclamado por [@utxoset]"
"(https://twitter.com/rodarmor/status/1582424455615172608)!"
#: src/bounty/3.md:1
msgid "Ordinal Bounty 3"
msgstr "Recompensa Ordinal 3"
#: src/bounty/3.md:7
msgid ""
"Ordinal bounty 3 has two parts, both of which are based on _ordinal names_. "
"Ordinal names are a modified base-26 encoding of ordinal numbers. To avoid "
"locking short names inside the unspendable genesis block coinbase reward, "
"ordinal names get _shorter_ as the ordinal number gets _longer_. The name of "
"sat 0, the first sat to be mined is `nvtdijuwxlp` and the name of sat "
"2,099,999,997,689,999, the last sat to be mined, is `a`."
msgstr ""
"La tercera recompensa ordinal consta de dos partes, ambas basadas en los "
"_nombres de ordinals_. Los nombres de los ordinals son una modificación de "
"la codificación base-26 de los números ordinales. Para prevenir que los nombres "
"más cortos queden atrapados en el bloque génesis el cual no se puede utilizar, "
#44,990,200text"se encuentran con una mayor frecuencia."
#: src/bounty/3.md:29
msgid ""
"`frequency.tsv` was compiled using [this "
"program](https://github.com/casey/onegrams)."
msgstr ""
"`frequency.tsv` fue compilado [usando este programa]"
"(https://github.com/casey/onegrams)."
#: src/bounty/3.md:32
msgid ""
"To search an `ord` wallet for sats with a name in `frequency.tsv`, use the "
"following [`ord`](https://github.com/ordinals/ord) command:"
msgstr ""
"Para buscar sats en un monedero `ord` que coincidan con un nombre presente en "
"`frequency.tsv`, emplea el siguiente comando [`ord`](https://github.com/ordinals/ord):"
#: src/bounty/3.md:35
msgid ""
"```\n"
"ord wallet sats --tsv frequency.tsv\n"
"```"
msgstr ""
"```\n"
"ord wallet sats --tsv frequency.tsv\n"
"```"
#: src/bounty/3.md:39
msgid ""
"This command requires the sat index, so `--index-sats` must be passed to ord "
"when first creating the index."
msgstr ""
"Este comando requiere el índice de sats, por lo que se debe incluir el "
"parámetro `--index-sats` en ord cuando se crea el índice por primera vez."
#44,990,199text"el mayor número de ocurrencias en `frequency.tsv` será el ganador de la parte 1."
#: src/bounty/3.md:58
msgid "Tie Breaking"
msgstr "Desempate"
#: src/bounty/3.md:60
msgid ""
"In the case of a tie, where two submissions occur with the same frequency, "
"the earlier submission shall be the winner."
msgstr ""
"Si se produce un empate, donde dos presentaciones registren la misma frecuencia, "
"la presentación que se haya realizado primero será la ganadora. "
#: src/bounty/3.md:66
msgid "Part 0: 200,000 sats"
msgstr "Parte 0: 200,000 satoshis"
#: src/bounty/3.md:67
msgid "Part 1: 200,000 sats"
msgstr "Parte 1: 200,000 sats"
#: src/bounty/3.md:68
msgid "Total: 400,000 sats"
msgstr "Total: 400,000 sats"
#: src/bounty/3.md:73
msgid ""
"[`17m5rvMpi78zG8RUpCRd6NWWMJtWmu65kg`](https://mempool.space/address/17m5rvMpi78zG8RUpCRd6NWWMJtWmu65kg)"
msgstr ""
"[`17m5rvMpi78zG8RUpCRd6NWWMJtWmu65kg`](https://mempool.space/address/17m5rvMpi78zG8RUpCRd6NWWMJtWmu65kg)"
#: src/bounty/3.md:78
msgid "Unclaimed!"
msgstr "¡No se ha reclamado!"
#44,990,198text"╰───── Second cycle\n"
"```"
msgstr ""
"```\n"
"1°1′1″\n"
"│ │ ╰─── No es el primer bloque en el periodo de ajuste de dificultad\n"
"│ ╰───── No es el primer bloque en un periodo de halving\n"
"╰─────── Segundo ciclo\n"
"```"
#: src/overview.md:171
msgid "Rare Satoshi Supply"
msgstr "Suministro de Satoshi Raros"
#: src/overview.md:174
msgid "Total Supply"
msgstr "Suministro Total"
#: src/overview.md:176
msgid "`common`: 2.1 quadrillion"
msgstr "`común`: 2.1 mil billones"
#: src/overview.md:177
msgid "`uncommon`: 6,929,999"
msgstr "`poco común`: 6,929,999"
#: src/overview.md:178
msgid "`rare`: 3437"
msgstr "`raro`: 3437"
#: src/overview.md:179
msgid "`epic`: 32"
msgstr "`épico`: 32"
#: src/overview.md:180
msgid "`legendary`: 5"
msgstr "`legendario`: 5"
#: src/overview.md:181
#: src/overview.md:190
msgid "`mythic`: 1"
msgstr "`mítico`: 1"
#: src/overview.md:183
msgid "Current Supply"
msgstr "Suministro actual:"
#: src/overview.md:185
msgid "`common`: 1.9 quadrillion"
msgstr "`común`: 1.9 mil billones"
#44,990,197text"│ ╰───── Primer bloque en la época de halving\n"
"╰─────── Segundo ciclo\n"
"```"
#: src/overview.md:151
msgid "And this satoshi is mythic:"
msgstr "Este Satoshi es mítico:"
#: src/overview.md:153
msgid ""
"```\n"
"0°0′0″0‴\n"
"│ │ │ ╰─ First sat in block\n"
"│ │ ╰─── First block in difficulty adjustment period\n"
"│ ╰───── First block in halving epoch\n"
"╰─────── First cycle\n"
"```"
msgstr ""
"```\n"
"0°0′0″0‴\n"
"│ │ │ ╰─ Primer sat del bloque\n"
"│ │ ╰─── Primer bloque en el periodo de ajuste de dificultad\n"
"│ ╰───── Primer bloque en la época de halving\n"
"╰─────── Primer ciclo\n"
"```"
#: src/overview.md:161
msgid ""
"If the block offset is zero, it may be omitted. This is the uncommon satoshi "
"from above:"
msgstr ""
"Si el Satoshi es el primero en el bloque, el cero puede ser omitido. "
"Este es el ejemplo del Satoshi poco común que explicamos previamente:"
#: src/overview.md:164
msgid ""
"```\n"
"1°1′1″\n"
"│ │ ╰─ Not first block in difficulty adjustment period\n"
"│ ╰─── Not first block in halving epoch\n"
#44,990,196text"│ ╰───── No es el primer bloque en un periodo de halving\n"
"╰───────Segundo ciclo\n"
"```"
#: src/overview.md:131
msgid "This satoshi is epic:"
msgstr "Este Satoshi es épico:"
#: src/overview.md:133
msgid ""
"```\n"
"1°0′1″0‴\n"
"│ │ │ ╰─ First sat in block\n"
"│ │ ╰─── Not first block in difficulty adjustment period\n"
"│ ╰───── First block in halving epoch\n"
"╰─────── Second cycle\n"
"```"
msgstr ""
"```\n"
"1°0′1″0‴\n"
"│ │ │ ╰─ Primer sat del bloque\n"
"│ │ ╰─── No es el primer bloque en el periodo de ajuste de dificultad\n"
"│ ╰───── Primer bloque en la época de halving\n"
"╰─────── Segundo ciclo\n"
"```"
#: src/overview.md:141
msgid "This satoshi is legendary:"
msgstr "Este Satoshi es legendario:"
#: src/overview.md:143
msgid ""
"```\n"
"1°0′0″0‴\n"
"│ │ │ ╰─ First sat in block\n"
"│ │ ╰─── First block in difficulty adjustment period\n"
"│ ╰───── First block in halving epoch\n"
"╰─────── Second cycle\n"
"```"
msgstr ""
"```\n"
"1°0′0″0‴\n"
"│ │ │ ╰─ Primer sat del bloque\n"
"│ │ ╰─── Primer bloque en el periodo de ajuste de dificultad\n"
#44,990,195textname = "event-listener"
version = "2.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
[[package]]
name = "event-listener"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
dependencies = [
"concurrent-queue",
"parking",
"pin-project-lite",
]
[[package]]
name = "event-listener-strategy"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
dependencies = [
"event-listener 4.0.0",
"pin-project-lite",
]
[[package]]
name = "executable-path"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ebc5a6d89e3c90b84e8f33c8737933dda8f1c106b5415900b38b9d433841478"
[[package]]
name = "fastrand"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"#44,989,510textconsidered to have an implicit input equal in size to the subsidy, followed by
an input for every fee-paying transaction in the block, in the order that those
transactions appear in the block. The implicit subsidy input carries the
block's newly created sats. The implicit fee inputs carry the sats that were
paid as fees in the block's transactions.
Underpaying the subsidy does not change the ordinal numbers of sats mined
in subsequent blocks. Ordinals depend only on how many sats could have been
mined, not how many actually were.
=== Specification ===
Sats are numbered and transferred with the following algorithm:
<pre>
# subsidy of block at given height
def subsidy(height):
return 50 * 100_000_000 >> height // 210_000
# first ordinal of subsidy of block at given height
def first_ordinal(height):
start = 0
for height in range(height):
start += subsidy(height)
return start
# assign ordinals in given block
def assign_ordinals(block):
first = first_ordinal(block.height)
last = first + subsidy(block.height)#44,988,820textmint1,000,000.ucat#43,980,234brc-20mint1,000,000.ucat#43,980,233brc-20mint1,000,000.ucat#43,980,232brc-20mint1,000,000.ucat#43,980,231brc-20mint1,000,000.ucat#43,980,230brc-20mint1,000,000.ucat#43,980,229brc-20mint1,000,000.ucat#43,980,228brc-20mint1,000,000.ucat#43,980,227brc-20mint1,000,000.ucat#43,980,226brc-20mint1,000,000.ucat#43,980,225brc-20mint1,000,000.ucat#43,980,224brc-20mint1,000,000.ucat#43,980,223brc-20mint1,000,000.ucat#43,980,222brc-20mint1,000,000.ucat#43,980,221brc-20mint1,000,000.ucat#43,980,220brc-20mint1,000,000.ucat#43,980,219brc-20mint1,000,000.ucat#43,980,218brc-20mint1,000,000.ucat#43,980,217brc-20mint1,000,000.ucat#43,980,216brc-20mint1,000,000.ucat#43,980,215brc-20mint1,000,000.ucat#43,980,214brc-20mint1,000,000.ucat#43,980,213brc-20mint1,000,000.ucat#43,980,212brc-20mint1,000,000.ucat#43,980,211brc-20mint1,000,000.ucat#43,980,210brc-20mint1,000,000.ucat#43,980,209brc-20mint1,000,000.ucat#43,980,208brc-20mint1,000,000.ucat#43,980,207brc-20mint1,000,000.ucat#43,980,206brc-20mint1,000,000.ucat#43,980,205brc-20mint1,000,000.ucat#43,980,204brc-20mint1,000,000.ucat#43,980,203brc-20mint1,000,000.ucat#43,980,202brc-20mint1,000,000.ucat#43,980,201brc-20mint1,000,000.ucat#43,980,200brc-20mint1,000,000.ucat#43,980,199brc-20mint1,000,000.ucat#43,980,198brc-20mint1,000,000.ucat#43,980,197brc-20mint1,000,000.ucat#43,980,196brc-20mint1,000,000.ucat#43,980,195brc-20