Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions client-sdk/src/client/fee_payment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,15 @@ pub async fn generate_withdrawal_transfers(
})
}

pub async fn get_used_memos(
store_vault_server: &dyn StoreVaultClientInterface,
view_pair: ViewPair,
) -> Result<Vec<PaymentMemo>, SyncError> {
let used_memos =
get_all_payment_memos(store_vault_server, view_pair.view, USED_OR_INVALID_MEMO).await?;
Ok(used_memos)
}

/// get unused payment memos
pub async fn get_unused_payments(
store_vault_server: &dyn StoreVaultClientInterface,
Expand Down
2 changes: 1 addition & 1 deletion validity-prover/src/app/observer_rpc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ impl SyncEvent for RPCObserver {
}
}

// This function is used to generate an error for trigging RPC error for testing purposes.
// This function is used to generate an error for triggering RPC error for testing purposes.
pub fn generate_error_for_test() -> Result<(), ObserverError> {
let error_timestamps = match std::env::var("ERROR_TIMESTAMPS") {
Ok(val) => val,
Expand Down
22 changes: 21 additions & 1 deletion wasm/src/fee_payment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@ use crate::{
client::{get_client, Config},
init_logger,
js_types::{
client::JsTransferRequest, fee::JsWithdrawalTransfers, payment_memo::JsPaymentMemoEntry,
client::JsTransferRequest,
fee::JsWithdrawalTransfers,
payment_memo::{JsPaymentMemo, JsPaymentMemoEntry},
},
utils::str_to_view_pair,
};

// Quote the fee for withdrawal and claim fee (if with_claim_fee is true), and generate the corresponding transfers
Expand Down Expand Up @@ -58,3 +61,20 @@ pub fn generate_fee_payment_memo(
.collect();
Ok(js_payment_memos)
}

#[wasm_bindgen]
pub async fn get_used_memos(
config: &Config,
view_pair: &str,
) -> Result<Vec<JsPaymentMemo>, JsError> {
init_logger();
let client = get_client(config);
let view_pair = str_to_view_pair(view_pair)?;
let payment_memos = intmax2_client_sdk::client::fee_payment::get_used_memos(
client.store_vault_server.as_ref(),
view_pair,
)
.await?;
let js_payment_memos = payment_memos.into_iter().map(JsPaymentMemo::from).collect();
Ok(js_payment_memos)
}
22 changes: 21 additions & 1 deletion wasm/src/js_types/payment_memo.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
use intmax2_client_sdk::client::types::PaymentMemoEntry;
use intmax2_client_sdk::client::{misc::payment_memo::PaymentMemo, types::PaymentMemoEntry};
use serde::{Deserialize, Serialize};
use wasm_bindgen::{prelude::wasm_bindgen, JsError};

use crate::js_types::{common::JsMetaData, data::JsTransferData};

#[derive(Debug, Clone, Serialize, Deserialize)]
#[wasm_bindgen(getter_with_clone)]
pub struct JsPaymentMemoEntry {
Expand Down Expand Up @@ -31,3 +33,21 @@ impl TryFrom<JsPaymentMemoEntry> for PaymentMemoEntry {
})
}
}

#[derive(Debug, Clone)]
#[wasm_bindgen(getter_with_clone)]
pub struct JsPaymentMemo {
pub meta: JsMetaData,
pub transfer_data: JsTransferData,
pub memo: String,
}

impl From<PaymentMemo> for JsPaymentMemo {
fn from(payment_memo: PaymentMemo) -> Self {
Self {
meta: JsMetaData::from(payment_memo.meta),
transfer_data: JsTransferData::from(payment_memo.transfer_data),
memo: payment_memo.memo,
}
}
}
Loading