SHOWING: First 60
it's all about the culture.
this is new art.
you are now minting the concept of a concept.#47,429,422text .unwrap();
let sequence_number_to_satpoint = rtx.open_table(SEQUENCE_NUMBER_TO_SATPOINT).unwrap();
let sequence_number = rtx
.open_table(INSCRIPTION_ID_TO_SEQUENCE_NUMBER)
.unwrap()
.get(&inscription_id.store())
.unwrap()
.unwrap()
.value();
assert_eq!(
satpoint_to_sequence_number.len().unwrap(),
sequence_number_to_satpoint.len().unwrap(),
);
assert_eq!(
SatPoint::load(
*sequence_number_to_satpoint
.get(sequence_number)
.unwrap()
.unwrap()
.value()
),
satpoint,
);
assert!(satpoint_to_sequence_number
.get(&satpoint.store())
.unwrap()
.any(|result| result.unwrap().value() == sequence_number));
match sat {
Some(sat) => {
if self.index_sats {
// unbound inscriptions should not be assigned to a sat
assert!(satpoint.outpoint != unbound_outpoint());
assert!(rtx
.open_multimap_table(SAT_TO_SEQUENCE_NUMBER)
#44,984,864text );
let send_txid = context.rpc_server.broadcast_tx(TransactionTemplate {
inputs: &[(2, 0, 0, Default::default()), (2, 1, 0, Default::default())],
outputs: 2,
..Default::default()
});
context.mine_blocks(1);
context.index.assert_inscription_location(
inscription_id,
SatPoint {
outpoint: OutPoint {
txid: send_txid,
vout: 1,
},
offset: 0,
},
Some(50 * COIN_VALUE),
);
}
}
#[test]
fn missing_inputs_are_fetched_from_bitcoin_core() {
for args in [
["--first-inscription-height", "2"].as_slice(),
["--first-inscription-height", "2", "--index-sats"].as_slice(),
] {
let context = Context::builder().args(args).build();
context.mine_blocks(1);
let txid = context.rpc_server.broadcast_tx(TransactionTemplate {
inputs: &[(1, 0, 0, inscription("text/plain", "hello").to_witness())],
..Default::default()
});
let inscription_id = InscriptionId { txid, index: 0 };
#44,982,448text Some(100 * COIN_VALUE),
);
}
}
#[test]
fn inscription_skips_zero_value_first_output_of_inscribe_transaction() {
for context in Context::configurations() {
context.mine_blocks(1);
let txid = context.rpc_server.broadcast_tx(TransactionTemplate {
inputs: &[(1, 0, 0, inscription("text/plain", "hello").to_witness())],
outputs: 2,
output_values: &[0, 50 * COIN_VALUE],
..Default::default()
});
let inscription_id = InscriptionId { txid, index: 0 };
context.mine_blocks(1);
context.index.assert_inscription_location(
inscription_id,
SatPoint {
outpoint: OutPoint { txid, vout: 1 },
offset: 0,
},
Some(50 * COIN_VALUE),
);
}
}
#[test]
fn inscription_can_be_lost_in_first_transaction() {
for context in Context::configurations() {
context.mine_blocks(1);
let txid = context.rpc_server.broadcast_tx(TransactionTemplate {
inputs: &[(1, 0, 0, inscription("text/plain", "hello").to_witness())],
#44,982,429text ])
);
}
#[test]
fn list_null_output() {
let context = Context::builder().arg("--index-sats").build();
context.mine_blocks(1);
let no_value_output = TransactionTemplate {
inputs: &[(1, 0, 0, Default::default())],
fee: 50 * COIN_VALUE,
..Default::default()
};
let txid = context.rpc_server.broadcast_tx(no_value_output);
context.mine_blocks(1);
assert_eq!(
context.index.list(OutPoint::new(txid, 0)).unwrap().unwrap(),
List::Unspent(Vec::new())
);
}
#[test]
fn list_null_input() {
let context = Context::builder().arg("--index-sats").build();
context.mine_blocks(1);
let no_value_output = TransactionTemplate {
inputs: &[(1, 0, 0, Default::default())],
fee: 50 * COIN_VALUE,
..Default::default()
};
context.rpc_server.broadcast_tx(no_value_output);
context.mine_blocks(1);
let no_value_input = TransactionTemplate {
inputs: &[(2, 1, 0, Default::default())],
fee: 0,
..Default::default()
#44,982,395textmint2,500.csas#40,369,306brc-20mint2,500.csas#40,369,305brc-20mint2,500.csas#40,369,304brc-20mint2,500.csas#40,369,303brc-20mint2,500.csas#40,369,302brc-20mint2,500.csas#40,369,301brc-20mint2,500.csas#40,369,300brc-20mint2,500.csas#40,369,299brc-20mint2,500.csas#40,369,298brc-20mint2,500.csas#40,369,297brc-20mint2,500.csas#40,369,296brc-20mint2,500.csas#40,369,295brc-20mint2,500.csas#40,369,294brc-20mint2,500.csas#40,369,293brc-20mint2,500.csas#40,369,292brc-20mint2,500.csas#40,369,291brc-20mint2,500.csas#40,369,290brc-20mint2,500.csas#40,369,289brc-20mint2,500.csas#40,369,288brc-20mint2,500.csas#40,369,287brc-20mint2,500.csas#40,369,286brc-20mint2,500.csas#40,369,285brc-20mint2,500.csas#40,369,284brc-20mint1,000.boss#17,829,623brc-20