pub struct Controller {
    pub backend: ValgrindClient,
    pub wallet: Wallet,
    pub settings: Settings,
    pub block_date_generator: BlockDateGenerator,
}
Expand description

Responsible for all wallet operations from voting to retrieving information about proposals or voting power

Fields§

§backend: ValgrindClient

Catalyst backend client

§wallet: Wallet

Wallet state

§settings: Settings

Cached blockchain settings

§block_date_generator: BlockDateGenerator

Expiry date generator

Implementations§

source§

impl Controller

source

pub fn switch_backend( &mut self, proxy_address: String, backend_settings: RestSettings ) -> Result<(), ControllerError>

Connects to new backend

Errors

On connectivity issues

source

pub fn account(&self, discrimination: Discrimination) -> Address

Gets account

source

pub fn id(&self) -> AccountId

Gets account identifier. This is something different that account method since we are not retrieving entire object but only the identifier which helps of find records in blockchain

source

pub fn send_fragment( &self, transaction: &[u8] ) -> Result<FragmentId, ControllerError>

Sends raw transaction bytes

Errors

On connection issues

Panics

On internal error in which vec does not hold transaction

source

pub fn set_block_date_generator( &mut self, block_date_generator: BlockDateGenerator )

Sets transaction ttl definition. Usually when we are sending some fragments we need to define how long we want to wait until it will be put in block. BlockDateGenerator helps us define ttl without calculating it each time

source

pub fn send_fragments( &self, transaction: Vec<Vec<u8>> ) -> Result<Vec<FragmentId>, ControllerError>

Sends collection of raw transaction bytes

Errors

On connection issues

source

pub fn confirm_all_transactions(&mut self)

Confirms all transactions means to remove them from pending transaction collection and as a result remove trace needed to track their status in node

source

pub fn confirm_transaction(&mut self, id: FragmentId)

Confirms transaction by it id. This means to remove it from pending transaction collection and as a result remove trace needed to track their status in node

source

pub fn pending_transactions(&self) -> Vec<FragmentId>

Unconfirmed collection of transactions (which statuses we still want to track)

source

pub fn wait_for_pending_transactions( &mut self, pace: Duration ) -> Result<(), ControllerError>

Waits until all transaction will have final states (either InABlock or Reject) for given duration

Errors

On connection issues

source

pub fn remove_pending_transaction(&mut self, id: FragmentId)

remove specific transaction from assumed pending

source

pub fn total_value(&self) -> Value

gets total value ada

source

pub fn refresh_state(&mut self) -> Result<(), ControllerError>

Reload wallet state from blockchain

Errors

On connection issues

source

pub fn get_account_state(&self) -> Result<AccountState, ControllerError>

Get account state from blockchain (ada/delegation status etc.)

Errors

On connection issues

source

pub fn proposals( &self, group: &str ) -> Result<Vec<FullProposalInfo>, ControllerError>

Gets proposals from vit-servicing-station

Errors

On connection issues

source

pub fn funds(&self) -> Result<Fund, ControllerError>

Gets proposals from vit-servicing-station

Errors

On connection issues

source

pub fn settings(&self) -> Result<SettingsDto, ControllerError>

Gets blockchain Settings from blockchain

Errors

On connection issues

source

pub fn vote_for( &mut self, voteplan_id: &str, proposal_index: u32, choice: u8 ) -> Result<FragmentId, ControllerError>

Send specialized transaction (with vote certificates) based on low level parameters

Errors

On connection issues

source

pub fn vote( &mut self, proposal: &FullProposalInfo, choice: Choice ) -> Result<FragmentId, ControllerError>

Send specialized transaction (with vote certificates) based on FullProposalInfo struct

Errors

On connection issues

source

pub fn votes_batch( &mut self, votes_data: Vec<(&FullProposalInfo, Choice)> ) -> Result<Vec<FragmentId>, ControllerError>

Send collection for specialized transaction (with vote certificates) based on FullProposalInfo struct

Errors

On connection issues

Panics

On internal error when updating wallet

source

pub fn get_proposals( &mut self, group: &str ) -> Result<Vec<FullProposalInfo>, ControllerError>

Gets proposals from vit-servicing-station based on voting group

Errors

On connection issues

source

pub fn fragment_logs( &self ) -> Result<HashMap<FragmentId, FragmentLog>, ControllerError>

Gets fragment logs from node

Errors

On connection issues

source

pub fn vote_plan_history( &self, vote_plan_id: VotePlanId ) -> Result<Option<Vec<u8>>, ControllerError>

Gets vote plan history from node for given vote plan id

Errors

On connection issues

source

pub fn votes_history( &self ) -> Result<Option<Vec<AccountVotes>>, ControllerError>

Gets vote plan history from node

Errors

On connection issues

source

fn wallet_address(&self) -> Result<Address, ControllerError>

source

pub fn active_vote_plan(&self) -> Result<Vec<VotePlanStatus>, ControllerError>

Gets vote plan from node

Errors

On connection issues

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Fake for T

§

fn fake<U>(&self) -> Uwhere Self: FakeBase<U>,

§

fn fake_with_rng<U, R>(&self, rng: &mut R) -> Uwhere R: Rng + ?Sized, Self: FakeBase<U>,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<T> IntoSql for T

§

fn into_sql<T>(self) -> Self::Expressionwhere Self: AsExpression<T> + Sized,

Convert self to an expression for Diesel’s query builder. Read more
§

fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere &'a Self: AsExpression<T>,

Convert &self to an expression for Diesel’s query builder. Read more
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where C: Color,

Set the background color generically. Read more
§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more