Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Anon assets mixing #244

Merged
merged 8 commits into from
Mar 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,9 @@ run_anon_transfer_demo: devnet

run_multi_anon_transfer_demo: devnet
@./tools/triple_masking/multi_axfr_test_demo.sh


run_anon_asset_mixing_demo: devnet
@./tools/triple_masking/assets_mixing_test_demo.sh

devnet_bridge: devnet
@./tools/devnet/startbridge.sh
22 changes: 21 additions & 1 deletion src/components/finutils/src/bins/fn.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ use {
fp_utils::ecdsa::SecpPair,
globutils::wallet,
ledger::{
data_model::{ATxoSID, AssetTypeCode, FRA_DECIMALS},
data_model::{ATxoSID, AssetTypeCode, ASSET_TYPE_FRA, FRA_DECIMALS},
staking::StakerMemo,
},
rand_chacha::ChaChaRng,
Expand Down Expand Up @@ -616,6 +616,7 @@ fn run() -> Result<()> {
let to_axfr_public_key = m.value_of("to-axfr-public-key");
let to_enc_key = m.value_of("to-enc-key");
let amount = m.value_of("amount");
let fra_randomizer = m.value_of("fra-randomizer");

if randomizer.is_none()
|| to_axfr_public_key.is_none()
Expand All @@ -627,6 +628,7 @@ fn run() -> Result<()> {
common::gen_oabar_add_op(
axfr_secret_key,
randomizer.unwrap(),
fra_randomizer,
dec_key,
amount.unwrap(),
to_axfr_public_key.unwrap(),
Expand Down Expand Up @@ -681,13 +683,30 @@ fn run() -> Result<()> {
.c(d!())
.map(|ams| ams.lines().map(String::from).collect::<Vec<String>>())
})?;
let assets = m.value_of("asset-file").c(d!()).and_then(|f| {
let token_code = |asset: &str| {
if asset.to_uppercase() == "FRA" {
AssetTypeCode {
val: ASSET_TYPE_FRA,
}
} else {
AssetTypeCode::new_from_base64(asset).unwrap_or(AssetTypeCode {
val: ASSET_TYPE_FRA,
})
}
};
fs::read_to_string(f)
.c(d!())
.map(|ams| ams.lines().map(token_code).collect::<Vec<AssetTypeCode>>())
})?;

if axfr_secret_keys.is_empty()
|| dec_keys.is_empty()
|| to_axfr_public_keys.is_empty()
|| to_enc_keys.is_empty()
|| randomizers.is_empty()
|| amounts.is_empty()
|| assets.is_empty()
{
println!("{}", m.usage());
} else {
Expand All @@ -698,6 +717,7 @@ fn run() -> Result<()> {
to_enc_keys,
randomizers,
amounts,
assets,
)
.c(d!())?;
}
Expand Down
22 changes: 17 additions & 5 deletions src/components/finutils/src/bins/fn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,11 @@ subcommands:
takes_value: true
value_name: RANDOMIZER
required: true
- fra-randomizer:
help: Randomizer for the input FRA Anon BAR
long: fra-randomizer
takes_value: true
value_name: FRA RANDOMIZER
- to-axfr-public-key:
help: Axfr public key of the receiver
long: to-axfr-public-key
Expand All @@ -608,14 +613,14 @@ subcommands:
long: to-enc-key
takes_value: true
value_name: ENCRYPTION KEY
required: true
required: true
- amount:
help: how much units to transfer
short: n
long: amount
takes_value: true
value_name: Amount
required: true
required: true
- anon-transfer-batch:
about: Anonymous Transfer of tokens from multiple inputs to multiple outputs
args:
Expand All @@ -632,7 +637,7 @@ subcommands:
long: randomizer-file
takes_value: true
value_name: RANDOMIZER
required: true
required: true
- decryption-key-file:
help: Decryption Keys for anon transfer
short: d
Expand All @@ -651,14 +656,21 @@ subcommands:
long: to-enc-key-file
takes_value: true
value_name: ENCRYPTION KEY
required: true
required: true
- amount-file:
help: how much units to transfer for each receiver
short: n
long: amount-file
takes_value: true
value_name: Amount
required: true
- asset-file:
help: Relative asset code type.
short: a
long: asset-file
takes_value: true
value_name: Asset
required: true
- anon-fetch-merkle-proof:
about: Query to fetch mtleaf info
args:
Expand All @@ -685,4 +697,4 @@ subcommands:
long: anon-keys
takes_value: true
value_name: ANON KEYS PATH
required: true
required: true
Loading