SHOWING: First 60
"must be displayed as \"unbound\", that is, without a location."
msgstr ""
"Четные метки используются для полей, которые могут повлиять на создание, первичное присвоение или перенос надписи. Таким образом, надписи с нераспознанными "
"четными полями должны отображаться как \"несвязанные\", т.е. без указания местоположения."
#: src/inscriptions.md:93
msgid "Odd tags are used for fields which do not affect creation, initial assignment, or transfer, such as additional metadata, and thus are safe to ignore."
msgstr ""
"Нечетные теги используются для полей, которые не влияют на создание, первоначальное назначение или передачу, например, дополнительные метаданные, и поэтому их "
"можно игнорировать."
#: src/inscriptions.md:96
msgid "Inscription IDs"
msgstr "ID надписей"
#: src/inscriptions.md:99
msgid "The inscriptions are contained within the inputs of a reveal transaction. In order to uniquely identify them they are assigned an ID of the form:"
msgstr "Надписи содержатся во входах транзакции раскрытия. Для их однозначной идентификации им присваивается ID вида:"
#44,991,947text"```"
msgstr ""
"```sh\n"
"bitcoin-cli getdescriptorinfo \\\n"
" "
"'wpkh([bf1dd55e/84h/0h/0h]xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)'\n"
"```"
#: src/guides/sat-hunting.md:170
msgid ""
"```json\n"
"{\n"
" \"descriptor\": "
"\"wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#csvefu29\",\n"
" \"checksum\": \"tpnxnxax\",\n"
" \"isrange\": true,\n"
" \"issolvable\": true,\n"
" \"hasprivatekeys\": false\n"
"}\n"
"```"
msgstr ""
"```json\n"
"{\n"
" \"descriptor\": "
"\"wpkh([bf1dd55e/84'/0'/0']xpub6CcJtWcvFQaMo39ANFi1MyXkEXM8T8ZhnxMtSjQAdPmVSTHYnc8Hwoc11VpuP8cb8JUTboZB5A7YYGDonYySij4XTawL6iNZvmZwdnSEEep/0/*)#csvefu29\",\n"
" \"checksum\": \"tpnxnxax\",\n"
" \"isrange\": true,\n"
" \"issolvable\": true,\n"
" \"hasprivatekeys\": false\n"
"}\n"
"```"
#: src/guides/sat-hunting.md:180
msgid "And for the change address descriptor, in this case `64k8wnd7`:"#44,991,520textmsgstr "Если смещение блока равно нулю, то его можно не указывать. Это и есть uncommon сатоши, о котором говорилось выше:"
#: 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"
"╰───── Second cycle\n"
"```"
msgstr ""
"```\n"
"1°1′1″\n"
"│ │ ╰─ Не первый блок в периоде корректировки сложности\n"
"│ ╰─── Не первый блок в эпоху халвинга\n"
"╰───── Второй цикл\n"
"```"
#: src/overview.md:171
msgid "Rare Satoshi Supply"
msgstr "Количество rare сатоши"
#: src/overview.md:174
msgid "Total Supply"
msgstr "Общее количество"
#: src/overview.md:176
msgid "`common`: 2.1 quadrillion"
msgstr "`common`: 2.1 квадриллион"
#: src/overview.md:177
msgid "`uncommon`: 6,929,999"
msgstr "`uncommon`: 6,929,999"
#: src/overview.md:178
msgid "`rare`: 3437"
msgstr "`rare`: 3437"
#: src/overview.md:179
msgid "`epic`: 32"
msgstr "`epic`: 32"
#: src/overview.md:180
msgid "`legendary`: 5"
msgstr "`legendary`: 5"
#: src/overview.md:181 src/overview.md:190
#44,991,508textpub(crate) use {
super::*,
bitcoin::{
blockdata::{opcodes, script, script::PushBytesBuf},
ScriptBuf, Witness,
},
pretty_assertions::assert_eq as pretty_assert_eq,
std::iter,
test_bitcoincore_rpc::TransactionTemplate,
unindent::Unindent,
};
macro_rules! assert_regex_match {
($value:expr, $pattern:expr $(,)?) => {
let regex = Regex::new(&format!("^(?s){}$", $pattern)).unwrap();
let string = $value.to_string();
if !regex.is_match(string.as_ref()) {
panic!(
"Regex:\n\n{}\n\n…did not match string:\n\n{}",
regex, string
);
}
};
}
macro_rules! assert_matches {
($expression:expr, $( $pattern:pat_param )|+ $( if $guard:expr )? $(,)?) => {
match $expression {
$( $pattern )|+ $( if $guard )? => {}
left => panic!(
"assertion failed: (left ~= right)\n left: `{:?}`\n right: `{}`",
left,
stringify!($($pattern)|+ $(if $guard)?)
),
}
}
}
pub(crate) fn blockhash(n: u64) -> BlockHash {
let hex = format!("{n:x}");#44,991,356text Timestamp, WalletTxInfo,
},
jsonrpc_core::{IoHandler, Value},
jsonrpc_http_server::{CloseHandle, ServerBuilder},
serde::{Deserialize, Serialize},
server::Server,
state::State,
std::{
collections::{BTreeMap, BTreeSet, HashMap},
sync::{Arc, Mutex, MutexGuard},
thread,
time::Duration,
},
};
mod api;
mod server;
mod state;
pub fn builder() -> Builder {
Builder {
fail_lock_unspent: false,
network: Network::Bitcoin,
version: 240000,
}
}
pub struct Builder {
fail_lock_unspent: bool,
network: Network,
version: usize,
}
impl Builder {
pub fn fail_lock_unspent(self, fail_lock_unspent: bool) -> Self {
Self {
fail_lock_unspent,
..self
}
}
pub fn network(self, network: Network) -> Self {
Self { network, ..self }
}
pub fn version(self, version: usize) -> Self {
Self { version, ..self }
}
pub fn build(self) -> Handle {
let state = Arc::new(Mutex::new(State::new(
self.network,
self.version,
self.fail_lock_unspent,#44,991,342text