Skip to content

Commit b30213a

Browse files
authored
Merge pull request #94 from datachainlab/lc-message
Refactor commitments Signed-off-by: Jun Kimura <[email protected]>
2 parents 6eeedc7 + 1e0c373 commit b30213a

File tree

29 files changed

+976
-860
lines changed

29 files changed

+976
-860
lines changed

enclave-modules/ecall-handler/src/light_client/init_client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ pub fn init_client<R: LightClientResolver, S: KVStore, K: Signer>(
2929
ctx.increase_client_counter();
3030

3131
let proof = if res.prove {
32-
prove_commitment(ek, input.signer, res.commitment)?
32+
prove_commitment(ek, input.signer, res.message)?
3333
} else {
34-
CommitmentProof::new_with_no_signature(res.commitment.to_commitment_bytes())
34+
CommitmentProof::new_with_no_signature(res.message.to_bytes())
3535
};
3636
Ok(LightClientResult::InitClient(InitClientResult {
3737
client_id,
Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
use super::registry::get_light_client_by_client_id;
22
use crate::light_client::Error;
3+
use crate::prelude::*;
34
use context::Context;
45
use crypto::Signer;
56
use ecall_commands::{LightClientResult, UpdateClientInput, UpdateClientResult};
67
use light_client::commitments::{
7-
prove_commitment, Commitment, CommitmentProof, UpdateClientCommitment,
8+
prove_commitment, CommitmentProof, EmittedState, Message, UpdateClientMessage,
89
};
910
use light_client::{ClientKeeper, LightClientResolver};
1011
use store::KVStore;
@@ -19,21 +20,24 @@ pub fn update_client<R: LightClientResolver, S: KVStore, K: Signer>(
1920
let ek = ctx.get_enclave_key();
2021
let res = lc.update_client(ctx, input.client_id.clone(), input.any_header.into())?;
2122

22-
let commitment: Commitment = {
23-
let mut commitment = UpdateClientCommitment::try_from(res.commitment)?;
24-
if input.include_state && commitment.new_state.is_none() {
25-
commitment.new_state = Some(res.new_any_client_state.clone());
23+
let message: Message = {
24+
let mut msg = UpdateClientMessage::try_from(res.message)?;
25+
if input.include_state && !msg.emitted_states.is_empty() {
26+
msg.emitted_states = vec![EmittedState(
27+
res.height,
28+
res.new_any_consensus_state.clone(),
29+
)];
2630
}
27-
commitment.into()
31+
msg.into()
2832
};
2933

3034
ctx.store_any_client_state(input.client_id.clone(), res.new_any_client_state)?;
3135
ctx.store_any_consensus_state(input.client_id, res.height, res.new_any_consensus_state)?;
3236

3337
let proof = if res.prove {
34-
prove_commitment(ek, input.signer, commitment)?
38+
prove_commitment(ek, input.signer, message)?
3539
} else {
36-
CommitmentProof::new_with_no_signature(commitment.to_commitment_bytes())
40+
CommitmentProof::new_with_no_signature(message.to_bytes())
3741
};
3842
Ok(LightClientResult::UpdateClient(UpdateClientResult(proof)))
3943
}

enclave-modules/ecall-handler/src/light_client/verify_state.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub fn verify_membership<R: LightClientResolver, S: KVStore, K: Signer>(
2828
)?;
2929

3030
Ok(LightClientResult::VerifyMembership(VerifyMembershipResult(
31-
prove_commitment(ek, input.signer, res.state_commitment)?,
31+
prove_commitment(ek, input.signer, res.message)?,
3232
)))
3333
}
3434

@@ -49,6 +49,6 @@ pub fn verify_non_membership<R: LightClientResolver, S: KVStore, K: Signer>(
4949
)?;
5050

5151
Ok(LightClientResult::VerifyNonMembership(
52-
VerifyNonMembershipResult(prove_commitment(ek, input.signer, res.state_commitment)?),
52+
VerifyNonMembershipResult(prove_commitment(ek, input.signer, res.message)?),
5353
))
5454
}

0 commit comments

Comments
 (0)