package rulemgr import ( "sync" "github.com/meshplus/bitxhub-kit/storage" "github.com/sirupsen/logrus" "gitlab.33.cn/link33/sidecar/pkg/validator" ) type Rule struct { Code []byte `json:"code"` Address string `json:"address"` } type RuleResponse struct { Ok bool `json:"ok"` Content string `json:"content"` } type RuleMgr struct { Ledger *CodeLedger Ve *validator.ValidationEngine logger logrus.FieldLogger } func New(storage storage.Storage, logger logrus.FieldLogger) (*RuleMgr, error) { ledger := &CodeLedger{ storage: storage, } instances := &sync.Map{} ve := validator.NewValidationEngine(ledger, instances, logger) rm := &RuleMgr{ Ledger: ledger, Ve: ve, logger: logger, } return rm, nil } func (rm *RuleMgr) Validate(address, from string, proof, payload []byte, validators string) (bool, error) { ok, err := rm.Ve.Validate(address, from, proof, payload, validators) return ok, err }