use super::super::{
MainnetSns, MainnetSnsList, MainnetSnsNeuronPage, MainnetSnsNeurons, MainnetSnsProposal,
MainnetSnsProposals, MainnetSnsToken, SnsFetchRequest, SnsGovernanceParameters, SnsHostError,
SnsListSource, SnsNeuronId, SnsNeuronsSource, SnsParamsSource, SnsProposalSource,
SnsProposalsSource, SnsTokenSource,
};
use super::fetch::{
fetch_mainnet_sns_list, fetch_mainnet_sns_neuron_page, fetch_mainnet_sns_neurons,
fetch_mainnet_sns_params, fetch_mainnet_sns_proposal, fetch_mainnet_sns_proposals,
fetch_mainnet_sns_token,
};
pub(in crate::sns::report) struct LiveSnsSource;
impl SnsListSource for LiveSnsSource {
fn fetch_deployed_snses(
&self,
request: &SnsFetchRequest,
) -> Result<MainnetSnsList, SnsHostError> {
fetch_mainnet_sns_list(request)
}
}
impl SnsTokenSource for LiveSnsSource {
fn fetch_sns_token(
&self,
request: &SnsFetchRequest,
sns: &MainnetSns,
) -> Result<MainnetSnsToken, SnsHostError> {
fetch_mainnet_sns_token(request, sns)
}
}
impl SnsParamsSource for LiveSnsSource {
fn fetch_sns_params(
&self,
request: &SnsFetchRequest,
sns: &MainnetSns,
) -> Result<SnsGovernanceParameters, SnsHostError> {
fetch_mainnet_sns_params(request, sns)
}
}
impl SnsProposalSource for LiveSnsSource {
fn fetch_sns_proposal(
&self,
request: &SnsFetchRequest,
sns: &MainnetSns,
proposal_id: u64,
) -> Result<MainnetSnsProposal, SnsHostError> {
fetch_mainnet_sns_proposal(request, sns, proposal_id)
}
}
impl SnsProposalsSource for LiveSnsSource {
fn fetch_sns_proposals(
&self,
request: &SnsFetchRequest,
sns: &MainnetSns,
limit: u32,
before_proposal_id: Option<u64>,
include_status: &[i32],
) -> Result<MainnetSnsProposals, SnsHostError> {
fetch_mainnet_sns_proposals(request, sns, limit, before_proposal_id, include_status)
}
}
impl SnsNeuronsSource for LiveSnsSource {
fn fetch_sns_neurons(
&self,
request: &SnsFetchRequest,
sns: &MainnetSns,
limit: u32,
owner_principal_id: Option<&str>,
) -> Result<MainnetSnsNeurons, SnsHostError> {
fetch_mainnet_sns_neurons(request, sns, limit, owner_principal_id)
}
fn fetch_sns_neuron_page(
&self,
request: &SnsFetchRequest,
sns: &MainnetSns,
limit: u32,
start_page_at: Option<&SnsNeuronId>,
owner_principal_id: Option<&str>,
) -> Result<MainnetSnsNeuronPage, SnsHostError> {
fetch_mainnet_sns_neuron_page(request, sns, limit, start_page_at, owner_principal_id)
}
}