SHOWING: First 60
祖传.btc#66,679,524text借贷.btc#66,678,856text{"op":"minting-claim","p":"orc-20","params":{"amt":"88935","tick":"poi","tid":"1"}}#66,661,025textrevocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
#44,997,922textuse {super::*, bitcoin::BlockHash};
#[test]
fn get_sat_without_sat_index() {
let rpc_server = test_bitcoincore_rpc::spawn();
let response = TestServer::spawn_with_server_args(&rpc_server, &[], &["--enable-json-api"])
.json_request("/sat/2099999997689999");
assert_eq!(response.status(), StatusCode::OK);
let mut sat_json: SatJson = serde_json::from_str(&response.text().unwrap()).unwrap();
// this is a hack to ignore the timestamp, since it changes for every request
sat_json.timestamp = 0;
pretty_assert_eq!(
sat_json,
SatJson {
number: 2099999997689999,
decimal: "6929999.0".into(),
degree: "5°209999′1007″0‴".into(),
name: "a".into(),
block: 6929999,
cycle: 5,
epoch: 32,
period: 3437,
offset: 0,
rarity: Rarity::Uncommon,
percentile: "100%".into(),
satpoint: None,
timestamp: 0,
inscriptions: vec![],
}
)
}
#[test]
fn get_sat_with_inscription_and_sat_index() {
let rpc_server = test_bitcoincore_rpc::spawn();
#44,996,103text ..Default::default()
});
context.mine_blocks(1);
let inscription_id = InscriptionId { txid, index: 0 };
context.index.assert_inscription_location(
inscription_id,
SatPoint {
outpoint: OutPoint { txid, vout: 0 },
offset: 0,
},
Some(50 * COIN_VALUE),
);
}
}
#[test]
fn inscription_with_pointer_into_fee_ignored_and_assigned_default_location() {
for context in Context::configurations() {
context.mine_blocks(1);
let inscription = Inscription {
content_type: Some("text/plain".into()),
body: Some("hello".into()),
pointer: Some((25 * COIN_VALUE).to_le_bytes().to_vec()),
..Default::default()
};
let txid = context.rpc_server.broadcast_tx(TransactionTemplate {
inputs: &[(1, 0, 0, inscription.to_witness())],
fee: 25 * COIN_VALUE,
..Default::default()
});
context.mine_blocks(1);
let inscription_id = InscriptionId { txid, index: 0 };#44,995,694text )
.rpc_server(&rpc_server)
.run_and_deserialize_output::<Inscribe>();
let outpoint = output.inscriptions[0].location.outpoint;
for (i, inscription) in output.inscriptions.iter().enumerate() {
assert_eq!(
inscription.location,
SatPoint {
outpoint,
offset: u64::try_from(i).unwrap() * 777,
}
);
}
rpc_server.mine_blocks(1);
let ord_server = TestServer::spawn_with_args(&rpc_server, &[]);
let outpoint = output.inscriptions[0].location.outpoint;
ord_server.assert_response_regex(
format!("/inscription/{}", output.inscriptions[0].id),
format!(
r".*<dt>location</dt>.*<dd class=monospace>{}:0</dd>.*",
outpoint
),
);
ord_server.assert_response_regex(
format!("/inscription/{}", output.inscriptions[1].id),
format!(
r".*<dt>location</dt>.*<dd class=monospace>{}:777</dd>.*",
outpoint
),
);
ord_server.assert_response_regex(
format!("/inscription/{}", output.inscriptions[2].id),
format!(
r".*<dt>location</dt>.*<dd class=monospace>{}:1554</dd>.*",
#44,990,805textconsidered 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,990,769text <li role="none"><button role="menuitem" class="theme">
<a id="en">English</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="de">Deutsch</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="fr">Français</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="es">Español</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="pt">Português</a>
</button></li>
<li role="none"><button role="menuitem" class="theme">
<a id="ru">Русский</a>
</button></li>
#44,989,407texttransfer20,000.nike#35,224,029brc-20transfer1,000,000.bing#35,224,006brc-206672.citizen#13,234,228text6671.citizen#13,234,227text6627.citizen#13,234,226text6195.citizen#13,234,225text6692.citizen#13,234,224text6618.citizen#13,234,223text6611.citizen#13,234,221text6196.citizen#13,234,220text6688.citizen#13,234,219text6193.citizen#13,234,217text6682.citizen#13,234,215text6650.citizen#13,234,214text6658.citizen#13,234,212text6662.citizen#13,234,211text6635.citizen#13,234,208text6197.citizen#13,234,206text6616.citizen#13,234,204text6667.citizen#13,234,203text6663.citizen#13,234,202text6660.citizen#13,234,201text6666.citizen#13,234,199text6612.citizen#13,234,197text6680.citizen#13,234,195text6687.citizen#13,234,187text6670.citizen#13,234,182text6633.citizen#13,234,180text6623.citizen#13,234,179text6696.citizen#13,234,178text6622.citizen#13,234,176text6638.citizen#13,234,167text6699.citizen#13,234,165text6626.citizen#13,234,159text6678.citizen#13,234,158text6603.citizen#13,234,157text6601.citizen#13,234,156text6697.citizen#13,234,149text6683.citizen#13,234,142text6676.citizen#13,234,140text6610.citizen#13,234,139text6639.citizen#13,234,137text6192.citizen#13,234,136text6652.citizen#13,234,135text6686.citizen#13,234,134text