Skip to content

Commit

Permalink
add tests for /decodergbinvoice + /rgbinvoice asset ID
Browse files Browse the repository at this point in the history
  • Loading branch information
nicbus committed Oct 26, 2023
1 parent acc52b7 commit b1fff2f
Show file tree
Hide file tree
Showing 15 changed files with 107 additions and 74 deletions.
4 changes: 2 additions & 2 deletions src/routes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ pub(crate) struct AssetBalanceResponse {
pub(crate) offchain_inbound: u64,
}

#[derive(Deserialize, Serialize)]
#[derive(Debug, Deserialize, Serialize)]
pub(crate) enum AssetIface {
RGB20,
RGB25,
Expand All @@ -106,7 +106,7 @@ pub(crate) struct BackupRequest {
pub(crate) password: String,
}

#[derive(Deserialize, Serialize)]
#[derive(Debug, Deserialize, Serialize)]
pub(crate) enum BitcoinNetwork {
Mainnet,
Testnet,
Expand Down
8 changes: 4 additions & 4 deletions src/test/close_coop_nobtc_acceptor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,16 @@ async fn close_coop_nobtc_acceptor() {
wait_for_balance(node1_addr, &asset_id, 900).await;
wait_for_balance(node2_addr, &asset_id, 100).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
fund_and_create_utxos(node2_addr).await;
send_asset(node2_addr, &asset_id, 50, blinded_utxo).await;
send_asset(node2_addr, &asset_id, 50, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
8 changes: 4 additions & 4 deletions src/test/close_coop_other_side.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ async fn close_coop_other_side() {
wait_for_balance(node1_addr, &asset_id, 900).await;
wait_for_balance(node2_addr, &asset_id, 100).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 50, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 50, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
12 changes: 6 additions & 6 deletions src/test/close_coop_standard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ async fn close_coop_standard() {
keysend(node1_addr, &node2_pubkey, &asset_id, 150).await;
keysend(node2_addr, &node1_pubkey, &asset_id, 50).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 10, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 10, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand All @@ -75,15 +75,15 @@ async fn close_coop_standard() {
let peers = list_peers(node1_addr).await;
assert!(!peers.iter().any(|p| p.pubkey == node2_pubkey));

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 690, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 690, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 50, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 50, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
4 changes: 2 additions & 2 deletions src/test/close_coop_zero_balance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ async fn close_coop_zero_balance() {
wait_for_balance(node1_addr, &asset_id, 1000).await;
assert_eq!(asset_balance(node2_addr, &asset_id).await, 0);

let blinded_utxo = rgb_invoice(node2_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node2_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node2_addr).await;
refresh_transfers(node2_addr).await;
Expand Down
8 changes: 4 additions & 4 deletions src/test/close_force_nobtc_acceptor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,16 @@ async fn close_force_nobtc_acceptor() {
wait_for_balance(node1_addr, &asset_id, 900).await;
wait_for_balance(node2_addr, &asset_id, 100).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
fund_and_create_utxos(node2_addr).await;
send_asset(node2_addr, &asset_id, 50, blinded_utxo).await;
send_asset(node2_addr, &asset_id, 50, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
8 changes: 4 additions & 4 deletions src/test/close_force_other_side.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ async fn close_force_other_side() {
wait_for_balance(node1_addr, &asset_id, 900).await;
wait_for_balance(node2_addr, &asset_id, 100).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 50, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 50, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
8 changes: 4 additions & 4 deletions src/test/close_force_standard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ async fn close_force_standard() {
wait_for_balance(node1_addr, &asset_id, 900).await;
wait_for_balance(node2_addr, &asset_id, 100).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 50, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 50, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
37 changes: 27 additions & 10 deletions src/test/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@ use tracing_test::traced_test;
use crate::routes::{
AddressResponse, Asset, AssetBalanceRequest, AssetBalanceResponse, BackupRequest, Channel,
CloseChannelRequest, ConnectPeerRequest, CreateUtxosRequest, DecodeLNInvoiceRequest,
DecodeLNInvoiceResponse, DisconnectPeerRequest, EmptyResponse, HTLCStatus, InitRequest,
InitResponse, InvoiceStatus, InvoiceStatusRequest, InvoiceStatusResponse, IssueAssetRequest,
IssueAssetResponse, KeysendRequest, KeysendResponse, LNInvoiceRequest, LNInvoiceResponse,
ListAssetsResponse, ListChannelsResponse, ListPaymentsResponse, ListPeersResponse,
ListUnspentsResponse, NodeInfoResponse, OpenChannelRequest, OpenChannelResponse, Payment, Peer,
RestoreRequest, RgbInvoiceRequest, RgbInvoiceResponse, SendAssetRequest, SendAssetResponse,
SendPaymentRequest, SendPaymentResponse, UnlockRequest, Unspent,
DecodeLNInvoiceResponse, DecodeRGBInvoiceRequest, DecodeRGBInvoiceResponse,
DisconnectPeerRequest, EmptyResponse, HTLCStatus, InitRequest, InitResponse, InvoiceStatus,
InvoiceStatusRequest, InvoiceStatusResponse, IssueAssetRequest, IssueAssetResponse,
KeysendRequest, KeysendResponse, LNInvoiceRequest, LNInvoiceResponse, ListAssetsResponse,
ListChannelsResponse, ListPaymentsResponse, ListPeersResponse, ListUnspentsResponse,
NodeInfoResponse, OpenChannelRequest, OpenChannelResponse, Payment, Peer, RestoreRequest,
RgbInvoiceRequest, RgbInvoiceResponse, SendAssetRequest, SendAssetResponse, SendPaymentRequest,
SendPaymentResponse, UnlockRequest, Unspent,
};
use crate::utils::PROXY_ENDPOINT_REGTEST;

Expand Down Expand Up @@ -281,6 +282,23 @@ async fn decode_ln_invoice(node_address: SocketAddr, invoice: &str) -> DecodeLNI
.unwrap()
}

async fn decode_rgb_invoice(node_address: SocketAddr, invoice: &str) -> DecodeRGBInvoiceResponse {
let payload = DecodeRGBInvoiceRequest {
invoice: invoice.to_string(),
};
let res = reqwest::Client::new()
.post(format!("http://{}/decodergbinvoice", node_address))
.json(&payload)
.send()
.await
.unwrap();
_check_response_is_ok(res)
.await
.json::<DecodeRGBInvoiceResponse>()
.await
.unwrap()
}

async fn disconnect_peer(node_address: SocketAddr, peer_pubkey: &str) {
let payload = DisconnectPeerRequest {
peer_pubkey: peer_pubkey.to_string(),
Expand Down Expand Up @@ -604,10 +622,10 @@ async fn lock(node_address: SocketAddr) {
.unwrap();
}

async fn rgb_invoice(node_address: SocketAddr) -> String {
async fn rgb_invoice(node_address: SocketAddr, asset_id: Option<String>) -> RgbInvoiceResponse {
let payload = RgbInvoiceRequest {
min_confirmations: 1,
asset_id: None,
asset_id,
};
let res = reqwest::Client::new()
.post(format!("http://{}/rgbinvoice", node_address))
Expand All @@ -620,7 +638,6 @@ async fn rgb_invoice(node_address: SocketAddr) -> String {
.json::<RgbInvoiceResponse>()
.await
.unwrap()
.recipient_id
}

async fn refresh_transfers(node_address: SocketAddr) {
Expand Down
16 changes: 8 additions & 8 deletions src/test/multi_hop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ async fn multi_hop() {
let node3_info = node_info(node3_addr).await;
let node3_pubkey = node3_info.pubkey;

let blinded_utxo = rgb_invoice(node2_addr).await;
send_asset(node1_addr, &asset_id, 400, blinded_utxo).await;
let recipient_id = rgb_invoice(node2_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 400, recipient_id).await;
mine(false);
refresh_transfers(node2_addr).await;
refresh_transfers(node2_addr).await;
Expand All @@ -57,22 +57,22 @@ async fn multi_hop() {
wait_for_balance(node2_addr, &asset_id, 400).await;
wait_for_balance(node3_addr, &asset_id, 50).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 200, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 200, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 150, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 150, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node2_addr).await;

let blinded_utxo = rgb_invoice(node2_addr).await;
send_asset(node3_addr, &asset_id, 375, blinded_utxo).await;
let recipient_id = rgb_invoice(node2_addr, None).await.recipient_id;
send_asset(node3_addr, &asset_id, 375, recipient_id).await;
mine(false);
refresh_transfers(node2_addr).await;
refresh_transfers(node2_addr).await;
Expand Down
8 changes: 4 additions & 4 deletions src/test/multi_open_close.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,15 @@ async fn multi_open_close() {
wait_for_balance(node1_addr, &asset_id, 800).await;
wait_for_balance(node2_addr, &asset_id, 200).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 150, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 150, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
16 changes: 8 additions & 8 deletions src/test/open_after_double_send.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,16 @@ async fn open_after_double_send() {
let node2_info = node_info(node2_addr).await;
let node2_pubkey = node2_info.pubkey;

let blinded_utxo = rgb_invoice(node2_addr).await;
send_asset(node1_addr, &asset_id, 100, blinded_utxo).await;
let recipient_id = rgb_invoice(node2_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 100, recipient_id).await;
mine(false);
refresh_transfers(node2_addr).await;
refresh_transfers(node2_addr).await;
refresh_transfers(node1_addr).await;
assert_eq!(asset_balance(node1_addr, &asset_id).await, 900);

let blinded_utxo = rgb_invoice(node2_addr).await;
send_asset(node1_addr, &asset_id, 200, blinded_utxo).await;
let recipient_id = rgb_invoice(node2_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 200, recipient_id).await;
mine(false);
refresh_transfers(node2_addr).await;
refresh_transfers(node2_addr).await;
Expand All @@ -56,15 +56,15 @@ async fn open_after_double_send() {
wait_for_balance(node1_addr, &asset_id, 750).await;
wait_for_balance(node2_addr, &asset_id, 250).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 725, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 725, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 225, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 225, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
8 changes: 4 additions & 4 deletions src/test/payment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,15 +57,15 @@ async fn payment() {
wait_for_balance(node1_addr, &asset_id, 950).await;
wait_for_balance(node2_addr, &asset_id, 50).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 925, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 925, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 25, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 25, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
8 changes: 4 additions & 4 deletions src/test/restart.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,15 +152,15 @@ async fn restart() {
assert_eq!(asset_balance(node1_addr, &asset_id).await, 900);
assert_eq!(asset_balance(node2_addr, &asset_id).await, 100);

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node1_addr, &asset_id, 700, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node1_addr, &asset_id, 700, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
refresh_transfers(node1_addr).await;

let blinded_utxo = rgb_invoice(node3_addr).await;
send_asset(node2_addr, &asset_id, 50, blinded_utxo).await;
let recipient_id = rgb_invoice(node3_addr, None).await.recipient_id;
send_asset(node2_addr, &asset_id, 50, recipient_id).await;
mine(false);
refresh_transfers(node3_addr).await;
refresh_transfers(node3_addr).await;
Expand Down
Loading

0 comments on commit b1fff2f

Please sign in to comment.