github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/wasm/watcher/params.go (about)

     1  package watcher
     2  
     3  import (
     4  	"log"
     5  
     6  	"github.com/fibonacci-chain/fbc/x/wasm/types"
     7  	"github.com/golang/protobuf/proto"
     8  )
     9  
    10  var (
    11  	paramsKey      = []byte("wasm-parameters")
    12  	sendEnabledKey = []byte("send-enabled")
    13  )
    14  
    15  func SetParams(para types.Params) {
    16  	if !Enable() {
    17  		return
    18  	}
    19  	b, err := proto.Marshal(&para)
    20  	if err != nil {
    21  		panic("wasm watchDB SetParams marshal error:" + err.Error())
    22  	}
    23  	if err = db.Set(paramsKey, b); err != nil {
    24  		panic("wasm watchDB SetParams set error:" + err.Error())
    25  	}
    26  }
    27  
    28  func GetParams() types.Params {
    29  	ensureChecked()
    30  	b, err := db.Get(paramsKey)
    31  	if err != nil {
    32  		panic("wasm watchDB GetParams get error:" + err.Error())
    33  	}
    34  	var p types.Params
    35  	if err = proto.Unmarshal(b, &p); err != nil {
    36  		panic("wasm watchDB GetParams unmarshal error:" + err.Error())
    37  	}
    38  	return p
    39  }
    40  
    41  type ParamsManager struct{}
    42  
    43  func (p ParamsManager) SetSendEnabled(enable bool) {
    44  	if !Enable() {
    45  		return
    46  	}
    47  	var ok byte
    48  	if enable {
    49  		ok = 1
    50  	}
    51  	if err := db.Set(sendEnabledKey, []byte{ok}); err != nil {
    52  		log.Println("SetSendEnabled error:", err)
    53  	}
    54  }
    55  
    56  func (p ParamsManager) GetSendEnabled() bool {
    57  	ensureChecked()
    58  	v, err := db.Get(sendEnabledKey)
    59  	if err != nil {
    60  		log.Println("SetSendEnabled error:", err)
    61  		return false
    62  	}
    63  	if len(v) == 0 || v[0] == 0 {
    64  		return false
    65  	}
    66  	return true
    67  }