pub struct NeoCompoundContract<'a, P: JsonRpcProvider> { /* private fields */ }
Expand description
NeoCompound contract interface for Neo N3
NeoCompound is an automated interest compounding service for Neo ecosystem tokens. This contract interface provides methods to interact with the NeoCompound smart contract.
Implementations§
Source§impl<'a, P: JsonRpcProvider + 'static> NeoCompoundContract<'a, P>
impl<'a, P: JsonRpcProvider + 'static> NeoCompoundContract<'a, P>
Sourcepub const CONTRACT_HASH: &'static str = "f0151f528127558851b39c2cd8aa47da7418ab28"
pub const CONTRACT_HASH: &'static str = "f0151f528127558851b39c2cd8aa47da7418ab28"
The script hash of the NeoCompound contract on Neo N3 MainNet
Sourcepub fn with_script_hash(
script_hash: ScriptHash,
provider: Option<&'a RpcClient<P>>,
) -> Self
pub fn with_script_hash( script_hash: ScriptHash, provider: Option<&'a RpcClient<P>>, ) -> Self
Sourcepub async fn deposit(
&self,
token: &ScriptHash,
amount: i64,
account: &Account,
) -> Result<TransactionBuilder<'_, P>, ContractError>
pub async fn deposit( &self, token: &ScriptHash, amount: i64, account: &Account, ) -> Result<TransactionBuilder<'_, P>, ContractError>
Sourcepub async fn withdraw(
&self,
token: &ScriptHash,
amount: i64,
account: &Account,
) -> Result<TransactionBuilder<'_, P>, ContractError>
pub async fn withdraw( &self, token: &ScriptHash, amount: i64, account: &Account, ) -> Result<TransactionBuilder<'_, P>, ContractError>
Sourcepub async fn compound(
&self,
token: &ScriptHash,
account: &Account,
) -> Result<TransactionBuilder<'_, P>, ContractError>
pub async fn compound( &self, token: &ScriptHash, account: &Account, ) -> Result<TransactionBuilder<'_, P>, ContractError>
Sourcepub async fn get_apy(&self, token: &ScriptHash) -> Result<f64, ContractError>
pub async fn get_apy(&self, token: &ScriptHash) -> Result<f64, ContractError>
Trait Implementations§
Source§impl<'a, P: Clone + JsonRpcProvider> Clone for NeoCompoundContract<'a, P>
impl<'a, P: Clone + JsonRpcProvider> Clone for NeoCompoundContract<'a, P>
Source§fn clone(&self) -> NeoCompoundContract<'a, P>
fn clone(&self) -> NeoCompoundContract<'a, P>
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'a, P: Debug + JsonRpcProvider> Debug for NeoCompoundContract<'a, P>
impl<'a, P: Debug + JsonRpcProvider> Debug for NeoCompoundContract<'a, P>
Source§impl<'de, 'a, P> Deserialize<'de> for NeoCompoundContract<'a, P>where
P: Default + JsonRpcProvider,
impl<'de, 'a, P> Deserialize<'de> for NeoCompoundContract<'a, P>where
P: Default + JsonRpcProvider,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'a, P: JsonRpcProvider> Serialize for NeoCompoundContract<'a, P>
impl<'a, P: JsonRpcProvider> Serialize for NeoCompoundContract<'a, P>
Source§impl<'a, P: JsonRpcProvider> SmartContractTrait<'a> for NeoCompoundContract<'a, P>
impl<'a, P: JsonRpcProvider> SmartContractTrait<'a> for NeoCompoundContract<'a, P>
type P = P
fn script_hash(&self) -> H160
fn set_script_hash(&mut self, script_hash: H160)
fn provider(&self) -> Option<&RpcClient<P>>
const DEFAULT_ITERATOR_COUNT: usize = 100usize
fn name<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = String> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_name(&mut self, _name: String)
fn invoke_function<'life0, 'life1, 'async_trait>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
) -> Pin<Box<dyn Future<Output = Result<TransactionBuilder<'_, Self::P>, ContractError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn build_invoke_function_script<'life0, 'life1, 'async_trait>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
) -> Pin<Box<dyn Future<Output = Result<Bytes, ContractError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn call_function_returning_string<'life0, 'life1, 'async_trait>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
) -> Pin<Box<dyn Future<Output = Result<String, ContractError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn call_function_returning_int<'life0, 'life1, 'async_trait>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
) -> Pin<Box<dyn Future<Output = Result<i32, ContractError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn call_function_returning_bool<'life0, 'life1, 'async_trait>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
) -> Pin<Box<dyn Future<Output = Result<bool, ContractError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn call_invoke_function<'life0, 'life1, 'async_trait>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
signers: Vec<Signer>,
) -> Pin<Box<dyn Future<Output = Result<InvocationResult, ContractError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn throw_if_fault_state( &self, output: &InvocationResult, ) -> Result<(), ContractError>
fn call_function_returning_script_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
) -> Pin<Box<dyn Future<Output = Result<H160, ContractError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn call_function_returning_iterator<'life0, 'life1, 'async_trait, U>( &'life0 self, function: &'life1 str, params: Vec<ContractParameter>, mapper: Arc<dyn Fn(StackItem) -> U + Send + Sync>, ) -> Pin<Box<dyn Future<Output = Result<NeoIterator<'_, U, Self::P>, ContractError>> + Send + 'async_trait>>
fn call_function_and_unwrap_iterator<'life0, 'life1, 'async_trait, U>(
&'life0 self,
function: &'life1 str,
params: Vec<ContractParameter>,
_max_items: usize,
mapper: impl 'async_trait + Fn(StackItem) -> U + Send,
) -> Pin<Box<dyn Future<Output = Result<Vec<U>, ContractError>> + Send + 'async_trait>>where
U: 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn calc_native_contract_hash(contract_name: &str) -> Result<H160, ContractError>
fn calc_contract_hash( sender: H160, nef_checksum: u32, contract_name: &str, ) -> Result<H160, ContractError>
fn get_manifest<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ContractManifest> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl<'a, P> Freeze for NeoCompoundContract<'a, P>
impl<'a, P> !RefUnwindSafe for NeoCompoundContract<'a, P>
impl<'a, P> Send for NeoCompoundContract<'a, P>
impl<'a, P> Sync for NeoCompoundContract<'a, P>
impl<'a, P> Unpin for NeoCompoundContract<'a, P>
impl<'a, P> !UnwindSafe for NeoCompoundContract<'a, P>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more