github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/store/mpt/proof.go (about)

     1  package mpt
     2  
     3  import (
     4  	"github.com/fibonacci-chain/fbc/libs/tendermint/crypto/merkle"
     5  )
     6  
     7  type ProofList [][]byte
     8  
     9  func (n *ProofList) Put(key []byte, value []byte) error {
    10  	*n = append(*n, value)
    11  	return nil
    12  }
    13  
    14  func (n *ProofList) Delete(key []byte) error {
    15  	panic("not supported")
    16  }
    17  
    18  const ProofOpMptValue = "mpt:v"
    19  const ProofOpMptAbsence = "mpt:a"
    20  
    21  func newProofOpMptValue(key []byte, proof ProofList) merkle.ProofOp {
    22  	bz := cdc.MustMarshalBinaryLengthPrefixed(proof)
    23  	return merkle.ProofOp{
    24  		Type: ProofOpMptValue,
    25  		Key:  key,
    26  		Data: bz,
    27  	}
    28  }
    29  
    30  func newProofOpMptAbsence(key []byte, proof ProofList) merkle.ProofOp {
    31  	bz := cdc.MustMarshalBinaryLengthPrefixed(proof)
    32  	return merkle.ProofOp{
    33  		Type: ProofOpMptAbsence,
    34  		Key:  key,
    35  		Data: bz,
    36  	}
    37  }