Skip to content

Commit 6edd9e9

Browse files
feat: add carrier resource and forwarder calldata field (#30)
* feat: add field for carrier resource and forwarder calldata * fix compilation errors --------- Co-authored-by: Xuyang Song <xuyangsong@hotmail.com>
1 parent 51b79b5 commit 6edd9e9

File tree

8 files changed

+34
-4
lines changed

8 files changed

+34
-4
lines changed

aarm/src/action.rs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,26 @@ use serde::{Deserialize, Serialize};
2121
pub struct Action {
2222
pub compliance_units: Vec<Receipt>,
2323
pub logic_proofs: Vec<LogicProof>,
24+
pub resource_forwarder_calldata_pairs: Vec<(Resource, ForwarderCalldata)>,
25+
}
26+
27+
#[derive(Clone, Debug, Deserialize, Serialize)]
28+
pub struct ForwarderCalldata {
29+
untrusted_forwarder: [u8; 20],
30+
input: Vec<u8>,
31+
output: Vec<u8>,
2432
}
2533

2634
impl Action {
27-
pub fn new(compliance_units: Vec<Receipt>, logic_proofs: Vec<LogicProof>) -> Self {
35+
pub fn new(
36+
compliance_units: Vec<Receipt>,
37+
logic_proofs: Vec<LogicProof>,
38+
resource_forwarder_calldata_pairs: Vec<(Resource, ForwarderCalldata)>,
39+
) -> Self {
2840
Action {
2941
compliance_units,
3042
logic_proofs,
43+
resource_forwarder_calldata_pairs,
3144
}
3245
}
3346

@@ -39,6 +52,10 @@ impl Action {
3952
&self.logic_proofs
4053
}
4154

55+
pub fn get_resource_forwarder_calldata_pairs(&self) -> &Vec<(Resource, ForwarderCalldata)> {
56+
&self.resource_forwarder_calldata_pairs
57+
}
58+
4259
pub fn verify(&self) -> bool {
4360
for receipt in &self.compliance_units {
4461
if !verify_proof(receipt, COMPLIANCE_GUEST_ID) {
@@ -150,8 +167,13 @@ pub fn create_an_action(nonce: u8) -> (Action, DeltaWitness) {
150167

151168
let compliance_units = vec![compliance_receipt];
152169
let logic_proofs = vec![consumed_logic_proof, created_logic_proof];
170+
let resource_forwarder_calldata_pairs = vec![];
153171

154-
let action = Action::new(compliance_units, logic_proofs);
172+
let action = Action::new(
173+
compliance_units,
174+
logic_proofs,
175+
resource_forwarder_calldata_pairs,
176+
);
155177
assert!(action.verify());
156178

157179
let delta_witness = DeltaWitness::from_scalars(&[compliance_witness.rcv]);

aarm/src/evm_adapter.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
use crate::action::ForwarderCalldata;
12
use crate::{
23
action::Action,
34
transaction::{Delta, Transaction},
45
};
6+
use aarm_core::resource::Resource;
57
use aarm_core::{
68
compliance::ComplianceInstance,
79
logic_instance::{ExpirableBlob, LogicInstance},
@@ -23,6 +25,7 @@ pub struct AdapterTransaction {
2325
pub struct AdapterAction {
2426
pub compliance_units: Vec<AdapterComplianceUnit>,
2527
pub logic_proofs: Vec<AdapterLogicProof>,
28+
pub resource_forwarder_calldata_pairs: Vec<(Resource, ForwarderCalldata)>,
2629
}
2730

2831
#[derive(Clone, Debug, Deserialize, Serialize)]
@@ -109,6 +112,7 @@ impl From<Action> for AdapterAction {
109112
AdapterAction {
110113
compliance_units,
111114
logic_proofs,
115+
resource_forwarder_calldata_pairs: action.resource_forwarder_calldata_pairs,
112116
}
113117
}
114118
}

aarm_core/src/nullifier_key.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ impl NullifierKey {
3333
}
3434

3535
/// Commitment to nullifier key
36-
#[derive(Clone, Copy, Eq, PartialEq, Default, Serialize, Deserialize)]
36+
#[derive(Debug, Clone, Copy, Eq, PartialEq, Default, Serialize, Deserialize)]
3737
pub struct NullifierKeyCommitment(Digest);
3838

3939
impl NullifierKeyCommitment {

aarm_core/src/resource.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use risc0_zkvm::sha::{rust_crypto::Sha256 as Sha256Type, Digest, Impl, Sha256, D
1212
use serde::{Deserialize, Serialize};
1313

1414
/// A resource that can be created and consumed
15-
#[derive(Clone, Copy, Serialize, Deserialize)]
15+
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
1616
pub struct Resource {
1717
// a succinct representation of the predicate associated with the resource
1818
pub logic_ref: Digest,

examples/kudo_application/kudo_tx/src/burn.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ where
9191
ephemeral_kudo_proof,
9292
ephemeral_denomination_proof,
9393
],
94+
vec![],
9495
),
9596
DeltaWitness::from_scalars(&[delta_witness_1, delta_witness_2]),
9697
)

examples/kudo_application/kudo_tx/src/issue.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ where
114114
ephemeral_denomination_proof,
115115
padding_resource_proof,
116116
],
117+
vec![],
117118
),
118119
DeltaWitness::from_scalars(&[delta_witness_1, delta_witness_2, delta_witness_3]),
119120
)

examples/kudo_application/kudo_tx/src/swap.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ where
127127
padding_resource_proof,
128128
receive_logic_proof,
129129
],
130+
vec![],
130131
),
131132
DeltaWitness::from_scalars(&[delta_witness_1, delta_witness_2, delta_witness_3]),
132133
)

examples/kudo_application/kudo_tx/src/transfer.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ where
121121
padding_resource_proof,
122122
receive_logic_proof,
123123
],
124+
vec![],
124125
),
125126
DeltaWitness::from_scalars(&[delta_witness_1, delta_witness_2, delta_witness_3]),
126127
)

0 commit comments

Comments
 (0)