mirror of
https://github.com/jwinterm/grin-wallet.git
synced 2026-10-20 16:48:32 +02:00
Merge branch 'master' into contracts
Bring the contracts feature branch up to current master, which has since landed rust 1.80 support (#722), the canonical mwixnet onion code (#726), and node-client proxy support (#738). Conflict resolution: - libwallet/src/mwixnet/*: take master's (#726), dropping the contracts branch's older divergent copy. owner.rs::create_mwixnet_req updated to master's API (use_test_rng) and master's flat re-export imports. - Cargo manifests/lock/.cargo: master's deps & version; re-add serde_with for Slate v5; keep contracts' .cargo/config.toml (Windows static-CRT). - lib.rs: keep serde_derive AND serde_with macro_use; single mwixnet decl. - error.rs: union of master + contracts variants; flat mwixnet re-exports. - api/libwallet owner.rs: master's #738 + create_mwixnet_req plus the contract_* entry points; drop duplicate older create_mwixnet_req method. - slatepack/armor.rs, node_clients/resp_types.rs: take master's. Workspace builds; libwallet lib tests pass (34/34). The Slate version() bug, issue #729 fix, and de-panicking follow in subsequent commits.
This commit is contained in:
@@ -24,23 +24,22 @@ use crate::grin_core::libtx::proof;
|
||||
use crate::grin_keychain::ViewKey;
|
||||
use crate::grin_util::secp::key::SecretKey;
|
||||
use crate::grin_util::secp::pedersen;
|
||||
use crate::grin_util::secp::pedersen::Commitment;
|
||||
use crate::grin_util::{static_secp_instance, Mutex, ToHex};
|
||||
use crate::util::{OnionV3Address, OnionV3AddressError};
|
||||
|
||||
use crate::api_impl::owner_updater::StatusMessage;
|
||||
use crate::contract::types::{ContractNewArgsAPI, ContractRevokeArgsAPI, ContractSetupArgsAPI};
|
||||
use crate::grin_keychain::{BlindingFactor, Identifier, Keychain, SwitchCommitmentType};
|
||||
use crate::mwixnet::onion::create_onion;
|
||||
use crate::mwixnet::types::{
|
||||
add_excess, new_hop, random_secret, ComSignature, Hop, MixnetReqCreationParams, SwapReq,
|
||||
};
|
||||
|
||||
use crate::internal::{keys, scan, selection, tx, updater};
|
||||
use crate::slate::{PaymentInfo, Slate, SlateState};
|
||||
use crate::types::{AcctPathMapping, NodeClient, TxLogEntry, WalletBackend, WalletInfo};
|
||||
use crate::Error;
|
||||
use crate::{
|
||||
address, contract, wallet_lock, BuiltOutput, InitTxArgs, IssueInvoiceTxArgs, NodeHeightResult,
|
||||
address, contract,
|
||||
mwixnet::{create_onion, ComSignature, Hop, MixnetReqCreationParams, SwapReq},
|
||||
wallet_lock, BuiltOutput, InitTxArgs, IssueInvoiceTxArgs, NodeHeightResult,
|
||||
OutputCommitMapping, PaymentProof, RetrieveTxQueryArgs, ScannedBlockInfo, Slatepack,
|
||||
SlatepackAddress, Slatepacker, SlatepackerArgs, TxLogEntryType, ViewWallet, WalletInitStatus,
|
||||
WalletInst, WalletLCProvider,
|
||||
@@ -1609,8 +1608,9 @@ pub fn create_mwixnet_req<'a, T: ?Sized, C, K>(
|
||||
w: &mut T,
|
||||
keychain_mask: Option<&SecretKey>,
|
||||
params: &MixnetReqCreationParams,
|
||||
commitment: &pedersen::Commitment,
|
||||
commitment: &Commitment,
|
||||
lock_output: bool,
|
||||
use_test_rng: bool,
|
||||
) -> Result<SwapReq, Error>
|
||||
where
|
||||
T: WalletBackend<'a, C, K>,
|
||||
@@ -1668,7 +1668,12 @@ where
|
||||
rangeproof: Some(new_output.output.proof.clone()),
|
||||
}
|
||||
} else {
|
||||
let hop_excess = BlindingFactor::rand(&secp);
|
||||
let hop_excess;
|
||||
if use_test_rng {
|
||||
hop_excess = BlindingFactor::zero();
|
||||
} else {
|
||||
hop_excess = BlindingFactor::rand(&secp);
|
||||
}
|
||||
blind_sum = blind_sum.split(&hop_excess, &secp).unwrap();
|
||||
Hop {
|
||||
server_pubkey: p.clone(),
|
||||
@@ -1680,8 +1685,14 @@ where
|
||||
})
|
||||
.collect();
|
||||
|
||||
let onion = create_onion(&commitment, &hops).unwrap();
|
||||
let comsig = ComSignature::sign(amount, &input_blind, &onion.serialize().unwrap()).unwrap();
|
||||
let onion = create_onion(&commitment, &hops, use_test_rng).unwrap();
|
||||
let comsig = ComSignature::sign(
|
||||
amount,
|
||||
&input_blind,
|
||||
&onion.serialize().unwrap(),
|
||||
use_test_rng,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
// Lock output if requested
|
||||
if lock_output {
|
||||
|
||||
@@ -26,6 +26,8 @@ use crate::SlatepackAddress;
|
||||
use chrono::prelude::*;
|
||||
use ed25519_dalek::Signature as DalekSignature;
|
||||
|
||||
pub use crate::mwixnet::{Hop, MixnetReqCreationParams, SwapReq};
|
||||
|
||||
/// Type for storing amounts (in nanogrins).
|
||||
/// Serializes as a string but can deserialize from a string or u64.
|
||||
#[derive(Serialize, Deserialize)]
|
||||
|
||||
Reference in New Issue
Block a user