Documentation
¶
Overview ¶
* Copyright (C) 2021 The poly network Authors * This file is part of The poly network library. * * The poly network is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The poly network is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License * along with The poly network . If not, see <http://www.gnu.org/licenses/>.
* Copyright (C) 2021 The poly network Authors * This file is part of The poly network library. * * The poly network is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * The poly network is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License * along with The poly network . If not, see <http://www.gnu.org/licenses/>.
Index ¶
Constants ¶
const ( ProofOpIAVLCommitment = "ics23:iavl" ProofOpSimpleMerkleCommitment = "ics23:simple" )
Variables ¶
This section is empty.
Functions ¶
func CommitmentOpDecoder ¶ added in v1.8.3
func CommitmentOpDecoder(pop merkle.ProofOp) (merkle.ProofOperator, error)
CommitmentOpDecoder takes a merkle.ProofOp and attempts to decode it into a CommitmentOp ProofOperator The proofOp.Data is just a marshalled CommitmentProof. The Key of the CommitmentOp is extracted from the unmarshalled proof.
func ProofRuntime ¶ added in v1.8.3
func ProofRuntime() *merkle.ProofRuntime
Types ¶
type CommitmentOp ¶ added in v1.8.3
type CommitmentOp struct {
Type string
Spec *ics23.ProofSpec
Key []byte
Proof *ics23.CommitmentProof
}
CommitmentOp implements merkle.ProofOperator by wrapping an ics23 CommitmentProof It also contains a Key field to determine which key the proof is proving. NOTE: CommitmentProof currently can either be ExistenceProof or NonexistenceProof
Type and Spec are classified by the kind of merkle proof it represents allowing the code to be reused by more types. Spec is never on the wire, but mapped from type in the code.
func (CommitmentOp) GetKey ¶ added in v1.8.3
func (op CommitmentOp) GetKey() []byte
func (CommitmentOp) ProofOp ¶ added in v1.8.3
func (op CommitmentOp) ProofOp() merkle.ProofOp
ProofOp implements ProofOperator interface and converts a CommitmentOp into a merkle.ProofOp format that can later be decoded by CommitmentOpDecoder back into a CommitmentOp for proof verification
func (CommitmentOp) Run ¶ added in v1.8.3
func (op CommitmentOp) Run(args [][]byte) ([][]byte, error)
Run takes in a list of arguments and attempts to run the proof op against these arguments Returns the root wrapped in [][]byte if the proof op succeeds with given args. If not, it will return an error.
CommitmentOp will accept args of length 1 or length 0 If length 1 args is passed in, then CommitmentOp will attempt to prove the existence of the key with the value provided by args[0] using the embedded CommitmentProof and return the CommitmentRoot of the proof If length 0 args is passed in, then CommitmentOp will attempt to prove the absence of the key in the CommitmentOp and return the CommitmentRoot of the proof
type CosmosHandler ¶
type CosmosHandler struct{}
func NewCosmosHandler ¶
func NewCosmosHandler() *CosmosHandler
func (*CosmosHandler) MakeDepositProposal ¶
func (this *CosmosHandler) MakeDepositProposal(service *native.NativeService) (*scom.MakeTxParam, error)