transfer100.pizza#71,243,734brc-20transfer10,000.mice#70,554,981brc-20transfer5,000.mice#52,728,585brc-20use {super::*, ord::subcommand::wallet::outputs::Output}; #[test] fn outputs() { let rpc_server = test_bitcoincore_rpc::spawn(); create_wallet(&rpc_server); let coinbase_tx = &rpc_server.mine_blocks_with_subsidy(1, 1_000_000)[0].txdata[0]; let outpoint = OutPoint::new(coinbase_tx.txid(), 0); let amount = coinbase_tx.output[0].value; let output = CommandBuilder::new("wallet outputs") .rpc_server(&rpc_server) .run_and_deserialize_output::<Vec<Output>>(); assert_eq!(output[0].output, outpoint); assert_eq!(output[0].amount, amount); } #[test] fn outputs_includes_locked_outputs() { let rpc_server = test_bitcoincore_rpc::spawn(); create_wallet(&rpc_server); let coinbase_tx = &rpc_server.mine_blocks_with_subsidy(1, 1_000_000)[0].txdata[0]; let outpoint = OutPoint::new(coinbase_tx.txid(), 0); let amount = coinbase_tx.output[0].value; rpc_server.lock(outpoint); let output = CommandBuilder::new("wallet outputs") .rpc_server(&rpc_server) .run_and_deserialize_output::<Vec<Output>>();#45,022,293text rpc_server.mine_blocks(1); assert_eq!(rpc_server.descriptors().len(), 3); let parent_id = parent_output.inscriptions[0].id; let output = CommandBuilder::new("wallet inscribe --fee-rate 1 --batch batch.yaml") .write("inscription.txt", "Hello World") .write("tulip.png", [0; 555]) .write("meow.wav", [0; 2048]) .write( "batch.yaml", format!("parent: {parent_id}\nmode: separate-outputs\npostage: 777\ninscriptions:\n- file: inscription.txt\n- file: tulip.png\n- file: meow.wav\n") ) .rpc_server(&rpc_server) .run_and_deserialize_output::<Inscribe>(); for inscription in &output.inscriptions { assert_eq!(inscription.location.offset, 0); } let mut outpoints = output .inscriptions .iter() .map(|inscription| inscription.location.outpoint) .collect::<Vec<OutPoint>>(); outpoints.sort(); outpoints.dedup(); assert_eq!(outpoints.len(), output.inscriptions.len()); rpc_server.mine_blocks(1); let ord_server = TestServer::spawn_with_args(&rpc_server, &[]);#45,022,253text output_1 ), ); ord_server.assert_response_regex( format!("/inscription/{}", output.inscriptions[1].id), format!( r".*<dt>parent</dt>\s*<dd>.*{parent_id}.*</dd>.*<dt>output value</dt>.*<dd>10000</dd>.*.*<dt>location</dt>.*<dd class=monospace>{}:0</dd>.*", output_2 ), ); ord_server.assert_response_regex( format!("/inscription/{}", output.inscriptions[2].id), format!( r".*<dt>parent</dt>\s*<dd>.*{parent_id}.*</dd>.*<dt>output value</dt>.*<dd>10000</dd>.*.*<dt>location</dt>.*<dd class=monospace>{}:0</dd>.*", output_3 ), ); } #[test] fn batch_in_separate_outputs_with_parent_and_non_default_postage() { let rpc_server = test_bitcoincore_rpc::spawn(); rpc_server.mine_blocks(1); assert_eq!(rpc_server.descriptors().len(), 0); create_wallet(&rpc_server); let parent_output = CommandBuilder::new("wallet inscribe --fee-rate 5.0 --file parent.png") .write("parent.png", [1; 520]) .rpc_server(&rpc_server) .run_and_deserialize_output::<Inscribe>();#45,019,689textmint1,000.mice#44,342,466brc-20mint1,000.mice#44,342,451brc-20mint1,000.mice#44,342,360brc-20mint1,000.mice#44,338,898brc-20mint1,000.mice#44,338,872brc-20mint1,000.mice#44,338,859brc-20mint1,000.mice#44,338,759brc-20mint1,000.mice#44,338,745brc-20mint1,000.mice#44,338,720brc-20mint1,000.mice#44,336,151brc-20