Below an overview of all data types from the ICS-23 specification and how they're implemented.
spec: object
impl: not implemented
spec: object
impl: [u8]
spec: object
impl: [u8]
spec: object
impl: not implemented
spec: applyPrefix = (prefix: CommitmentPrefix, path: CommitmentPath) => CommitmentPath
impl: not implemented
spec: removePrefix = (prefix: CommitmentPrefix, path: commitmentPath) => Path
impl: not implemented
spec: string
impl: [u8]
spec: []byte
impl: [u8]
spec: object
impl:
existence_proof.rs (from lib/unionlabs) # ExistenceProof
non_existence_proof.rs (from lib/unionlabs) # NonExistenceProof
spec: (initial: Map<Path, Value>) => CommitmentState
impl: not implemented
spec: (state: CommitmentState) => CommitmentRoot
impl: not implemented.
(NOTE: existence_proof.rs # calculate_root
seems to do this, but it has an ExistenceProof
as argument, not a CommitmentState
)
spec: (state: CommitmentState, path: Path, value: Value) => CommitmentState
impl: not implemented
spec (state: CommitmentState, path: Path) => CommitmentState
impl: not implemented
spec: (state: CommitmentState, path: CommitmentPath, value: Value) => CommitmentProof
impl: not implemented
spec: (state: CommitmentState, path: CommitmentPath) => CommitmentProof
impl: not implemented
spec: (root: CommitmentRoot, proof: CommitmentProof, path: CommitmentPath, value: Value) => boolean
impl:
// verify.rs:
verify_membership(
spec: &ProofSpec,
root: &[u8],
proof: &ExistenceProof,
key: &[u8],
value: &[u8]
) -> Result<(), VerifyMembershipError>
spec: (root: CommitmentRoot, proof: CommitmentProof, path: CommitmentPath) => boolean
impl:
// verify.rs:
verify_membership(
spec: &ProofSpec,
root: &[u8],
proof: &ExistenceProof,
key: &[u8],
value: &[u8],
) -> Result<(), VerifyMembershipError>
spec: (root: CommitmentRoot, proof: CommitmentProof, items: Map<CommitmentPath, Value>) => boolean
impl: not implemented
spec: (root: CommitmentRoot, proof: CommitmentProof, paths: Set<CommitmentPath>) => boolean
impl: not implemented