transfer100.pizza#71,333,808brc-20 0xA2, 0x63, b'f', b'o', b'o', 0x63, b'b', b'a', b'r', 0x63, b'b', b'a', b'z', 0x01, ], ) .rpc_server(&rpc_server) .run_and_deserialize_output(); let inscription = inscriptions[0].id; rpc_server.mine_blocks(1); let ord_server = TestServer::spawn_with_args(&rpc_server, &[]); ord_server.assert_response_regex( format!("/inscription/{inscription}"), ".*<dt>metadata</dt>.*<dl><dt>foo</dt><dd>bar</dd><dt>baz</dt><dd>1</dd></dl>.*", ); } #[test] fn error_message_when_parsing_json_metadata_is_reasonable() { CommandBuilder::new( "wallet inscribe --fee-rate 1 --json-metadata metadata.json --file content.png", ) .write("content.png", [1; 520]) .write("metadata.json", "{") .stderr_regex(".*failed to parse JSON metadata.*") .expected_exit_code(1) .run_and_extract_stdout(); } #[test] fn error_message_when_parsing_cbor_metadata_is_reasonable() { CommandBuilder::new( "wallet inscribe --fee-rate 1 --cbor-metadata metadata.cbor --file content.png", ) .write("content.png", [1; 520]) #44,989,616textuse {super::*, ord::subcommand::epochs::Output, ord::Sat}; #[test] fn empty() { assert_eq!( CommandBuilder::new("epochs").run_and_deserialize_output::<Output>(), Output { starting_sats: vec![ Sat(0), Sat(1050000000000000), Sat(1575000000000000), Sat(1837500000000000), Sat(1968750000000000), Sat(2034375000000000), Sat(2067187500000000), Sat(2083593750000000), Sat(2091796875000000), Sat(2095898437500000), Sat(2097949218750000), Sat(2098974609270000), Sat(2099487304530000), Sat(2099743652160000), Sat(2099871825870000), Sat(2099935912620000), Sat(2099967955890000), Sat(2099983977420000), Sat(2099991988080000), Sat(2099995993410000), Sat(2099997995970000), Sat(2099998997250000), Sat(2099999497890000), Sat(2099999748210000), Sat(2099999873370000), Sat(2099999935950000), Sat(2099999967240000), #44,989,373text<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" fill="#a1adb8"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"/></svg> #44,989,005text<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#a1adb8"><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. --><path d="M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120V256c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2V120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"/></svg> #44,988,316text let index_path = tempdir.path().join("foo.redb"); CommandBuilder::new(format!("--index {} index update", index_path.display())) .rpc_server(&rpc_server) .run_and_deserialize_output::<Empty>(); assert!(index_path.is_file()); CommandBuilder::new(format!("--index {} index update", index_path.display())) .rpc_server(&rpc_server) .run_and_deserialize_output::<Empty>(); } #[test] fn index_runs_with_rpc_user_and_pass_as_env_vars() { let rpc_server = test_bitcoincore_rpc::spawn(); rpc_server.mine_blocks(1); let tempdir = TempDir::new().unwrap(); let ord = Command::new(executable_path("ord")) .args( format!( "--rpc-url {} --bitcoin-data-dir {} --data-dir {} index update", rpc_server.url(), tempdir.path().display(), tempdir.path().display() ) .to_args(), ) .env("ORD_BITCOIN_RPC_PASS", "bar") .env("ORD_BITCOIN_RPC_USER", "foo") .env("ORD_INTEGRATION_TEST", "1") .current_dir(&tempdir) .spawn() .unwrap(); #44,987,378text"fermentum\n" " dolor et luctus euismod.\n" "\n" " - file: token.json\n" " metaprotocol: brc-20\n" "\n" " - file: tulip.png\n" " metadata:\n" " author: Satoshi Nakamoto\n" "```" msgstr "" #: src/guides/sat-hunting.md:4 msgid "" "_This guide is out of date. Since it was written, the `ord` binary was " "changed to only build the full satoshi index when the `--index-sats` flag is " "supplied. Additionally, `ord` now has a built-in wallet that wraps a Bitcoin " "Core wallet. See `ord wallet --help`._" msgstr "" "_本指南已过时。自编写以来,“ord”安装文件已更改仅当提供“--index-sats”标志时才" "构建完整的聪索引。此外,“ord”现在有一个内置钱包,其中包含比特币核心钱包。请参" "阅`ord wallet --help`。_" #: src/guides/sat-hunting.md:9 msgid "" "Ordinal hunting is difficult but rewarding. The feeling of owning a wallet " "full of UTXOs, redolent with the scent of rare and exotic sats, is beyond " "compare." msgstr "" #: src/guides/sat-hunting.md:12 msgid "" "Ordinals are numbers for satoshis. Every satoshi has an ordinal number and " "every ordinal number has a satoshi." #44,987,372text <a href="/sat/5°0′0″0‴"><line class="legendary" y1="-16" y2="-15" stroke-width="0.5" transform="rotate(327.27272727272725)"><title>5th Conjunction</title></line></a> <a href="/sat/5°0′336″0‴"><line class="epic" y1="-16" y2="-15" stroke-width="0.3" transform="rotate(338.1818181818182)"><title>31st Halving</title></line></a> <a href="/sat/5°0′672″0‴"><line class="epic" y1="-16" y2="-15" stroke-width="0.3" transform="rotate(349.0909090909091)"><title>32nd Halving</title></line></a> <line y2="-9" transform="rotate({{self.hour}})"><title>Subsidy</title></line> <line y2="-13" stroke-width="0.6" transform="rotate({{self.minute}})"><title>Epoch</title></line> <line y2="-16" stroke="#d00505" stroke-width="0.2" transform="rotate({{self.second}})"><title>Period</title></line> <circle r="0.7" stroke="#d00505" stroke-width="0.3"/> </svg> #44,986,400text