[−][src]Enum nash_protocol::protocol::dh_fill_pool::DhFillPoolRequest
DhFillPool requests coordinate between the user's client and the Nash server to gather a set of shared secret R values. The user sends a list of public ECDSA Points to the Nash server. The server sends back its own list of public Points. Both parties then multply the public point by the secret value to construct the same shared secret value (diffie-hellman). Bitcoin and Ethereum both use the Secp256k1 curve, while NEO users the Secp256r1 curve. While this request type holds both the secret and the public values, only the public values are used in creating the GraphQL request. The secrets are used to process a response. Pool requests will always generate 100 new R values.
Variants
Bitcoin(K1FillPool)Ethereum(K1FillPool)NEO(R1FillPool)Implementations
impl DhFillPoolRequest[src]
pub fn make_query(&self) -> QueryBody<Variables>[src]
Build a GraphQL request to get R values for MPC signing. These values can be for
secp256k1 or secp256r1 depending on curve. This sets the state r1 or k1
in the client with the secret values associated with DH, which will be used on
a future request to set_pool
impl DhFillPoolRequest[src]
pub fn new(chain: Blockchain) -> Result<Self>[src]
Create a new DhFillPool request for a given blockchain
pub fn blockchain(&self) -> Blockchain[src]
Get blockchain assocaited with DH request
Trait Implementations
impl Clone for DhFillPoolRequest[src]
fn clone(&self) -> DhFillPoolRequest[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Debug for DhFillPoolRequest[src]
impl NashProtocol for DhFillPoolRequest[src]
type Response = DhFillPoolResponse
fn graphql<'life0, 'async_trait>(
&'life0 self,
_state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait, [src]
&'life0 self,
_state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Serialize a SignStates protocol request to a GraphQL string
fn response_from_json(
&self,
response: Value
) -> Result<ResponseOrError<Self::Response>>[src]
&self,
response: Value
) -> Result<ResponseOrError<Self::Response>>
Deserialize response to DhFillPool protocol response
fn process_response<'life0, 'life1, 'async_trait>(
&'life0 self,
response: &'life1 Self::Response,
state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait, [src]
&'life0 self,
response: &'life1 Self::Response,
state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Update pool with response from server
#[must_use]fn run_before<'life0, 'async_trait>(
&'life0 self,
_state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ProtocolHook>>>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait, [src]
&'life0 self,
_state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ProtocolHook>>>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
#[must_use]fn run_after<'life0, 'async_trait>(
&'life0 self,
_state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ProtocolHook>>>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait, [src]
&'life0 self,
_state: Arc<Mutex<State>>
) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ProtocolHook>>>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Auto Trait Implementations
impl RefUnwindSafe for DhFillPoolRequest
impl Send for DhFillPoolRequest
impl Sync for DhFillPoolRequest
impl Unpin for DhFillPoolRequest
impl UnwindSafe for DhFillPoolRequest
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,