Skip to content
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
11 changes: 5 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ version = "2.0.0"
[workspace.dependencies]
alloy-primitives = "1.0.23"
alloy-sol-types = "1.0.23"
anoma-rm-risc0 = { version = "1.1.1", default-features = false }
anoma-rm-risc0-gadgets = "1.1.1"
anoma-rm-risc0 = { git = "https://github.com/anoma/arm-risc0", tag = "v2.0.0-rc.4", default-features = false }
anoma-rm-risc0-gadgets = { git = "https://github.com/anoma/arm-risc0", tag = "v2.0.0-rc.4" }
bincode = "1.3.3"
hex = "0.4"
k256 = { version = "0.13", default-features = false }
Expand Down
11 changes: 5 additions & 6 deletions transfer_circuit/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions transfer_circuit/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ version = "2.0.0"
[workspace]

[dependencies]
anoma-rm-risc0 = { version = "1.1.1", default-features = false }
anoma-rm-risc0-gadgets = "1.1.1"
anoma-rm-risc0 = { git = "https://github.com/anoma/arm-risc0", tag = "v2.0.0-rc.4", default-features = false }
anoma-rm-risc0-gadgets = { git = "https://github.com/anoma/arm-risc0", tag = "v2.0.0-rc.4" }
k256 = { version = "=0.13.3", features = [
"arithmetic",
"serde",
Expand Down
11 changes: 5 additions & 6 deletions transfer_circuit/methods/guest/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 5 additions & 6 deletions transfer_circuit_v2/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions transfer_circuit_v2/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ version = "2.0.0"
[workspace]

[dependencies]
anoma-rm-risc0 = { version = "1.1.1", default-features = false }
anoma-rm-risc0-gadgets = "1.1.1"
anoma-rm-risc0 = { git = "https://github.com/anoma/arm-risc0", tag = "v2.0.0-rc.4", default-features = false }
anoma-rm-risc0-gadgets = { git = "https://github.com/anoma/arm-risc0", tag = "v2.0.0-rc.4" }
k256 = { version = "=0.13.3", features = [
"arithmetic",
"serde",
Expand Down
11 changes: 5 additions & 6 deletions transfer_circuit_v2/methods/guest/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions transfer_library_v2/kind_table.json

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we have a kind table here? Let's also discuss where we want to maintain the kind table in general. A separate repo seems to be the right place if we will have multiple different resource logics (being in their own, separate repos).

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
31 changes: 20 additions & 11 deletions transfer_library_v2/src/migrate_tx.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::TransferLogicV2;
use anoma_rm_risc0::{
Digest,
action::Action,
action_tree::MerkleTree,
action_tree::ActionTree,
compliance::ComplianceWitness,
compliance_unit::ComplianceUnit,
delta_proof::DeltaWitness,
Expand All @@ -11,7 +11,7 @@ use anoma_rm_risc0::{
merkle_path::MerklePath,
nullifier_key::NullifierKey,
proving_system::ProofType,
resource::Resource,
resource::{ConsumedResourceWitness, Resource},
transaction::{Delta, Transaction},
};
use anoma_rm_risc0_gadgets::authority::{AuthoritySignature, AuthorityVerifyingKey};
Expand Down Expand Up @@ -44,14 +44,16 @@ pub fn construct_migrate_tx(
// Action tree
let consumed_nf = consumed_resource.nullifier(&consumed_nf_key)?;
let created_cm = created_resource.commitment();
let action_tree_root = MerkleTree::new(vec![consumed_nf, created_cm]).root()?;
let action_tree_root = ActionTree::new(vec![consumed_nf, created_cm]).root()?;

// Generate compliance units
let compliance_witness = ComplianceWitness::from_resources(
consumed_resource,
let consumed_resource_witness =
ConsumedResourceWitness::from_resource(consumed_resource, consumed_nf_key.clone());
let compliance_witness = ComplianceWitness::from_resources_with_ephemeral_root(
&[consumed_resource_witness],
&[created_resource],
latest_cm_tree_root,
consumed_nf_key.clone(),
created_resource,
vec![],
);
let compliance_unit = ComplianceUnit::create(&compliance_witness, ProofType::Groth16)?;

Expand Down Expand Up @@ -85,7 +87,7 @@ pub fn construct_migrate_tx(

// Construct the action
let action = Action::new(
vec![compliance_unit],
compliance_unit,
vec![consumed_logic_proof, created_logic_proof],
)?;

Expand All @@ -100,7 +102,8 @@ pub fn construct_migrate_tx(
#[cfg(not(target_os = "macos"))]
fn simple_migrate_test() {
use anoma_rm_risc0::{
compliance::INITIAL_ROOT, nullifier_key::NullifierKey, resource::Resource,
compliance::INITIAL_ROOT, constants::init_kind_table_from_file,
nullifier_key::NullifierKey, resource::Resource,
};
use anoma_rm_risc0_gadgets::{
authority::{AuthoritySigningKey, AuthorityVerifyingKey},
Expand All @@ -110,6 +113,12 @@ fn simple_migrate_test() {
use transfer_witness::{calculate_label_ref, calculate_persistent_value_ref};
use transfer_witness_v2::AUTH_SIGNATURE_DOMAIN_V2;

// The transaction carries an empty kind table (no precomputed kind
// points), so `Transaction::verify` needs the global table initialized
// to the same empty set before it will accept the commitment.
let kind_table_path = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("kind_table.json");
init_kind_table_from_file(&kind_table_path).unwrap();

// Common parameters
let forwarder_addr_v1 = vec![0u8; 20];
let logic_ref_v1 = Digest::default();
Expand Down Expand Up @@ -175,14 +184,14 @@ fn simple_migrate_test() {
value_ref: calculate_persistent_value_ref(&value_info),
quantity,
is_ephemeral: false,
nonce: consumed_nf.as_bytes().try_into().unwrap(),
nonce: Resource::derive_nonce_from_nullifiers(0, &[consumed_nf]).unwrap(),
..Default::default()
};

let created_cm = created_resource.commitment();

// Generate the authorization signature
let action_tree = MerkleTree::new(vec![consumed_nf, created_cm]);
let action_tree = ActionTree::new(vec![consumed_nf, created_cm]);
let migrated_auth_sig = migrated_auth_sk.sign(
AUTH_SIGNATURE_DOMAIN_V2,
action_tree.root().unwrap().as_bytes(),
Expand Down
Loading