mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-04-28 03:00:18 -04:00
contract/money/tests/mint_pay_swap: updated swap calls
This commit is contained in:
@@ -35,7 +35,7 @@ use darkfi_sdk::{
|
||||
},
|
||||
ContractCall,
|
||||
};
|
||||
use darkfi_serial::{deserialize, Encodable};
|
||||
use darkfi_serial::Encodable;
|
||||
use log::info;
|
||||
use rand::rngs::OsRng;
|
||||
|
||||
@@ -398,8 +398,11 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
burn_pk: burn_pk.clone(),
|
||||
}
|
||||
.build()?;
|
||||
let (alice_swap_params, alice_swap_proofs) =
|
||||
(alice_swap_call_debris.params, alice_swap_call_debris.proofs);
|
||||
let (alice_swap_params, alice_swap_proofs, alice_signature_secret) = (
|
||||
alice_swap_call_debris.params,
|
||||
alice_swap_call_debris.proofs,
|
||||
alice_swap_call_debris.signature_secret,
|
||||
);
|
||||
|
||||
assert!(alice_swap_params.inputs.len() == 1);
|
||||
assert!(alice_swap_params.outputs.len() == 1);
|
||||
@@ -427,8 +430,11 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
burn_pk: burn_pk.clone(),
|
||||
}
|
||||
.build()?;
|
||||
let (bob_swap_params, bob_swap_proofs) =
|
||||
(bob_swap_call_debris.params, bob_swap_call_debris.proofs);
|
||||
let (bob_swap_params, bob_swap_proofs, bob_signature_secret) = (
|
||||
bob_swap_call_debris.params,
|
||||
bob_swap_call_debris.proofs,
|
||||
bob_swap_call_debris.signature_secret,
|
||||
);
|
||||
|
||||
assert!(bob_swap_params.inputs.len() == 1);
|
||||
assert!(bob_swap_params.outputs.len() == 1);
|
||||
@@ -457,14 +463,11 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
proofs: vec![swap_full_proofs],
|
||||
signatures: vec![],
|
||||
};
|
||||
let bob_note: MoneyNote = swap_full_params.outputs[1].note.decrypt(&th.bob.keypair.secret)?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[deserialize(&bob_note.memo)?])?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[bob_signature_secret])?;
|
||||
alicebob_swap_tx.signatures = vec![sigs];
|
||||
|
||||
// Alice gets the partially signed transaction and adds her signature
|
||||
let alice_note: MoneyNote =
|
||||
swap_full_params.outputs[0].note.decrypt(&th.alice.keypair.secret)?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[deserialize(&alice_note.memo)?])?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[alice_signature_secret])?;
|
||||
alicebob_swap_tx.signatures[0].insert(0, sigs[0]);
|
||||
|
||||
info!(target: "money", "[Faucet] ==========================");
|
||||
@@ -494,16 +497,12 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
assert!(th.faucet.merkle_tree.root(0).unwrap() == th.bob.merkle_tree.root(0).unwrap());
|
||||
|
||||
// Alice should now have two OwnCoins with the same token ID (ALICE)
|
||||
let alice_note: MoneyNote =
|
||||
swap_full_params.outputs[0].note.decrypt(&th.alice.keypair.secret)?;
|
||||
let note: MoneyNote = swap_full_params.outputs[0].note.decrypt(&th.alice.keypair.secret)?;
|
||||
let alice_oc = OwnCoin {
|
||||
coin: Coin::from(swap_full_params.outputs[0].coin),
|
||||
note: alice_note.clone(),
|
||||
note: note.clone(),
|
||||
secret: th.alice.keypair.secret, // <-- What should this be?
|
||||
nullifier: Nullifier::from(poseidon_hash([
|
||||
th.alice.keypair.secret.inner(),
|
||||
alice_note.serial,
|
||||
])),
|
||||
nullifier: Nullifier::from(poseidon_hash([th.alice.keypair.secret.inner(), note.serial])),
|
||||
leaf_position: alice_leaf_pos,
|
||||
};
|
||||
alice_owncoins.push(alice_oc);
|
||||
@@ -513,11 +512,12 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
assert!(alice_owncoins[1].note.token_id == alice_token_id);
|
||||
|
||||
// Same for Bob with BOB tokens
|
||||
let note: MoneyNote = swap_full_params.outputs[1].note.decrypt(&th.bob.keypair.secret)?;
|
||||
let bob_oc = OwnCoin {
|
||||
coin: Coin::from(swap_full_params.outputs[1].coin),
|
||||
note: bob_note.clone(),
|
||||
note: note.clone(),
|
||||
secret: th.bob.keypair.secret, // <-- What should this be?
|
||||
nullifier: Nullifier::from(poseidon_hash([th.bob.keypair.secret.inner(), bob_note.serial])),
|
||||
nullifier: Nullifier::from(poseidon_hash([th.bob.keypair.secret.inner(), note.serial])),
|
||||
leaf_position: bob_leaf_pos,
|
||||
};
|
||||
bob_owncoins.push(bob_oc);
|
||||
@@ -725,8 +725,11 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
burn_pk: burn_pk.clone(),
|
||||
}
|
||||
.build()?;
|
||||
let (alice_swap_params, alice_swap_proofs) =
|
||||
(alice_swap_call_debris.params, alice_swap_call_debris.proofs);
|
||||
let (alice_swap_params, alice_swap_proofs, alice_signature_secret) = (
|
||||
alice_swap_call_debris.params,
|
||||
alice_swap_call_debris.proofs,
|
||||
alice_swap_call_debris.signature_secret,
|
||||
);
|
||||
|
||||
assert!(alice_swap_params.inputs.len() == 1);
|
||||
assert!(alice_swap_params.outputs.len() == 1);
|
||||
@@ -753,8 +756,11 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
burn_pk: burn_pk.clone(),
|
||||
}
|
||||
.build()?;
|
||||
let (bob_swap_params, bob_swap_proofs) =
|
||||
(bob_swap_call_debris.params, bob_swap_call_debris.proofs);
|
||||
let (bob_swap_params, bob_swap_proofs, bob_signature_secret) = (
|
||||
bob_swap_call_debris.params,
|
||||
bob_swap_call_debris.proofs,
|
||||
bob_swap_call_debris.signature_secret,
|
||||
);
|
||||
|
||||
assert!(bob_swap_params.inputs.len() == 1);
|
||||
assert!(bob_swap_params.outputs.len() == 1);
|
||||
@@ -782,14 +788,11 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
proofs: vec![swap_full_proofs],
|
||||
signatures: vec![],
|
||||
};
|
||||
let bob_note: MoneyNote = swap_full_params.outputs[1].note.decrypt(&th.bob.keypair.secret)?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[deserialize(&bob_note.memo)?])?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[bob_signature_secret])?;
|
||||
alicebob_swap_tx.signatures = vec![sigs];
|
||||
|
||||
// Alice gets the partially signed transaction and adds her signature
|
||||
let alice_note: MoneyNote =
|
||||
swap_full_params.outputs[0].note.decrypt(&th.alice.keypair.secret)?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[deserialize(&alice_note.memo)?])?;
|
||||
let sigs = alicebob_swap_tx.create_sigs(&mut OsRng, &[alice_signature_secret])?;
|
||||
alicebob_swap_tx.signatures[0].insert(0, sigs[0]);
|
||||
|
||||
info!(target: "money", "[Faucet] ==========================");
|
||||
@@ -819,14 +822,12 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
assert!(th.faucet.merkle_tree.root(0).unwrap() == th.bob.merkle_tree.root(0).unwrap());
|
||||
|
||||
// Alice should now have Bob's BOB tokens
|
||||
let note: MoneyNote = swap_full_params.outputs[0].note.decrypt(&th.alice.keypair.secret)?;
|
||||
let alice_oc = OwnCoin {
|
||||
coin: Coin::from(swap_full_params.outputs[0].coin),
|
||||
note: alice_note.clone(),
|
||||
note: note.clone(),
|
||||
secret: th.alice.keypair.secret, // <-- What should this be?
|
||||
nullifier: Nullifier::from(poseidon_hash([
|
||||
th.alice.keypair.secret.inner(),
|
||||
alice_note.serial,
|
||||
])),
|
||||
nullifier: Nullifier::from(poseidon_hash([th.alice.keypair.secret.inner(), note.serial])),
|
||||
leaf_position: alice_leaf_pos,
|
||||
};
|
||||
alice_owncoins.push(alice_oc);
|
||||
@@ -836,11 +837,12 @@ async fn money_contract_transfer() -> Result<()> {
|
||||
assert!(alice_owncoins[0].note.token_id == bob_token_id);
|
||||
|
||||
// And Bob should have Alice's ALICE tokens
|
||||
let note: MoneyNote = swap_full_params.outputs[1].note.decrypt(&th.bob.keypair.secret)?;
|
||||
let bob_oc = OwnCoin {
|
||||
coin: Coin::from(swap_full_params.outputs[1].coin),
|
||||
note: bob_note.clone(),
|
||||
note: note.clone(),
|
||||
secret: th.bob.keypair.secret, // <-- What should this be?
|
||||
nullifier: Nullifier::from(poseidon_hash([th.bob.keypair.secret.inner(), bob_note.serial])),
|
||||
nullifier: Nullifier::from(poseidon_hash([th.bob.keypair.secret.inner(), note.serial])),
|
||||
leaf_position: bob_leaf_pos,
|
||||
};
|
||||
bob_owncoins.push(bob_oc);
|
||||
|
||||
Reference in New Issue
Block a user