2db1bc8efa
* Save to disk coconut keypair * Check verification keys of the other signers * Post verification key to chain * Add multisig propose/vote for vks * Execute the proposal * Parse announce address argument * Gateway uses chain data * Network requester uses chain data * Native&socks5 clients use chain data * Credential client signature uses chain data * Remove redundant api endpoints * Undo debugging logging * Fix some tests * Fix clippy * Fix wasm client and contract test * More contract clippy * Update CHANGELOG * Use a bigger expiry period then the testing one
43 lines
2.0 KiB
Rust
43 lines
2.0 KiB
Rust
// Copyright 2022 - Nym Technologies SA <contact@nymtech.net>
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use crate::coconut::error::Result;
|
|
use coconut_bandwidth_contract_common::spend_credential::SpendCredentialResponse;
|
|
use coconut_dkg_common::dealer::{ContractDealing, DealerDetails, DealerDetailsResponse};
|
|
use coconut_dkg_common::types::{EncodedBTEPublicKeyWithProof, EpochState};
|
|
use coconut_dkg_common::verification_key::{ContractVKShare, VerificationKeyShare};
|
|
use contracts_common::dealings::ContractSafeBytes;
|
|
use cw3::ProposalResponse;
|
|
use validator_client::nymd::cosmwasm_client::types::ExecuteResult;
|
|
use validator_client::nymd::{AccountId, Fee, TxResponse};
|
|
|
|
#[async_trait]
|
|
pub trait Client {
|
|
async fn address(&self) -> AccountId;
|
|
async fn get_tx(&self, tx_hash: &str) -> Result<TxResponse>;
|
|
async fn get_proposal(&self, proposal_id: u64) -> Result<ProposalResponse>;
|
|
async fn list_proposals(&self) -> Result<Vec<ProposalResponse>>;
|
|
async fn get_spent_credential(
|
|
&self,
|
|
blinded_serial_number: String,
|
|
) -> Result<SpendCredentialResponse>;
|
|
async fn get_current_epoch_state(&self) -> Result<EpochState>;
|
|
async fn get_self_registered_dealer_details(&self) -> Result<DealerDetailsResponse>;
|
|
async fn get_current_dealers(&self) -> Result<Vec<DealerDetails>>;
|
|
async fn get_dealings(&self, idx: usize) -> Result<Vec<ContractDealing>>;
|
|
async fn get_verification_key_shares(&self) -> Result<Vec<ContractVKShare>>;
|
|
async fn vote_proposal(&self, proposal_id: u64, vote_yes: bool, fee: Option<Fee>)
|
|
-> Result<()>;
|
|
async fn execute_proposal(&self, proposal_id: u64) -> Result<()>;
|
|
async fn register_dealer(
|
|
&self,
|
|
bte_key: EncodedBTEPublicKeyWithProof,
|
|
announce_address: String,
|
|
) -> Result<ExecuteResult>;
|
|
async fn submit_dealing(&self, dealing_bytes: ContractSafeBytes) -> Result<ExecuteResult>;
|
|
async fn submit_verification_key_share(
|
|
&self,
|
|
share: VerificationKeyShare,
|
|
) -> Result<ExecuteResult>;
|
|
}
|