[][src]Enum nash_protocol::protocol::dh_fill_pool::DhFillPoolRequest

pub enum DhFillPoolRequest {
    Bitcoin(K1FillPool),
    Ethereum(K1FillPool),
    NEO(R1FillPool),
}

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)

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]

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]

Serialize a SignStates protocol request to a GraphQL string

fn response_from_json(
    &self,
    response: Value
) -> Result<ResponseOrError<Self::Response>>
[src]

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]

Update pool with response from server

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.